X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Fopenbsd.sh;h=e4b1360d9ad861c02d37938acda43d860d909c8e;hb=4e73d6a402bc493d66d19c409c41e1e271c6450b;hp=5d47e0af14dfa6037fd6fb01d8a84047b7f3c158;hpb=36e43f01026d4e626675945fbb0471760b81782c;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/openbsd.sh b/hints/openbsd.sh index 5d47e0a..e4b1360 100644 --- a/hints/openbsd.sh +++ b/hints/openbsd.sh @@ -11,6 +11,11 @@ # OpenBSD has a better malloc than perl... test "$usemymalloc" || usemymalloc='n' +# malloc wrap works +case "$usemallocwrap" in +'') usemallocwrap='define' ;; +esac + # Currently, vfork(2) is not a real win over fork(2). usevfork="$undef" @@ -113,13 +118,72 @@ $define|true|[yY]*) ;; esac case "$osvers" in - [012].*|3.[0-3]) - # Broken at least up to OpenBSD 3.2, we'll see about 3.3. + [012].*|3.[0-6]) + # Broken at least up to OpenBSD 3.6, we'll see about 3.7 d_getservbyname_r=$undef ;; esac esac EOCBU +# This script UU/use64bitint.cbu will get 'called-back' by Configure +# after it has prompted the user for whether to use 64-bitness. +cat > UU/use64bitint.cbu <<'EOCBU' +case "$use64bitint" in +$define|true|[yY]*) + echo " " + echo "Checking if your C library has broken 64-bit functions..." >&4 + $cat >check.c < +typedef $uquadtype myULL; +int main (void) +{ + struct { + double d; + myULL u; + } *p, test[] = { + {4294967303.15, 4294967303ULL}, + {4294967294.2, 4294967294ULL}, + {4294967295.7, 4294967295ULL}, + {0.0, 0ULL} + }; + for (p = test; p->u; p++) { + myULL x = (myULL)p->d; + if (x != p->u) { + printf("buggy\n"); + return 0; + } + } + printf("ok\n"); + return 0; +} +EOCP + set check + if eval $compile_ok; then + libcquad=`./check` + echo "Your C library's 64-bit functions are $libcquad." + else + echo "(I can't seem to compile the test program.)" + echo "Assuming that your C library's 64-bit functions are ok." + libcquad="ok" + fi + $rm -f check.c check + + case "$libcquad" in + buggy*) + cat >&4 <