This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Undefined C++ Atomic Symbol on sh-rtems

On April 16, 2016 7:50:21 PM CDT, Oleg Endo <> wrote:
>On Sat, 2016-04-16 at 18:58 -0500, Joel Sherrill wrote:
>> I am hoping the solution to this is obvious to someone
>> more familiar with the C++ libraries. Recently the
>> sh4 BSP for RTEMS began to have undefined symbols
>> like this when linking a C++ test:
>> /data/home/joel/rtems-4.11-work/tools/4.12/bin/../lib/gcc/sh
>> -rtems4.12/6.0.0/ml/m4/libstdc++.a(cxx11-shim_facets.o): In function
>> `ZNKSt6locale5facet11_M_sso_shimEPKNS_2idE':
>> /data/home/joel/rtems-4.11-work/rtems-source-builder/rtems/build/sh
>> -rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-linux-gnu-1/build/sh
>> -rtems4.12/ml/m4/libstdc++
>> -v3/include/bits/locale_facets_nonio.h:1065: undefined reference to
>> `__gnu_cxx::__atomic_add(int volatile*, int)'
>> Is this present for sh-elf? Or is there some magic
>> bit missing in the RTEMS configuration stanzas?
>The reason for the above error is that _GLIBCXX_ATOMIC_BUILTINS is not
>set because the atomic model is not set during configure time. 
> Normally libstdc++ would use the atomic builtin functions to do its
>stuff, but if they are not enabled during configure,
>_GLIBCXX_ATOMIC_BUILTINS will not be set.
>On SH there are different "atomic models" to choose from, see also the 
>-matomic-model= SH target option.  Unfortunately, we don't have a way
>to set the default mode during GCC configure phase.  I'm planning to
>add this facility to GCC 7, but it should be straight forward to port
>it back if needed.
>For sh4-linux and sh*-linux we currently have some hardcoded atomic
>model default settings in gcc/config/sh/linux.h.  The same could be
>done for rtems I guess, but I'd rather go with the configure option

Thanks for the quick and thorough reply.

This doesn't happen with GCC 4.9 which we are using on our newest release branch. With any luck your work will be in gcc 7 before we make another release branch. 

Is there a ticket for your plan I should add myself to to track this?




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]