From: Bruno Haible Date: Sun, 24 Jan 2021 09:12:00 +0000 (+0100) Subject: getcwd: Fix cross-compilation guess for musl libc. X-Git-Tag: v1.0~3125 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=6bb37d981199eb9df92bd44cc57471b8f845a7b8;p=gnulib.git getcwd: Fix cross-compilation guess for musl libc. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Guess no also on musl libc. * doc/posix-functions/getcwd.texi: Update platform info. --- diff --git a/ChangeLog b/ChangeLog index e451f33680..12bb66a4ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2021-01-24 Bruno Haible + + getcwd: Fix cross-compilation guess for musl libc. + * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Guess no also on + musl libc. + * doc/posix-functions/getcwd.texi: Update platform info. + 2021-01-24 Bruno Haible expm1l: Fix configure test result with GCC 10 on powerpc64le. diff --git a/doc/posix-functions/getcwd.texi b/doc/posix-functions/getcwd.texi index 9ca0ae377e..9a4cf1e8bd 100644 --- a/doc/posix-functions/getcwd.texi +++ b/doc/posix-functions/getcwd.texi @@ -38,7 +38,7 @@ Portability problems fixed by Gnulib module @code{getcwd}: @item This function does not handle long file names (greater than @code{PATH_MAX}) correctly on some platforms: -glibc on Linux 2.4.20, Mac OS X 10.13, FreeBSD 6.4, NetBSD 9.0, OpenBSD 4.9, AIX 7.1. +glibc on Linux 2.4.20, musl libc 1.2.2/powerpc64le, Mac OS X 10.13, FreeBSD 6.4, NetBSD 9.0, OpenBSD 6.7, AIX 7.1. @end itemize Portability problems not fixed by Gnulib: diff --git a/m4/getcwd-abort-bug.m4 b/m4/getcwd-abort-bug.m4 index 89d068996b..bd32de1b79 100644 --- a/m4/getcwd-abort-bug.m4 +++ b/m4/getcwd-abort-bug.m4 @@ -1,4 +1,4 @@ -# serial 15 +# serial 16 # Determine whether getcwd aborts when the length of the working directory # name is unusually large. Any length between 4k and 16k trigger the bug # when using glibc-2.4.90-9 or older. @@ -128,11 +128,12 @@ main () ]])], [gl_cv_func_getcwd_succeeds_beyond_4k=yes], [dnl An abort will provoke an exit code of something like 134 (128 + 6). - dnl An exit code of 4 can also occur (in OpenBSD 6.7, NetBSD 5.1 for - dnl example): getcwd (NULL, 0) fails rather than returning a string - dnl longer than PATH_MAX. This may be POSIX compliant (in some - dnl interpretations of POSIX). But gnulib's getcwd module wants to - dnl provide a non-NULL value in this case. + dnl An exit code of 4 can also occur (for example in + dnl musl libc 1.2.2/powerpc64le, NetBSD 9.0, OpenBSD 6.7: + dnl getcwd (NULL, 0) fails rather than returning a string longer than + dnl PATH_MAX. This may be POSIX compliant (in some interpretations of + dnl POSIX). But gnulib's getcwd module wants to provide a non-NULL + dnl value in this case. ret=$? if test $ret -ge 128 || test $ret = 4; then gl_cv_func_getcwd_succeeds_beyond_4k=no @@ -141,10 +142,8 @@ main () fi ], [case "$host_os" in - # Guess yes on musl systems. - *-musl*) gl_cv_func_getcwd_succeeds_beyond_4k="guessing yes" ;; - # Guess no otherwise, even on glibc systems. - *) gl_cv_func_getcwd_succeeds_beyond_4k="guessing no" + # Guess no otherwise, even on glibc systems and musl systems. + *) gl_cv_func_getcwd_succeeds_beyond_4k="guessing no" esac ]) ])