1
0
mirror of https://https.git.savannah.gnu.org/git/gnulib.git synced 2026-08-25 02:45:56 +00:00

8 Commits

Author SHA1 Message Date
Paul Eggert bc273a4c56 fchmodat, fchownat, fstatat: port to non-inlining compilers
Problem reported for FreeBSD 9 by Jim Meyering in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-10/msg00070.html>.
* lib/chmodat.c, lib/chownat.c, lib/statat.c:
New files, which define FCHMODAT_INLINE etc.
* lib/fchmodat.c (FCHMODAT_INLINE):
* lib/fchownat.c (FCHOWNAT_INLINE):
* lib/fstatat.c (FSTATAT_INLINE):
Remove, as chmodat.c etc. now do this.
* modules/fchmodat (Files): Add lib/chmodat.c.
* modules/fchownat (Files): Add lib/chownat.c.
* modules/fstatat (Files): Add lib/statat.c.
2012-10-15 13:19:13 -07:00
Paul Eggert 290d23ac86 faccessat, etc.: support AT_FDCWD-only use
* lib/at-func.c: If GNULIB_SUPPORT_ONLY_AT_FDCWD, then support
this function only if its first argument is AT_FDCWD.
Emacs wants faccessat for AT_EACCESS but not for any first-arg
values other than AT_FDCWD, so it doesn't want all the openat
machinery with fchdir etc.
* modules/faccessat, modules/fchmodat, modules/fchownat (Files):
* modules/fstatat, modules/mkdirat, modules/openat (Files):
* modules/unlinkat (Files):
Remove lib/openat-priv.h, as at-internal supplies this file.
Removing this file here allows us to support programs like Emacs
that avoid at-internal.
2012-10-14 22:54:06 -07:00
Paul Eggert d202279380 fchmodat, fchownat, fstatat: use extern-inline
* lib/fchmodat.c, lib/openat.h (FCHMODAT_INLINE):
* lib/fchownat.c, lib/openat.h (FCHOWNAT_INLINE):
* lib/fstatat.c, lib/openat.h (FSTATAT_INLINE):
New macros.
* lib/openat.h:
Replace all uses of 'static inline' with them.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* modules/fchmodat, modules/fchownat, modules/fstatat:
* modules/openat-h:
(Depends-on):
Add extern-inline.
(configure.ac): Remove AC_C_INLINE.
2012-09-22 01:58:23 -07:00
Bruno Haible e0009e0bab Depend on module fcntl-h when AT_FDCWD is used.
* modules/utimens (Depends-on): Add fcntl-h.
* modules/areadlinkat (Depends-on): Likewise.
* modules/areadlinkat-with-size (Depends-on): Likewise.
* modules/faccessat (Depends-on): Likewise.
* modules/fchmodat (Depends-on): Likewise.
* modules/fchownat (Depends-on): Likewise.
* modules/getcwd (Depends-on): Likewise.
* modules/mkdirat (Depends-on): Likewise.
* modules/mkfifoat (Depends-on): Likewise.
* modules/readlinkat (Depends-on): Likewise.
* modules/symlinkat (Depends-on): Likewise.
* modules/dup2-tests (Depends-on): Likewise.
* modules/fdutimensat-tests (Depends-on): Likewise.
* modules/futimens-tests (Depends-on): Likewise.
2011-11-19 21:07:36 +01:00
Bruno Haible 91dc8145d6 More conditional dependencies.
* modules/faccessat (Depends-on): Add conditions.
* modules/fchmodat (Depends-on): Likewise.
* modules/fchownat (Depends-on): Likewise.
* modules/fstatat (Depends-on): Likewise.
* modules/mkfifoat (Depends-on): Likewise.
* modules/readlinkat (Depends-on): Likewise.
* modules/symlinkat (Depends-on): Likewise.
* modules/unlinkat (Depends-on): Likewise.
* modules/utimensat (Depends-on): Likewise.
* modules/mkdirat (Depends-on): Add sys_stat. Add conditions.
* modules/linkat (Depends-on): Refine the conditions.
* modules/renameat (Depends-on): Likewise.
2011-11-09 02:44:53 +01:00
Bruno Haible 75000c499c New modules 'at-internal', 'openat-h', split off from module 'openat'.
* m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_OPENAT. Don't
invoke gl_PREREQ_OPENAT and gl_MODULE_INDICATOR.
* modules/openat (Description): Add reference to POSIX function.
(Files): Remove lib/openat.h, lib/openat-proc.c.
(Depends-on): Add at-internal, openat-h. Remove fdopendir, gettext-h,
intprops, unistd.
(configure.ac): Remove AC_LIBOBJ of openat-proc. Invoke
gl_PREREQ_OPENAT, gl_MODULE_INDICATOR here. Invoke
gl_FCNTL_MODULE_INDICATOR.
(Include): Remove unistd.h, openat.h.
* modules/areadlinkat (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, extensions, fchdir,
openat-die, openat-h, save-cwd.
* modules/areadlinkat-with-size (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, extensions, fchdir,
openat-die, openat-h, save-cwd, unistd.
* modules/faccessat (Files): Add lib/at-func.c, lib/openat-priv.h.
(Depends-on): Add at-internal, dosname, errno, fchdir, openat-die,
openat-h, save-cwd. Remove fcntl-h, openat.
* modules/fchmodat (Files): Remove lib/openat.h.
(Depends-on): Add at-internal, openat-h. Remove dirent, fcntl-h,
openat, stdbool, unistd.
* modules/fchownat (Files): Remove lib/openat.h.
(Depends-on): Add at-internal, openat-h. Remove dirent, fcntl-h,
openat, stdbool, sys_stat.
* modules/fdopendir (Files): Remove lib/openat-priv.h,
lib/openat-proc.c.
(Depends-on): Add at-internal.
(condigure.ac): Remove AC_LIBOBJ of openat-proc.
* modules/fstatat (Files): Remove lib/openat.h.
(Depends-on): Add at-internal, openat-h. Remove dirent, openat,
stdbool, unistd.
* modules/fts (Depends-on): Add openat-h.
* modules/linkat (Depends-on): Add at-internal, openat-h. Remove
openat.
* modules/mkdirat (Files): Remove lib/openat.h.
(Depends-on): Add at-internal, openat-h. Remove dirent, fcntl-h,
openat, stdbool, sys_stat.
* modules/mkfifoat (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, fchdir, openat-die,
openat-h, save-cwd. Remove fcntl-h, openat.
* modules/openat-die (Depends-on): Add openat-h. Remove openat.
* modules/readlinkat (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, fchdir, openat-die,
openat-h, save-cwd. Remove fcntl-h, openat.
* modules/renameat (Depends-on): Add at-internal, openat-h. Remove
openat.
* modules/selinux-at (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, extensions, fchdir,
fcntl-h, openat-die, openat-h, save-cwd, unistd. Remove openat.
* modules/symlinkat (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, fchdir, openat-die,
openat-h, save-cwd. Remove fcntl-h, openat.
* modules/unlinkat (Files): Remove lib/openat.h.
(Depends-on): Add at-internal, openat-h. Remove dirent, openat,
stdbool.
* modules/utimensat (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, fchdir, fcntl-h,
openat-die, openat-h, save-cwd.
* modules/fchownat-tests (Depends-on): Add openat-h. Remove openat.
* modules/fdutimensat-tests (Depends-on): Add openat.
* modules/fstatat-tests (Depends-on): Add openat-h.
* modules/readlinkat-tests (Depends-on): Add openat.
* modules/symlinkat-tests (Depends-on): Add openat.
2011-11-05 11:35:57 +01:00
Bruno Haible 630c05b0bf openat, fchmodat, fchownat, linkat, renameat: Fix dependencies.
* modules/fchmodat (Depends-on): Add openat-die.
* modules/fchownat (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/renameat (Depends-on): Likewise.
* modules/openat (Depends-on): Add dirent.
2011-11-04 18:11:03 +01:00
Bruno Haible afe598a51a New module 'fchmodat', split off from module 'openat'.
* lib/openat.h (chmodat, lchmodat): Enable only if GNULIB_FCHMODAT is
defined.
* m4/fchmodat.m4: New file, extracted from m4/openat.m4.
* m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_FCHMODAT. Don't test
for fchmodat, lchmod. Don't set HAVE_FCHMODAT.
* modules/fchmodat: New file, extracted from modules/openat.
* modules/openat (Files): Remove lib/fchmodat.c.
(configure.ac): Remove AC_LIBOBJ of fchmodat.
* modules/fchmodat-tests: New file, extracted from modules/openat-tests.
* modules/openat-tests (Files): Remove tests/test-fchmodat.c.
(Makefile.am): Remove rules for test-fchmodat.
* doc/posix-functions/fchmodat.texi: Mention module 'fchmodat' instead
of module 'openat'.
* NEWS: Mention the change.
2011-11-02 10:07:20 +01:00