public inbox for bfd@sourceware.org
 help / color / mirror / Atom feed
* BUG in binutils-2.9.1/ld on m88k-motorola-sysv3
@ 1998-07-07  4:00 Manfred Hollstein
  1998-07-07  8:27 ` Ian Lance Taylor
  0 siblings, 1 reply; 3+ messages in thread
From: Manfred Hollstein @ 1998-07-07  4:00 UTC (permalink / raw)
  To: ian; +Cc: bfd, gas2, bug-gnu-utils

Given this small C source

/* foo.c */
extern char global_var;
main () { global_var = 1; }
/* EOF */

should result in an executable with undefined symbols, shouldn't it?

binutils-2.9.1/ld fails to recognize this and produces an executable
without any complaint, which will core dump when running, of course.

I've built the stuff using:

$ env CC=sparc-sun-solaris2.5.1-gcc 'CFLAGS=-O0 -g ' LDFLAGS=-g ' \
      LINGUAS=de es fr it' 'INSTALL=/tools/gnu/bin/install -c'	  \
      'INSTALL_DATA=/tools/gnu/bin/install -c -m 644'		  \
      'INSTALL_PROGRAM=/tools/gnu/bin/install -c -m 755'	  \
  /bin/sh ../binutils-2.9.1/configure --host=sparc-sun-solaris2.5.1	\
      --target=delta88 --build=sparc-sun-solaris2.5.1			\
      --srcdir=../binutils-2.9.1					\
      --prefix=/u/b60/manfred/gnu/sparc-sun-solaris2.5.1		\
      --enable-targets=delta88,m68k-motorola-sysv,m88k-motorola-sysv3,m68k-unknown-ieee \
      --enable-shared=no --verbose
$ gmake -wk SHELL=/u/b60/manfred/gnu/sparc-sun-solaris2.5.1/bin/bash all check info


To simplify checking, fixing (I've already debugged, but cannot find
the reason), ... I've appended a small 88k assembler source, which can 
be used to demonstrate the problem.

	file	 "foo.s"
	text
	align	 8
	global	 __start
__start:
	or.u	 r13,r0,hi16(_global_var)
	or	 r12,r0,1
	st.b	 r12,r13,lo16(_global_var)
	jmp	 r1

$ ./gas/as-new -o foo.o foo.s
$ ./binutils/nm-new foo.o
00000010 b .bss
00000010 d .data
00000000 t .text
00000000 T __start
         U _global_var

Looks good, so far; but, when linking, NO complaint:

$ ./ld/ld-new -o a.out foo.o 
$ ./binutils/nm-new a.out
004000c8 b .bss
004000c8 d .data
000200b8 t .text
000200c8 T __.fini_end
000200c8 T __.fini_start
000200b8 T __.init.end
000200b8 T __.init.start
000200c8 T __.initp.end
000200c8 T __.initp.start
000200c8 T __.tdesc_start
000200b8 T __.text.start
000200c8 T __.text_end
004000c8 B __end
000200b8 T __start
004000c8 D _edata
004000c8 B _end
000200c8 T _etext
         U _global_var

As you can see, "global_var" is still undefined. This problem isn't
new, I can easily reproduce it with binutils-2.7 - funnily, we've been 
using this linker already without problems for many million lines of
C/C++ code :-?

Any ideas?

Thanks
--
 Manfred Hollstein       If you have any questions about GNU software:
 Hindenburgstr. 13/1                   < mailto:manfred@s-direktnet.de >
 75446 Wiernsheim, FRG  < http://www.s-direktnet.de/HomePages/manfred/ >
 PGP key:    < http://www.s-direktnet.de/HomePages/manfred/manfred.asc >

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~1998-07-08  0:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-07-07  4:00 BUG in binutils-2.9.1/ld on m88k-motorola-sysv3 Manfred Hollstein
1998-07-07  8:27 ` Ian Lance Taylor
1998-07-08  0:09   ` Manfred Hollstein

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).