Bruce Tulloch wrote on Thu, 31 May 2012:
On 31/05/12 01:40, Jonas Maebe wrote:
That's correct. It seems that -XR isn't completely implemented on
Linux in the compiler. Could you try, *instead* of using -XR, to
use -k--sysroot=/full/path/to/crossroot/ ?
I replaced the -XR option with
-k--sysroot=/mnt/engels
and that works (ie, you are correct, -XR does not appear to pass the
sysroot to the linker)
No, on Linux it prepends the search paths with the -XR path internally
in the compiler. The reason is that not all GNU binutils builds
support the --sysroot parameter, and especially when -XR was
implemented it wasn't very commonplace yet. That should probably be
changed.
which does not right to me. It looks like --sysroot is not analogous to
chroot as far as the linker is concerned and symlinks are dereferenced
literally.
That's correct, --sysroot is not the same as a chroot, and I doubt it
was ever meant to be. All it does is prepend the sysroot path to all
searched files. It seems quite reasonable to me that in certain
situations someone would want to set up their library directory with
symlinks pointing to other locations on their system (e.g. for sharing
files located elsewhere).
So if you want to simply copy files from another system, you'll indeed
have to change some symlinks. You can try filing a bug with binutils
of course, but I don't think it will be considered a bug (although you
can always ask to add an option to get the behaviour you want).
Jonas
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal