http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60691

            Bug ID: 60691
           Summary: Build fails in libstdc++ with --enable-sjlj-exceptions
                    on ARM
           Product: gcc
           Version: 4.8.2
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: fab...@ritter-vogt.de

Created attachment 32468
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32468&action=edit
Assembly produced if gcc invoked manually

I try to compile gcc with sjlj exceptions enabled, however, the build fails at
libstdc++. It's probably a gcc bug but it triggers an assertion in gas as well.

GCC command:

/opt/nspire/Ndless/ndless-sdk/toolchain/build/./gcc/xgcc -shared-libgcc
-B/opt/nspire/Ndless/ndless-sdk/toolchain/build/./gcc -nostdinc++
-L/opt/nspire/Ndless/ndless-sdk/toolchain/build/arm-none-eabi/libstdc++-v3/src
-L/opt/nspire/Ndless/ndless-sdk/toolchain/build/arm-none-eabi/libstdc++-v3/src/.libs
-B/opt/nspire/Ndless/ndless-sdk/toolchain/install/arm-none-eabi/bin/
-B/opt/nspire/Ndless/ndless-sdk/toolchain/install/arm-none-eabi/lib/ -isystem
/opt/nspire/Ndless/ndless-sdk/toolchain/install/arm-none-eabi/include -isystem
/opt/nspire/Ndless/ndless-sdk/toolchain/install/arm-none-eabi/sys-include
-I/opt/nspire/Ndless/ndless-sdk/toolchain/gcc-4.8.2/libstdc++-v3/../libgcc
-I/opt/nspire/Ndless/ndless-sdk/toolchain/build/arm-none-eabi/libstdc++-v3/include/arm-none-eabi
-I/opt/nspire/Ndless/ndless-sdk/toolchain/build/arm-none-eabi/libstdc++-v3/include
-I/opt/nspire/Ndless/ndless-sdk/toolchain/gcc-4.8.2/libstdc++-v3/libsupc++
-Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi
-fdiagnostics-show-location=once -ffunction-sections -fdata-sections
-frandom-seed=eh_alloc.lo -mcpu=arm926ej-s -fpic -mlong-calls -c
../../../../gcc-4.8.2/libstdc++-v3/libsupc++/eh_alloc.cc -o eh_alloc.o

Output:

/tmp/cc6EsAB0.s: Assembler messages:
/tmp/cc6EsAB0.s:320: Error: missing .fnstart before unwinding directive
/tmp/cc6EsAB0.s:320: Error: duplicate .personality directive
/tmp/cc6EsAB0.s:321: Error: missing .fnstart before unwinding directive
/tmp/cc6EsAB0.s:321: Internal error!
Assertion failure in create_unwind_entry at
../../binutils-2.24/gas/config/tc-arm.c line 20915.
Please report this bug.

Sadly I can't give the commands gcc executes as this doesn't happen if I
execute the command manually. Probably other environment vars set in the GCC
Makefile. I attached the .s file gcc gives me with -s if I execute it manually,
maybe it's helpful.

GCC configure options:

--target=arm-none-eabi --prefix=$PREFIX --enable-interwork --disable-multilib
--enable-languages="c,c++" --enable-sjlj-exceptions --with-system-zlib
--with-newlib --disable-shared --with-gnu-as --with-gnu-ld --with-float=soft
--disable-werror

binutils configure options:

--target=arm-none-eabi --prefix=$PREFIX --enable-interwork --disable-multilib
--with-system-zlib --with-gnu-as --with-gnu-ld --disable-nls --with-float=soft
--disable-werror

I run make with CXXFLAGS_FOR_TARGET="-mcpu=arm926ej-s -fpic -mlong-calls"

Reply via email to