]> Savannah Git Hosting - gnulib.git/commitdiff
fcntl-h: port better to musl on GNU/Linux
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 8 Jan 2025 08:32:23 +0000 (00:32 -0800)
committerBruno Haible <bruno@clisp.org>
Sat, 18 Jan 2025 08:08:13 +0000 (09:08 +0100)
* lib/fcntl.in.h (O_SEARCH): Redefine to O_RDONLY on musl,
which mistakenly defines it to be O_PATH on GNU/Linux.
Problem reported by Lasse Collin in:
https://bugs.gnu.org/75405

ChangeLog
lib/fcntl.in.h

index 08b0b6f8f2f3615ba92cf155573e77a0d1945d3f..ad37cb17e76ba8c70ab2ab0aeb58a390081d0bfa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2025-01-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fcntl-h: port better to musl on GNU/Linux
+       * lib/fcntl.in.h (O_SEARCH): Redefine to O_RDONLY on musl,
+       which mistakenly defines it to be O_PATH on GNU/Linux.
+       Problem reported by Lasse Collin in:
+       https://bugs.gnu.org/75405
+
 2025-01-06  Collin Funk  <collin.funk1@gmail.com>
 
        servent tests: Fix failure on 32-bit native Windows.
index 5f06c4fe10fcf58977bc1bf8e2907d167be7b405..ac61c0865a499afffc2fd6718c646d6c0882697d 100644 (file)
@@ -369,8 +369,12 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 # define O_RSYNC 0
 #endif
 
+#if defined O_SEARCH && defined O_PATH && O_SEARCH == O_PATH
+# undef O_SEARCH /* musl mistakenly #defines O_SEARCH to O_PATH.  */
+#endif
+
 #ifndef O_SEARCH
-# define O_SEARCH O_RDONLY /* This is often close enough in older systems.  */
+# define O_SEARCH O_RDONLY /* Often close enough in non-POSIX systems.  */
 #endif
 
 #ifndef O_SYNC