bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] fchdir: port 'open' and 'close' redefinitions to AIX 7.1


From: Paul Eggert
Subject: [PATCH] fchdir: port 'open' and 'close' redefinitions to AIX 7.1
Date: Thu, 22 May 2014 00:05:01 -0700

* lib/chown.c, lib/clean-temp.c, lib/copy-file.c, lib/execute.c:
* lib/fsusage.c, lib/gc-gnulib.c, lib/javacomp.c, lib/mountlist.c:
* lib/openat-proc.c, lib/pagealign_alloc.c, lib/progreloc.c:
* lib/spawn-pipe.c:
Do not #undef 'open' and 'close'.  AIX 7 does '#define open open64'
and then 'int open64(const char *, int, ...);', which means the
declaration for 'open' gets lost if we later '#undef open'.
Discovered while building grep pretest 2.18.151-1c770 on AIX 7.1,
where the compilation reported the non-fatal error "In function
'openat_proc_name' ... warning: implicit declaration of function
'open'".  In this case the error is relatively harmless, but in
other cases it might not be so minor.
---
 ChangeLog             | 16 ++++++++++++++++
 lib/chown.c           |  5 -----
 lib/clean-temp.c      |  7 -------
 lib/copy-file.c       |  5 -----
 lib/execute.c         |  5 -----
 lib/fsusage.c         |  5 -----
 lib/gc-gnulib.c       |  5 -----
 lib/javacomp.c        |  5 -----
 lib/mountlist.c       |  5 -----
 lib/openat-proc.c     |  8 --------
 lib/pagealign_alloc.c |  5 -----
 lib/progreloc.c       |  5 -----
 lib/spawn-pipe.c      |  5 -----
 13 files changed, 16 insertions(+), 65 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 488a0da..35ddc05 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2014-05-21  Paul Eggert  <address@hidden>
+
+       fchdir: port 'open' and 'close' redefinitions to AIX 7.1
+       * lib/chown.c, lib/clean-temp.c, lib/copy-file.c, lib/execute.c:
+       * lib/fsusage.c, lib/gc-gnulib.c, lib/javacomp.c, lib/mountlist.c:
+       * lib/openat-proc.c, lib/pagealign_alloc.c, lib/progreloc.c:
+       * lib/spawn-pipe.c:
+       Do not #undef 'open' and 'close'.  AIX 7 does '#define open open64'
+       and then 'int open64(const char *, int, ...);', which means the
+       declaration for 'open' gets lost if we later '#undef open'.
+       Discovered while building grep pretest 2.18.151-1c770 on AIX 7.1,
+       where the compilation reported the non-fatal error "In function
+       'openat_proc_name' ... warning: implicit declaration of function
+       'open'".  In this case the error is relatively harmless, but in
+       other cases it might not be so minor.
+
 2014-05-20  Paul Eggert  <address@hidden>
 
        xalloc: don't potentially generate invalid code for xmemdup calls
diff --git a/lib/chown.c b/lib/chown.c
index 1503841..691cebe 100644
--- a/lib/chown.c
+++ b/lib/chown.c
@@ -45,11 +45,6 @@ chown (const char *file _GL_UNUSED, uid_t uid _GL_UNUSED,
 /* Below we refer to the system's chown().  */
 # undef chown
 
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-# undef open
-# undef close
-
 /* Provide a more-closely POSIX-conforming version of chown on
    systems with one or both of the following problems:
    - chown doesn't treat an ID of -1 as meaning
diff --git a/lib/clean-temp.c b/lib/clean-temp.c
index 5e400d5..057700a 100644
--- a/lib/clean-temp.c
+++ b/lib/clean-temp.c
@@ -69,13 +69,6 @@
 # define uintptr_t unsigned long
 #endif
 
-#if !GNULIB_FCNTL_SAFER
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-# undef open
-# undef close
-#endif
-
 
 /* The use of 'volatile' in the types below (and ISO C 99 section 5.1.2.3.(5))
    ensure that while constructing or modifying the data structures, the field
diff --git a/lib/copy-file.c b/lib/copy-file.c
index 04d518d..488cc94 100644
--- a/lib/copy-file.c
+++ b/lib/copy-file.c
@@ -48,11 +48,6 @@
 
 #define _(str) gettext (str)
 
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-#undef open
-#undef close
-
 enum { IO_SIZE = 32 * 1024 };
 
 int
diff --git a/lib/execute.c b/lib/execute.c
index e7b4496..15a487b 100644
--- a/lib/execute.c
+++ b/lib/execute.c
@@ -48,11 +48,6 @@
 
 #endif
 
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-#undef open
-#undef close
-
 
 #if defined EINTR && ((defined _WIN32 || defined __WIN32__) && ! defined 
__CYGWIN__)
 
diff --git a/lib/fsusage.c b/lib/fsusage.c
index 6b8f742..5bfc9cd 100644
--- a/lib/fsusage.c
+++ b/lib/fsusage.c
@@ -55,11 +55,6 @@
 # include "full-read.h"
 #endif
 
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-#undef open
-#undef close
-
 /* Many space usage primitives use all 1 bits to denote a value that is
    not applicable or unknown.  Propagate this information by returning
    a uintmax_t value that is all 1 bits if X is all 1 bits, even if X
diff --git a/lib/gc-gnulib.c b/lib/gc-gnulib.c
index 573cc98..dcd368b 100644
--- a/lib/gc-gnulib.c
+++ b/lib/gc-gnulib.c
@@ -66,11 +66,6 @@
 # include "rijndael-api-fst.h"
 #endif
 
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-#undef open
-#undef close
-
 #ifdef GNULIB_GC_RANDOM
 # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 #  include <windows.h>
diff --git a/lib/javacomp.c b/lib/javacomp.c
index 6a15f10..f54fb59 100644
--- a/lib/javacomp.c
+++ b/lib/javacomp.c
@@ -51,11 +51,6 @@
 
 #define _(str) gettext (str)
 
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-#undef open
-#undef close
-
 
 /* Survey of Java compilers.
 
diff --git a/lib/mountlist.c b/lib/mountlist.c
index d59c993..78af951 100644
--- a/lib/mountlist.c
+++ b/lib/mountlist.c
@@ -143,11 +143,6 @@
 # include "unlocked-io.h"
 #endif
 
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-#undef open
-#undef close
-
 /* The results of opendir() in this file are not used with dirfd and fchdir,
    therefore save some unnecessary work in fchdir.c.  */
 #undef opendir
diff --git a/lib/openat-proc.c b/lib/openat-proc.c
index 6a4f6ad..7b40bb8 100644
--- a/lib/openat-proc.c
+++ b/lib/openat-proc.c
@@ -32,14 +32,6 @@
 
 #include "intprops.h"
 
-/* The results of open() in this file are not used with fchdir,
-   and we do not leak fds to any single-threaded code that could use stdio,
-   therefore save some unnecessary work in fchdir.c.
-   FIXME - if the kernel ever adds support for multi-thread safety for
-   avoiding standard fds, then we should use open_safer.  */
-#undef open
-#undef close
-
 #define PROC_SELF_FD_FORMAT "/proc/self/fd/%d/%s"
 
 #define PROC_SELF_FD_NAME_SIZE_BOUND(len) \
diff --git a/lib/pagealign_alloc.c b/lib/pagealign_alloc.c
index 94a85fc..f7fa825 100644
--- a/lib/pagealign_alloc.c
+++ b/lib/pagealign_alloc.c
@@ -48,11 +48,6 @@
 # endif
 #endif
 
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-#undef open
-#undef close
-
 
 #if HAVE_MMAP || ! HAVE_POSIX_MEMALIGN
 
diff --git a/lib/progreloc.c b/lib/progreloc.c
index dcfe309..3d7b6a9 100644
--- a/lib/progreloc.c
+++ b/lib/progreloc.c
@@ -89,11 +89,6 @@ extern char * canonicalize_file_name (const char *name);
 # define FILE_SYSTEM_PREFIX_LEN(P) 0
 #endif
 
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-#undef open
-#undef close
-
 /* Use the system functions, not the gnulib overrides in this file.  */
 #undef sprintf
 
diff --git a/lib/spawn-pipe.c b/lib/spawn-pipe.c
index b3f9e0c..656980d 100644
--- a/lib/spawn-pipe.c
+++ b/lib/spawn-pipe.c
@@ -48,11 +48,6 @@
 
 #endif
 
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-#undef open
-#undef close
-
 
 #ifdef EINTR
 
-- 
1.9.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]