However, I still do not understand:
- How mattias is hardcoded in so many places?
I don't know why ld (the linker) gives source (pp/pas) filenames. Linkers work with .o files only. But I guess the linker just looks up the source name for the user convenience. If so, the linker may actually get that from debug info.
I do know that fpc puts source filenames into debug info. (Maybe it also puts them in other places for the linker).
In the debug info fpc stores:
- the full/absolute path to the source file
- the relative path (relative to either package or project)
When you debug later, then the IDE falls back to the relative path (unless you have files in the location given by the absolute path / e.g. source from your own project).
Mattias builds the installers for Linux. He needs to build/compile the files for it, and that needs to be somewhere on his disk.... And that ends up in debug info. (The windows builds also have the path where the files were compiled for the installer).
And well, couldn't those files be build in the location they are most likely going to be installed?
Better, not. Apart from this may differ by Linux distro, if a user has more than one installation, one in the default location, and another some place else, then the latter would also point to the default location... not good.