This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
change in `ld's functioning on multiple defitions in .a's?
- To: binutils at sourceware dot cygnus dot com
- Subject: change in `ld's functioning on multiple defitions in .a's?
- From: "David O'Brien" <obrien at NUXI dot com>
- Date: Wed, 24 May 2000 10:58:44 -0700
- Organization: The NUXI BSD group
- Reply-To: obrien at NUXI dot com
By chance does anyone remember a change to `ld' that would cause the
following errors when the 2.9.1 `ld' had no problems compiling this code?
I'm trying to track down if FreeBSD has been doing things wrong, or if I
have messed up somewhere in the FreeBSD configuration of 2.10 `ld'.
The way FreeBSD builds GCC 2.95.2 is to put any .o's used in more than
one binary in libcc_int.a. There are some symbol conflicts in the GCC
code, but shouldn't the symbols in the .o on the command line be used
over the symbols in the .a?
Now when compiling cc1plus I get this:
cc -O -pipe -DFREEBSD_NATIVE -DIN_GCC -DHAVE_CONFIG_H -DPREFIX=\"/usr\"
-I/usr/obj/usr/src/gnu/usr.bin/cc/cc1plus/../cc_tools
-I/usr/src/gnu/usr.bin/cc /cc1plus/../cc_tools
-I/usr/src/gnu/usr.bin/cc/cc1plus/../../../../contrib/gcc
-I/usr/src/gnu/usr.bin/cc/cc1plus/../../../../contrib/gcc/config
-I/usr/src/gnu/usr.bin/cc/cc1plus/../../../../contrib/gcc/cp -I.
-static -o cc1plus parse.o c all.o class.o cvt.o decl.o decl2.o errfn.o
error.o except.o expr.o friend.o init .o lex.o method.o pt.o ptree.o
repo.o rtti.o search.o semantics.o sig.o spew.o t ree.o typeck.o
typeck2.o xref.o /usr/obj/usr/src/gnu/usr.bin/cc/cc1plus/../cc_int/libcc_int.a
/usr/obj/usr/src/gnu/usr.bin/cc/cc1plus/../cc_int/libcc_int.a(c-decl.o):
In function `finish_struct':
c-decl.c(.text+0xa8c0): multiple definition of `finish_struct'
class.o(.text+0x8260):class.c: first defined here
/usr/libexec/elf/ld: Warning: size of symbol `finish_struct' changed from
512 to 2596 in c-decl.o
/usr/obj/usr/src/gnu/usr.bin/cc/cc1plus/../cc_int/libcc_int.a(c-decl.o):
In function `c_decode_option':
c-decl.c(.data+0x78): multiple definition of `dollars_in_ident'
decl2.o(.data+0x3c):decl2.c: first defined here
thanks!
-- David