C++ Constructor Initialization Failure for Cortex-A8

Joel Sherrill joel.sherrill at oarcorp.com
Mon Dec 1 09:09:56 UTC 2014



On November 30, 2014 10:26:52 PM CST, Thomas Kim <thomas73.kim at gmail.com> wrote:
>Dear Sir,
>
>
>I am testing cxx example including C++ global constructor in example-v2
>on Cortex-A8 based board.
>
>
>As I remembered in csae of using cxx example on Sparc SIS, I resolved
>this after removing below options according to your comment.
>
>  CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
>
>  LDFLAGS = -Wl,--gc-sections
>

There is a wildcard (e.g. *) missing after one of the sections for compiler generated code. Could be the .init and .fini section .. Or whatever they are on the arm

>But, when I test same cxx example on ARM Cortex-A8 board, I have
>similar problem as like below;
>
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>terminate called after throwing an instance of
>'__gnu_cxx::__concurrence_lock_error'
>
>  what():  __gnu_cxx::__concurrence_lock_error
>
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>At this time, I used below config options for Cortex-A8.
>
>CPU_CFLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon
>-mfloat-abi=softfp
>
>CFLAGS_OPTIMIZE_V ?= -O2 -g
>
>
>also, I am using RSB GCC 4.8.2 as like below;
>
>
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>Target: arm-rtems4.11
>
>Configured with: ../gcc-4.8.2/configure --prefix=/opt/rtems-4.11
>--bindir=/opt/rtems-4.11/bin --exec_prefix=/opt/rtems-4.11
>--includedir=/opt/rtems-4.11/include --libdir=/opt/rtems-4.11/lib
>--libexecdir=/opt/rtems-4.11/libexec --mandir=/opt/rtems-4.11/share/man
>--infodir=/opt/rtems-4.11/share/info --datadir=/opt/rtems-4.11/share
>--build=i686-linux-gnu --host=i686-linux-gnu --target=arm-rtems4.11
>--disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --verbose
>--with-newlib --with-system-zlib --disable-nls
>--without-included-gettext --disable-win32-registry
>--enable-version-specific-runtime-libs --disable-lto
>--enable-newlib-io-c99-formats --enable-newlib-iconv
>--enable-newlib-iconv-encodings=big5,cp775,cp850,cp852,cp855,cp866,euc_jp,euc_kr,euc_tw,iso_8859_1,iso_8859_10,iso_8859_11,iso_8859_13,iso_8859_14,iso_8859_15,iso_8859_2,iso_8859_3,iso_8859_4,iso_8859_5,iso_8859_6,iso_8859_7,iso_8859_8,iso_8859_9,iso_ir_111,koi8_r,koi8_ru,koi8_u,koi8_uni,ucs_2,ucs_2_internal,ucs_2be,ucs_2le,ucs_4,ucs_4_internal,ucs_4be,ucs_4le,us_ascii,utf_16,utf_16be,utf_16le,utf_8,win_1250,win_1251,win_1252,win_1253,win_1254,win_1255,win_1256,win_1257,win_1258
>--enable-threads --disable-plugin --enable-obsolete
>--enable-languages=c,c++
>
>Thread model: posix
>
>gcc version 4.8.2 20131016 (RTEMS
>4.11-RSB-40d25dc8fe6da6b93b295d9b42632c1d3338a97a-1,gcc-4.8.2/newlib-2.1.0)
>(GCC)
>
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>Please let me  know how to resolve this problem ?
>
>
>Thomas Kim

--joel



More information about the users mailing list