* configure.in, configure, sdccconf_in.h: fixed bug
authorborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 25 Jul 2006 12:56:37 +0000 (12:56 +0000)
committerborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 25 Jul 2006 12:56:37 +0000 (12:56 +0000)
  [ 1519095 ] regression test onebyte.c fails on ppc64 host

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4299 4a8a32a2-be11-0410-ad9d-d568d2c75423

configure
configure.in
sdccconf_in.h

index 3076501cd1ced04361cada854813a87d24182d10..08cbd2511204a45890f47a503b1d8c7f9c6abcb8 100755 (executable)
--- a/configure
+++ b/configure
@@ -6281,30 +6281,99 @@ _ACEOF
 
 
 
+echo "$as_me:$LINENO: checking whether char is unsigned" >&5
+echo $ECHO_N "checking whether char is unsigned... $ECHO_C" >&6
+if test "${ac_cv_c_char_unsigned+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((char) -1) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_char_unsigned=no
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_c_char_unsigned=yes
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_char_unsigned" >&5
+echo "${ECHO_T}$ac_cv_c_char_unsigned" >&6
+if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define __CHAR_UNSIGNED__ 1
+_ACEOF
+
+fi
+
+ac_cv_c_char_unsigned=yes
+
 type_name()
 {
-    if expr "$ac_cv_sizeof_char" '>=' "$1" >/dev/null; then
-       echo "char"
-       exit
-    fi
-    if expr "$ac_cv_sizeof_short" '>=' "$1" >/dev/null; then
-       echo "short"
-       exit
-    fi
-    if expr "$ac_cv_sizeof_int" '>=' "$1" >/dev/null; then
-       echo "int"
-       exit
-    fi
-    if expr "$ac_cv_sizeof_long" '>=' "$1" >/dev/null; then
-       echo "long"
-       exit
-    fi
+  if expr "$ac_cv_sizeof_char" '>=' "$1" >/dev/null; then
+      echo "char"
+    exit
+  fi
+  if expr "$ac_cv_sizeof_short" '>=' "$1" >/dev/null; then
+    echo "short"
+    exit
+  fi
+  if expr "$ac_cv_sizeof_int" '>=' "$1" >/dev/null; then
+    echo "int"
+    exit
+  fi
+  if expr "$ac_cv_sizeof_long" '>=' "$1" >/dev/null; then
     echo "long"
+    exit
+  fi
+  echo "long"
 }
 
 echo "$as_me:$LINENO: checking type name for byte" >&5
 echo $ECHO_N "checking type name for byte... $ECHO_C" >&6
-TYPE_BYTE=`type_name 1`
+TYPE_CHAR=`type_name 1`
+if test "$ac_cv_c_char_unsigned" = "yes"; then
+  TYPE_BYTE="signed $TYPE_CHAR"
+else
+  TYPE_BYTE=$TYPE_CHAR
+fi
 echo "$as_me:$LINENO: result: $TYPE_BYTE" >&5
 echo "${ECHO_T}$TYPE_BYTE" >&6
 echo "$as_me:$LINENO: checking type name for word" >&5
@@ -6317,6 +6386,7 @@ echo $ECHO_N "checking type name for dword... $ECHO_C" >&6
 TYPE_DWORD=`type_name 4`
 echo "$as_me:$LINENO: result: $TYPE_DWORD" >&5
 echo "${ECHO_T}$TYPE_DWORD" >&6
+
 cat >>confdefs.h <<_ACEOF
 #define TYPE_BYTE $TYPE_BYTE
 _ACEOF
@@ -6330,6 +6400,19 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
+cat >>confdefs.h <<_ACEOF
+#define TYPE_UBYTE unsigned $TYPE_CHAR
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define TYPE_UWORD unsigned $TYPE_WORD
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define TYPE_UDWORD unsigned $TYPE_DWORD
+_ACEOF
+
+
 echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
 echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
 if test "${ac_cv_c_bigendian+set}" = set; then
index 993a35204feb3739c8980cb9012c4207786296da..c3ecc6b678dea545cffefc73495b9a825076a4ff 100755 (executable)
@@ -344,30 +344,36 @@ AC_CHECK_SIZEOF(char)
 AC_CHECK_SIZEOF(short)
 AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(long)
+AC_C_CHAR_UNSIGNED
 
 type_name()
 {
-    if expr "$ac_cv_sizeof_char" '>=' "$1" >/dev/null; then
-       echo "char"
-       exit
-    fi
-    if expr "$ac_cv_sizeof_short" '>=' "$1" >/dev/null; then
-       echo "short"
-       exit
-    fi
-    if expr "$ac_cv_sizeof_int" '>=' "$1" >/dev/null; then
-       echo "int"
-       exit
-    fi
-    if expr "$ac_cv_sizeof_long" '>=' "$1" >/dev/null; then
-       echo "long"
-       exit
-    fi
+  if expr "$ac_cv_sizeof_char" '>=' "$1" >/dev/null; then
+      echo "char"
+    exit
+  fi
+  if expr "$ac_cv_sizeof_short" '>=' "$1" >/dev/null; then
+    echo "short"
+    exit
+  fi
+  if expr "$ac_cv_sizeof_int" '>=' "$1" >/dev/null; then
+    echo "int"
+    exit
+  fi
+  if expr "$ac_cv_sizeof_long" '>=' "$1" >/dev/null; then
     echo "long"
+    exit
+  fi
+  echo "long"
 }
 
 AC_MSG_CHECKING(type name for byte)
-TYPE_BYTE=`type_name 1`
+TYPE_CHAR=`type_name 1`
+if test "$ac_cv_c_char_unsigned" = "yes"; then
+  TYPE_BYTE="signed $TYPE_CHAR"
+else
+  TYPE_BYTE=$TYPE_CHAR
+fi
 AC_MSG_RESULT($TYPE_BYTE)
 AC_MSG_CHECKING(type name for word)
 TYPE_WORD=`type_name 2`
@@ -375,10 +381,15 @@ AC_MSG_RESULT($TYPE_WORD)
 AC_MSG_CHECKING(type name for dword)
 TYPE_DWORD=`type_name 4`
 AC_MSG_RESULT($TYPE_DWORD)
+
 AC_DEFINE_UNQUOTED(TYPE_BYTE,  $TYPE_BYTE)
 AC_DEFINE_UNQUOTED(TYPE_WORD,  $TYPE_WORD)
 AC_DEFINE_UNQUOTED(TYPE_DWORD, $TYPE_DWORD)
 
+AC_DEFINE_UNQUOTED(TYPE_UBYTE,  unsigned $TYPE_CHAR)
+AC_DEFINE_UNQUOTED(TYPE_UWORD,  unsigned $TYPE_WORD)
+AC_DEFINE_UNQUOTED(TYPE_UDWORD, unsigned $TYPE_DWORD)
+
 AC_C_BIGENDIAN
 
 # Set standard installation paths
index aa501882b0b84464ee23913fee3c2280e5c1a902..ac5ca9234b30690074bb478ab7109944d832bd46 100644 (file)
@@ -52,9 +52,9 @@
 #undef TYPE_BYTE
 #undef TYPE_WORD
 #undef TYPE_DWORD
-#define TYPE_UBYTE unsigned TYPE_BYTE
-#define TYPE_UWORD unsigned TYPE_WORD
-#define TYPE_UDWORD unsigned TYPE_DWORD
+#undef TYPE_UBYTE
+#undef TYPE_UWORD
+#undef TYPE_UDWORD
 
 #undef WORDS_BIGENDIAN