Re: libassuan duplicate symbol

Jeffrey Walton via Gnupg-devel <[email protected]>
Newsgroups gmane.comp.encryption.gpg.devel
Message-ID <CAH8yC8nhorquTfwYHh=2daiTKR4g=Y7SxHzUiSbP8F9omQswBQ@mail.gmail.com>
On Mon, Jul 8, 2024 at 2:46 PM Ralph Seichter via Gnupg-devel
<[email protected]> wrote:
>
> * Werner Koch via Gnupg-devel:
>
> > The SO name changed for libassuan.  Do you have an old version also
> > installed (should be libassuan.0.dylib) and this is accidently used
> > in the build?
>
> There was an older libassuan version in /opt/local/lib, courtesy of
> dependencies pulled in by MacPorts' "wget" port:
>
>   --->  Computing dependencies for wget
>   The following dependencies will be installed:
>    gnupg2
>    gpgme
>    libassuan
>
> Although the old library did not seem to be referenced by my own build,
> I removed the listed ports including libassuan, just to be sure.  Alas,
> my build still breaks due to duplicate symbols.
>
> I don't see any mention of the old name in my build logs (line breaks
> added for improved readability):
>
>   $ grep -E .libassuan\..+\.dylib' intel-2.5.0.log
>   libtool: link: gcc -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -o
>   .libs/libassuan.9.dylib
>   .libs/libassuan_la-assuan.o
>   .libs/libassuan_la-context.o
>   .libs/libassuan_la-system.o
>   .libs/libassuan_la-debug.o
>   .libs/libassuan_la-conversion.o
>   .libs/libassuan_la-sysutils.o
>   .libs/libassuan_la-client.o
>   .libs/libassuan_la-server.o
>   .libs/libassuan_la-assuan-error.o
>   .libs/libassuan_la-assuan-buffer.o
>   .libs/libassuan_la-assuan-handler.o
>   .libs/libassuan_la-assuan-inquire.o
>   .libs/libassuan_la-assuan-listen.o
>   .libs/libassuan_la-assuan-pipe-server.o
>   .libs/libassuan_la-assuan-socket-server.o
>   .libs/libassuan_la-assuan-pipe-connect.o
>   .libs/libassuan_la-assuan-socket-connect.o
>   .libs/libassuan_la-assuan-uds.o
>   .libs/libassuan_la-assuan-logging.o
>   .libs/libassuan_la-assuan-socket.o
>   .libs/libassuan_la-system-posix.o
>   .libs/libassuan_la-assuan-io.o
>   .libs/memrchr.o -L/tmp/gpgosx-2.5.0/x86_64-dist/lib
>   /tmp/gpgosx-2.5.0/x86_64-dist/lib/libgpg-error.dylib -arch x86_64 -m64
>   -isysroot
>   /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
>   -mmacosx-version-min=10.12 -O0 -arch x86_64
>   -install_name /tmp/gpgosx-2.5.0/x86_64-dist/lib/libassuan.9.dylib
>   -compatibility_version 10 -current_version 10.1
>
> See https://seichter.de/tmp/intel-2.5.0.log for the complete, unedited
> build log.

Looking at your build logs, these are the objects being linked:

    <...>/.libs/libassuan_la-server.o
    <...>/.libs/libassuan_la-sysutils.o
    <...>/.libs/libassuan_la-assuan-inquire.o
    <...>/.libs/libassuan_la-conversion.o
    <...>/.libs/libassuan_la-assuan-error.o
    <...>/.libs/libassuan_la-assuan-listen.o
    <...>/.libs/libassuan_la-assuan-pipe-server.o
    <...>/.libs/libassuan_la-assuan-socket-server.o
    <...>/.libs/libassuan_la-debug.o
    <...>/.libs/libassuan_la-assuan.o
    <...>/.libs/libassuan_la-context.o
    <...>/.libs/libassuan_la-assuan-buffer.o
    <...>/.libs/libassuan_la-system.o
    <...>/.libs/libassuan_la-client.o
    <...>/.libs/libassuan_la-assuan-socket-connect.o
    <...>/.libs/libassuan_la-assuan-uds.o
    <...>/.libs/libassuan_la-assuan-pipe-connect.o
    <...>/.libs/libassuan_la-assuan-handler.o
    <...>/.libs/libassuan_la-assuan-logging.o
    <...>/.libs/libassuan_la-assuan-io.o
    <...>/.libs/libassuan_la-system-posix.o
    <...>/.libs/libassuan_la-assuan-socket.o

Can you create a Bash script, for-each over each lib, and perform:

    nm -g <file> | c++filt | grep ' D ' | grep sputc

The script should tell you which objects are defining the symbol. The
' D ' makes sure it is defined in the translation unit, and not just
referenced (like with ' U ').

Jeff

_______________________________________________
Gnupg-devel mailing list
[email protected]
https://lists.gnupg.org/mailman/listinfo/gnupg-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.