X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=aclocal.m4;h=d1f9a6436481997e10a85e92d7dd692ed36d68c3;hb=0b430750c2e38a72e6475b2cc4e101e75b067d32;hp=08f69313c4b5ba08f71b1e5d95db053266a51569;hpb=ec2d5cb280b9a384232c4eb69f1f7161bdef2c3a;p=ghc-hetmet.git diff --git a/aclocal.m4 b/aclocal.m4 index 08f6931..d1f9a64 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,8 +1,26 @@ +# $Id: aclocal.m4,v 1.20 1998/03/03 19:04:48 reid Exp $ # # Extra autoconf macros for the Glasgow fptools # # +# Are we running under the GNU libc? Need -D_GNU_SOURCE to get +# caddr_t and such. +# +AC_DEFUN(AC_GNU_LIBC, +[AC_CACHE_CHECK([GNU libc], ac_cv_gnu_libc, +[AC_EGREP_CPP(yes, +[#include +#ifdef __GLIBC__ +yes +#endif +], ac_cv_gnu_libc=yes, ac_cv_gnu_libc=no)]) +if test "$ac_cv_gnu_libc" = yes; then + AC_DEFINE(_GNU_SOURCE) +fi +]) + +# # Has timezone the type time_t or long (HP-UX 10.20 apparently # has `long'..) # @@ -62,9 +80,12 @@ AC_CACHE_CHECK([leading underscore in symbol names], ac_cv_lead_uscore, # Hack!: nlist() under Digital UNIX insist on there being an _, # but symbol table listings show none. What is going on here?!? # -if test $HostPlatform = "alpha-dec-osf1"; then - ac_cv_lead_uscore='no' -else +changequote(<<, >>)dnl +<< +case $HostPlatform in +alpha-dec-osf*) ac_cv_lead_uscore='no';; +*) >> +changequote([, ])dnl AC_TRY_RUN([#ifdef HAVE_NLIST_H #include changequote(<<, >>)dnl @@ -83,7 +104,8 @@ changequote([, ])dnl #endif exit(1); }], ac_cv_lead_uscore=yes, ac_cv_lead_uscore=no, ac_cv_lead_uscore=NO) -fi); +;; +esac); LeadingUnderscore=`echo $ac_cv_lead_uscore | sed 'y/yesno/YESNO/'` AC_SUBST(LeadingUnderscore) ]) @@ -269,8 +291,9 @@ AC_DEFUN(AC_PROG_GNUCPP, [if test "$HaveGcc" = "YES"; then echo > conftest.c gcc -v -E conftest.c >/dev/null 2>conftest.out - echo '/(\S+(\/|\\)cpp)/ && print "[$]1";' > conftest.pl - ac_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out | tr '\\\' / `" + # \x5c = backslash + echo 'tr/\x5c/\//; /(\S+\/cpp)/ && print "[$]1";' > conftest.pl + ac_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`" rm -fr conftest* else # We need to be able to invoke CPP directly, preferably @@ -317,3 +340,45 @@ else fi rm -fr conftest* ]) + +dnl ** figure out whether types can be word-aligned +dnl (test based on test in smalltalk-1.1.5 configuration) +dnl (required SIZEOF test but AC_CHECK_SIZEOF doesn't call PROVIDE +dnl so we can't call REQUIRE) + +dnl GHC_CHECK_ALIGNMENT(TYPE) +AC_DEFUN(GHC_CHECK_ALIGNMENT, +[changequote(<<, >>)dnl +dnl The name to #define. +define(<>, translit(alignment_$1, [a-z *], [A-Z_P]))dnl +dnl The cache variable name. +define(<>, translit(ac_cv_alignment_$1, [ *], [_p]))dnl +dnl The name of the corresponding size. +define(<>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl +changequote([, ])dnl +AC_MSG_CHECKING(alignment of $1) +AC_CACHE_VAL(AC_CV_NAME, +[AC_TRY_RUN([ +main() +{ + unsigned int vec[3]; + $1 test, *testptr; + + test = *($1 *)&vec[1]; + testptr = ($1 *)&vec[1]; + *testptr = test; + + exit(0); +} +], +AC_CV_NAME=$ac_cv_sizeof_unsigned_int, +AC_CV_NAME=$AC_CV_SIZEOF_NAME, +AC_CV_NAME=$AC_CV_SIZEOF_NAME)]) +AC_MSG_RESULT($AC_CV_NAME) +AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME) +AC_PROVIDE($AC_TYPE_NAME) +undefine([AC_TYPE_NAME])dnl +undefine([AC_CV_NAME])dnl +undefine([AC_CV_SIZEOF_NAME])dnl +]) +