[RTEMS Project] #2830: throwing std::runtime on PC BSP fails.

RTEMS trac trac at rtems.org
Fri Sep 11 16:56:14 UTC 2020

#2830: throwing std::runtime on PC BSP fails.
 Reporter:  Chris Johns  |       Owner:  Needs Funding
     Type:  defect       |      Status:  assigned
 Priority:  normal       |   Milestone:  Indefinite
Component:  unspecified  |     Version:  5
 Severity:  normal       |  Resolution:
 Keywords:               |  Blocked By:
 Blocking:               |

Comment (by Michael Davidsaver):

 I've not come across 'libatomic' before.  I guess this is some
 compatibility glue for older x86?

 From some playing around, it looks like the toolchain gcc is defaulting to
 '-march=i386' if no other option is provided.  Maybe not surprising given
 that the toolchain name is 'i386-rtems5'.
 '<prefix>/make/custom/pc686.cfg' has '-mtune=pentiumpro -march=pentium'.
 Passing this to a short test seems to result in the intrinsic actually
 being used.  So I guess the RTEMS kernel config/build is ok?

 Starting from the linker map of epicsTimeTest, I see that the symbol
 '__atomic_fetch_add_4' (aka. 'libat_fetch_add_4') is undefined in
 '<prefix>/lib/gcc/i386-rtems5/7.5.0/mpentiumpro/libstdc++.a'.  So I guess
 this means that the (multilib?) build of libstdc++ is not being done

 My knowledge of GCC internals doesn't extend beyond ./configure arguments.
 So I don't know where to look next.

Ticket URL: <http://devel.rtems.org/ticket/2830#comment:7>
RTEMS Project <http://www.rtems.org/>
RTEMS Project

More information about the bugs mailing list