Subject: Error: duplicate .personality directive while
building libstdc++ w/ ARM EABI - msg#00035
I am sorry for my incompleted subject of the last mail
Dear All,
I have ecountered the same problem as below...
My target arch is arm_generic by EABI support
I have tried gcc 4.1.2 and gcc 4.2.0 with binutils 2.17 and 2.17.50.0.14/16
but they all failed at building the same file:
libstdc++-v3/libsupc++/eh_alloc.cc
with the same error messages:
Assembler messages:
Error: duplicate .personality directive
Does anyone have any idea of it?
Thanks a lot.
jon
>>
"
I have been attempting to produce an ARM EABI toolchain (including g++)
using the buildroot. The build fails while building libstdc++ with the
error "duplicate .personality directive". I did some googling and it
looks like this is coming from gas from binutils. Although the build
fails to create libstdc++ it does successfully build gcc and I have
verified that gcc produces EABI binaries. I have also verified that if
I disable EABI (and change the GNU target suffix to linux-uclibc) in the
buildroot config that the c++ compiler along with everything else
successfully builds.
Does anyone know why enabling EABI would prevent libstdc++ from
building?
I have selected the following in the Buildroot Configuration:
Target Architecture (armeb)
Target Architecture Variant (xscale)
Target ABI (EABI)
GNU target suffix (linux-uclibcgnueabi)
Binutils Version (binutils 2.17.50.0.16)
GCC compiler Version (gcc 4.1.2)
Build/install c++ compiler and libstdc++ (y)
More context for the error is attached below.
Any ideas on this issue are greatly appreciated.
Thanks,
Jon Nalley
Making all in libsupc++
make[5]: Entering directory \
`/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/libsupc++'
/bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile \
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc/xgcc \
-shared-libgcc
-B/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc
\
-nostdinc++ \
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src
\
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src/.libs
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/bin/
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/lib/
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/include
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/sys-include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/../gcc
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include/armeb-linux-uclibcgnueabi
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++
\
-g -Os -fno-implicit-templates -prefer-pic -Wall -Wextra
-Wwrite-strings -Wcast-qual \
-fdiagnostics-show-location=once -ffunction-sections
-fdata-sections -c -o eh_alloc.lo \
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++/eh_alloc.cc
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc/xgcc
-shared-libgcc \
-B/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc
-nostdinc++ \
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src
\
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src/.libs
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/bin/
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/lib/
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/include
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/sys-include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/../gcc
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include/armeb-linux-uclibcgnueabi
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++
\
-g -Os -fno-implicit-templates -Wall -Wextra -Wwrite-strings
-Wcast-qual -fdiagnostics-show-location=once \
-ffunction-sections -fdata-sections -c
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++/eh_alloc.cc
\
-fPIC -DPIC -o eh_alloc.o
/tmp/ccPjsGDj.s: Assembler messages:
/tmp/ccPjsGDj.s:354: Error: duplicate .personality directive
make[5]: *** [eh_alloc.lo] Error 1
"
Thread at a glance:
Previous Message by Date:
svn commit: trunk/buildroot/toolchain/gcc
Author: sjhill
Date: 2007-07-04 22:15:47 -0700 (Wed, 04 Jul 2007)
New Revision: 19002
Log:
This was for when I was building a toolchain without BR2_TOOLCHAIN_SYSROOT set.
Maybe when it is set the C++ libraries get put into $(TARGET_DIR)/lib. If that
is the case, then an 'if-else' block will need to be placed to strip the right
location.
Modified:
trunk/buildroot/toolchain/gcc/gcc-uclibc-3.x.mk
Changeset:
Modified: trunk/buildroot/toolchain/gcc/gcc-uclibc-3.x.mk
===================================================================
--- trunk/buildroot/toolchain/gcc/gcc-uclibc-3.x.mk 2007-07-05 05:13:46 UTC
(rev 19001)
+++ trunk/buildroot/toolchain/gcc/gcc-uclibc-3.x.mk 2007-07-05 05:15:47 UTC
(rev 19002)
@@ -306,7 +306,7 @@
endif
ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
-cp -dpf $(STAGING_DIR)/lib/libstdc++.so* $(TARGET_DIR)/usr/lib/
- $(STRIP) --strip-unneeded $(TARGET_DIR)/lib/libstdc++.so*
+ $(STRIP) --strip-unneeded $(TARGET_DIR)/usr/lib/libstdc++.so*
endif
ifeq ($(BR2_INSTALL_LIBGCJ),y)
-cp -dpf $(STAGING_DIR)/lib/libgcj.so* $(TARGET_DIR)/usr/lib/
Next Message by Date:
[buildroot]build libc++
Dear All,
I have ecountered the same problem as below...
My target arch is arm_generic by EABI support
I have tried gcc 4.1.2 and gcc 4.2.0 with binutils 2.17 and 2.17.50.0.14/16
but they all failed at building the same file:
libstdc++-v3/libsupc++/eh_alloc.cc
with the same error messages:
Assembler messages:
Error: duplicate .personality directive
Does anyone have any idea of it?
Thanks a lot.
jon
>>
"
I have been attempting to produce an ARM EABI toolchain (including g++)
using the buildroot. The build fails while building libstdc++ with the
error "duplicate .personality directive". I did some googling and it
looks like this is coming from gas from binutils. Although the build
fails to create libstdc++ it does successfully build gcc and I have
verified that gcc produces EABI binaries. I have also verified that if
I disable EABI (and change the GNU target suffix to linux-uclibc) in the
buildroot config that the c++ compiler along with everything else
successfully builds.
Does anyone know why enabling EABI would prevent libstdc++ from
building?
I have selected the following in the Buildroot Configuration:
Target Architecture (armeb)
Target Architecture Variant (xscale)
Target ABI (EABI)
GNU target suffix (linux-uclibcgnueabi)
Binutils Version (binutils 2.17.50.0.16)
GCC compiler Version (gcc 4.1.2)
Build/install c++ compiler and libstdc++ (y)
More context for the error is attached below.
Any ideas on this issue are greatly appreciated.
Thanks,
Jon Nalley
Making all in libsupc++
make[5]: Entering directory \
`/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/libsupc++'
/bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile \
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc/xgcc \
-shared-libgcc
-B/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc
\
-nostdinc++ \
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src
\
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src/.libs
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/bin/
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/lib/
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/include
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/sys-include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/../gcc
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include/armeb-linux-uclibcgnueabi
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++
\
-g -Os -fno-implicit-templates -prefer-pic -Wall -Wextra
-Wwrite-strings -Wcast-qual \
-fdiagnostics-show-location=once -ffunction-sections
-fdata-sections -c -o eh_alloc.lo \
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++/eh_alloc.cc
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc/xgcc
-shared-libgcc \
-B/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc
-nostdinc++ \
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src
\
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src/.libs
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/bin/
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/lib/
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/include
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/sys-include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/../gcc
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include/armeb-linux-uclibcgnueabi
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++
\
-g -Os -fno-implicit-templates -Wall -Wextra -Wwrite-strings
-Wcast-qual -fdiagnostics-show-location=once \
-ffunction-sections -fdata-sections -c
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++/eh_alloc.cc
\
-fPIC -DPIC -o eh_alloc.o
/tmp/ccPjsGDj.s: Assembler messages:
/tmp/ccPjsGDj.s:354: Error: duplicate .personality directive
make[5]: *** [eh_alloc.lo] Error 1
"
Previous Message by Thread:
svn commit: trunk/buildroot/toolchain/gcc
Author: sjhill
Date: 2007-07-04 22:13:46 -0700 (Wed, 04 Jul 2007)
New Revision: 19001
Log:
Enable the option.
Modified:
trunk/buildroot/toolchain/gcc/Config.in
Changeset:
Modified: trunk/buildroot/toolchain/gcc/Config.in
===================================================================
--- trunk/buildroot/toolchain/gcc/Config.in 2007-07-05 05:13:20 UTC (rev
19000)
+++ trunk/buildroot/toolchain/gcc/Config.in 2007-07-05 05:13:46 UTC (rev
19001)
@@ -111,9 +111,8 @@
default "4.3" if BR2_GCC_VERSION_4_3
config BR2_TOOLCHAIN_SYSROOT
-# bool "Enable toolchain with --sysroot support"
- bool
- depends on !BR2_GCC_VERSION_3_3_5 && !BR2_GCC_VERSION_3_3_6 &&
!BR2_GCC_VERSION_3_4_2 && !BR2_GCC_VERSION_3_4_3 && !BR2_GCC_VERSION_3_4_4 &&
!BR2_GCC_VERSION_3_4_5 && !BR2_GCC_VERSION_3_4_6 &&!BR2_GCC_VERSION_4_0_0 &&
!BR2_GCC_VERSION_4_0_1 && !BR2_GCC_VERSION_4_0_2 && !BR2_GCC_VERSION_4_0_3 &&
!BR2_GCC_VERSION_4_0_4 && !BR2_GCC_VERSION_4_1_0 && !BR2_GCC_VERSION_4_1_1 &&
!BR2_GCC_VERSION_4_1_2
+ bool "Enable toolchain with --sysroot support"
+ depends on !BR2_GCC_VERSION_3_3_5 && !BR2_GCC_VERSION_3_3_6 &&
!BR2_GCC_VERSION_3_4_2 && !BR2_GCC_VERSION_3_4_3 && !BR2_GCC_VERSION_3_4_4 &&
!BR2_GCC_VERSION_3_4_5 && !BR2_GCC_VERSION_3_4_6
default y
help
Enables --sysroot=dir for binutils and gcc.
Next Message by Thread:
[buildroot]build libc++
Dear All,
I have ecountered the same problem as below...
My target arch is arm_generic by EABI support
I have tried gcc 4.1.2 and gcc 4.2.0 with binutils 2.17 and 2.17.50.0.14/16
but they all failed at building the same file:
libstdc++-v3/libsupc++/eh_alloc.cc
with the same error messages:
Assembler messages:
Error: duplicate .personality directive
Does anyone have any idea of it?
Thanks a lot.
jon
>>
"
I have been attempting to produce an ARM EABI toolchain (including g++)
using the buildroot. The build fails while building libstdc++ with the
error "duplicate .personality directive". I did some googling and it
looks like this is coming from gas from binutils. Although the build
fails to create libstdc++ it does successfully build gcc and I have
verified that gcc produces EABI binaries. I have also verified that if
I disable EABI (and change the GNU target suffix to linux-uclibc) in the
buildroot config that the c++ compiler along with everything else
successfully builds.
Does anyone know why enabling EABI would prevent libstdc++ from
building?
I have selected the following in the Buildroot Configuration:
Target Architecture (armeb)
Target Architecture Variant (xscale)
Target ABI (EABI)
GNU target suffix (linux-uclibcgnueabi)
Binutils Version (binutils 2.17.50.0.16)
GCC compiler Version (gcc 4.1.2)
Build/install c++ compiler and libstdc++ (y)
More context for the error is attached below.
Any ideas on this issue are greatly appreciated.
Thanks,
Jon Nalley
Making all in libsupc++
make[5]: Entering directory \
`/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/libsupc++'
/bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile \
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc/xgcc \
-shared-libgcc
-B/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc
\
-nostdinc++ \
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src
\
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src/.libs
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/bin/
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/lib/
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/include
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/sys-include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/../gcc
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include/armeb-linux-uclibcgnueabi
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++
\
-g -Os -fno-implicit-templates -prefer-pic -Wall -Wextra
-Wwrite-strings -Wcast-qual \
-fdiagnostics-show-location=once -ffunction-sections
-fdata-sections -c -o eh_alloc.lo \
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++/eh_alloc.cc
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc/xgcc
-shared-libgcc \
-B/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/./gcc
-nostdinc++ \
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src
\
-L/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/src/.libs
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/bin/
\
-B/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/lib/
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/include
\
-isystem
/uclibc-buildroot/build_armeb_nofpu/staging_dir/armeb-linux-uclibcgnueabi/sys-include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/../gcc
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include/armeb-linux-uclibcgnueabi
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2-final/armeb-linux-uclibcgnueabi/libstdc++-v3/include
\
-I/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++
\
-g -Os -fno-implicit-templates -Wall -Wextra -Wwrite-strings
-Wcast-qual -fdiagnostics-show-location=once \
-ffunction-sections -fdata-sections -c
/uclibc-buildroot/toolchain_build_armeb_nofpu/gcc-4.1.2/libstdc++-v3/libsupc++/eh_alloc.cc
\
-fPIC -DPIC -o eh_alloc.o
/tmp/ccPjsGDj.s: Assembler messages:
/tmp/ccPjsGDj.s:354: Error: duplicate .personality directive
make[5]: *** [eh_alloc.lo] Error 1
"