aboutsummaryrefslogtreecommitdiff
path: root/sim/configure
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2024-01-10 22:25:51 -0500
committerMike Frysinger <vapier@gentoo.org>2024-01-10 22:37:03 -0500
commit08a7937f3a7301254e0ee98a93d94010e4ce5c5a (patch)
treea811637e83fc126ccfd8ee86927d7ff9d21d9390 /sim/configure
parentdbd4aebe5ba95f95735e333e5483ad4a80726a08 (diff)
downloadfsf-binutils-gdb-08a7937f3a7301254e0ee98a93d94010e4ce5c5a.zip
fsf-binutils-gdb-08a7937f3a7301254e0ee98a93d94010e4ce5c5a.tar.gz
fsf-binutils-gdb-08a7937f3a7301254e0ee98a93d94010e4ce5c5a.tar.bz2
sim: m32r: fixup some of the int<->pointer casts
The m32r trap code was written for a 32-bit Linux host (and really, one whose Linux ABI matched pretty exactly). This has lead to conversions between integers and pointers which breaks down hard on 64-bit hosts. Clean up some of the functions where possible to avoid unnecessary conversions, use uintptr_t to cast 32-bit target pointers to host pointers in some places, and just stub out a few functions that can't easily be salvaged currently when sizeof(void*) is not 32-bits. This is a bit ugly, but lets us enable warnings for the whole file.
Diffstat (limited to 'sim/configure')
-rwxr-xr-xsim/configure39
1 files changed, 36 insertions, 3 deletions
diff --git a/sim/configure b/sim/configure
index 36cadce..4ea5083 100755
--- a/sim/configure
+++ b/sim/configure
@@ -8882,6 +8882,40 @@ _ACEOF
fi
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
+$as_echo_n "checking size of void *... " >&6; }
+if ${ac_cv_sizeof_void_p+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_void_p" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (void *)
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_void_p=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
+$as_echo "$ac_cv_sizeof_void_p" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
+_ACEOF
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct statfs" >&5
$as_echo_n "checking for struct statfs... " >&6; }
if ${sim_cv_struct_statfs+:} false; then :
@@ -12858,7 +12892,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12861 "configure"
+#line 12895 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12964,7 +12998,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12967 "configure"
+#line 13001 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13961,7 +13995,6 @@ fi
-
ac_fn_c_check_decl "$LINENO" "ffs" "ac_cv_have_decl_ffs" "$ac_includes_default"
if test "x$ac_cv_have_decl_ffs" = xyes; then :
ac_have_decl=1