unnecessary multiple definition error on link using 3.03

Ken Faiczak kfaiczak@SANDVINE.com
Mon Feb 18 09:32:00 GMT 2002


I am getting the following errors on link
(gcc 3.03, ld 2.11.2)

The same thing worked fine on 2.95....

*****
libeverything.a(mem.o): In function `malloc':
mem.o(.text+0xb70): multiple definition of `malloc'
libmem.a(misc.o)(.text+0x208): first defined here

libeverything.a(mem.o): In function `free':
mem.o(.text+0xba0): multiple definition of `free'
libmem.a(misc.o)(.text+0x428): first defined here
*****

I have a debug library libmem.a
which contains malloc(), free() etc...
in several .o files

it is also in the main library libeverything.a 
in a single .o file (mem.o)

When I want to use the debug version I used to
(2.95) just added my libmem.a before libeverything.a
and it would ignore the multiple definitions since everything
was satisfied by the earlier .a file, and there were no unresolved
symbols requiring anything from mem.o

Q: Is this a bug in the latest binutils?
Q: How do I get rid of this new behaviour
   without pulling mem.o out of libeverything.a?


ken
kfaiczak@sandvine.com



More information about the Binutils mailing list