My mistake, it seems there is some missing dependency tracking in the build, a full reconfigure and build worked. Thanks! --- Dan Schatzberg On Wed, Sep 12, 2012 at 11:29 AM, Jonathan Wakely <jwakely.gcc@xxxxxxxxx> wrote: > On 12 September 2012 14:50, Dan Schatzberg wrote: >> Hi, >> >> I am building a gcc toolchain targeted to my custom kernel. I've added >> a thread model for my system to the build and provided a header for >> the threading in libgcc/config >> In this header I define the minimal necessary gthread functions. Most >> of them call out to extern functions which I will then link in when >> building a binary. >> >> For example: >> #ifdef __cplusplus >> extern "C" { >> #endif >> extern int ebbos_gthread_active_p(void); >> >> static inline int >> __gthread_active_p(void) >> { >> return ebbos_gthread_active_p(); >> } >> >> #ifdef __cplusplus >> } >> #endif >> >> This builds fine, but libstdc++ has mangled symbol names for >> ebbos_gthread_active_p while libgcc does not. What can I do to make it >> so all the libraries are built with non mangled symbol names? I would >> have thought the #ifdef __cplusplus would work, but I seem to be >> mistaken. > > That should work.