apparently for all single-thread targets (like cris-elf). Could it be that you forgot to actually test that this works on single-thread targets? Or how did you test that?
Build worked with trunk 134647 and was broken with 134655 (still broken with 134662 in the same way), yours being the only suspect commit. For 4.3, it worked with 134632 and was broken with 134650. (I don't see why you put stuff like this on a release branch.) For trunk 134655: /bin/sh ../libtool --tag CXX --mode=compile /tmp/x/./gcc/xgcc -shared-libgcc -B/tmp/x/./gcc -nostdinc++ -L/tmp/x/cris-elf/libstdc++-v3/src -L/tmp/x/cris-elf/libstdc++-v3/src/.libs -nostdinc -B/tmp/x/cris-elf/newlib/ -isystem /tmp/x/cris-elf/newlib/targ-include -isystem /tmp/y/newlib/libc/include -B/tmp/x/cris-elf/libgloss/cris -L/tmp/x/cris-elf/libgloss/libnosys -L/tmp/y/libgloss/cris -B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/bin/ -B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/lib/ -isystem /tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/include -isystem /tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/sys-include -I/tmp/x/cris-elf/libstdc++-v3/include/cris-elf -I/tmp/x/cris-elf/libstdc++-v3/include -I/tmp/y/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -fopenmp -D_GLIBCXX_PARALLEL -I/tmp/x/cris-elf/libstdc++-v3/../libgomp -c /tmp/y/libstdc++-v3/src/parallel_l! ist.cc libtool: compile: /tmp/x/./gcc/xgcc -shared-libgcc -B/tmp/x/./gcc -nostdinc++ -L/tmp/x/cris-elf/libstdc++-v3/src -L/tmp/x/cris-elf/libstdc++-v3/src/.libs -nostdinc -B/tmp/x/cris-elf/newlib/ -isystem /tmp/x/cris-elf/newlib/targ-include -isystem /tmp/y/newlib/libc/include -B/tmp/x/cris-elf/libgloss/cris -L/tmp/x/cris-elf/libgloss/libnosys -L/tmp/y/libgloss/cris -B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/bin/ -B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/lib/ -isystem /tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/include -isystem /tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/sys-include -I/tmp/x/cris-elf/libstdc++-v3/include/cris-elf -I/tmp/x/cris-elf/libstdc++-v3/include -I/tmp/y/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -fopenmp -D_GLIBCXX_PARALLEL -I/tmp/x/cris-elf/libstdc++-v3/../libgomp -c /tmp/y/libstdc++-v3/src/parallel_list.cc -o parallel_list.o xgcc: unrecognized option '-pthread' In file included from /tmp/x/cris-elf/libstdc++-v3/include/parallel/algobase.h:46, from /tmp/x/cris-elf/libstdc++-v3/include/bits/stl_algobase.h:1137, from /tmp/x/cris-elf/libstdc++-v3/include/list:66, from /tmp/y/libstdc++-v3/src/list.cc:56, from /tmp/y/libstdc++-v3/src/parallel_list.cc:30: /tmp/x/cris-elf/libstdc++-v3/include/parallel/base.h:43:17: error: omp.h: No such file or directory In file included from /tmp/x/cris-elf/libstdc++-v3/include/parallel/parallel.h:45, from /tmp/x/cris-elf/libstdc++-v3/include/parallel/base.h:46, from /tmp/x/cris-elf/libstdc++-v3/include/parallel/algobase.h:46, from /tmp/x/cris-elf/libstdc++-v3/include/bits/stl_algobase.h:1137, from /tmp/x/cris-elf/libstdc++-v3/include/list:66, from /tmp/y/libstdc++-v3/src/list.cc:56, from /tmp/y/libstdc++-v3/src/parallel_list.cc:30: /tmp/x/cris-elf/libstdc++-v3/include/parallel/tags.h: In member function '__gnu_parallel::thread_index_t __gnu_parallel::parallel_tag::get_num_threads()': /tmp/x/cris-elf/libstdc++-v3/include/parallel/tags.h:79: error: 'omp_get_max_threads' was not declared in this scope In file included from /tmp/x/cris-elf/libstdc++-v3/include/parallel/algobase.h:46, from /tmp/x/cris-elf/libstdc++-v3/include/bits/stl_algobase.h:1137, from /tmp/x/cris-elf/libstdc++-v3/include/list:66, from /tmp/y/libstdc++-v3/src/list.cc:56, from /tmp/y/libstdc++-v3/src/parallel_list.cc:30: /tmp/x/cris-elf/libstdc++-v3/include/parallel/base.h: In function 'int __gnu_parallel::get_max_threads()': /tmp/x/cris-elf/libstdc++-v3/include/parallel/base.h:94: error: 'omp_get_max_threads' was not declared in this scope In file included from /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:46, from /tmp/x/cris-elf/libstdc++-v3/include/parallel/algobase.h:49, from /tmp/x/cris-elf/libstdc++-v3/include/bits/stl_algobase.h:1137, from /tmp/x/cris-elf/libstdc++-v3/include/list:66, from /tmp/y/libstdc++-v3/src/list.cc:56, from /tmp/y/libstdc++-v3/src/parallel_list.cc:30: /tmp/x/cris-elf/libstdc++-v3/include/parallel/compatibility.h: In function 'void __gnu_parallel::yield()': /tmp/x/cris-elf/libstdc++-v3/include/parallel/compatibility.h:351: error: 'sched_yield' was not declared in this scope In file included from /tmp/x/cris-elf/libstdc++-v3/include/parallel/algobase.h:49, from /tmp/x/cris-elf/libstdc++-v3/include/bits/stl_algobase.h:1137, from /tmp/x/cris-elf/libstdc++-v3/include/list:66, from /tmp/y/libstdc++-v3/src/list.cc:56, from /tmp/y/libstdc++-v3/src/parallel_list.cc:30: /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h: In function 'std::pair<_T1, _T2> __gnu_parallel::find_template(RandomAccessIterator1, RandomAccessIterator1, RandomAccessIterator2, Pred, Selector, __gnu_parallel::equal_split_tag)': /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:120: error: 'omp_lock_t' was not declared in this scope /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:120: error: expected ';' before 'result_lock' /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:121: error: 'result_lock' was not declared in this scope /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:121: error: there are no arguments to 'omp_init_lock' that depend on a template parameter, so a declaration of 'omp_init_lock' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:121: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:128: error: there are no arguments to 'omp_get_num_threads' that depend on a template parameter, so a declaration of 'omp_get_num_threads' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:133: error: there are no arguments to 'omp_get_thread_num' that depend on a template parameter, so a declaration of 'omp_get_thread_num' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:147: error: there are no arguments to 'omp_set_lock' that depend on a template parameter, so a declaration of 'omp_set_lock' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:150: error: there are no arguments to 'omp_unset_lock' that depend on a template parameter, so a declaration of 'omp_unset_lock' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:158: error: there are no arguments to 'omp_destroy_lock' that depend on a template parameter, so a declaration of 'omp_destroy_lock' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h: In function 'std::pair<_T1, _T2> __gnu_parallel::find_template(RandomAccessIterator1, RandomAccessIterator1, RandomAccessIterator2, Pred, Selector, __gnu_parallel::growing_blocks_tag)': /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:226: error: 'omp_lock_t' was not declared in this scope /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:226: error: expected ';' before 'result_lock' /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:227: error: 'result_lock' was not declared in this scope /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:227: error: there are no arguments to 'omp_init_lock' that depend on a template parameter, so a declaration of 'omp_init_lock' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:233: error: there are no arguments to 'omp_get_num_threads' that depend on a template parameter, so a declaration of 'omp_get_num_threads' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:236: error: there are no arguments to 'omp_get_thread_num' that depend on a template parameter, so a declaration of 'omp_get_thread_num' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:262: error: there are no arguments to 'omp_set_lock' that depend on a template parameter, so a declaration of 'omp_set_lock' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:270: error: there are no arguments to 'omp_unset_lock' that depend on a template parameter, so a declaration of 'omp_unset_lock' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:285: error: there are no arguments to 'omp_destroy_lock' that depend on a template parameter, so a declaration of 'omp_destroy_lock' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h: In function 'std::pair<_T1, _T2> __gnu_parallel::find_template(RandomAccessIterator1, RandomAccessIterator1, RandomAccessIterator2, Pred, Selector, __gnu_parallel::constant_size_blocks_tag)': /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:345: error: 'omp_lock_t' was not declared in this scope /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:345: error: expected ';' before 'result_lock' /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:346: error: 'result_lock' was not declared in this scope /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:346: error: there are no arguments to 'omp_init_lock' that depend on a template parameter, so a declaration of 'omp_init_lock' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:354: error: there are no arguments to 'omp_get_num_threads' that depend on a template parameter, so a declaration of 'omp_get_num_threads' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:356: error: there are no arguments to 'omp_get_thread_num' that depend on a template parameter, so a declaration of 'omp_get_thread_num' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:381: error: there are no arguments to 'omp_set_lock' that depend on a template parameter, so a declaration of 'omp_set_lock' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:384: error: there are no arguments to 'omp_unset_lock' that depend on a template parameter, so a declaration of 'omp_unset_lock' must be available /tmp/x/cris-elf/libstdc++-v3/include/parallel/find.h:397: error: there are no arguments to 'omp_destroy_lock' that depend on a template parameter, so a declaration of 'omp_destroy_lock' must be available make[4]: *** [parallel_list.lo] Error 1 make[4]: Leaving directory `/tmp/x/cris-elf/libstdc++-v3/src' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/tmp/x/cris-elf/libstdc++-v3' make[2]: *** [all] Error 2 make[2]: Leaving directory `/tmp/x/cris-elf/libstdc++-v3' make[1]: *** [all-target-libstdc++-v3] Error 2 make[1]: Leaving directory `/tmp/x' make: *** [all] Error 2