This is the mail archive of the cygwin 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]
Other format: [Raw text]

Re: Failed linking gettext-0.18

"Charles Wilson" <> wrote in message">
On 8/6/2010 4:20 AM, Markus Moeller wrote:
Can you tell me what the error means and what I can do to fix it ?

Thank you

"Charles Wilson" <> wrote in message

PCYMTNQREAIYR -----^^^^^^^^^^^^

And please don't top-post:
A: Yes.
> Q: Are you sure?
>>A: Because it reverses the logical flow of conversation.
>>>Q: Why is top posting frowned upon?

It's complicated. The upstream maintainer of gettext REALLY dislikes a mechanism used for symbol resolution by the GNU toolchain (gcc/ld) with DLLs on mingw and cygwin: "auto-import". So, he arranges that gettext is always compiled with --disable-auto-import.

However, recent versions of g++'s runtime library, libstdc++, ITSELF, require auto-import when linking IIUC. Hence, boom.

I'm not sure this is easily fixed. IF I am correct, there are two options: (1) teach g++ how to build a libstdc++ DLL that exports symbols "properly" rather than requiring auto-import. This depends on a new cygwin g++ compiler I think. OR, (2) override the build procedure for gettext to ensure that --enable-auto-import is provided on every link command, AFTER the "default" gettext setting of --disable-auto-import.

IIRC, just setting LDFLAGS before configuring won't do it, because Bruno *deliberately* arranged things to make overriding his desired auto-import behavior difficult.

I just replaced disable-auto-import in configure and rerun with no change (see gcc -std=gnu99 -g -O2 -Wl,--enable-auto-import ...).

gcc -std=gnu99 -DLOCALEDIR=\"/usr/share/locale\" -DBISON_LOCALEDIR=\"\" -DLOCALE_ALIAS_PATH=\"/usr/share/locale\" -DUSEJAVA=
0 -DUSEJEXE=0 -DGETTEXTJEXEDIR=\"/usr/lib/gettext\" -DGETTEXTJAR=\"/usr/share/gettext/gettext.jar\" -DLIBDIR=\"/usr/lib\" -DGETTEXTD
ATADIR=\"/usr/share/gettext\" -DPROJECTSDIR=\"/usr/share/gettext/projects\" -DHAVE_CONFIG_H -I. -I.. -I. -I. -I.. -I.. -I../libgrep
-I../gnulib-lib -I../gnulib-lib -I../intl -I../../gettext-runtime/intl -DINSTALLDIR=\"/usr/bin\" -g -O2 -c -o msgcmp-msgl-fsearch
.o `test -f 'msgl-fsearch.c' || echo './'`msgl-fsearch.c
windres `/bin/sh ../../windows/windres-options --escape 0.18.1` -i ../../windows/gettext.rc -o gettext.res --output-format=coff
/bin/sh ../libtool --tag=CC --mode=link cc -std=gnu99 -g -O2 -Wl,--enable-auto-import -o msgcmp.exe msgcmp-msgcmp.o msgcmp-msg
l-fsearch.o gettext.res
libtool: link: gcc -std=gnu99 -g -O2 -Wl,--enable-auto-import -o .libs/msgcmp.exe msgcmp-msgcmp.o msgcmp-msgl-fsearch.o gettext.res
./.libs/libgettextsrc.dll.a -L/usr/lib /home/markus/gettext- /usr/lib/li
bcroco-0.6.dll.a /usr/lib/libglib-2.0.dll.a /usr/lib/libpcre.dll.a /usr/lib/libintl.dll.a /usr/lib/libxml2.dll.a -lz /usr/lib/libncu
rses.dll.a /home/markus/gettext- /usr/lib/libiconv.dll.a /usr/lib/gcc/i686-pc-cygwin/
4.3.4/libstdc++.dll.a -L/usr/lib/gcc/i686-pc-cygwin/4.3.4
3 [main] ld 8344 sig_send: wait for sig_complete event failed, signal 6, rc 258, Win32 error 0
collect2: ld terminated with signal 6 [Aborted]
/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld: /usr/lib/libintl.dll.a(d000050.o): illegal symbol index 1633970
478 in relocs
make[4]: *** [msgcmp.exe] Error 1
make[4]: Leaving directory `/home/markus/gettext-'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/markus/gettext-'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/markus/gettext-'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/markus/gettext-'
make: *** [all-recursive] Error 1

Regards Markus


-- Problem reports: FAQ: Documentation: Unsubscribe info:

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