This is the mail archive of the bfd@sourceware.cygnus.com mailing list for the bfd project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Date: Tue, 7 Jul 1998 12:59:39 +0200 (MET DST) From: Manfred Hollstein <manfred@s-direktnet.de> 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? ... 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 :-? Judging by the howto fields in coff-m88k.c, all m88k relocs are handled by the function m88k_special_reloc in that file. That function does not seem to check for undefined symbols when handling the R_HVRT16 and R_LVRT16 reloc types. Since it returns bfd_reloc_ok for those types, no further checking will be done. It should return bfd_reloc_undefined instead for an undefined symbol. See bfd_perform_relocation. Ian