cygwin build problems...(libintl)

Kelley Cook kcook34@ford.com
Mon Sep 8 14:09:00 GMT 2003


[Crossposted to binutils, gdb, and cygwin for information purposes]

Marcus Binny said:

 > I am trying to build a cross compiler from the latest
 > checked out sources. When I configure into the
 > combined sources, it says that it doesn't need to
 > build libintl.a (in intl/Makefile all: is all-no),
 > but then it is trying to link binutils with
 > ../intl/libintl.a instead of -lintl. I tried -lintl
 > and it works.
 > If I use configure --with-included-getttext, linking
 > with the built libintl.a gives unresolved symobols
 > problem like
 > ./../intl/libintl.a(dcigettext.o)(.text+0xad7): In function 
`_nl_find_msg':
 > /cygdrive/d/work/new_src/build/intl/../../combined/intl/dcigettext.c:940:
undefined reference to `_libiconv'
 > ./../intl/libintl.a(loadmsgcat.o)(.text+0x4e9): In function 
`_nl_init_domain_con
v':
 > /cygdrive/d/work/new_src/build/intl/../../combined/intl/loadmsgcat.c:863:
undefined reference to `_libiconv_open'
 > ./../intl/libintl.a(loadmsgcat.o)(.text+0x542): In
function `_nl_free_domain_conv':
 > /cygdrive/d/work/new_src/build/intl/../../combined/intl/loadmsgcat.c:896:
undefined reference to `_libiconv_close'
 > ./../intl/libintl.a(relocatable.o)(.text+0xfe): In
function `libintl_set_relocation_prefix':
 > 
/cygdrive/d/work/new_src/build/intl/../../combined/intl/relocatable.c:148:
undefined reference to `_libiconv_set_relocation_prefix'

 > To be sure, I had updated my cygwin installations also today.
 > Now I am clueless.

You will have two problems, with combined tree Cygwin build.

The first is related to the current intl 0.12.1 directory the Zack 
Weinberg imported into the GCC sources.  Neither binutils nor gdb have 
been updated for the new version and still are expecting version 0.10.4.

This probably could be fixed by applying some configury wizardry to the 
binutils/gdb sources similar to those that were necessary to get cygwin 
to build on GCC again after it was imported.  But no one has volunteered 
the time to do it yet.  See 
http://gcc.gnu.org/ml/gcc-patches/2003-07/msg00781.html

The workaround is to use the older copy of intl directory that comes 
with binutils or gdb instead of the copy that comes with GCC.  Then GCC 
will ignore intl, but unless you actually require the international 
error messages, the resulting compiler will work.

The second problem is with GCC itself and is related to -funit-at-a-time 
now being turned on at -O2.  A cygwin bootstrap will ICE when the stage2 
compiler attempts to compile _popcountsi2 in libgcc2.  It might be a 
problem with the loop optimizer being miscompiled; I am in the process 
of filing a more detailed bug report.

The work around for this is to
make BOOT_CFLAGS="-O2 -g -fno-unit-a-time" bootstrap

Cheers,
Kelley Cook


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



More information about the Cygwin mailing list