From: Bruno Haible Date: Thu, 1 Aug 2024 11:52:30 +0000 (+0200) Subject: Ensure consistent effects of _LINUX_SOURCE_COMPAT. X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=34bd9be12b748f81ed0b568673e82a286a4f1c6f;p=gnulib.git Ensure consistent effects of _LINUX_SOURCE_COMPAT. * modules/extensions (configure.ac-early): New section. * m4/extensions-aix.m4: New file. * modules/extensions-aix: New file. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Require gl_USE_AIX_EXTENSIONS, instead of defining _LINUX_SOURCE_COMPAT at this stage. * m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Likewise. * m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Likewise. * m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Likewise. * m4/scandir.m4 (gl_FUNC_SCANDIR): Likewise. * modules/errno (Depends-on): Add extensions-aix. * modules/malloc-gnu (Depends-on): Likewise. * modules/calloc-gnu (Depends-on): Likewise. * modules/realloc-gnu (Depends-on): Likewise. * modules/scandir (Depends-on): Likewise. --- diff --git a/ChangeLog b/ChangeLog index 9acef580e3..964e07c9ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2024-08-01 Bruno Haible + + Ensure consistent effects of _LINUX_SOURCE_COMPAT. + * modules/extensions (configure.ac-early): New section. + * m4/extensions-aix.m4: New file. + * modules/extensions-aix: New file. + * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Require gl_USE_AIX_EXTENSIONS, + instead of defining _LINUX_SOURCE_COMPAT at this stage. + * m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Likewise. + * m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Likewise. + * m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Likewise. + * m4/scandir.m4 (gl_FUNC_SCANDIR): Likewise. + * modules/errno (Depends-on): Add extensions-aix. + * modules/malloc-gnu (Depends-on): Likewise. + * modules/calloc-gnu (Depends-on): Likewise. + * modules/realloc-gnu (Depends-on): Likewise. + * modules/scandir (Depends-on): Likewise. + 2024-08-01 Bruno Haible strerror_r: Fix for AIX (regression yesterday). diff --git a/m4/calloc.m4 b/m4/calloc.m4 index 0fbd0d8090..6d9a808dbf 100644 --- a/m4/calloc.m4 +++ b/m4/calloc.m4 @@ -1,5 +1,5 @@ # calloc.m4 -# serial 32 +# serial 33 dnl Copyright (C) 2004-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -60,8 +60,7 @@ AC_DEFUN([gl_FUNC_CALLOC_GNU], AC_REQUIRE([gl_FUNC_CALLOC_POSIX]) dnl This helps if !(__VEC__ || __AIXVEC), and shouldn't hurt otherwise. - AC_DEFINE([_LINUX_SOURCE_COMPAT], [1], - [Define so that AIX headers are more compatible with GNU/Linux.]) + AC_REQUIRE([gl_USE_AIX_EXTENSIONS]) REPLACE_CALLOC_FOR_CALLOC_GNU="$REPLACE_CALLOC_FOR_CALLOC_POSIX" if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 0; then diff --git a/m4/errno_h.m4 b/m4/errno_h.m4 index f6a2e81b5d..9738a49f19 100644 --- a/m4/errno_h.m4 +++ b/m4/errno_h.m4 @@ -1,5 +1,5 @@ # errno_h.m4 -# serial 15 +# serial 16 dnl Copyright (C) 2004, 2006, 2008-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -12,8 +12,7 @@ AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], AC_REQUIRE([AC_PROG_CC]) dnl Persuade AIX 7.3 errno.h to make EEXIST != ENOTEMPTY. - AC_DEFINE([_LINUX_SOURCE_COMPAT], [1], - [Define so that AIX headers are more compatible with GNU/Linux.]) + AC_REQUIRE([gl_USE_AIX_EXTENSIONS]) AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [ AC_EGREP_CPP([booboo],[ diff --git a/m4/extensions-aix.m4 b/m4/extensions-aix.m4 new file mode 100644 index 0000000000..990a7ac3ef --- /dev/null +++ b/m4/extensions-aix.m4 @@ -0,0 +1,25 @@ +# extensions-aix.m4 +# serial 1 +dnl Copyright (C) 2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# On AIX, most extensions are already enabled through the _ALL_SOURCE macro, +# defined by gl_USE_SYSTEM_EXTENSIONS. gl_USE_AIX_EXTENSIONS additionally +# activates more GNU and Linux-like behaviours, affecting +# - the time_t type, +# - errno values in : ENOTEMPTY +# - functions in : malloc calloc realloc valloc +# +# - functions in : strerror_r (returns 'char *', like glibc) +# - functions in : scandir, alphasort, readdir_r +# - functions in : gethostbyname_r gethostbyaddr_r +# - declarations in : sbrk +# and a couple of secondary header files. + +AC_DEFUN_ONCE([gl_USE_AIX_EXTENSIONS], +[ + AC_DEFINE([_LINUX_SOURCE_COMPAT], [1], + [Define so that AIX headers are more compatible with GNU/Linux.]) +]) diff --git a/m4/malloc.m4 b/m4/malloc.m4 index a410a5c24f..4a71b060b9 100644 --- a/m4/malloc.m4 +++ b/m4/malloc.m4 @@ -1,5 +1,5 @@ # malloc.m4 -# serial 32 +# serial 33 dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -47,8 +47,7 @@ AC_DEFUN([gl_FUNC_MALLOC_GNU], AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) dnl This helps if !(__VEC__ || __AIXVEC), and shouldn't hurt otherwise. - AC_DEFINE([_LINUX_SOURCE_COMPAT], [1], - [Define so that AIX headers are more compatible with GNU/Linux.]) + AC_REQUIRE([gl_USE_AIX_EXTENSIONS]) REPLACE_MALLOC_FOR_MALLOC_GNU="$REPLACE_MALLOC_FOR_MALLOC_POSIX" if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 0; then diff --git a/m4/realloc.m4 b/m4/realloc.m4 index 13bb28ce9d..b3ec43a8a7 100644 --- a/m4/realloc.m4 +++ b/m4/realloc.m4 @@ -1,5 +1,5 @@ # realloc.m4 -# serial 30 +# serial 31 dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -47,8 +47,7 @@ AC_DEFUN([gl_FUNC_REALLOC_GNU], AC_REQUIRE([gl_FUNC_REALLOC_POSIX]) dnl This helps if !(__VEC__ || __AIXVEC), and shouldn't hurt otherwise. - AC_DEFINE([_LINUX_SOURCE_COMPAT], [1], - [Define so that AIX headers are more compatible with GNU/Linux.]) + AC_REQUIRE([gl_USE_AIX_EXTENSIONS]) if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then _AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC_FOR_REALLOC_GNU=1]) diff --git a/m4/scandir.m4 b/m4/scandir.m4 index 192ac5f154..c8673fc880 100644 --- a/m4/scandir.m4 +++ b/m4/scandir.m4 @@ -1,5 +1,5 @@ # scandir.m4 -# serial 3 +# serial 4 dnl Copyright (C) 2009-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -12,8 +12,7 @@ AC_DEFUN([gl_FUNC_SCANDIR], dnl Persuade glibc and Solaris to declare scandir(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) - AC_DEFINE([_LINUX_SOURCE_COMPAT], [1], - [Define so that AIX headers are more compatible with GNU/Linux.]) + AC_REQUIRE([gl_USE_AIX_EXTENSIONS]) AC_CHECK_FUNCS([scandir]) if test $ac_cv_func_scandir = no; then diff --git a/modules/calloc-gnu b/modules/calloc-gnu index 278df7325e..f3fb393e53 100644 --- a/modules/calloc-gnu +++ b/modules/calloc-gnu @@ -7,6 +7,7 @@ m4/calloc.m4 Depends-on: calloc-posix +extensions-aix xalloc-oversized [test $REPLACE_CALLOC_FOR_CALLOC_GNU = 1] configure.ac: diff --git a/modules/errno b/modules/errno index e245492124..385985feab 100644 --- a/modules/errno +++ b/modules/errno @@ -8,6 +8,7 @@ m4/errno_h.m4 Depends-on: gen-header include_next +extensions-aix configure.ac: gl_HEADER_ERRNO_H diff --git a/modules/extensions b/modules/extensions index b7e37bb4f5..85e7421edb 100644 --- a/modules/extensions +++ b/modules/extensions @@ -6,6 +6,10 @@ m4/extensions.m4 Depends-on: +configure.ac-early: +# This is actually already done in the pre-early phase. +# AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + configure.ac: Makefile.am: diff --git a/modules/extensions-aix b/modules/extensions-aix new file mode 100644 index 0000000000..783dc4955d --- /dev/null +++ b/modules/extensions-aix @@ -0,0 +1,22 @@ +Description: +Enable extensions in AIX standard headers + +Files: +m4/extensions-aix.m4 + +Depends-on: + +configure.ac-early: +AC_REQUIRE([gl_USE_AIX_EXTENSIONS]) + +configure.ac: + +Makefile.am: + +Include: + +License: +LGPLv2+ + +Maintainer: +all diff --git a/modules/malloc-gnu b/modules/malloc-gnu index b0fa1739e8..95227241d0 100644 --- a/modules/malloc-gnu +++ b/modules/malloc-gnu @@ -6,6 +6,7 @@ lib/malloc.c Depends-on: malloc-posix +extensions-aix xalloc-oversized [test $REPLACE_MALLOC_FOR_MALLOC_GNU = 1] configure.ac: diff --git a/modules/realloc-gnu b/modules/realloc-gnu index b06a237dd3..ff0f838b99 100644 --- a/modules/realloc-gnu +++ b/modules/realloc-gnu @@ -6,6 +6,7 @@ lib/realloc.c Depends-on: realloc-posix +extensions-aix free-posix [test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1] malloc-gnu [test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1] xalloc-oversized [test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1] diff --git a/modules/scandir b/modules/scandir index eefdfa7cff..fa58900904 100644 --- a/modules/scandir +++ b/modules/scandir @@ -10,6 +10,7 @@ builtin-expect closedir dirent extensions +extensions-aix largefile opendir readdir