This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ 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: current cygwin failure analysis


Benjamin Kosnik wrote:

/usr/local/src/trunk/objdir/i686-pc-cygwin/libstdc++-v3/include/ext/codecvt_specializations.h:203:
> undefined reference to `_libiconv_close'
>
> [...]
> 
> Which is weird, because:
> 
>  /usr/local/src/trunk/objdir/./gcc/g++ -shared-libgcc
> -B/usr/local/src/trunk/objdir/./gcc -nostdinc++
> -L/usr/local/src/trunk/objdir/i686-pc-cygwin/libstdc++-v3/src
> -L/usr/local/src/trunk/objdir/i686-pc-cygwin/libstdc++-v3/src/.libs
> -B/usr/local/i686-pc-cygwin/bin/ -B/usr/local/i686-pc-cygwin/lib/
> -isystem /usr/local/i686-pc-cygwin/include -isystem
> /usr/local/i686-pc-cygwin/sys-include -g -O2 -D_GLIBCXX_ASSERT
> -fmessage-length=0 -g -O2 -DLOCALEDIR="." -nostdinc++
> -I/usr/local/src/trunk/objdir/i686-pc-cygwin/libstdc++-v3/include/i686-pc-cygwin
> -I/usr/local/src/trunk/objdir/i686-pc-cygwin/libstdc++-v3/include
> -I/usr/local/src/trunk/gcc/libstdc++-v3/libsupc++
> -I/usr/local/src/trunk/gcc/libstdc++-v3/include/backward
> -I/usr/local/src/trunk/gcc/libstdc++-v3/testsuite/util
> -Wl,--gc-sections -liconv
> /usr/local/src/trunk/gcc/libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc
> -include bits/stdc++.h ./libtestc++.a -o ./13189.exe
> 
> is the command line, and -liconv is passed. Maybe there needs to be a
> -L flag for the location of libiconv?
> 
> What's weird is that these test files have:
> 
> // { dg-require-iconv "ISO-8859-1" }
> 
> at the top, so if iconv functions cannot be found, they should not be run.
> 
> Hmmm. Something's wrong with this config....

In this case it looks like just an argument ordering problem.  It would
have said "unable to find -liconv" if that was the case, but instead
what's happening is that the linker processes -liconv before it's seen
any objects that use functions from it, and so it doesn't pull in any
symbols from it -- even though -liconv is a shared lib.  (This is one of
the differences between PE and ELF that comes up again and again without
fail in porting to Windows.)  Simply reordering the command ought to
work fine.

Brian


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