public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: "Markus Moeller" <huaraz@moeller.plus.com>
To: cygwin@cygwin.com
Subject: Re: Failed linking gettext-0.18
Date: Sat, 07 Aug 2010 22:50:00 -0000	[thread overview]
Message-ID: <i3knvb$8v9$1@dough.gmane.org> (raw)
In-Reply-To: <i3jm0r$9vt$1@dough.gmane.org>


"Markus Moeller" <huaraz@moeller.plus.com> wrote in message 
news:i3jm0r$9vt$1@dough.gmane.org...
>
> "Charles Wilson" <cygwin@cwilson.fastmail.fm> wrote in message 
> news:4C5C8247.3000800@cwilson.fastmail.fm...
>> 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
>>> Markus
>>>
>>> "Charles Wilson" <xxx@xxx.xxx> 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 
> c -std=gnu99  -g -O2  -Wl,--enable-auto-import -o msgcmp.exe 
> msgcmp-msgcmp.o msgcmp-msg
> l-fsearch.o libgettextsrc.la   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-0.18.1.1/gettext-tools/gnulib-lib/.libs/libgettextlib.dll.a 
> /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-0.18.1.1/gettext-tools/intl/.libs/libintl.dll.a 
> /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-0.18.1.1/gettext-tools/src'
> make[3]: *** [all] Error 2
> make[3]: Leaving directory 
> `/home/markus/gettext-0.18.1.1/gettext-tools/src'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/home/markus/gettext-0.18.1.1/gettext-tools'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `/home/markus/gettext-0.18.1.1/gettext-tools'
> make: *** [all-recursive] Error 1
>


If I copy  ./gettext-runtime/intl/.libs/libintl.dll.a into /usr/lib the link 
works, but the make install breaks everything :-(

>
> Regards
> Markus
>
>> --
>> Chuck
>>
>
>
> 



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

  reply	other threads:[~2010-08-07 22:50 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-04 20:53 Markus Moeller
2010-08-04 21:42 ` Charles Wilson
2010-08-06  8:20   ` Markus Moeller
2010-08-06 21:44     ` Charles Wilson
2010-08-07  8:54       ` Corinna Vinschen
2010-08-07 15:53         ` Charles Wilson
2010-08-07 13:11       ` Markus Moeller
2010-08-07 22:50         ` Markus Moeller [this message]
2010-08-07 13:00 Angelo Graziosi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='i3knvb$8v9$1@dough.gmane.org' \
    --to=huaraz@moeller.plus.com \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).