mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-17 12:41:05 +03:00
openat: declare in POSIX headers
* NEWS: Mention this. * modules/openat (configure.ac): Declare witnesses. (Depends-on): Add fcntl-h, sys_stat, unistd. (Include): Mention correct headers. * modules/fcntl-h (Depends-on): Add link-warning. (Files): Add openat.m4. (Makefile.am): Substitute witnesses. * modules/sys_stat (Files, Makefile.am): Likewise. * modules/unistd (Files, Makefile.am): Likewise. * m4/openat.m4 (gl_FUNC_OPENAT, gl_FUNC_FCHOWNAT): Set witnesses. (gl_OPENAT_DEFAULTS): New macro. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Use it. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Likewise. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Likewise. (SYS_STAT_H): Remove unused variable. * doc/posix-headers/fcntl.texi (fcntl.h): Update content. * lib/fcntl--.h (includes): Remove unneeded header. * lib/openat-safer.c (includes): Likewise. * lib/openat.h (AT_FDCWD, AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR) (openat, fstatat, unlinkat, mkdirat, fchmodat, fchownat): Move to appropriate headers. (__OPENAT_PREFIX): Delete. * lib/fcntl.in.h (openat): Provide declaration. (AT_FDCWD): Fix Solaris bug. (AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR): Provide macros. * lib/sys_stat.in.h (fstatat, mkdirat): Provide declaration. * lib/fchmodat.c (includes): Adjust to find declaration. * lib/fchownat.c (includes): Likewise. * lib/mkdirat.c (includes): Likewise. * lib/fstatat.c (includes): Likewise. Ensure original fstatat is still visible. Signed-off-by: Eric Blake <ebb9@byu.net>
This commit is contained in:
35
ChangeLog
35
ChangeLog
@@ -1,3 +1,38 @@
|
|||||||
|
2009-09-03 Eric Blake <ebb9@byu.net>
|
||||||
|
|
||||||
|
openat: declare in POSIX headers
|
||||||
|
* NEWS: Mention this.
|
||||||
|
* modules/openat (configure.ac): Declare witnesses.
|
||||||
|
(Depends-on): Add fcntl-h, sys_stat, unistd.
|
||||||
|
(Include): Mention correct headers.
|
||||||
|
* modules/fcntl-h (Depends-on): Add link-warning.
|
||||||
|
(Files): Add openat.m4.
|
||||||
|
(Makefile.am): Substitute witnesses.
|
||||||
|
* modules/sys_stat (Files, Makefile.am): Likewise.
|
||||||
|
* modules/unistd (Files, Makefile.am): Likewise.
|
||||||
|
* m4/openat.m4 (gl_FUNC_OPENAT, gl_FUNC_FCHOWNAT): Set witnesses.
|
||||||
|
(gl_OPENAT_DEFAULTS): New macro.
|
||||||
|
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Use it.
|
||||||
|
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Likewise.
|
||||||
|
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Likewise.
|
||||||
|
(SYS_STAT_H): Remove unused variable.
|
||||||
|
* doc/posix-headers/fcntl.texi (fcntl.h): Update content.
|
||||||
|
* lib/fcntl--.h (includes): Remove unneeded header.
|
||||||
|
* lib/openat-safer.c (includes): Likewise.
|
||||||
|
* lib/openat.h (AT_FDCWD, AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR)
|
||||||
|
(openat, fstatat, unlinkat, mkdirat, fchmodat, fchownat): Move to
|
||||||
|
appropriate headers.
|
||||||
|
(__OPENAT_PREFIX): Delete.
|
||||||
|
* lib/fcntl.in.h (openat): Provide declaration.
|
||||||
|
(AT_FDCWD): Fix Solaris bug.
|
||||||
|
(AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR): Provide macros.
|
||||||
|
* lib/sys_stat.in.h (fstatat, mkdirat): Provide declaration.
|
||||||
|
* lib/fchmodat.c (includes): Adjust to find declaration.
|
||||||
|
* lib/fchownat.c (includes): Likewise.
|
||||||
|
* lib/mkdirat.c (includes): Likewise.
|
||||||
|
* lib/fstatat.c (includes): Likewise. Ensure original fstatat is
|
||||||
|
still visible.
|
||||||
|
|
||||||
2009-09-02 Eric Blake <ebb9@byu.net>
|
2009-09-02 Eric Blake <ebb9@byu.net>
|
||||||
|
|
||||||
errno: use consistently
|
errno: use consistently
|
||||||
|
10
NEWS
10
NEWS
@@ -6,7 +6,15 @@ User visible incompatible changes
|
|||||||
|
|
||||||
Date Modules Changes
|
Date Modules Changes
|
||||||
|
|
||||||
2009-09-30 striconveh The functions mem_cd_iconveh and str_cd_iconveh
|
2009-09-03 openat The include files are standardized to POSIX 2008.
|
||||||
|
For openat, include <fcntl.h>; for
|
||||||
|
fchmodat, fstatat, and mkdirat, include
|
||||||
|
<sys/stat.h>; for fchownat and unlinkat,
|
||||||
|
include <unistd.h>. For all other
|
||||||
|
functions provided by this module,
|
||||||
|
continue to include "openat.h".
|
||||||
|
|
||||||
|
2009-08-30 striconveh The functions mem_cd_iconveh and str_cd_iconveh
|
||||||
now take an 'iconveh_t *' argument instead of three
|
now take an 'iconveh_t *' argument instead of three
|
||||||
iconv_t arguments.
|
iconv_t arguments.
|
||||||
|
|
||||||
|
@@ -27,7 +27,13 @@ on some platforms but not on others.
|
|||||||
mingw
|
mingw
|
||||||
|
|
||||||
@item
|
@item
|
||||||
@samp{AT_FDCWD} and friends are provided by modules like openat.
|
@samp{AT_FDCWD} is defined with a value too large for an int on some
|
||||||
|
platforms:
|
||||||
|
Solaris 10
|
||||||
|
|
||||||
|
@item
|
||||||
|
@samp{AT_FDCWD}, @samp{AT_SYMLINK_NOFOLLOW}, and @samp{AT_REMOVEDIR}
|
||||||
|
are missing on some platforms.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Portability problems not fixed by Gnulib:
|
Portability problems not fixed by Gnulib:
|
||||||
@@ -55,4 +61,7 @@ on some platforms.
|
|||||||
@samp{POSIX_FADV_NORMAL}, @samp{POSIX_FADV_RANDOM},
|
@samp{POSIX_FADV_NORMAL}, @samp{POSIX_FADV_RANDOM},
|
||||||
@samp{POSIX_FADV_SEQUENTIAL}, and @samp{POSIX_FADV_WILLNEED} are not
|
@samp{POSIX_FADV_SEQUENTIAL}, and @samp{POSIX_FADV_WILLNEED} are not
|
||||||
defined on some platforms.
|
defined on some platforms.
|
||||||
|
|
||||||
|
@item
|
||||||
|
@samp{AT_EACCESS} and @samp{AT_SYMLINK_FOLLOW} are missing on some platforms.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/* Change the protections of file relative to an open directory.
|
/* Change the protections of file relative to an open directory.
|
||||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
Copyright (C) 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -18,10 +18,12 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include "openat.h"
|
#include <sys/stat.h>
|
||||||
|
|
||||||
#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
|
#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
|
||||||
#include "save-cwd.h"
|
#include "openat.h"
|
||||||
#include "openat-priv.h"
|
#include "openat-priv.h"
|
||||||
|
#include "save-cwd.h"
|
||||||
|
|
||||||
#ifndef HAVE_LCHMOD
|
#ifndef HAVE_LCHMOD
|
||||||
/* Use a different name, to avoid conflicting with any
|
/* Use a different name, to avoid conflicting with any
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
when the buggy fchownat-with-AT_SYMLINK_NOFOLLOW operates on a symlink, it
|
when the buggy fchownat-with-AT_SYMLINK_NOFOLLOW operates on a symlink, it
|
||||||
mistakenly affects the symlink referent, rather than the symlink itself.
|
mistakenly affects the symlink referent, rather than the symlink itself.
|
||||||
|
|
||||||
Copyright (C) 2006-2007 Free Software Foundation, Inc.
|
Copyright (C) 2006-2007, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -23,13 +23,12 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include "openat.h"
|
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
|
#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
|
||||||
#include "save-cwd.h"
|
#include "openat.h"
|
||||||
#include "openat-priv.h"
|
#include "openat-priv.h"
|
||||||
|
#include "save-cwd.h"
|
||||||
|
|
||||||
/* Replacement for Solaris' function by the same name.
|
/* Replacement for Solaris' function by the same name.
|
||||||
Invoke chown or lchown on file, FILE, using OWNER and GROUP, in the
|
Invoke chown or lchown on file, FILE, using OWNER and GROUP, in the
|
||||||
|
@@ -27,7 +27,6 @@
|
|||||||
#define creat creat_safer
|
#define creat creat_safer
|
||||||
|
|
||||||
#if GNULIB_OPENAT_SAFER
|
#if GNULIB_OPENAT_SAFER
|
||||||
# include "openat.h" /* FIXME - <fcntl.h> should be sufficient. */
|
|
||||||
# undef openat
|
# undef openat
|
||||||
# define openat openat_safer
|
# define openat openat_safer
|
||||||
#endif
|
#endif
|
||||||
|
@@ -44,6 +44,9 @@
|
|||||||
#define _GL_FCNTL_H
|
#define _GL_FCNTL_H
|
||||||
|
|
||||||
|
|
||||||
|
/* The definition of GL_LINK_WARNING is copied here. */
|
||||||
|
|
||||||
|
|
||||||
/* Declare overridden functions. */
|
/* Declare overridden functions. */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@@ -58,6 +61,20 @@ extern int open (const char *filename, int flags, ...);
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if @GNULIB_OPENAT@
|
||||||
|
# if !@HAVE_OPENAT@
|
||||||
|
# undef openat
|
||||||
|
# define openat rpl_openat
|
||||||
|
int openat (int fd, char const *file, int flags, /* mode_t mode */ ...);
|
||||||
|
# endif
|
||||||
|
#elif defined GNULIB_POSIXCHECK
|
||||||
|
# undef openat
|
||||||
|
# define openat(f,u,g) \
|
||||||
|
(GL_LINK_WARNING ("openat is not portable - " \
|
||||||
|
"use gnulib module openat for portability"), \
|
||||||
|
openat)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -148,6 +165,33 @@ extern int open (const char *filename, int flags, ...);
|
|||||||
# define O_TEXT 0
|
# define O_TEXT 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Fix up the AT_* macros. */
|
||||||
|
|
||||||
|
/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its
|
||||||
|
value exceeds INT_MAX, so its use as an int doesn't conform to the
|
||||||
|
C standard, and GCC and Sun C complain in some cases. If the bug
|
||||||
|
is present, undef AT_FDCWD here, so it can be redefined below. */
|
||||||
|
#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553
|
||||||
|
# undef AT_FDCWD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Use the same bit pattern as Solaris 9, but with the proper
|
||||||
|
signedness. The bit pattern is important, in case this actually is
|
||||||
|
Solaris with the above workaround. */
|
||||||
|
#ifndef AT_FDCWD
|
||||||
|
# define AT_FDCWD (-3041965)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Use the same values as Solaris 9. This shouldn't matter, but
|
||||||
|
there's no real reason to differ. */
|
||||||
|
#ifndef AT_SYMLINK_NOFOLLOW
|
||||||
|
# define AT_SYMLINK_NOFOLLOW 4096
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef AT_REMOVEDIR
|
||||||
|
# define AT_REMOVEDIR 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif /* _GL_FCNTL_H */
|
#endif /* _GL_FCNTL_H */
|
||||||
#endif /* _GL_FCNTL_H */
|
#endif /* _GL_FCNTL_H */
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/* Work around an fstatat bug on Solaris 9.
|
/* Work around an fstatat bug on Solaris 9.
|
||||||
|
|
||||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
Copyright (C) 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -19,12 +19,13 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#define COMPILING_FSTATAT 1
|
#include <sys/stat.h>
|
||||||
#include "openat.h"
|
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#undef fstatat
|
||||||
|
|
||||||
/* fstatat should always follow symbolic links that end in /, but on
|
/* fstatat should always follow symbolic links that end in /, but on
|
||||||
Solaris 9 it doesn't if AT_SYMLINK_NOFOLLOW is specified. This is
|
Solaris 9 it doesn't if AT_SYMLINK_NOFOLLOW is specified. This is
|
||||||
the same problem that lstat.c addresses, so solve it in a similar
|
the same problem that lstat.c addresses, so solve it in a similar
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/* fd-relative mkdir
|
/* fd-relative mkdir
|
||||||
Copyright (C) 2005, 2006 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -18,13 +18,12 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include "openat.h"
|
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
|
#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
|
||||||
#include "save-cwd.h"
|
#include "openat.h"
|
||||||
#include "openat-priv.h"
|
#include "openat-priv.h"
|
||||||
|
#include "save-cwd.h"
|
||||||
|
|
||||||
/* Solaris 10 has no function like this.
|
/* Solaris 10 has no function like this.
|
||||||
Create a subdirectory, FILE, with mode MODE, in the directory
|
Create a subdirectory, FILE, with mode MODE, in the directory
|
||||||
|
@@ -22,7 +22,6 @@
|
|||||||
#include "fcntl-safer.h"
|
#include "fcntl-safer.h"
|
||||||
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include "openat.h" /* FIXME - <fcntl.h> should be sufficient. */
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include "unistd-safer.h"
|
#include "unistd-safer.h"
|
||||||
|
|
||||||
|
45
lib/openat.h
45
lib/openat.h
@@ -37,42 +37,10 @@
|
|||||||
# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
|
# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its
|
#if !HAVE_OPENAT
|
||||||
value exceeds INT_MAX, so its use as an int doesn't conform to the
|
|
||||||
C standard, and GCC and Sun C complain in some cases. If the bug
|
|
||||||
is present, undef AT_FDCWD here, so it can be redefined below. */
|
|
||||||
#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553
|
|
||||||
# undef AT_FDCWD
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Use the same bit pattern as Solaris 9, but with the proper
|
|
||||||
signedness. The bit pattern is important, in case this actually is
|
|
||||||
Solaris with the above workaround. */
|
|
||||||
#ifndef AT_FDCWD
|
|
||||||
# define AT_FDCWD (-3041965)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Use the same values as Solaris 9. This shouldn't matter, but
|
|
||||||
there's no real reason to differ. */
|
|
||||||
#ifndef AT_SYMLINK_NOFOLLOW
|
|
||||||
# define AT_SYMLINK_NOFOLLOW 4096
|
|
||||||
# define AT_REMOVEDIR 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __OPENAT_PREFIX
|
|
||||||
|
|
||||||
# undef openat
|
|
||||||
# define __OPENAT_CONCAT(x, y) x ## y
|
|
||||||
# define __OPENAT_XCONCAT(x, y) __OPENAT_CONCAT (x, y)
|
|
||||||
# define __OPENAT_ID(y) __OPENAT_XCONCAT (__OPENAT_PREFIX, y)
|
|
||||||
# define openat __OPENAT_ID (openat)
|
|
||||||
int openat (int fd, char const *file, int flags, /* mode_t mode */ ...);
|
|
||||||
int openat_permissive (int fd, char const *file, int flags, mode_t mode,
|
int openat_permissive (int fd, char const *file, int flags, mode_t mode,
|
||||||
int *cwd_errno);
|
int *cwd_errno);
|
||||||
# define fstatat __OPENAT_ID (fstatat)
|
|
||||||
int fstatat (int fd, char const *file, struct stat *st, int flag);
|
|
||||||
# define unlinkat __OPENAT_ID (unlinkat)
|
|
||||||
int unlinkat (int fd, char const *file, int flag);
|
|
||||||
bool openat_needs_fchdir (void);
|
bool openat_needs_fchdir (void);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
@@ -83,19 +51,8 @@ bool openat_needs_fchdir (void);
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_OPENAT && ! LSTAT_FOLLOWS_SLASHED_SYMLINK
|
|
||||||
int rpl_fstatat (int fd, char const *file, struct stat *st, int flag);
|
|
||||||
# if !COMPILING_FSTATAT
|
|
||||||
# undef fstatat
|
|
||||||
# define fstatat rpl_fstatat
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int mkdirat (int fd, char const *file, mode_t mode);
|
|
||||||
void openat_restore_fail (int) ATTRIBUTE_NORETURN;
|
void openat_restore_fail (int) ATTRIBUTE_NORETURN;
|
||||||
void openat_save_fail (int) ATTRIBUTE_NORETURN;
|
void openat_save_fail (int) ATTRIBUTE_NORETURN;
|
||||||
int fchmodat (int fd, char const *file, mode_t mode, int flag);
|
|
||||||
int fchownat (int fd, char const *file, uid_t owner, gid_t group, int flag);
|
|
||||||
|
|
||||||
/* Using these function names makes application code
|
/* Using these function names makes application code
|
||||||
slightly more readable than it would be with
|
slightly more readable than it would be with
|
||||||
|
@@ -302,6 +302,41 @@ extern int rpl_lstat (const char *name, struct stat *buf);
|
|||||||
lstat (p, b))
|
lstat (p, b))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if @GNULIB_OPENAT@
|
||||||
|
# if @REPLACE_FSTATAT@
|
||||||
|
# undef fstatat
|
||||||
|
# define fstatat rpl_fstatat
|
||||||
|
# endif
|
||||||
|
# if !@HAVE_FSTATAT@ || @REPLACE_FSTATAT@
|
||||||
|
int fstatat (int fd, char const *name, struct stat *st, int flags);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if !@HAVE_FCHMODAT@
|
||||||
|
int fchmodat (int fd, char const *file, mode_t mode, int flag);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if !@HAVE_MKDIRAT@
|
||||||
|
int mkdirat (int fd, char const *file, mode_t mode);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined GNULIB_POSIXCHECK
|
||||||
|
# undef fchmodat
|
||||||
|
# define fchmodat(d,n,m,f) \
|
||||||
|
(GL_LINK_WARNING ("fchmodat is not portable - " \
|
||||||
|
"use gnulib module openat for portability"), \
|
||||||
|
fchmodat (d, n, m, f))
|
||||||
|
# undef fstatat
|
||||||
|
# define fstatat(d,n,s,f) \
|
||||||
|
(GL_LINK_WARNING ("fstatat is not portable - " \
|
||||||
|
"use gnulib module openat for portability"), \
|
||||||
|
fstatat (d, n, s, f))
|
||||||
|
# undef mkdirat
|
||||||
|
# define mkdirat(d,n,m) \
|
||||||
|
(GL_LINK_WARNING ("mkdirat is not portable - " \
|
||||||
|
"use gnulib module openat for portability"), \
|
||||||
|
mkdirat (d, n, m))
|
||||||
|
#endif /* @GNULIB_OPENAT@ */
|
||||||
|
|
||||||
#if @REPLACE_FCHDIR@
|
#if @REPLACE_FCHDIR@
|
||||||
# define fstat rpl_fstat
|
# define fstat rpl_fstat
|
||||||
extern int fstat (int fd, struct stat *buf);
|
extern int fstat (int fd, struct stat *buf);
|
||||||
|
@@ -138,6 +138,31 @@ extern int chown (const char *file, uid_t uid, gid_t gid);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if @GNULIB_OPENAT@
|
||||||
|
# if @REPLACE_FCHOWNAT@
|
||||||
|
# undef fchownat
|
||||||
|
# define fchownat rpl_fchownat
|
||||||
|
# endif
|
||||||
|
# if !@HAVE_FCHOWNAT@ || @REPLACE_FCHOWNAT@
|
||||||
|
int fchownat (int fd, char const *file, uid_t owner, gid_t group, int flag);
|
||||||
|
# endif
|
||||||
|
# if !@HAVE_UNLINKAT@
|
||||||
|
int unlinkat (int fd, char const *file, int flag);
|
||||||
|
# endif
|
||||||
|
#elif defined GNULIB_POSIXCHECK
|
||||||
|
# undef fchownat
|
||||||
|
# define fchownat(d,n,o,g,f) \
|
||||||
|
(GL_LINK_WARNING ("fchownat is not portable - " \
|
||||||
|
"use gnulib module openat for portability"), \
|
||||||
|
fchownat (d, n, o, g, f))
|
||||||
|
# undef unlinkat
|
||||||
|
# define unlinkat(d,n,f) \
|
||||||
|
(GL_LINK_WARNING ("unlinkat is not portable - " \
|
||||||
|
"use gnulib module openat for portability"), \
|
||||||
|
unlinkat (d, n, f))
|
||||||
|
#endif /* @GNULIB_OPENAT@ */
|
||||||
|
|
||||||
|
|
||||||
#if @GNULIB_CLOSE@
|
#if @GNULIB_CLOSE@
|
||||||
# if @REPLACE_CLOSE@
|
# if @REPLACE_CLOSE@
|
||||||
/* Automatically included by modules that need a replacement for close. */
|
/* Automatically included by modules that need a replacement for close. */
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
# serial 2
|
||||||
# Configure fcntl.h.
|
# Configure fcntl.h.
|
||||||
dnl Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
|
dnl Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
|
||||||
dnl This file is free software; the Free Software Foundation
|
dnl This file is free software; the Free Software Foundation
|
||||||
@@ -90,6 +91,7 @@ AC_DEFUN([gl_FCNTL_MODULE_INDICATOR],
|
|||||||
|
|
||||||
AC_DEFUN([gl_FCNTL_H_DEFAULTS],
|
AC_DEFUN([gl_FCNTL_H_DEFAULTS],
|
||||||
[
|
[
|
||||||
|
AC_REQUIRE([gl_OPENAT_DEFAULTS]) dnl for GNULIB_OPENAT
|
||||||
GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN])
|
GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN])
|
||||||
dnl Assume proper GNU behavior unless another module says otherwise.
|
dnl Assume proper GNU behavior unless another module says otherwise.
|
||||||
REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN])
|
REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN])
|
||||||
|
49
m4/openat.m4
49
m4/openat.m4
@@ -1,4 +1,4 @@
|
|||||||
# serial 19
|
# serial 20
|
||||||
# See if we need to use our replacement for Solaris' openat et al functions.
|
# See if we need to use our replacement for Solaris' openat et al functions.
|
||||||
|
|
||||||
dnl Copyright (C) 2004-2009 Free Software Foundation, Inc.
|
dnl Copyright (C) 2004-2009 Free Software Foundation, Inc.
|
||||||
@@ -17,13 +17,24 @@ AC_DEFUN([gl_FUNC_OPENAT],
|
|||||||
AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
|
AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
|
||||||
case $ac_cv_func_openat+$ac_cv_func_lstat_dereferences_slashed_symlink in
|
case $ac_cv_func_openat+$ac_cv_func_lstat_dereferences_slashed_symlink in
|
||||||
yes+yes) ;;
|
yes+yes) ;;
|
||||||
yes+*) AC_LIBOBJ([fstatat]);;
|
yes+*)
|
||||||
|
AC_LIBOBJ([fstatat])
|
||||||
|
REPLACE_FSTATAT=1
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
AC_DEFINE([__OPENAT_PREFIX], [[rpl_]],
|
HAVE_OPENAT=0
|
||||||
[Define to rpl_ if the openat replacement function should be used.])
|
HAVE_UNLINKAT=0 # No known system with unlinkat but not openat
|
||||||
|
HAVE_FSTATAT=0 # No known system with fstatat but not openat
|
||||||
gl_PREREQ_OPENAT;;
|
gl_PREREQ_OPENAT;;
|
||||||
esac
|
esac
|
||||||
|
if test $ac_cv_func_fchmodat != yes; then
|
||||||
|
HAVE_FCHMODAT=0
|
||||||
|
fi
|
||||||
|
if test $ac_cv_func_mkdirat != yes; then
|
||||||
|
HAVE_MKDIRAT=0
|
||||||
|
fi
|
||||||
gl_FUNC_FCHOWNAT
|
gl_FUNC_FCHOWNAT
|
||||||
|
GNULIB_OPENAT=1
|
||||||
])
|
])
|
||||||
|
|
||||||
# gl_FUNC_FCHOWNAT_DEREF_BUG([ACTION-IF-BUGGY[, ACTION-IF-NOT_BUGGY]])
|
# gl_FUNC_FCHOWNAT_DEREF_BUG([ACTION-IF-BUGGY[, ACTION-IF-NOT_BUGGY]])
|
||||||
@@ -68,19 +79,11 @@ main ()
|
|||||||
# Also use the replacement function if fchownat is simply not available.
|
# Also use the replacement function if fchownat is simply not available.
|
||||||
AC_DEFUN([gl_FUNC_FCHOWNAT],
|
AC_DEFUN([gl_FUNC_FCHOWNAT],
|
||||||
[
|
[
|
||||||
# Assume we'll use the replacement function.
|
AC_CHECK_FUNC([fchownat],
|
||||||
# The only case in which we won't is when we have fchownat, and it works.
|
[gl_FUNC_FCHOWNAT_DEREF_BUG([REPLACE_FCHOWNAT=1])],
|
||||||
use_replacement_fchownat=yes
|
[HAVE_FCHOWNAT=0])
|
||||||
|
if test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1; then
|
||||||
AC_CHECK_FUNC([fchownat], [have_fchownat=yes], [have_fchownat=no])
|
|
||||||
if test $have_fchownat = yes; then
|
|
||||||
gl_FUNC_FCHOWNAT_DEREF_BUG([], [use_replacement_fchownat=no])
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $use_replacement_fchownat = yes; then
|
|
||||||
AC_LIBOBJ([fchownat])
|
AC_LIBOBJ([fchownat])
|
||||||
AC_DEFINE([fchownat], [rpl_fchownat],
|
|
||||||
[Define to rpl_fchownat if the replacement function should be used.])
|
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
@@ -89,3 +92,17 @@ AC_DEFUN([gl_PREREQ_OPENAT],
|
|||||||
AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
|
AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
|
||||||
:
|
:
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([gl_OPENAT_DEFAULTS],
|
||||||
|
[
|
||||||
|
GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT])
|
||||||
|
dnl Assume proper GNU behavior unless another module says otherwise.
|
||||||
|
HAVE_FCHMODAT=1; AC_SUBST([HAVE_FCHMODAT])
|
||||||
|
HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT])
|
||||||
|
HAVE_FSTATAT=1; AC_SUBST([HAVE_FSTATAT])
|
||||||
|
HAVE_MKDIRAT=1; AC_SUBST([HAVE_MKDIRAT])
|
||||||
|
HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT])
|
||||||
|
HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT])
|
||||||
|
REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT])
|
||||||
|
REPLACE_FSTATAT=0; AC_SUBST([REPLACE_FSTATAT])
|
||||||
|
])
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
# sys_stat_h.m4 serial 11 -*- Autoconf -*-
|
# sys_stat_h.m4 serial 12 -*- Autoconf -*-
|
||||||
dnl Copyright (C) 2006-2009 Free Software Foundation, Inc.
|
dnl Copyright (C) 2006-2009 Free Software Foundation, Inc.
|
||||||
dnl This file is free software; the Free Software Foundation
|
dnl This file is free software; the Free Software Foundation
|
||||||
dnl gives unlimited permission to copy and/or distribute it,
|
dnl gives unlimited permission to copy and/or distribute it,
|
||||||
@@ -28,8 +28,6 @@ AC_DEFUN([gl_HEADER_SYS_STAT_H],
|
|||||||
AC_REQUIRE([AC_HEADER_STAT])
|
AC_REQUIRE([AC_HEADER_STAT])
|
||||||
|
|
||||||
gl_CHECK_NEXT_HEADERS([sys/stat.h])
|
gl_CHECK_NEXT_HEADERS([sys/stat.h])
|
||||||
SYS_STAT_H='sys/stat.h'
|
|
||||||
AC_SUBST([SYS_STAT_H])
|
|
||||||
|
|
||||||
dnl Define types that are supposed to be defined in <sys/types.h> or
|
dnl Define types that are supposed to be defined in <sys/types.h> or
|
||||||
dnl <sys/stat.h>.
|
dnl <sys/stat.h>.
|
||||||
@@ -51,6 +49,7 @@ AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR],
|
|||||||
AC_DEFUN([gl_SYS_STAT_H_DEFAULTS],
|
AC_DEFUN([gl_SYS_STAT_H_DEFAULTS],
|
||||||
[
|
[
|
||||||
AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR
|
AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR
|
||||||
|
AC_REQUIRE([gl_OPENAT_DEFAULTS]) dnl for GNULIB_OPENAT
|
||||||
GNULIB_LCHMOD=0; AC_SUBST([GNULIB_LCHMOD])
|
GNULIB_LCHMOD=0; AC_SUBST([GNULIB_LCHMOD])
|
||||||
GNULIB_LSTAT=0; AC_SUBST([GNULIB_LSTAT])
|
GNULIB_LSTAT=0; AC_SUBST([GNULIB_LSTAT])
|
||||||
dnl Assume proper GNU behavior unless another module says otherwise.
|
dnl Assume proper GNU behavior unless another module says otherwise.
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
# unistd_h.m4 serial 21
|
# unistd_h.m4 serial 22
|
||||||
dnl Copyright (C) 2006-2009 Free Software Foundation, Inc.
|
dnl Copyright (C) 2006-2009 Free Software Foundation, Inc.
|
||||||
dnl This file is free software; the Free Software Foundation
|
dnl This file is free software; the Free Software Foundation
|
||||||
dnl gives unlimited permission to copy and/or distribute it,
|
dnl gives unlimited permission to copy and/or distribute it,
|
||||||
@@ -32,6 +32,7 @@ AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
|
|||||||
|
|
||||||
AC_DEFUN([gl_UNISTD_H_DEFAULTS],
|
AC_DEFUN([gl_UNISTD_H_DEFAULTS],
|
||||||
[
|
[
|
||||||
|
AC_REQUIRE([gl_OPENAT_DEFAULTS]) dnl for GNULIB_OPENAT
|
||||||
GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN])
|
GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN])
|
||||||
GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE])
|
GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE])
|
||||||
GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2])
|
GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2])
|
||||||
|
@@ -4,9 +4,11 @@ Like <fcntl.h>, but with non-working flags defined to 0.
|
|||||||
Files:
|
Files:
|
||||||
lib/fcntl.in.h
|
lib/fcntl.in.h
|
||||||
m4/fcntl_h.m4
|
m4/fcntl_h.m4
|
||||||
|
m4/openat.m4
|
||||||
|
|
||||||
Depends-on:
|
Depends-on:
|
||||||
include_next
|
include_next
|
||||||
|
link-warning
|
||||||
unistd
|
unistd
|
||||||
extensions
|
extensions
|
||||||
|
|
||||||
@@ -25,7 +27,10 @@ fcntl.h: fcntl.in.h
|
|||||||
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
||||||
-e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
|
-e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
|
||||||
-e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \
|
-e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \
|
||||||
|
-e 's|@''GNULIB_OPENAT''@|$(GNULIB_OPENAT)|g' \
|
||||||
-e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
|
-e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
|
||||||
|
-e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
|
||||||
|
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
||||||
< $(srcdir)/fcntl.in.h; \
|
< $(srcdir)/fcntl.in.h; \
|
||||||
} > $@-t && \
|
} > $@-t && \
|
||||||
mv $@-t $@
|
mv $@-t $@
|
||||||
|
@@ -19,6 +19,7 @@ dirname
|
|||||||
errno
|
errno
|
||||||
extensions
|
extensions
|
||||||
fchdir
|
fchdir
|
||||||
|
fcntl-h
|
||||||
fdopendir
|
fdopendir
|
||||||
gettext-h
|
gettext-h
|
||||||
intprops
|
intprops
|
||||||
@@ -29,13 +30,19 @@ rmdir
|
|||||||
same-inode
|
same-inode
|
||||||
save-cwd
|
save-cwd
|
||||||
stdbool
|
stdbool
|
||||||
|
sys_stat
|
||||||
|
unistd
|
||||||
|
|
||||||
configure.ac:
|
configure.ac:
|
||||||
gl_FUNC_OPENAT
|
gl_FUNC_OPENAT
|
||||||
|
gl_MODULE_INDICATOR([openat])
|
||||||
|
|
||||||
Makefile.am:
|
Makefile.am:
|
||||||
|
|
||||||
Include:
|
Include:
|
||||||
|
<fcntl.h>
|
||||||
|
<sys/stat.h>
|
||||||
|
<unistd.h>
|
||||||
"openat.h"
|
"openat.h"
|
||||||
|
|
||||||
License:
|
License:
|
||||||
|
@@ -4,6 +4,7 @@ A <sys/stat.h> for systems with missing declarations.
|
|||||||
Files:
|
Files:
|
||||||
lib/sys_stat.in.h
|
lib/sys_stat.in.h
|
||||||
m4/sys_stat_h.m4
|
m4/sys_stat_h.m4
|
||||||
|
m4/openat.m4
|
||||||
m4/unistd_h.m4
|
m4/unistd_h.m4
|
||||||
|
|
||||||
Depends-on:
|
Depends-on:
|
||||||
@@ -15,7 +16,7 @@ gl_HEADER_SYS_STAT_H
|
|||||||
AC_PROG_MKDIR_P
|
AC_PROG_MKDIR_P
|
||||||
|
|
||||||
Makefile.am:
|
Makefile.am:
|
||||||
BUILT_SOURCES += $(SYS_STAT_H)
|
BUILT_SOURCES += sys/stat.h
|
||||||
|
|
||||||
# We need the following in order to create <sys/stat.h> when the system
|
# We need the following in order to create <sys/stat.h> when the system
|
||||||
# has one that is incomplete.
|
# has one that is incomplete.
|
||||||
@@ -28,11 +29,16 @@ sys/stat.h: sys_stat.in.h
|
|||||||
-e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
|
-e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
|
||||||
-e 's|@''GNULIB_LCHMOD''@|$(GNULIB_LCHMOD)|g' \
|
-e 's|@''GNULIB_LCHMOD''@|$(GNULIB_LCHMOD)|g' \
|
||||||
-e 's|@''GNULIB_LSTAT''@|$(GNULIB_LSTAT)|g' \
|
-e 's|@''GNULIB_LSTAT''@|$(GNULIB_LSTAT)|g' \
|
||||||
|
-e 's|@''GNULIB_OPENAT''@|$(GNULIB_OPENAT)|g' \
|
||||||
|
-e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \
|
||||||
|
-e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \
|
||||||
-e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \
|
-e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \
|
||||||
-e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \
|
-e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \
|
||||||
|
-e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \
|
||||||
-e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \
|
-e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \
|
||||||
-e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \
|
-e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \
|
||||||
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
|
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
|
||||||
|
-e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \
|
||||||
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
||||||
< $(srcdir)/sys_stat.in.h; \
|
< $(srcdir)/sys_stat.in.h; \
|
||||||
} > $@-t && \
|
} > $@-t && \
|
||||||
|
@@ -4,6 +4,7 @@ A GNU-like <unistd.h>.
|
|||||||
Files:
|
Files:
|
||||||
m4/unistd_h.m4
|
m4/unistd_h.m4
|
||||||
lib/unistd.in.h
|
lib/unistd.in.h
|
||||||
|
m4/openat.m4
|
||||||
|
|
||||||
Depends-on:
|
Depends-on:
|
||||||
include_next
|
include_next
|
||||||
@@ -44,6 +45,7 @@ unistd.h: unistd.in.h
|
|||||||
-e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
|
-e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
|
||||||
-e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \
|
-e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \
|
||||||
-e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
|
-e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
|
||||||
|
-e 's|@''GNULIB_OPENAT''@|$(GNULIB_OPENAT)|g' \
|
||||||
-e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \
|
-e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \
|
||||||
-e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
|
-e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
|
||||||
-e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
|
-e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
|
||||||
@@ -53,6 +55,7 @@ unistd.h: unistd.in.h
|
|||||||
-e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
|
-e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
|
||||||
-e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \
|
-e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \
|
||||||
-e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
|
-e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
|
||||||
|
-e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \
|
||||||
-e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
|
-e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
|
||||||
-e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
|
-e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
|
||||||
-e 's|@''HAVE_GETDOMAINNAME''@|$(HAVE_GETDOMAINNAME)|g' \
|
-e 's|@''HAVE_GETDOMAINNAME''@|$(HAVE_GETDOMAINNAME)|g' \
|
||||||
@@ -64,6 +67,7 @@ unistd.h: unistd.in.h
|
|||||||
-e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \
|
-e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \
|
||||||
-e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
|
-e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
|
||||||
-e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
|
-e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
|
||||||
|
-e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \
|
||||||
-e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
|
-e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
|
||||||
-e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
|
-e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
|
||||||
-e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
|
-e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
|
||||||
@@ -72,6 +76,7 @@ unistd.h: unistd.in.h
|
|||||||
-e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
|
-e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
|
||||||
-e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
|
-e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
|
||||||
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
|
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
|
||||||
|
-e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
|
||||||
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
|
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
|
||||||
-e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
|
-e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
|
||||||
-e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
|
-e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
|
||||||
|
Reference in New Issue
Block a user