> Michael Tautschnig <m...@debian.org> writes:
> 
> > I'm sorry, I've only got the online version (from 
> > http://www.iecc.com/linker/)
> > at hand right now, which doesn't seem to have subsection numbers. Under 
> > which
> > heading would I find that information?
> 
> Under the heading "Searching libraries", Chapter 6,
> http://www.iecc.com/linker/linker06.html.
> 

Ok, thanks.

> > Well, the error is not raised by ld, but only by our research tool chain. I
> > don't think this is what you were looking for, but anyhow:
> >
> > error: conflicting initializers for variable `c::argp_program_bug_address'
> > old value: &"<bug-gnu-ut...@gnu.org>"[0]
> > Module: ex3
> > new value: NULL
> > Module: argp-ba
> 
> Then I'm afraid that tool chain simply has a different idea on how
> libraries work, compared to unix ld. Libraries should be handled
> differently than ordinary object files. If your tool chain is given
> equivalent arguments to what you pass to gcc/ld, then it has no reason
> to use the definition of the symbol argp_program_bug_address provided by
> libargp.a/argp-ba.o, since that symbol is already defined by an earlier
> object file.
> 

Well, I'm still thinking that the variant in argp-ba should rather be a common
symbol than a full definition. According to ld's man page only dynamic libraries
will guarantee different behaviour. But arguably ld has not changed its
behaviour in a while, so feel free to ignore.

Best,
Michael

Attachment: pgpHzHn6di43Q.pgp
Description: PGP signature

Reply via email to