I'm compiling gettext and iconv for Windows with Cygwin and MinGW-w64 [1].
For the "shared" builds, I've seen that one executable requires
libstdc++-6.dll because it uses its two exported functions
__cxa_guard_acquire and __cxa_guard_release:
$ dumpbin.exe /DEPENDENTS xgettext.exe /IMPORTS:libstdc++-6.dll
File Type: EXECUTABLE IMAGE
Section contains the following imports:
libstdc++-6.dll
14004BEC8 Import Address Table
14004B6C8 Import Name Table
0 time date stamp
0 Index of first forwarder reference
16B5 __cxa_guard_acquire
16B6 __cxa_guard_release
Because the executable uses those two functions of libstdc++-6.dll,
and since libstdc++-6.dll requires libgcc_s_seh-1.dll and
libwinpthread-1.dll, I have to distribute 3 DLLs because of twose two
imported functions.
In an effort to avoid that requirement, I tried to check if it's
possible to avoid the usage of two functions, but I'm not able to find
anything useful that contains "__cxa_guard_acquire":
- in the directory where I compiled the package I only have:
$ grep -ri cxa_guard
grep: gettext-0.22.5a/build/gettext-tools/src/.libs/xgettext.exe:
binary file matches
grep: gettext-0.22.5a/build/gettext-tools/woe32dll/xgettext-c++xgettext.o:
binary file matches
- in the whole /usr/x86_64-w64-mingw32 directory I have:
$ grep -ri cxa_guard
grep: sys-root/mingw/bin/libstdc++-6.dll: binary file matches
So, I don't understand what are those two functions, what they do, why
they are used by my executable, and I don't know if I can avoid that
dependency.
Anyone have a clue about that?
Ciao,
Michele
[1] https://github.com/mlocati/gettext-iconv-windows
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public