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.
Description
Description
Details
Details
Revisions and Commits
Revisions and Commits
rE libgpg-error | |||
rE6e4b5ca624cb build: Always pass -no-undefined to libtool. |
Related Objects
Related Objects
- Mentioned In
- T4772: Release libgpg-error 1.37
- Mentioned Here
- D478: Makefile: Disallow undefined symbols in libgpg-error.
Event Timeline
Comment Actions
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.