[project @ 1998-10-08 15:04:17 by simonm]
[ghc-hetmet.git] / aclocal.m4
index 09f7790..e8e3695 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.28 1998/09/29 17:30:09 sof Exp $
+dnl $Id: aclocal.m4,v 1.30 1998/10/07 12:41:42 simonm Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -57,6 +57,11 @@ dnl underscore.
 dnl 
 dnl We assume that they _haven't_ if anything goes wrong.
 dnl
+dnl Some nlist implementations seem to try to be compatible by ignoring
+dnl a leading underscore sometimes (eg. FreeBSD).  We therefore have
+dnl to work around this by checking for *no* leading underscore first.
+dnl Sigh.  --SDM
+dnl
 AC_DEFUN(FPTOOLS_UNDERSCORE,
 [AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl
 AC_CACHE_CHECK([leading underscore in symbol names], fptools_cv_lead_uscore,
@@ -76,7 +81,8 @@ AC_TRY_RUN([#ifdef HAVE_NLIST_H
 #include <nlist.h>
 changequote(<<, >>)dnl
 <<
-struct nlist xYzzY[] = {{"_xYzzY", 0},{0}};
+struct nlist xYzzY1[] = {{"xYzzY1", 0},{0}};
+struct nlist xYzzY2[] = {{"_xYzzY2", 0},{0}};
 #endif
 
 main(argc, argv)
@@ -84,7 +90,9 @@ int argc;
 char **argv;
 {
 #ifdef HAVE_NLIST_H
-    if(nlist(argv[0], xYzzY) == 0 && xYzzY[0].n_value != 0)
+    if(nlist(argv[0], xYzzY1) == 0 && xYzzY1[0].n_value != 0)
+        exit(1);
+    if(nlist(argv[0], xYzzY2) == 0 && xYzzY2[0].n_value != 0)
         exit(0);>>
 changequote([, ])dnl
 #endif
@@ -452,12 +460,12 @@ not_done=1
 for i in etext _etext __etext; do
   FPTOOLS_IN_SCOPE($i,$i,fptools_cv_end_of_text)
   if test "$fptools_cv_end_of_text" = yes; then
-   AC_DEFINE(TEXT_SECTION_END_MARKER, $i)
+   AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, $i)
    not_done=0
    break
   fi
 done
-if test "$not_done"; then
+if test "$not_done" = 1; then
 FPTOOLS_IN_SCOPE(etext asm("etext"),etext,fptools_cv_end_of_text);
 if test "$fptools_cv_end_of_text" = yes; then
   AC_DEFINE(TEXT_SECTION_END_MARKER, etext asm("etext"))
@@ -476,12 +484,12 @@ not_done=1
 for i in end _end __end; do
   FPTOOLS_IN_SCOPE($i,$i,fptools_cv_end_of_data)
   if test "$fptools_cv_end_of_data" = yes; then
-   AC_DEFINE(DATA_SECTION_END_MARKER, $i)
+   AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, $i)
    not_done=0
    break
   fi
 done
-if test "$not_done"; then
+if test "$not_done" = 1; then
 FPTOOLS_IN_SCOPE(end asm("end"),end,fptools_cv_end_of_data);
 if test "$fptools_cv_end_of_data" = yes; then
   AC_DEFINE(DATA_SECTION_END_MARKER, end asm("end"))