bug-gettext
[Top][All Lists]
Advanced

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

[bug-gettext] WOE32DLL -- what DLLs should be built and what should they


From: B. Scott Michel
Subject: [bug-gettext] WOE32DLL -- what DLLs should be built and what should they export
Date: Wed, 07 Mar 2012 16:04:22 -0800
User-agent: Roundcube Webmail/0.7.1

I'm building gettext from scratch, namely to track down and resolve this particular issue -- far easier to modify a git repository than source from a tarball.

autogen.sh succeeds because it is generates static libraries. However, if the top-level configure script is invoked with "--enable-shared", then all libraries are built as shared libraries, which causes problems in libgettextlib and libgettextpo, namely the various "__imp"-prefixed symbols are not found (*).

Are libgettextlib and libgettextpo supposed to be built as shared libraries, or are they supposed to be built as static while "exporting" import symbols? Or is the WOE32DLL build process need fixing?

Looking at the code, my hunch is that the libraries are intended to be built statically and linked into another library that results in a shared library. But the build process is a bit krufty -- gnulib code is included in both libraries, which would make life complicated for ELF DSOs as well as WOE32DLL. For example, which error() should be called: the one from gnulib-lib or the local one in libgettextpo (theoretically, the linker should choose whichever occurs first on the linker command line or first defining library)? For WOE32DLL, exit_failure is instantiated twice, once in gnulib-lib (libgettextlib) and again in libgettextpo (or maybe the autogen.sh script is doing the wrong thing).

Any insight?


-scooter

(*) There are other context differences with the current source's gnulib-local/lib context diffs and gnulib HEAD, which I'll send as a separate patch. Also, various configure.ac's need to check for AC_PROG_CXX on MinGW/Cygwin, typically when cross compilers are used, as is the case for MinGW-w64 currently.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]