[hjl@gnu-13 binutils]$ gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -g -O2 -o nm-new nm.o budemang.o bucomm.o version.o filemode.o ../bfd/.libs/libbfd.a ../libiberty/libiberty.a -B./ ./ld: Dwarf Error: mangled line number section (bad file number). ./ld: Dwarf Error: mangled line number section (bad file number). ./ld: Dwarf Error: mangled line number section (bad file number). ./ld: Dwarf Error: mangled line number section (bad file number). ./ld: Dwarf Error: mangled line number section (bad file number). ./ld: Dwarf Error: mangled line number section (bad file number). ./ld: Dwarf Error: mangled line number section (bad file number). ./ld: Dwarf Error: mangled line number section (bad file number). ./ld: Dwarf Error: mangled line number section (bad file number). ./ld: Dwarf Error: mangled line number section (bad file number). bucomm.o: In function `make_tempname':/export/gnu/src/binutils-import/binutils/binutils/bucomm.c:426: warning: the use of `mktemp' is dangerous, better use `mkstemp'
The problem is <2><4ef9>: Abbrev Number: 52 (DW_TAG_inlined_subroutine) DW_AT_abstract_origin: <4f18> DW_AT_ranges : 0x3e0 DW_AT_call_file : 0 DW_AT_call_line : 0 According to DWARF 3, 0 means no source file has been specified. The same applies to DW_AT_call_line.
A patch is posted at http://sourceware.org/ml/binutils/2006-03/msg00143.html
Fixed.