This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

bad sh linking error with test case



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
	.text
	.long	_ld_should_give_error_on_this_text_symbol
	.data
	.long	_ld_should_give_error_on_this_data_symbol

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]