bad sh linking error with test case
Joel Sherrill
joel.sherrill@OARcorp.com
Tue Apr 2 06:30:00 GMT 2002
Hi,
I have come across a bad linking error in sh-rtems (sh-coff)
for 2.12. sh-rtems-ld is failing to fail when linking an
executable that has undefined symbols. As I reported earlier,
this is enough to prevent gcc from building because autoconf
assumes linking a program with an undefined symbol is the
the way to determine if a library routine exists or not.
I have put together a test program that demonstrates this
failure for externs in both the text and data segments.
The attached test case demonstrates this. To reproduce this
use the following command sequence:
sh-rtems-as test-sh-undefined.s -o test-sh-undefined.o
sh-rtems-nm test-sh-undefined.o
sh-rtems-ld test-sh-undefined.o
sh-rtems-nm a.out | grep give_error
Both undefined symbols show up in the final a.out as "U"
so they are not resolved and there is no error on the ld.
I tried to reproduce this for sh-coff but get an error
about the file format of the .o produced by sh-coff-as
being ambiguous to sh-coff-ld. I suspect this indicates
another problem.
Advice, patches, appreciated. As best I can tell, this
renders sh-coff/sh-rtems broken in 2.12.
--
Joel Sherrill, Ph.D. Director of Research & Development
joel@OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
-------------- next part --------------
.text
.long _ld_should_give_error_on_this_text_symbol
.data
.long _ld_should_give_error_on_this_data_symbol
More information about the Binutils
mailing list