was: Mactel 10.4.8 evolution-data-server build failure
Daniel Ericsson
deric at caveo.se
Thu Jan 11 09:45:31 PST 2007
On 11 jan 2007, at 16.56, Fred Dushin wrote:
> This is a macports issue, specifically, but I'm canvassing unix-
> porting for an understanding of libtool. Thanks for your patience.
>
>> This looks like an old issue. See: http://trac.macports.org/projects/
>> macports/ticket/9162
>>
>> If you could file a new ticket with the complete output of `sudo port
>> -dv install evolution-data-server` that would help in figuring out
>> what the problem might be.
>
> I see that someone submitted full log of the build failure (thanks
> for doing that), but I don't see any movement on the ticket.
Yeah that was me. I figured that was needed since the first one
wasn't debug+verbose. It got obscenely large however and I had to
gzip it for Trac to accept it as an attachment. I haven't actually
tried the build but got the log from rjhansen. For clarification the
ticket in question is not the one above but http://trac.macports.org/
projects/macports/ticket/10940.
> I've looked into this a bit more. What seems to be happening is
> that the evolution-data-server includes a shell script called
> libtool (not to be confused with Apple's libtool), which goes
> through a list of system paths, constructing a set of hard coded
> shlibs that ultimately get linked together though gcc. This list
> includes libiconv out of /usr/lib (2.2) and out of <macports>/lib
> (2.4). The result is a big call to gcc, where all -l<name>s are
> replaced with their hard coded paths. Why someone would write a
> shell script to do what gcc does is beyond me, but hey, this is
> free software, so quitchyerbitchin.
>
> gcc presumably calls off to the (real) Darwin /usr/bin/libtool,
> which fails on account of the duplicate symbols (presumably, though
> libtool does not say that explicitly -- the "errors" are actually
> reported as warnings). E.g.:
>
> ld: warning multiple definitions of symbol __libiconv_version
> /usr/lib/libiconv.dylib(iconv.o) definition of __libiconv_version
> /opt/local/lib/libiconv.dylib(iconv.o) definition of
> __libiconv_version
> ...
> /usr/bin/libtool: internal link edit command failed
>
> There is also another issue with linking against another shlib
> that's built locally in the evolution-data-server build, again for
> the same reason. The issue seems to boil down to the fact that /
> usr/bin/libtool will refuse to link libraries where there is some
> ambiguity as to which symbols to resolve.
>
> I can get the shlib to link by hand if I remove these libraries
> from the link line, but of course this just pops up again on the
> next call to the gnome libtool [sic] shell script.
>
> So... Does anyone know about flags to /usr/bin/libtool, to maybe
> turn off this behavior (if I understand it correctly). Actually,
> these would presumably need to be flags to gcc, since the li'l
> gnome script is calling gcc, not libtool directly.
Not too much time atm. Have a look at the manpages for libtool, ld
and gcc.
-Xlinker flag to pass arbitary linker arguments to gcc might help
here...
-multiply_defined <behaviour> will change how the linker treats
multiple definitions of symbols. (Heading "MULTIPLY DEFINED SYMBOLS"
in ld(1)).
- Daniel
More information about the macports-users
mailing list