Source: le
Version: 1.16.5-0.1
Tags: patch upstream
User: debian-cr...@lists.debian.org
Usertags: ftcbfs

le fails to cross build from source, because it uses AC_RUN_IFELSE to
figure out what ncurses' bool type actually is. Fortunately, all that we
know can be determined using compile test bisection
(AC_RUN_IFELSE/AC_CHECK_SIZEOF). Please consider applying the attached
patch to make le cross buildable.

Helmut
--- le-1.16.5.orig/acinclude.m4
+++ le-1.16.5/acinclude.m4
@@ -250,35 +250,33 @@
       old_CFLAGS="$CFLAGS"
       LIBS="$LIBS $CURSES_LIBS"
       CFLAGS="$CFLAGS $CURSES_INCLUDES"
-      AC_RUN_IFELSE([AC_LANG_SOURCE([[
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 	    #ifdef USE_NCURSES_H
 	    # include <ncurses.h>
 	    #else
 	    # include <curses.h>
 	    #endif
-	    int main()
-	    {
-	       FILE *fp = fopen("cf_test.out", "w");
-	       if (fp != 0) {
-		  bool x = TRUE;
-		  if ((-x) >= 0)
-		     fputs("unsigned ", fp);
-		  if (sizeof(x) == sizeof(int))       fputs("int",  fp);
-		  else if (sizeof(x) == sizeof(char)) fputs("char", fp);
-		  else if (sizeof(x) == sizeof(short))fputs("short",fp);
-		  else if (sizeof(x) == sizeof(long)) fputs("long", fp);
-		  else fputs("unknown",fp);
-		  fclose(fp);
-	       }
-	       return(0);
-	    }
-	 ]])],[ac_cv_curses_bool="`cat cf_test.out`"
-	  case "$ac_cv_curses_bool" in
-	    *unknown*) ac_cv_curses_bool=unknown;;
-	  esac
-	 ],[ac_cv_curses_bool=unknown
-	 ac_cv_curses_bool=unknown],[])
-      rm -f cf_test.out
+	    ]],[[bool x = TRUE; int check[(-x) >= 0 ? 1 : -1];]])],[bool_sign=unsigned],[bool_sign=signed])
+      AC_CHECK_SIZEOF([bool],,[
+	    #ifdef USE_NCURSES_H
+	    # include <ncurses.h>
+	    #else
+	    # include <curses.h>
+	    #endif
+	    ])
+      AC_CHECK_SIZEOF([int])
+      AC_CHECK_SIZEOF([char])
+      AC_CHECK_SIZEOF([short])
+      AC_CHECK_SIZEOF([long])
+      AS_IF([test "$ac_cv_sizeof_bool" = "$ac_cv_sizeof_int"],
+            [ac_cv_curses_bool="$bool_sign int"],
+            [test "$ac_cv_curses_bool" = "$ac_cv_curses_char"],
+            [ac_cv_curses_bool="$bool_sign char"],
+            [test "$ac_cv_curses_bool" = "$ac_cv_curses_short"],
+            [ac_cv_curses_bool="$bool_sign short"],
+            [test "$ac_cv_curses_bool" = "$ac_cv_curses_long"],
+            [ac_cv_curses_bool="$bool_sign long"],
+            [ac_cv_curses_bool=unknown])
       LIBS="$old_LIBS"
       CFLAGS="$old_CFLAGS"
    ])

Reply via email to