Detect some hosts that do not support -rdynamic.

This commit is contained in:
steve 2000-06-16 19:00:06 +00:00
parent bec4a205ec
commit db8cc7d98d
2 changed files with 35 additions and 3 deletions

View File

@ -9,9 +9,12 @@ AC_CHECK_HEADERS(getopt.h)
AC_PROG_INSTALL AC_PROG_INSTALL
AC_CHECK_LIB(dl,main,[DLLIB=-ldl]) AC_CHECK_LIB(dl,main,[DLLIB=-ldl])
AC_SUBST(DLLIB) AC_SUBST(DLLIB)
AC_CANONICAL_HOST
$host
####################### #######################
## test for underscores ## test for underscores. The vpi module loader in vvm needs to know this
## in order to know the name of the start symbol for the .vpi module.
####################### #######################
AC_MSG_CHECKING("for leading and/or trailing underscores") AC_MSG_CHECKING("for leading and/or trailing underscores")
@ -50,4 +53,26 @@ AC_MSG_RESULT("$CC_LEADING_UNDERSCORE $CC_TRAILING_UNDERSCORE")
## end of test for underscores ## end of test for underscores
####################### #######################
# The -rdynamic flag is used by iverilog when compiling the target,
# to know how to export symbols of the main program to loadable modules
# that are brought in by -ldl
AC_MSG_CHECKING("for -rdynamic compiler flag")
rdynamic=-rdynamic
case "${host}" in
*-*-netbsd*)
rdynamic="-Wl,--export-dynamic"
;;
*-*-solaris*)
rdynamic=""
;;
esac
AC_DEFINE_UNQUOTED(RDYNAMIC,"${rdynamic}")
AC_MSG_RESULT("$RDYNAMIC")
AC_OUTPUT(Makefile vpi/Makefile ivlpp/Makefile vvm/Makefile) AC_OUTPUT(Makefile vpi/Makefile ivlpp/Makefile vvm/Makefile)

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/ */
#if !defined(WINNT) #if !defined(WINNT)
#ident "$Id: iverilog.c,v 1.15 2000/05/17 03:53:29 steve Exp $" #ident "$Id: iverilog.c,v 1.16 2000/06/16 19:00:06 steve Exp $"
#endif #endif
#include <stdio.h> #include <stdio.h>
@ -29,6 +29,10 @@
# define IVL_ROOT "." # define IVL_ROOT "."
#endif #endif
#ifndef RDYNAMIC
# define RDYNAMIC "-rdynamic"
#endif
const char*base = IVL_ROOT; const char*base = IVL_ROOT;
const char*opath = "a.out"; const char*opath = "a.out";
const char*targ = "vvm"; const char*targ = "vvm";
@ -140,7 +144,7 @@ static int t_vvm(char*cmd, unsigned ncmd)
return rc; return rc;
} }
sprintf(tmp, "%s -O -rdynamic -fno-exceptions -o %s -I%s " sprintf(tmp, "%s -O " RDYNAMIC " -fno-exceptions -o %s -I%s "
"-L%s %s.cc -lvvm %s", CXX, opath, IVL_INC, IVL_LIB, "-L%s %s.cc -lvvm %s", CXX, opath, IVL_INC, IVL_LIB,
opath, DLLIB); opath, DLLIB);
@ -376,6 +380,9 @@ int main(int argc, char **argv)
/* /*
* $Log: iverilog.c,v $ * $Log: iverilog.c,v $
* Revision 1.16 2000/06/16 19:00:06 steve
* Detect some hosts that do not support -rdynamic.
*
* Revision 1.15 2000/05/17 03:53:29 steve * Revision 1.15 2000/05/17 03:53:29 steve
* Add the module option to iverilog. * Add the module option to iverilog.
* *