http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47491
--- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2011-01-27 16:28:39 UTC --- > --- Comment #2 from Janne Blomqvist <jb at gcc dot gnu.org> 2011-01-27 > 16:10:41 UTC --- > Some git-grepping showed that at least libjava has in configure.ac > > AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, [Required define if using POSIX > threads]) > > and in case Boehm GC is not used (which libgfortran never uses): > > AC_DEFINE(_REENTRANT, 1, [Required define if using POSIX threads]) > > However, if I understand gcc/config/ correctly, _REENTRANT should be > automatically set for all targets that need it. At least on Solaris (and I think on other targets as well), only with -pthread. > Also in gcc/config a few targets set > > -D_POSIX_C_SOURCE=199506L > > (not Solaris, though). But apparently we shouldn't go and set this somewhere > in > libgfortran? That is, at least no other library does this.. That may not provide the best guidance. I'd rather look for autoconf and/or gnulib here. On Solaris, this may not be enough: starting with Solaris 10, there's POSIX.1-2001 support via -D_POSIX_C_SOURCE=200112L. > Moreover, in config/extensions.m4 there is the macro > > AC_USE_SYSTEM_EXTENSIONS > > that seems to define _POSIX_PTHREAD_SEMANTICS on Solaris. > > This seems to me the most sensible solution. Would that work? Seems so. At least I've just found that I need -D__EXTENSIONS__ in addition to -D_XOPEN_SOURCE=600 to get EIP defined in <sys/regset.h> (needed by fpu-target.h). Rainer