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?

Reply via email to