bug-gnulib
[Top][All Lists]
Advanced

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

Re: Cross-build issues in gdb/gnulib


From: Paul_Koning
Subject: Re: Cross-build issues in gdb/gnulib
Date: Wed, 26 Aug 2015 18:38:04 +0000


The gnulib configure machinery doesn't take into account cross-builds.  

I ran into this while doing a cross-build of GDB.  It broke badly on a 
build=X86_64-linux, host=i386-netbsdelf cross-build, because Linux attempted to 
execute the generated conftest image (a NetBSD image).  That's wrong of course, 
but worse yet, it got into an infinite loop, apparently the emulation is buggy. 
 So my build got stuck.

The specific issue is in the "locale" checks in gnulib.  The patch below cures 
it.

        paul

diff --git a/gdb/gnulib/import/m4/locale-fr.m4 
b/gdb/gnulib/import/m4/locale-fr.m4
index 92ff552..fdd7c39 100644
--- a/gdb/gnulib/import/m4/locale-fr.m4
+++ b/gdb/gnulib/import/m4/locale-fr.m4
@@ -73,8 +73,8 @@ int main () {
 }
 changequote([,])dnl
       ])])
-    if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-      case "$host_os" in
+    AC_RUN_IFELSE([test -s conftest$ac_exeext],
+        [case "$host_os" in
         # Handle native Windows specially, because there setlocale() interprets
         # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
         # "fr" or "fra" as "French" or "French_France.1252",
@@ -123,9 +123,7 @@ changequote([,])dnl
             fi
           fi
           ;;
-      esac
-    fi
-    rm -fr conftest*
+      esac],[gt_cv_locale_fr=none],[gt_cv_locale_fr=none])
   ])
   LOCALE_FR=$gt_cv_locale_fr
   AC_SUBST([LOCALE_FR])
@@ -201,8 +199,8 @@ int main () {
 }
 changequote([,])dnl
       ])])
-    if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-      case "$host_os" in
+    AC_RUN_IFELSE([test -s conftest$ac_exeext],
+        [case "$host_os" in
         # Handle native Windows specially, because there setlocale() interprets
         # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
         # "fr" or "fra" as "French" or "French_France.1252",
@@ -241,9 +239,7 @@ changequote([,])dnl
             fi
           fi
           ;;
-      esac
-    fi
-    rm -fr conftest*
+      esac],[gt_cv_locale_fr_utf8=none],[gt_cv_locale_fr_utf8=none])
   ])
   LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
   AC_SUBST([LOCALE_FR_UTF8])
diff --git a/gdb/gnulib/import/m4/locale-ja.m4 
b/gdb/gnulib/import/m4/locale-ja.m4
index a3abef8..c8f418d 100644
--- a/gdb/gnulib/import/m4/locale-ja.m4
+++ b/gdb/gnulib/import/m4/locale-ja.m4
@@ -75,8 +75,8 @@ int main ()
 }
 changequote([,])dnl
       ])])
-    if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-      case "$host_os" in
+    AC_RUN_IFELSE([test -s conftest$ac_exeext],
+        [case "$host_os" in
         # Handle native Windows specially, because there setlocale() interprets
         # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
         # "fr" or "fra" as "French" or "French_France.1252",
@@ -127,10 +127,8 @@ changequote([,])dnl
             fi
           fi
           ;;
-      esac
-    fi
-    rm -fr conftest*
-  ])
+      esac],[gt_cv_locale_ja=none],[gt_cv_locale_ja=none]
+  )])
   LOCALE_JA=$gt_cv_locale_ja
   AC_SUBST([LOCALE_JA])
 ])
diff --git a/gdb/gnulib/import/m4/locale-zh.m4 
b/gdb/gnulib/import/m4/locale-zh.m4
index c5c4ef6..1417814 100644
--- a/gdb/gnulib/import/m4/locale-zh.m4
+++ b/gdb/gnulib/import/m4/locale-zh.m4
@@ -76,8 +76,8 @@ int main ()
 }
 changequote([,])dnl
       ])])
-    if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-      case "$host_os" in
+    AC_RUN_IFELSE([test -s conftest$ac_exeext],
+        [case "$host_os" in
         # Handle native Windows specially, because there setlocale() interprets
         # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
         # "fr" or "fra" as "French" or "French_France.1252",
@@ -117,13 +117,7 @@ changequote([,])dnl
             fi
           fi
           ;;
-      esac
-    else
-      # If there was a link error, due to mblen(), the system is so old that
-      # it certainly doesn't have a chinese locale.
-      gt_cv_locale_zh_CN=none
-    fi
-    rm -fr conftest*
+      esac],[gt_cv_locale_zh_CN=none],[gt_cv_locale_zh_CN=none])])
   ])
   LOCALE_ZH_CN=$gt_cv_locale_zh_CN
   AC_SUBST([LOCALE_ZH_CN])



reply via email to

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