[Bug other/71212] New: Compilation of gcc (libstdc++) for foreign target platform problem.
abominable-snowman at yandex dot ru
gcc-bugzilla@gcc.gnu.org
Fri May 20 04:51:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71212
Bug ID: 71212
Summary: Compilation of gcc (libstdc++) for foreign target
platform problem.
Product: gcc
Version: 6.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: other
Assignee: unassigned at gcc dot gnu.org
Reporter: abominable-snowman at yandex dot ru
Target Milestone: ---
gcc: git's tag gcc-6_1_0-release (c441d9e8e0438dcf54274ec7a3539859e94ad201)
Compilation of gcc for foreign target platform problem.
Host arch is x86_64, target arch is arm (arm32).
Configuration is:
(cd build-gcc && DESTDIR=${SYSROOT} \
AR_FOR_TARGET=${TARGET_CROSS_PREFIX}-ar \
AS_FOR_TARGET=${TARGET_CROSS_PREFIX}-as \
CC_FOR_TARGET=${TARGET_CROSS_PREFIX}-gcc \
CXX_FOR_TARGET=${TARGET_CROSS_PREFIX}-c++ \
CPP_FOR_TARGET=${TARGET_CROSS_PREFIX}-cpp \
LD_FOR_TARGET=${TARGET_CROSS_PREFIX}-ld \
../gcc/configure \
--prefix=/usr \
--host=${TARGET_CROSS} \
--target=${TARGET_OS} \
--enable-shared \
${MULTILIB} \
${_WITH_FLOAT} \
--disable-multiarch \
--with-arch=${TARGET_ARCH_AUX2} --with-tune=${TARGET_CPU} \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-c99 \
--enable-long-long \
--enable-clocale=gnu \
--enable-languages=c,c++ \
--disable-libstdcxx-pch \
--without-cloog \
--disable-bootstrap \
--disable-install-libiberty \
--with-system-zlib)
Problem is in libstdc++ building, and I suspend that problem come from
libtool:
make[7]: Entering directory
'/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/src'
/bin/sh ../libtool --tag CXX --mode=compile
/export/staging/ptr/continuous/toolchain-arm-continuous-linux-gnueabi/bin/arm-continuous-linux-gnueabi-c++
-I/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/include/arm-unknown-linux-gnueabi
-I/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/include
-I/export/staging/ptr/continuous/development/gcc/libstdc++-v3/libsupc++
-I/usr/include -std=gnu++98 -fPIC -DPIC -fno-implicit-templates -Wall
-Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once
-ffunction-sections -fdata-sections -frandom-seed=compatibility.lo -g -O2
-D_GNU_SOURCE -c -o compatibility.lo
../../../../gcc/libstdc++-v3/src/c++98/compatibility.cc
...
libtool: compile:
/export/staging/ptr/continuous/toolchain-arm-continuous-linux-gnueabi/bin/arm-continuous-linux-gnueabi-c++
-I/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/include/arm-unknown-linux-gnueabi
-I/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/include
-I/export/staging/ptr/continuous/development/gcc/libstdc++-v3/libsupc++
-I/usr/include -std=gnu++98 -fPIC -DPIC -fno-implicit-templates -Wall -Wextra
-Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once
-ffunction-sections -fdata-sections -frandom-seed=compatibility.lo -g -O2
-D_GNU_SOURCE -c ../../../../gcc/libstdc++-v3/src/c++98/compatibility.cc -fPIC
-DPIC -D_GLIBCXX_SHARED -o .libs/compatibility.o
...
In file included from /usr/include/math.h:427:0,
from
/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/include/cmath:45,
from
../../../../gcc/libstdc++-v3/src/c++98/compatibility.cc:50:
/usr/include/bits/mathinline.h: In function ‘double __ceill_wrapper(double)’:
/usr/include/bits/mathinline.h:764:1: error: invalid 'asm': invalid operand for
code 'w'
__inline_mathcodeNP (ceil, __x, \
^
Makefile:623: recipe for target 'compatibility.lo' failed
You see -I/usr/include, that cause problem. Compiler see in host's
/usr/include/math.h that has different from target arch. Without it compilation
is fine:
(cd development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/src && /bin/sh
../libtool --tag CXX --mode=compile
/export/staging/ptr/continuous/toolchain-arm-continuous-linux-gnueabi/bin/arm-continuous-linux-gnueabi-c++
-I/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/include/arm-unknown-linux-gnueabi
-I/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/include
-I/export/staging/ptr/continuous/development/gcc/libstdc++-v3/libsupc++
-std=gnu++98 -fPIC -DPIC -fno-implicit-templates -Wall -Wextra -Wwrite-strings
-Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections
-fdata-sections -frandom-seed=compatibility.lo -g -O2 -D_GNU_SOURCE -c -o
compatibility.lo ../../../../gcc/libstdc++-v3/src/c++98/compatibility.cc)
libtool: compile:
/export/staging/ptr/continuous/toolchain-arm-continuous-linux-gnueabi/bin/arm-continuous-linux-gnueabi-c++
-I/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/include/arm-unknown-linux-gnueabi
-I/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/include
-I/export/staging/ptr/continuous/development/gcc/libstdc++-v3/libsupc++
-std=gnu++98 -fPIC -DPIC -fno-implicit-templates -Wall -Wextra -Wwrite-strings
-Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections
-fdata-sections -frandom-seed=compatibility.lo -g -O2 -D_GNU_SOURCE -c
../../../../gcc/libstdc++-v3/src/c++98/compatibility.cc -fPIC -DPIC
-D_GLIBCXX_SHARED -o .libs/compatibility.o
libtool: compile:
/export/staging/ptr/continuous/toolchain-arm-continuous-linux-gnueabi/bin/arm-continuous-linux-gnueabi-c++
-I/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/include/arm-unknown-linux-gnueabi
-I/export/staging/ptr/continuous/development/build-gcc/arm-unknown-linux-gnueabi/libstdc++-v3/include
-I/export/staging/ptr/continuous/development/gcc/libstdc++-v3/libsupc++
-std=gnu++98 -fPIC -DPIC -fno-implicit-templates -Wall -Wextra -Wwrite-strings
-Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections
-fdata-sections -frandom-seed=compatibility.lo -g -O2 -D_GNU_SOURCE -c
../../../../gcc/libstdc++-v3/src/c++98/compatibility.cc -o compatibility.o
>/dev/null 2>&1
But I wonder, from what place libtool extract it and insert into compilation?
More information about the Gcc-bugs
mailing list