GCC 4.0 has broken rtems thread support for all targets: # configure --enable-languages=c,c++ --enable-threads=rtems\ [more options] ... # make ... /users/rtems/src/rpms/BUILD/rtems-4.7-arm-rtems4.7-gcc-newlib-gcc4.0.0newlib1.13.0/build/gcc/xgcc -shared-libgcc -B/users/rtems/src/rpms/BUILD/rtems-4.7-arm-rtems4.7-gcc-newlib-gcc4.0.0newlib1.13.0/build/gcc/ -nostdinc++ -L/users/rtems/src/rpms/BUILD/rtems-4.7-arm-rtems4.7-gcc-newlib-gcc4.0.0newlib1.13.0/build/arm-rtems4.7/libstdc++-v3/src -L/users/rtems/src/rpms/BUILD/rtems-4.7-arm-rtems4.7-gcc-newlib-gcc4.0.0newlib1.13.0/build/arm-rtems4.7/libstdc++-v3/src/.libs -nostdinc -B/users/rtems/src/rpms/BUILD/rtems-4.7-arm-rtems4.7-gcc-newlib-gcc4.0.0newlib1.13.0/build/arm-rtems4.7/newlib/ -isystem /users/rtems/src/rpms/BUILD/rtems-4.7-arm-rtems4.7-gcc-newlib-gcc4.0.0newlib1.13.0/build/arm-rtems4.7/newlib/targ-include -isystem /users/rtems/src/rpms/BUILD/rtems-4.7-arm-rtems4.7-gcc-newlib-gcc4.0.0newlib1.13.0/gcc-4.0.0/newlib/libc/include -B/opt/rtems-4.7/arm-rtems4.7/bin/ -B/opt/rtems-4.7/arm-rtems4.7/lib/ -isystem /opt/rtems-4.7/arm-rtems4.7/include -isystem /opt/rtems-4.7/arm-rtems4.7/sys-include -I/users/rtems/src/rpms/BUILD/rtems-4.7-arm-rtems4.7-gcc-newlib-gcc4.0.0newlib1.13.0/gcc-4.0.0/libstdc++-v3/../gcc -I/users/rtems/src/rpms/BUILD/rtems-4.7-arm-rtems4.7-gcc-newlib-gcc4.0.0newlib1.13.0/build/arm-rtems4.7/libstdc++-v3/include/arm-rtems4.7 -I/users/rtems/src/rpms/BUILD/rtems-4.7-arm-rtems4.7-gcc-newlib-gcc4.0.0newlib1.13.0/build/arm-rtems4.7/libstdc++-v3/include -I/users/rtems/src/rpms/BUILD/rtems-4.7-arm-rtems4.7-gcc-newlib-gcc4.0.0newlib1.13.0/gcc-4.0.0/libstdc++-v3/libsupc++ -O2 -g -O2 -g -O2 -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -c ../../../../gcc-4.0.0/libstdc++-v3/libsupc++/guard.cc -o guard.o ../../../../gcc-4.0.0/libstdc++-v3/libsupc++/guard.cc:51: error: '__gthread_recursive_mutex_t' does not name a type ../../../../gcc-4.0.0/libstdc++-v3/libsupc++/guard.cc:62: error: '__gthread_recursive_mutex_t' does not name a type ../../../../gcc-4.0.0/libstdc++-v3/libsupc++/guard.cc: In static member function 'static void<unnamed>::static_mutex::lock()': ../../../../gcc-4.0.0/libstdc++-v3/libsupc++/guard.cc:81: error: 'mutex' was not declared in this scope ../../../../gcc-4.0.0/libstdc++-v3/libsupc++/guard.cc:81: error: '__gthread_recursive_mutex_lock' was not declared in this scope ../../../../gcc-4.0.0/libstdc++-v3/libsupc++/guard.cc: In static member function 'static void<unnamed>::static_mutex::unlock()': ../../../../gcc-4.0.0/libstdc++-v3/libsupc++/guard.cc:86: error: 'mutex' was not declared in this scope ../../../../gcc-4.0.0/libstdc++-v3/libsupc++/guard.cc:86: error: '__gthread_recursive_mutex_unlock' was not declared in this scope
Without having looked into details, something in GCC seems to have changed which silently breaks gthr-rtems.h. -- Summary: gthread_recursive_mutex's missing Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: corsepiu at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org,joel at gcc dot gnu dot org GCC target triplet: *-rtems* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19399