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

Reply via email to