On 2025-09-17 22:14, Bruno Haible wrote:
[CCing bug-gnulib]
Hi Michael,
-mt translates to in C mode:
-D_REENTRANT
-D_POSIX_C_SOURCE=199506L
-lpthread
Thanks.
-lpthread is already handled by threadlib.m4.
-D_POSIX_C_SOURCE=199506L is something we don't want to have, because
(as far as I understand) it reduces the set of symbols visible from the
*.h files.
Plase note that that macro also enables stuff:
# grep -r _POSIX_C_SOURCE /usr/include/
/usr/include/sys/buf.h:#if (_POSIX_C_SOURCE >= 199309)
/usr/include/sys/buf.h:#endif /* (_POSIX_C_SOURCE >= 199309) */
/usr/include/sys/stdsyms.h:# if defined(_POSIX_SOURCE) ||
defined(_POSIX2_SOURCE) || defined(_POSIX_C_SOURCE)
/usr/include/sys/stdsyms.h:# endif /* _POSIX_SOURCE || _POSIX2_SOURCE ||
_POSIX_C_SOURCE */
/usr/include/sys/stdsyms.h:/* _POSIX2_SOURCE is an obsolescent synonym for
_POSIX_C_SOURCE being 2 */
/usr/include/sys/stdsyms.h:# ifndef _POSIX_C_SOURCE
/usr/include/sys/stdsyms.h:# define _POSIX_C_SOURCE 2
/usr/include/sys/stdsyms.h:# endif /* not _POSIX_C_SOURCE */
/usr/include/sys/stdsyms.h: * This usage is obsolescent,
"-D_POSIX_C_SOURCE=199506" is preferred
/usr/include/sys/stdsyms.h:/* _POSIX_C_SOURCE selects POSIX namespace depending
on its value */
/usr/include/sys/stdsyms.h:#if defined(_POSIX_C_SOURCE)
/usr/include/sys/stdsyms.h:# if (_POSIX_C_SOURCE >= 200112)
/usr/include/sys/stdsyms.h:# endif /* _POSIX_C_SOURCE >= 200112 */
/usr/include/sys/stdsyms.h:# if (_POSIX_C_SOURCE >= 199506) &&
!defined(_INCLUDE_POSIX1C_SOURCE)
/usr/include/sys/stdsyms.h:# endif /* _POSIX_C_SOURCE >= 199506 &&
!_INCLUDE_POSIX1C_SOURCE */
/usr/include/sys/stdsyms.h:# if (_POSIX_C_SOURCE >= 199506) &&
!defined(_REENTRANT)
/usr/include/sys/stdsyms.h:# endif /* _POSIX_C_SOURCE >= 199506 && !_REENTRANT
*/
/usr/include/sys/stdsyms.h:# if (_POSIX_C_SOURCE >= 199309) &&
!defined(_INCLUDE_POSIX4_SOURCE)
/usr/include/sys/stdsyms.h:# endif /* _POSIX_C_SOURCE >= 199309 &&
!_INCLUDE_POSIX4_SOURCE */
/usr/include/sys/stdsyms.h:# if (_POSIX_C_SOURCE > 1) &&
!defined(_INCLUDE_POSIX2_SOURCE)
/usr/include/sys/stdsyms.h:# endif /* (_POSIX_C_SOURCE > 1) &&
_INCLUDE_POSIX2_SOURCE */
/usr/include/sys/stdsyms.h:#endif /* defined _POSIX_C_SOURCE */
/usr/include/sys/stdsyms.h:# if (_POSIX_C_SOURCE-0) < 199506L
/usr/include/sys/stdsyms.h:# undef _POSIX_C_SOURCE
/usr/include/sys/stdsyms.h:# define _POSIX_C_SOURCE 199506L
/usr/include/sys/stdsyms.h:# endif /* _POSIX_C_SOURCE < 199506L */
/usr/include/sys/stdsyms.h:# if (_POSIX_C_SOURCE-0) < 200112L
/usr/include/sys/stdsyms.h:# undef _POSIX_C_SOURCE
/usr/include/sys/stdsyms.h:# define _POSIX_C_SOURCE 200112L
/usr/include/sys/stdsyms.h:# endif /* _POSIX_C_SOURCE < 200112L */
/usr/include/sys/stdsyms.h:#if defined(_XPG3) && !defined(_XPG4) &&
!defined(_POSIX_C_SOURCE)
/usr/include/sys/stdsyms.h:#endif /* _XPG3 && not _XPG4 && not _POSIX_C_SOURCE
*/
/usr/include/sys/unistd.h:# if !defined(_POSIX_C_SOURCE) || (_POSIX_C_SOURCE
< 199309L)
/usr/include/sys/unistd.h:# else /* _POSIX_C_SOURCE && _POSIX_C_SOURCE >=
199309L */
/usr/include/sys/unistd.h:# if _POSIX_C_SOURCE < 199506L
/usr/include/sys/unistd.h:# else /* _POSIX_C_SOURCE >= 199506L */
/usr/include/sys/unistd.h:# if _POSIX_C_SOURCE < 200112L
/usr/include/sys/unistd.h:# else /* _POSIX_C_SOURCE >= 200112L */
/usr/include/sys/unistd.h:# endif /* _POSIX_C_SOURCE < 200112L */
/usr/include/sys/unistd.h:# endif /* _POSIX_C_SOURCE < 199506L */
/usr/include/sys/unistd.h:# endif /* _POSIX_C_SOURCE && _POSIX_C_SOURCE >=
199309L */
Which symbols are gone from your Pov? I can double check in the header
files for you.
Michael