[libstdc++] Mis-configure _GLIBCXX_LONG_DOUBLE_COMPAT?

Richard Henderson rth@redhat.com
Fri Aug 31 00:16:00 GMT 2012


I've seen this today both for alpha and s390 cross from x86_64:

> libtool: compile:  /home/rth/work/gcc/bld-s390/./gcc/xgcc -shared-libgcc -B/home/rth/work/gcc/bld-s390/./gcc -nostdinc++ -L/home/rth/work/gcc/bld-s390/s390x-linux/libstdc++-v3/src -L/home/rth/work/gcc/bld-s390/s390x-linux/libstdc++-v3/src/.libs -B/home/rth/work/gcc/run-cross/s390x-linux/bin/ -B/home/rth/work/gcc/run-cross/s390x-linux/lib/ -isystem /home/rth/work/gcc/run-cross/s390x-linux/include -isystem /home/rth/work/gcc/run-cross/s390x-linux/sys-include -I/home/rth/work/gcc/git-master/libstdc++-v3/../libgcc -I/home/rth/work/gcc/bld-s390/s390x-linux/libstdc++-v3/include/s390x-linux -I/home/rth/work/gcc/bld-s390/s390x-linux/libstdc++-v3/include -I/home/rth/work/gcc/git-master/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=locale-inst.lo -g -O2 -D_GNU_SOURCE -c ../../../../../git-master/libstdc++-v3/src/c++98/locale-inst.cc  -fPIC -DPIC -o loca!
 le-inst.o

> ../../../../../git-master/libstdc++-v3/src/c++98/locale-inst.cc:362:8: error: ‘void _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs()’ aliased to undefined symbol ‘_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKSs’
>         _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs);
>         ^
> ../../../../../git-master/libstdc++-v3/src/c++98/locale-inst.cc:329:19: note: in definition of macro '_GLIBCXX_LDBL_COMPAT'
>    extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
>                    ^
> ../../../../../git-master/libstdc++-v3/src/c++98/locale-inst.cc:360:8: error: ‘void _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs()’ aliased to undefined symbol ‘_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKSs’
>         _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs);
>         ^
> ../../../../../git-master/libstdc++-v3/src/c++98/locale-inst.cc:329:19: note: in definition of macro '_GLIBCXX_LDBL_COMPAT'
>    extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
>                    ^

where, given that I've configured --with-long-double-128, appears to have
mis-identified the correct setting of _GLIBCXX_LONG_DOUBLE_COMPAT.

Is anyone else seeing this?  Is this a problem for cross-compile only?
Certainly editing config.h after the fact lets the build complete...


r~



More information about the Gcc mailing list