* Failed linking gettext-0.18
@ 2010-08-04 20:53 Markus Moeller
2010-08-04 21:42 ` Charles Wilson
0 siblings, 1 reply; 9+ messages in thread
From: Markus Moeller @ 2010-08-04 20:53 UTC (permalink / raw)
To: cygwin
I have an application which depends on gettext 0.18, but the latest cygwin
version is 0.17. When I try to compile 0.18 I get the below error.
Is that a known problem.
Thank you
Markus
/bin/sh ../libtool --tag=CC --mode=link
cc -std=gnu99 -g -O2 -Wl,--disable-auto-import -o msgcmp.exe
msgcmp-msgcmp.o msgcmp-ms
gl-fsearch.o libgettextsrc.la gettext.res
libtool: link: gcc -std=gnu99 -g -O2 -Wl,--disable-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/l
ibcroco-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/libnc
urses.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
5 [main] ld 10108 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
--
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Failed linking gettext-0.18
2010-08-04 20:53 Failed linking gettext-0.18 Markus Moeller
@ 2010-08-04 21:42 ` Charles Wilson
2010-08-06 8:20 ` Markus Moeller
0 siblings, 1 reply; 9+ messages in thread
From: Charles Wilson @ 2010-08-04 21:42 UTC (permalink / raw)
To: cygwin
On 8/4/2010 4:53 PM, Markus Moeller wrote:
> I have an application which depends on gettext 0.18, but the latest
> cygwin version is 0.17. When I try to compile 0.18 I get the below error.
>
> Is that a known problem.
No, it isn't known; thanks for the warning. I'll look into updating
cygwin's gettext distribution to 1.18.1.1 in the near future.
--
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Failed linking gettext-0.18
2010-08-04 21:42 ` Charles Wilson
@ 2010-08-06 8:20 ` Markus Moeller
2010-08-06 21:44 ` Charles Wilson
0 siblings, 1 reply; 9+ messages in thread
From: Markus Moeller @ 2010-08-06 8:20 UTC (permalink / raw)
To: cygwin
Can you tell me what the error means and what I can do to fix it ?
Thank you
Markus
"Charles Wilson" <cygwin@cwilson.fastmail.fm> wrote in message
news:4C59DEC5.70005@cwilson.fastmail.fm...
> On 8/4/2010 4:53 PM, Markus Moeller wrote:
>> I have an application which depends on gettext 0.18, but the latest
>> cygwin version is 0.17. When I try to compile 0.18 I get the below error.
>>
>> Is that a known problem.
>
> No, it isn't known; thanks for the warning. I'll look into updating
> cygwin's gettext distribution to 1.18.1.1 in the near future.
>
> --
> 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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Failed linking gettext-0.18
2010-08-06 8:20 ` Markus Moeller
@ 2010-08-06 21:44 ` Charles Wilson
2010-08-07 8:54 ` Corinna Vinschen
2010-08-07 13:11 ` Markus Moeller
0 siblings, 2 replies; 9+ messages in thread
From: Charles Wilson @ 2010-08-06 21:44 UTC (permalink / raw)
To: cygwin
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.
--
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Failed linking gettext-0.18
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
1 sibling, 1 reply; 9+ messages in thread
From: Corinna Vinschen @ 2010-08-07 8:54 UTC (permalink / raw)
To: cygwin
On Aug 6 17:44, Charles Wilson wrote:
> IIRC, just setting LDFLAGS before configuring won't do it, because
> Bruno *deliberately* arranged things to make overriding his desired
> auto-import behavior difficult.
So, just because he "dislikes" a gcc setting, he deliberately breaks
building the lib? How nice!
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Red Hat
--
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Failed linking gettext-0.18
2010-08-07 8:54 ` Corinna Vinschen
@ 2010-08-07 15:53 ` Charles Wilson
0 siblings, 0 replies; 9+ messages in thread
From: Charles Wilson @ 2010-08-07 15:53 UTC (permalink / raw)
To: Cygwin Mailing List
On 8/7/2010 4:53 AM, Corinna Vinschen wrote:
> On Aug 6 17:44, Charles Wilson wrote:
>> IIRC, just setting LDFLAGS before configuring won't do it, because
>> Bruno *deliberately* arranged things to make overriding his desired
>> auto-import behavior difficult.
>
> So, just because he "dislikes" a gcc setting, he deliberately breaks
> building the lib? How nice!
Well, no. His mechanism has worked since gettext-0.11 or so, and just
because the shared libraries and executables in the gettext distribution
are compiled with --disable-auto-import has no bearing on any external
clients of those libraries (e.g. you could still compile clients of
libintl "normally").
What MAY have broken the scheme here -- and at this point it is still
just supposition on my part -- is that one of the DLLs that the gettext
milieu itself depends on NOW suddenly requires auto-import.
So it was an external change in the gcc runtime libs on cygwin that
broke the scheme (if I'm right).
Bruno has technical reasons for his "dislike"; mainly, that prior to the
advent of v2 pseudo-relocs, the text section and read-only section(s) of
DLLs had to be writable -- and therefore not shared between multiple
processes. Even now, with v2 relocs, gcc still uses a variant linker
script when auto-import is enabled, giving the same memory wastage. We
could change that in a new gcc release, but only if v2 relocs becomes
the default.
See here:
http://www.haible.de/bruno/woe32dll.html
--
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Failed linking gettext-0.18
2010-08-06 21:44 ` Charles Wilson
2010-08-07 8:54 ` Corinna Vinschen
@ 2010-08-07 13:11 ` Markus Moeller
2010-08-07 22:50 ` Markus Moeller
1 sibling, 1 reply; 9+ messages in thread
From: Markus Moeller @ 2010-08-07 13:11 UTC (permalink / raw)
To: cygwin
"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
cc -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
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Failed linking gettext-0.18
2010-08-07 13:11 ` Markus Moeller
@ 2010-08-07 22:50 ` Markus Moeller
0 siblings, 0 replies; 9+ messages in thread
From: Markus Moeller @ 2010-08-07 22:50 UTC (permalink / raw)
To: cygwin
"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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Failed linking gettext-0.18
@ 2010-08-07 13:00 Angelo Graziosi
0 siblings, 0 replies; 9+ messages in thread
From: Angelo Graziosi @ 2010-08-07 13:00 UTC (permalink / raw)
To: Cygwin
Charles Wilson wrote:
> [...] (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.
Just out of curiosity, I would ask if an alias like this
alias g++='g++ -Wl,--enable-auto-import'
or similar, would work...
Ciao,
Angelo.
--
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
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-08-07 22:50 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-04 20:53 Failed linking gettext-0.18 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
2010-08-07 13:00 Angelo Graziosi
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).