bug-gnulib
[Top][All Lists]
Advanced

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

Re: cross-compilation guesses (6)


From: Bruno Haible
Subject: Re: cross-compilation guesses (6)
Date: Fri, 04 May 2012 04:29:33 +0200
User-agent: KMail/4.7.4 (Linux/3.1.10-1.9-desktop; KDE/4.7.4; x86_64; ; )

> 2012-05-01  Bruno Haible  <address@hidden>
> 
>       lstat: Avoid "guessing no" when cross-compiling to glibc systems.
>       * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): When cross-
>       compiling, set gl_cv_func_lstat_dereferences_slashed_symlink to
>       "guessing yes" or "guessing no".
>       (gl_FUNC_LSTAT): Update.
>       * m4/fstatat.m4 (gl_FUNC_FSTATAT): Update.
>       * m4/openat.m4 (gl_FUNC_OPENAT): Update.
>       * m4/unlinkat.m4 (gl_FUNC_UNLINKAT): Update.

I've applied this patch. The Autoconf change to
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK is irrelevant for gnulib.


2012-05-03  Bruno Haible  <address@hidden>

        lstat: Avoid "guessing no" when cross-compiling to glibc systems.
        * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): When cross-
        compiling, set gl_cv_func_lstat_dereferences_slashed_symlink to
        "guessing yes" or "guessing no".
        (gl_FUNC_LSTAT): Update.
        * m4/fstatat.m4 (gl_FUNC_FSTATAT): Update.
        * m4/openat.m4 (gl_FUNC_OPENAT): Update.
        * m4/unlinkat.m4 (gl_FUNC_UNLINKAT): Update.

--- m4/fstatat.m4.orig  Fri May  4 04:25:51 2012
+++ m4/fstatat.m4       Fri May  4 03:33:34 2012
@@ -1,4 +1,4 @@
-# fstatat.m4 serial 2
+# fstatat.m4 serial 3
 dnl Copyright (C) 2004-2012 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -45,7 +45,7 @@
       ])
 
     case 
$gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
-    *yes+yes) ;;
+    *yes+*yes) ;;
     *) REPLACE_FSTATAT=1
        case $gl_cv_func_fstatat_zero_flag in
        *yes)
--- m4/lstat.m4.orig    Fri May  4 04:25:51 2012
+++ m4/lstat.m4 Fri May  4 03:33:34 2012
@@ -1,4 +1,4 @@
-# serial 24
+# serial 25
 
 # Copyright (C) 1997-2001, 2003-2012 Free Software Foundation, Inc.
 #
@@ -16,9 +16,11 @@
   AC_CHECK_FUNCS_ONCE([lstat])
   if test $ac_cv_func_lstat = yes; then
     AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
-    if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then
-      REPLACE_LSTAT=1
-    fi
+    case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+      *no)
+        REPLACE_LSTAT=1
+        ;;
+    esac
   else
     HAVE_LSTAT=0
   fi
@@ -51,20 +53,25 @@
             ]])],
          [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
          [gl_cv_func_lstat_dereferences_slashed_symlink=no],
-         [# When cross-compiling, be pessimistic so we will end up using the
-          # replacement version of lstat that checks for trailing slashes and
-          # calls lstat a second time when necessary.
-          gl_cv_func_lstat_dereferences_slashed_symlink=no
+         [case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing 
yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_lstat_dereferences_slashed_symlink="guessing 
no" ;;
+          esac
          ])
      else
        # If the 'ln -s' command failed, then we probably don't even
        # have an lstat function.
-       gl_cv_func_lstat_dereferences_slashed_symlink=no
+       gl_cv_func_lstat_dereferences_slashed_symlink="guessing no"
      fi
      rm -f conftest.sym conftest.file
     ])
-  test $gl_cv_func_lstat_dereferences_slashed_symlink = yes &&
-    AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
-      [Define to 1 if 'lstat' dereferences a symlink specified
-       with a trailing slash.])
+  case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+    *yes)
+      AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
+        [Define to 1 if 'lstat' dereferences a symlink specified
+         with a trailing slash.])
+      ;;
+  esac
 ])
--- m4/openat.m4.orig   Fri May  4 04:25:51 2012
+++ m4/openat.m4        Fri May  4 03:33:34 2012
@@ -1,4 +1,4 @@
-# serial 43
+# serial 44
 # See if we need to use our replacement for Solaris' openat et al functions.
 
 dnl Copyright (C) 2004-2012 Free Software Foundation, Inc.
@@ -15,7 +15,7 @@
   AC_CHECK_FUNCS_ONCE([openat])
   AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
   case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
-  yes+yes)
+  yes+*yes)
     ;;
   yes+*)
     # Solaris 9 has *at functions, but uniformly mishandles trailing
--- m4/unlinkat.m4.orig Fri May  4 04:25:51 2012
+++ m4/unlinkat.m4      Fri May  4 03:33:34 2012
@@ -1,4 +1,4 @@
-# unlinkat.m4 serial 1
+# unlinkat.m4 serial 2
 dnl Copyright (C) 2004-2012 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -16,15 +16,18 @@
   if test $ac_cv_func_unlinkat = no; then
     HAVE_UNLINKAT=0
   else
-    if test $gl_cv_func_lstat_dereferences_slashed_symlink != yes; then
-      # Solaris 9 has *at functions, but uniformly mishandles trailing
-      # slash in all of them.
-      REPLACE_UNLINKAT=1
-    else
-      # GNU/Hurd has unlinkat, but it has the same bug as unlink.
-      if test $REPLACE_UNLINK = 1; then
+    case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+      *no)
+        # Solaris 9 has *at functions, but uniformly mishandles trailing
+        # slash in all of them.
         REPLACE_UNLINKAT=1
-      fi
-    fi
+        ;;
+      *)
+        # GNU/Hurd has unlinkat, but it has the same bug as unlink.
+        if test $REPLACE_UNLINK = 1; then
+          REPLACE_UNLINKAT=1
+        fi
+        ;;
+    esac
   fi
 ])




reply via email to

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