This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: _imp__gettext undefined when linking recode, configure


Here's the problem: for whatever reason, --with-included-gettext means
"link explicitly to a custom built gettext library, but just use the
normal -I path when #including header files."

This means you get the system headers (which declare
__declspec(dllimport) gettext_symbols ---> "__imp_gettext_symbol")  but
link to the custom library which only provides "__gettext_symbol".

--without-included-gettext means you get the system headers AND the
system library, which works.  IMO, this is a bug in the
autoconfiguration of recode (and in dozens of other packages).

It's on my todo list to convert the cygwin gettext package into a
new-style, auto-import DLL, which will make the system headers identical
to the "normal" headers, and alleviate this problem.  for now, just use
--without-included-gettext.

--Chuck


Frank Meier wrote:
> 
> # checking news for gettext and recode first
> # checking news for cygwin then
> 
> Dear Cygwin-Developers,
> 
> yersterday, I made/installed recode 3.5 and 3.6.  The only
> problem was gettext.  With
> 
> ./configure
> 
> the message
> 
> /tmp/recode-3.6/src/main.c:464: undefined reference to `_imp__gettext'
> 
> appeared several times.  Adding '--with-included-gettext' when calling
> configure does not change anything.  Excluding getext at all by
> 
> ./configure --without-included-gettext
> 
> removes the messages and 'make; make test' is passed.  Configure reports
> 
> checking for gettext... (cached) no
> checking for gettext in -lintl... (cached) yes
> checking whether the included gettext is preferred... yes
> 
> if called with '--with-included-gettext' or without and
> 
> checking for gettext... (cached) no
> checking for gettext in -lintl... (cached) yes
> checking whether the included gettext is preferred... no
> 
> with '--without-included-gettext'. So, configure detects the installed gettext
> package correctly.
> 
> config.h contains
> 
> #define HAVE_DCGETTEXT 1
> #define HAVE_GETTEXT 1
> #define HAVE_DCGETTEXT 1
> #define ENABLE_NLS 1
> 
> if configure is called with '--with-included-gettext' or without and
> 
> #define HAVE_DCGETTEXT 1
> /* #undef HAVE_GETTEXT */
> #define HAVE_DCGETTEXT 1
> /* #undef HAVE_GETTEXT */
> #define HAVE_GETTEXT 1
> #define ENABLE_NLS 1
> 
> with '--without-included-gettext'.
> 
> Using NLS not at all by '--disable-nls' is possible as well, of course.
> 
> So _imp__gettext is not found if the gettext of recode is used and using
> gettext of recode is default.  Does this make sense?  If gettext is provide
> in the installation of the OS it should have priority over a local gettext
> by default, I thing?

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]