bug-gnulib
[Top][All Lists]
Advanced

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

stat, lstat: Fix conflict with relocatable-prog-wrapper module


From: Bruno Haible
Subject: stat, lstat: Fix conflict with relocatable-prog-wrapper module
Date: Sun, 24 Feb 2019 12:18:57 +0100
User-agent: KMail/5.1.3 (Linux/4.4.0-141-generic; KDE/5.18.0; x86_64; ; )

On Mac OS X, when building GNU gettext with --enable-relocatable (and
a configuration that forces the use of the relocatable wrapper programs),
I get this compilation error during 'make install':

RELOC_MODE=wrapper RELOC_LIBRARY_PATH_VAR=DYLD_LIBRARY_PATH 
RELOC_LIBRARY_PATH_VALUE=/tmp/inst1/lib RELOC_PREFIX=/tmp/inst1 RELOC_DESTDIR= 
RELOC_COMPILE_COMMAND=gcc -m64 -std=gnu99 -g -O2  RELOC_SRCDIR=../gnulib-lib 
RELOC_BUILDDIR=../gnulib-lib RELOC_CONFIG_H_DIR=.. RELOC_EXEEXT= 
RELOC_STRIP_PROG=: RELOC_INSTALL_PROG=/Users/bruno/data/local-macos/bin/install 
-c /bin/sh ../libtool   --mode=install ../../build-aux/install-reloc msgcmp 
msgfmt msgmerge msgunfmt xgettext msgattrib msgcat msgcomm msgconv msgen 
msgexec msgfilter msggrep msginit msguniq recode-sr-latin '/tmp/inst1/bin'
libtool: warning: 
'/Users/bruno/data/build/gettext-0.19.8.1.346-939e-dirty/gettext-tools/intl/libintl.la'
 has not been installed in '/tmp/inst1/lib'
libtool: install: ../../build-aux/install-reloc .libs/msgcmp 
/tmp/inst1/bin/msgcmp
/Users/bruno/data/local-macos/bin/install -c .libs/msgcmp /tmp/inst1/bin/msgcmp
gcc -m64 -std=gnu99 -g -O2 -I../gnulib-lib -I../gnulib-lib -I.. -DHAVE_CONFIG_H 
-DIN_RELOCWRAPPER -DNO_XMALLOC -DINSTALLPREFIX="/tmp/inst1" 
-DINSTALLDIR="/tmp/inst1/bin" -DLIBPATHVAR="DYLD_LIBRARY_PATH" 
-DLIBDIRS="/tmp/inst1/lib", -DEXEEXT="" ../gnulib-lib/relocwrapper.c 
../gnulib-lib/progname.c ../gnulib-lib/progreloc.c ../gnulib-lib/areadlink.c 
../gnulib-lib/careadlinkat.c ../gnulib-lib/allocator.c ../gnulib-lib/readlink.c 
../gnulib-lib/stat.c ../gnulib-lib/canonicalize-lgpl.c ../gnulib-lib/malloca.c 
../gnulib-lib/lstat.c ../gnulib-lib/relocatable.c ../gnulib-lib/setenv.c 
../gnulib-lib/c-ctype.c -o /tmp/inst1/bin/msgcmp.wrapper
In file included from ../gnulib-lib/sys/stat.h:44,
                 from ../gnulib-lib/sys/stat.h:47,

                 from ../gnulib-lib/sys/stat.h:47,
                 from ../gnulib-lib/stat.c:48:
../gnulib-lib/time.h:35:24: error: #include nested too deeply
In file included from ../gnulib-lib/sys/stat.h:47,
                 from ../gnulib-lib/sys/stat.h:47,

                 from ../gnulib-lib/sys/stat.h:47,
                 from ../gnulib-lib/stat.c:48:
../gnulib-lib/sys/stat.h:41:23: error: #include nested too deeply
../gnulib-lib/sys/stat.h:44:18: error: #include nested too deeply
../gnulib-lib/sys/stat.h:47:27: error: #include nested too deeply
In file included from ../gnulib-lib/sys/stat.h:44,
                 from ../gnulib-lib/sys/stat.h:47,

                 from ../gnulib-lib/sys/stat.h:47,
                 from ../gnulib-lib/lstat.c:48:
../gnulib-lib/time.h:35:24: error: #include nested too deeply
In file included from ../gnulib-lib/sys/stat.h:47,
                 from ../gnulib-lib/sys/stat.h:47,

                 from ../gnulib-lib/sys/stat.h:47,
                 from ../gnulib-lib/lstat.c:48:
../gnulib-lib/sys/stat.h:41:23: error: #include nested too deeply
../gnulib-lib/sys/stat.h:44:18: error: #include nested too deeply
../gnulib-lib/sys/stat.h:47:27: error: #include nested too deeply
make[5]: *** [install-binPROGRAMS] Error 1
make[4]: *** [install-am] Error 2
make[3]: *** [install] Error 2
make[2]: *** [install-recursive] Error 1
make[1]: *** [install-recursive] Error 1
make: *** [install] Error 2

The '#include_next <sys/stat.h>' is apparently not working, it is
acting like '#include "sys/stat.h"'. The cause is the initial
'#include "sys/stat.h"' in stat.c and lstat.c - which is a workaround
for OSF/1. So let me disable this workaround when we're not on OSF/1.


2019-02-24  Bruno Haible  <address@hidden>

        stat, lstat: Fix conflict with relocatable-prog-wrapper module.
        * lib/stat.c: On platforms other than OSF/1, include <sys/stat.h>, not
        "sys/stat.h".
        * lib/lstat.c: Likewise.
        * lib/fstat.c: Likewise.
        * lib/fstatat.c: Likewise.

diff --git a/lib/fstat.c b/lib/fstat.c
index 4f0e618..a892b8f 100644
--- a/lib/fstat.c
+++ b/lib/fstat.c
@@ -40,10 +40,14 @@ orig_fstat (int fd, struct stat *buf)
 #endif
 
 /* Specification.  */
+#ifdef __osf__
 /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
    eliminates this include because of the preliminary #include <sys/stat.h>
    above.  */
-#include "sys/stat.h"
+# include "sys/stat.h"
+#else
+# include <sys/stat.h>
+#endif
 
 #include "stat-time.h"
 
diff --git a/lib/fstatat.c b/lib/fstatat.c
index 515b569..019d3c6 100644
--- a/lib/fstatat.c
+++ b/lib/fstatat.c
@@ -36,10 +36,14 @@ orig_fstatat (int fd, char const *filename, struct stat 
*buf, int flags)
 }
 #endif
 
+#ifdef __osf__
 /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
    eliminates this include because of the preliminary #include <sys/stat.h>
    above.  */
-#include "sys/stat.h"
+# include "sys/stat.h"
+#else
+# include <sys/stat.h>
+#endif
 
 #include "stat-time.h"
 
diff --git a/lib/lstat.c b/lib/lstat.c
index d57ca10..a3e40d8 100644
--- a/lib/lstat.c
+++ b/lib/lstat.c
@@ -42,10 +42,14 @@ orig_lstat (const char *filename, struct stat *buf)
 }
 
 /* Specification.  */
+# ifdef __osf__
 /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
    eliminates this include because of the preliminary #include <sys/stat.h>
    above.  */
-# include "sys/stat.h"
+#  include "sys/stat.h"
+# else
+#  include <sys/stat.h>
+# endif
 
 # include "stat-time.h"
 
diff --git a/lib/stat.c b/lib/stat.c
index 74f4795..e4fc2cb 100644
--- a/lib/stat.c
+++ b/lib/stat.c
@@ -42,10 +42,14 @@ orig_stat (const char *filename, struct stat *buf)
 #endif
 
 /* Specification.  */
+#ifdef __osf__
 /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
    eliminates this include because of the preliminary #include <sys/stat.h>
    above.  */
-#include "sys/stat.h"
+# include "sys/stat.h"
+#else
+# include <sys/stat.h>
+#endif
 
 #include "stat-time.h"
 




reply via email to

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