I also have similar issue with minimal example that links static libidn2 into shared library, using Fedora's GCC 12 toolchain:
[1/2 76.7/sec] Building C object CMakeFiles/untitled2.dir/Release/main.c.o [2/2 84.8/sec] Linking C shared library Release/libuntitled2.so FAILED: Release/libuntitled2.so : && /usr/bin/gcc -fPIC -O3 -DNDEBUG -shared -Wl,-soname,libuntitled2.so -o Release/libuntitled2.so CMakeFiles/untitled2.dir/Release/main.c.o /home/alexey/projects/libidn2-2.3.4/install/lib/libidn2.a && : /usr/bin/ld: Release/libuntitled2.so: version node not found for symbol _idn2_punycode_encode@IDN2_0.0.0 /usr/bin/ld: failed to set dynamic section sizes: bad value collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. 14:01:29: The process "/usr/bin/cmake" exited with code 1. main.c only uses idn2_lookup_u8. пн, 20 февр. 2023 г. в 00:47, Alexey Rochev <equ...@gmail.com>: > FYI I have the same issue when building using Android NDK and linking > shared library against static libidn2: > C/C++: ld: error: > /home/alexey/projects/tremotesf-android/libtremotesf/.vcpkg_installed_arm64-android/arm64-android/lib/libidn2.a(puny_decode.o): > symbol _idn2_punycode_decode@IDN2_0.0.0 has undefined version IDN2_0.0.0 > > Android NDK is based on LLVM 14 and uses lld for linking. > > Patching config.h is not convenient since it would mean copying vcpkg > buildscript for libidn2 and maintaining the modified version manually > (unless it can be done via some special ./configure option or adding > something to CFLAGS). >