arm-wince-pe-ld: Multiply defined symbols in libgcj

Ian Lance Taylor ian@airs.com
Tue Jun 3 16:37:00 GMT 2003


Nick Clifton <nickc@redhat.com> writes:

> The problem appears to be that the symbols are being defined in the
> .text section.  If they were defined in a .gnu.linkonce.<section-name>
> section then the discarding should work.  (See
> bfd/coffcode.h:styp_to_sec_flags).  I guess that the .linkonce
> directive in gas is not doing the right thing.  Well at least not for
> the arm-wince-pe port.

I don't think that is wholly accurate.  The PE format supports
linkonce directly.  See obj_coff_pe_handle_link_once in
gas/config/obj-coff.c.  In PE, it should be OK for the compiler to use
.linkonce without resorting to using a special section name.  See also
handle_COMDAT() in bfd/coffcode.h (a name which should be fixed to be
all lower case, as is normally done in GNU programs).

I agree in general that this should work, and I believe that it did
work once, and somebody should find out why it no longer works.

Ian



More information about the Binutils mailing list