bug-gnulib
[Top][All Lists]
Advanced

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

cross-compilation guesses (14)


From: Bruno Haible
Subject: cross-compilation guesses (14)
Date: Sat, 05 May 2012 12:50:10 +0200
User-agent: KMail/4.7.4 (Linux/3.1.10-1.9-desktop; KDE/4.7.4; x86_64; ; )

Another suboptimal cross-compilation guess is

  checking whether link(2) dereferences a symlink... unknown

The only known platforms which show
  checking whether link(2) dereferences a symlink... yes
are MacOS X, FreeBSD, NetBSD, OpenBSD, Minix, AIX, HP-UX, OSF/1.
Whereas on Linux and Cygwin systems the result is always "no".

This patch improves the guess in a conservative way.


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

        link-follow: Avoid guessing wrong when cross-compiling to glibc/Linux.
        * m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Require
        AC_CANONICAL_HOST. When cross-compiling to a glibc/Linux platform,
        set gl_cv_func_link_follows_symlink to "guessing no".

--- m4/link-follow.m4.orig      Sat May  5 12:48:03 2012
+++ m4/link-follow.m4   Sat May  5 12:47:46 2012
@@ -1,4 +1,4 @@
-# serial 17
+# serial 18
 dnl Run a program to determine whether link(2) follows symlinks.
 dnl Set LINK_FOLLOWS_SYMLINKS accordingly.
 
@@ -16,6 +16,7 @@
 dnl runtime test.  If it is -2, use a generic runtime test.
 AC_DEFUN([gl_FUNC_LINK_FOLLOWS_SYMLINK],
 [dnl
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_FUNCS_ONCE([readlink])
   dnl Mingw lacks link, although gnulib provides a good replacement.
   dnl However, it also lacks symlink, so there's nothing to test in
@@ -81,13 +82,21 @@
            ]])],
            [gl_cv_func_link_follows_symlink=no], dnl GNU behavior
            [gl_cv_func_link_follows_symlink=yes], dnl Followed link/compile 
failed
-           [gl_cv_func_link_follows_symlink=unknown] dnl We're cross compiling.
-         )
+           [dnl We're cross compiling.
+            dnl The past results are "yes" on MacOS X, FreeBSD, NetBSD,
+            dnl OpenBSD, Minix, AIX, HP-UX, OSF/1, and "no" on Linux, Cygwin.
+            case "$host_os" in
+                           # On glibc/Linux we know the result.
+              linux*-gnu*) gl_cv_func_link_follows_symlink="guessing no" ;;
+                           # Otherwise, we don't know.
+              *)           gl_cv_func_link_follows_symlink=unknown ;;
+            esac
+           ])
          rm -f conftest.file conftest.sym conftest.hard
         ])
-      case $gl_cv_func_link_follows_symlink in
-        yes) gl_link_follows_symlinks=1 ;;
-        no) ;; # already defaulted to 0
+      case "$gl_cv_func_link_follows_symlink" in
+        *yes) gl_link_follows_symlinks=1 ;;
+        *no) ;; # already defaulted to 0
         *) gl_link_follows_symlinks=-2 ;;
       esac
     fi




reply via email to

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