> 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
pgpHzHn6di43Q.pgp
Description: PGP signature