Page MenuHome GnuPG

libgpg-error: Disallow undefined symbols by design.
Closed, ResolvedPublic

Description

libgpg-error is not designed to require undefined symbols in general, nor in the shared library in particular.
Consequently, libtool should be told to disallow undefined symbols, independent of whether the target platform is some Win32 system.
In particular, Cygwin is not recognized as Win32 (which is correct by itself), but does require all symbols to be defined in shared libraries, so libtool needs to be told that the library does not need undefined symbols at all.
Please consider the patch from D478.

Event Timeline

werner added projects: Cygwin, gpgrt.
werner added a subscriber: werner.

Please explain in more detail what the problem with Cygwin is.

Without -no-undefined, libtool refuses to create the shared library (dll) on Cygwin, because libtool knows that creating a shared library (dll) on Cygwin does require all symbols to be defined.
Unfortunately but traditionally, by default libtool has to assume a library being created will have undefined symbols.
Hence, if the library to be created is designed to have all symbols defined, libtool needs to be informed about this fact using the -no-undefined flag.
This flag does allow libtool to create a shared library even on platforms known to require all symbols to be defined for shared libraries.

werner closed this task as Resolved.EditedFeb 6 2020, 6:45 PM
werner claimed this task.

Thanks. Fix goes into 1.37.