[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
fchdir on OSF/1
From: |
Bruno Haible |
Subject: |
fchdir on OSF/1 |
Date: |
Sun, 19 Dec 2010 14:34:41 +0100 |
User-agent: |
KMail/1.9.9 |
Hi,
On newer versions of OSF/1 5.1, fchdir is not declared in <unistd.h> by default,
leading to this error:
source='test-fchdir.c' object='test-fchdir.o' libtool=no DEPDIR=.deps
depmode=tru64 /bin/ksh ./../build-aux/depcomp cc -O -DHAVE_CONFIG_H -I.
-DGNULIB_STRICT_CHECKING=1 -I. -I. -I.. -I./.. -I../gllib -I./../gllib
-ieee -c -o test-fchdir.o test-fchdir.c
cc: Error: test-fchdir.c, line 24: In the initializer for signature_check24,
"fchdir" is not declared. (undeclared)
SIGNATURE_CHECK (fchdir, int, (int));
^
*** Exit 1
The declaration could be made available by passing the flag -D_XOPEN_SOURCE=1,
but this flag causes many declarations (of truncl() in <math.h> and many others)
to become invisible. So this cure would be worse than the symptom.
Instead, this fixes it. I'll push it when savannah is back up again.
2010-12-19 Bruno Haible <address@hidden>
fchdir: Add missing declaration on OSF/1 5.1.
* lib/unistd.in.h (fchdir): Provide declaration if systems lacks it.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Check whether fchdir is declared.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_FCHDIR.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_FCHDIR.
* doc/posix-functions/fchdir.texi: Mention the OSF/1 5.1 problem.
--- doc/posix-functions/fchdir.texi.orig Sun Dec 19 14:27:42 2010
+++ doc/posix-functions/fchdir.texi Sun Dec 19 14:10:50 2010
@@ -12,6 +12,9 @@
This function is missing on some platforms:
Tandem/NSK, mingw, BeOS.
But the replacement function is not safe to be used in libraries and is not
multithread-safe.
address@hidden
+This function is not declared on some platforms:
+OSF/1 5.1.
@end itemize
Portability problems not fixed by Gnulib:
--- lib/unistd.in.h.orig Sun Dec 19 14:27:42 2010
+++ lib/unistd.in.h Sun Dec 19 14:12:49 2010
@@ -435,6 +435,10 @@
_GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd);
_GL_EXTERN_C const char *_gl_directory_name (int fd);
+# else
+# if address@hidden@
+_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
+# endif
# endif
_GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/));
_GL_CXXALIASWARN (fchdir);
--- m4/fchdir.m4.orig Sun Dec 19 14:27:42 2010
+++ m4/fchdir.m4 Sun Dec 19 14:15:24 2010
@@ -1,4 +1,4 @@
-# fchdir.m4 serial 14
+# fchdir.m4 serial 15
dnl Copyright (C) 2006-2010 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -9,6 +9,12 @@
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+
+ AC_CHECK_DECLS_ONCE([fchdir])
+ if test $ac_cv_have_decl_fchdir = no; then
+ HAVE_DECL_FCHDIR=0
+ fi
+
AC_CHECK_FUNCS_ONCE([fchdir])
if test $ac_cv_func_fchdir = no; then
HAVE_FCHDIR=0
--- m4/unistd_h.m4.orig Sun Dec 19 14:27:42 2010
+++ m4/unistd_h.m4 Sun Dec 19 14:13:34 2010
@@ -1,4 +1,4 @@
-# unistd_h.m4 serial 49
+# unistd_h.m4 serial 50
dnl Copyright (C) 2006-2010 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -126,6 +126,7 @@
HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT])
HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP])
HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON])
+ HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR])
HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME])
HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE])
--- modules/unistd.orig Sun Dec 19 14:27:42 2010
+++ modules/unistd Sun Dec 19 14:13:15 2010
@@ -100,6 +100,7 @@
-e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \
-e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \
-e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
+ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \
-e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g'
\
-e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
-e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- fchdir on OSF/1,
Bruno Haible <=