bug-gettext
[Top][All Lists]
Advanced

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

Re: [bug-gettext] MinGW64 (Windows) compilation help with 0.18.2


From: John Harvey
Subject: Re: [bug-gettext] MinGW64 (Windows) compilation help with 0.18.2
Date: Mon, 18 Jul 2016 17:20:42 -0400

I've had a small breakthrough.

The warnings were happening because I was missing libiconv, and therefore I think it would make libintl.la static library, based on a warning I found way up in the logfile.
I got past this by changing my make command to the following:
make CPATH=/c/Users/IEUser/libiconv-1.14/include CPPFLAGS="-I/c/Users/IEUser/libiconv-1.14/include" LDFLAGS="-L/c/Users/IEUser/libiconv-1.14/lib"

This gets rid of all warnings, but I still end up with a bunch of unidentified references to:
libintl_bindtextdomain
libintl_textdomain
libintl_gettext
libintl_dgettext
libintl_sprintf

I've isolated the specific build command that's failing.  It is:
cd gettext-runtime/src
/bin/sh ../libtool --tag=CC --mode=link gcc -DINSTALLDIR=\"/usr/local/bin\" -g -O2 -L/c/Users/IEUser/libiconv-1.14/lib -o gettext.exe gettext-gettext.o ../gnulib-lib/libgrt.a ../intl/.libs/libintl.la -liconv gettext.res

I'm not sure what's happening-- is libintl.la missing some symbols?  Or, am I missing a flag?  I tried adding -lintl; that didn't help.

Thanks!

-John

On Mon, Jul 18, 2016 at 3:48 PM, John Harvey <address@hidden> wrote:
Hello everyone,

I'm having some build troubles, and am running out of ideas.

I'm using a Windows 10 (stable) VM in Virtual box.

I'm using MSYS (20111123.zip) which I found here: https://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/

And, I'm using MinGW 64 which I've found here:
https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/5.3.0/threads-win32/seh/

I've gotten the gettext-0.18.2 tarball, and opened it.
After that, I've run:
./configure
Once that's complete, I run a quick perl script:
perl -p -i -e 's:void cdecl:void __cdecl:g' */*/msvc-inval.c

If I don't do this, I get an error:
gl/msvc-inval.c:124:39: error: 'gl_msvc_invalid_parameter_handler' undeclared (first use in this function)
I found a few threads on it, and a patch that seems applicable:
http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=86725346a1b116f3c2da26c124288f5f4495bf69;hp=2845ecc459a4ad03de8397a2c942c2e91d2d3ed5
With my perl script, I've made that patch to the 3 source files, and things get a lot farther along, but now I have linking troubles.

I think the system tries creating libgettextlib.la but while doing so, it throws a warning:
 "This system can not link to static lib archive ../intl/libintl.la"
After this, it tries to link and create libgettextlib.dll.a, and I get a bunch of errors (more on that later).

I wanted to verify that I'm building a shared library, so for my next pass, since that warning has me worried.  So, I did the following:
./configure --enable-threads=win32 --enable-shared --enable-relocatable

I found those flags on various sites.  I'm not sure if the 'relocatable' flag is even a thing for this build, but I'm pretty confident in the other two.

The good news is that this time, I can tell that --enable-shared is doing its job because I see the following in the libgettextlib.dll.a link attempt (which happens just after the warning):
libtool: link: g++ -shared

Seeing that -shared flag is a good thing.  But, I'm not seeing that flag on the ibgettextlib.la link, which is curious to me.

Since it still throws a warning, I don't really know what's wrong.  I would have thought that --enable-shared would fix it, so I'm confused as to why that isn't working in this case.

Secondly, I'm confused on the error itself that I get when linking ibgettextlib.dll.a.

That error at link time is:
"undefined reference to libintl_gettext"
I get a bunch of those errors all in a row, and then the link stage fails.

I've tried looking around the internet for answers, but am coming up with answers that aren't really related to compiling gettext on Windows-- most threads are about compiling something else and linking gettext into it.

Does anyone have any ideas as to what I need to do to make this work?

Thanks!
  -John


reply via email to

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