Subject: CVS commit: basesrc/distrib
To: None <firstname.lastname@example.org>
From: Todd Vierling <email@example.com>
Date: 04/23/2002 22:53:13
Module Name: basesrc
Committed By: tv
Date: Tue Apr 23 19:53:12 UTC 2002
The "objcopy" based crunchide method has a problem on MIPS; it turns global
symbols into locals, but relocs are left in place (rather than attempting
to resolve-in-place with "ld -r", even with "-Bsymbolic").
Standard MIPS code will generate CALL16 relocs for function calls, but
the linker forbids such relocs from being used to call local symbols (such
as those turned "local" by objcopy). So, rather than battle the toolchain
uphill, work around it for the moment by forcing 32-bit GOT references with
the assembler option "-xgot".
This will be fixed in a more clean manner in the future.
To generate a diff of this commit:
cvs rdiff -r1.3 -r1.4 basesrc/distrib/arc/ramdisk/Makefile
cvs rdiff -r1.9 -r1.10 basesrc/distrib/hpcmips/miniroot/Makefile.inc
cvs rdiff -r1.9 -r1.10 basesrc/distrib/mipsco/ramdisk/Makefile
cvs rdiff -r1.21 -r1.22 basesrc/distrib/newsmips/floppies/ramdisk/Makefile
cvs rdiff -r1.6 -r1.7 basesrc/distrib/playstation2/miniroot/Makefile.inc
cvs rdiff -r1.9 -r1.10 basesrc/distrib/pmax/miniroot/Makefile.inc
cvs rdiff -r1.26 -r1.27 basesrc/distrib/pmax/ramdisk/Makefile
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.