How to cross compile GLib 2.38 without exported symbols



I cross compiled many packages (glib, pango, cairo, zlib, libpng, ...) with MinGW64 (i686-w64-mingw32) as static libraries (libglib-2.0.a) on Ubuntu 64bit for Windows 32bit and put them all into a CodeBlocks-project to build a Win32-DLL. This DLL should export only ONE function, which I created myself. But after cross compiling on Ubuntu with CodeBlocks and opening it in Dependency Walker it shows tons of exported symbols from libxml and glib which I don't wanna have publicly visible. Even though libxml was already compiled as static, I searched further on Google and read about a "LIBXML_STATIC" define for libxml, so I re-compiled the xml library with "CFLAGS=-DLIBXML_STATIC". Then I re-compiled the DLL, result: All libxml-symbols aren't visible anymore in Dependency Walker and the DLL shrank by 0.6MB.

Question 1:
How can I achieve the same with glib? I already compiled it with "--disable-shared --enable-static", also tried "GLIB_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden" but tons of symbols (g_io_.. g_drive_.. g_file_.. g_simple.. gzlib..) are still getting exported.

Question 2:
Are there any configuration options which prevent the building of the exe files like:
gspawn-win32-helper-console.exe, gio-querymodules.exe, glib-compile-schemas.exe, glib-compile-resources.exe, gsettings.exe, gdbus.exe, ...
I don't need those exe files, just the static glib libraries.

Thanks for the help


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]