This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: as/ld silently creates programs with undefined references/symbols
- From: Nick Clifton <nickc at redhat dot com>
- To: Russell King <rmk at arm dot linux dot org dot uk>, binutils at sources dot redhat dot com
- Cc: Richard Earnshaw <rearnsha at arm dot com>
- Date: Fri, 08 Oct 2004 15:59:29 +0100
- Subject: Re: as/ld silently creates programs with undefined references/symbols
- References: <20040702123710.A24028@flint.arm.linux.org.uk> <40E66B86.4000200@redhat.com> <20040711121944.B13616@flint.arm.linux.org.uk> <40F243E2.2070506@redhat.com> <1089620642.8278.68.camel@pc960.cambridge.arm.com> <20040712092625.A2623@flint.arm.linux.org.uk> <1089621632.8278.72.camel@pc960.cambridge.arm.com> <20040808165653.B17968@flint.arm.linux.org.uk> <411CF9DA.5090202@redhat.com> <4121BE71.6060508@redhat.com> <20040923104005.A18950@flint.arm.linux.org.uk> <415A799E.2030706@redhat.com>
Hi Russel,
I have a prototype solution to this problem, but I would like more input
from anyone who is interested. My idea is to provide a new function in
the BFD ABI:
bfd_boolean bfd_is_target_special_symbol (bfd *, asymbol *);
I had noone complain about this approach so I have decided to go ahead
and check it in. I have increased the BFD version number to reflect the
presence of a new function in the API, and I have added a new switch to
nm and objdump called "--special-syms". By default these tools will now
skip displaying the ARM Mapping symbols unless this new switch is used.
Cheers
Nick
bfd/ChangeLog
2004-10-08 Nick Clifton <nickc@redhat.com>
* configure.in: (AM_INIT_AUTOMAKE): Set version to 2.15.93.
* configure: Regenerate.
* bfd-in2.h: Regenerate.
* syms.c (bfd_is_target_special_symbol): New interface function.
Returns true when a symbol should be considered to be special.
* targets.h (bfd_target): Include bfd_is_target_special_symbol in
the symbol jump table.
* elf32-arm.h (elf32_arm_is_target_special_symbol): New function.
Return true iff the symbol is a mapping symbol.
(bfd_elf32_bfd_is_target_special_symbol): Define.
* elfxx-target.h: Provide a default definition for
bfd_is_target_special_symbol.
* aout-target.h: Likewise.
* aout-tic30.c: Likewise.
* binary.c: Likewise.
* coffcode.h: Likewise.
* i386msdos.c: Likewise.
* ieee.c: Likewise.
* ihex.c: Likewise.
* libaout.h: Likewise.
* libbfd-in.h: Likewise
* libecoff.h: Likewise.
* mach-o.c: Likewise.
* mmo.c: Likewise.
* nlm-target.h: Likewise.
* oasys.c: Likewise.
* pef.c: Likewise.
* ppcboot.c: Likewise.
* srec.c: Likewise.
* tekhex.c: Likewise.
* versados.c: Likewise.
* vms.c: Likewise.
* xcoff-target.h: Likewise.
* xsym.c: Likewise.
* libbfd.h: Regenerate.
binutils/ChangeLog
2004-10-08 Nick Clifton <nickc@redhat.com>
* nm.c: Add a new switch --special-syms which, if enabled, will
include the ARM Mapping symbols in nm's output.
(usage): Mention the switch.
(filter_symbols): Handle the switch.
* objdump.c: Add a similar switch.
(usage): Mention the switch.
(dump_symbols): Handle the switch.
* doc/binutils.texi: Document the new switches.
* NEWS: Mention the new switches.