diff --git a/C/absmi.c b/C/absmi.c index f77ed60fe..bcb62b3f6 100644 --- a/C/absmi.c +++ b/C/absmi.c @@ -1628,7 +1628,7 @@ Yap_absmi(int inp) /* Clause *cl = (Clause *)PREG->u.EC.ClBase; PREG->u.EC.ClTrail = TR-(tr_fr_ptr)Yap_TrailBase; - PREG->u.EC.ClENV = LCL0-YENV;*/ + PREG->u.EC.ClENV = LCL0-YREG;*/ cl->ClFlags |= InUseMask; TRAIL_CLREF(cl); } @@ -1680,7 +1680,7 @@ Yap_absmi(int inp) /* Clause *cl = (Clause *)PREG->u.EC.ClBase; PREG->u.EC.ClTrail = TR-(tr_fr_ptr)Yap_TrailBase; - PREG->u.EC.ClENV = LCL0-YENV;*/ + PREG->u.EC.ClENV = LCL0-YREG;*/ cl->ClFlags |= InUseMask; TRAIL_CLREF(cl); } @@ -2759,7 +2759,7 @@ Yap_absmi(int inp) SREG = (CELL *)RepPredProp(Yap_GetPredPropByAtom(AtomFail,0)); /* make sure we have the correct environment for continuation */ ENV = B->cp_env; - YENV = (CELL *)B; + YREG = (CELL *)B; goto creep; } /* don't do debugging and friends here */ @@ -3185,8 +3185,8 @@ Yap_absmi(int inp) /* initialize ccp */ #define NORM_CP(CP) ((choiceptr)(CP)) - YENV = (CELL *) (NORM_CP(YENV) - 1); - ccp = NORM_CP(YENV); + YREG = (CELL *) (NORM_CP(YREG) - 1); + ccp = NORM_CP(YREG); store_yaam_reg_cpdepth(ccp); ccp->cp_tr = TR; ccp->cp_ap = BEAM_RETRY_CODE; @@ -7713,7 +7713,7 @@ Yap_absmi(int inp) SET_BB(B_YREG); ENDCACHE_Y(); Yap_PrologMode = UserCCallMode; - ASP = YENV; + ASP = YREG; /* for slots to work */ Yap_StartSlots(); saveregs(); @@ -7762,7 +7762,7 @@ Yap_absmi(int inp) ENDCACHE_Y(); Yap_PrologMode = UserCCallMode; - ASP = YENV; + ASP = YREG; /* for slots to work */ Yap_StartSlots(); saveregs(); @@ -8345,7 +8345,7 @@ Yap_absmi(int inp) ap->LastCallOfPred = LUCALL_EXEC; /* fprintf(stderr,"R %x--%d--%ul\n",ap,ap->TimeStampOfPred,ap->ArityOfPE);*/ } - *--YENV = MkIntegerTerm(ap->TimeStampOfPred); + *--YREG = MkIntegerTerm(ap->TimeStampOfPred); /* fprintf(stderr,"> %p/%p %d %d\n",cl,ap,ap->TimeStampOfPred,PREG->u.Ills.s);*/ PREG = PREG->u.Ills.l1; /* indicate the indexing code is being used */ @@ -8369,7 +8369,6 @@ Yap_absmi(int inp) UInt timestamp; CACHE_Y(YREG); - timestamp = IntegerOfTerm(S_YREG[0]); /* fprintf(stderr,"+ %p/%p %d %d %d--%u\n",PREG,PREG->u.OtaLl.d->ClPred,timestamp,PREG->u.OtaLl.d->ClPred->TimeStampOfPred,PREG->u.OtaLl.d->ClTimeStart,PREG->u.OtaLl.d->ClTimeEnd);*/ /* Point AP to the code that follows this instruction */ diff --git a/C/cmppreds.c b/C/cmppreds.c index eb9e9ef89..a27496cbc 100644 --- a/C/cmppreds.c +++ b/C/cmppreds.c @@ -583,8 +583,8 @@ a_cmp(Term t1, Term t2) } else { return FALSE; } - } else if (IsBigIntTerm(t1)) { #ifdef USE_GMP + } else if (IsBigIntTerm(t1)) { { MP_INT *b1 = Yap_BigIntOfTerm(t1); t2 = Yap_Eval(t2); diff --git a/C/iopreds.c b/C/iopreds.c index 943d6afcc..7a319580e 100644 --- a/C/iopreds.c +++ b/C/iopreds.c @@ -117,7 +117,7 @@ STATIC_PROTO (int ConsolePipeGetc, (int)); STATIC_PROTO (int SocketGetc, (int)); STATIC_PROTO (int ConsoleSocketGetc, (int)); #endif -#if HAVE_LIBREADLINE +#if HAVE_LIBREADLINE && HAVE_READLINE_READLINE_H STATIC_PROTO (int ReadlineGetc, (int)); STATIC_PROTO (int ReadlinePutc, (int,int)); #endif @@ -247,7 +247,7 @@ Yap_GetFreeStreamDForReading(void) static int yap_fflush(int sno) { -#if HAVE_LIBREADLINE +#if HAVE_LIBREADLINE && HAVE_READLINE_READLINE_H if (Stream[sno].status & Tty_Stream_f && Stream[sno].status & Output_Stream_f) { if (ReadlinePos != ReadlineBuf) { @@ -349,7 +349,7 @@ p_always_prompt_user(void) s->stream_getc = ConsoleSocketGetc; } else #endif -#if HAVE_LIBREADLINE +#if HAVE_LIBREADLINE && HAVE_READLINE_READLINE_H if (s->status & Tty_Stream_f) { s->stream_getc = ReadlineGetc; if (Stream[0].status & Tty_Stream_f && @@ -412,7 +412,7 @@ InitFileIO(StreamDesc *s) s->stream_putc = ConsolePutc; s->stream_wputc = put_wchar; /* if a tty have a special routine to call readline */ -#if HAVE_LIBREADLINE +#if HAVE_LIBREADLINE && HAVE_READLINE_READLINE_H if (s->status & Tty_Stream_f) { if (Stream[0].status & Tty_Stream_f && is_same_tty(s->u.file.file,Stream[0].u.file.file)) @@ -990,12 +990,10 @@ p_prompt (void) return (TRUE); } -#if HAVE_LIBREADLINE +#if HAVE_LIBREADLINE && HAVE_READLINE_READLINE_H -#if HAVE_READLINE_READLINE_H #include #include -#endif static char *ttyptr = NULL; @@ -1130,7 +1128,7 @@ ReadlineGetc(int sno) static Int p_has_readline(void) { -#if HAVE_LIBREADLINE +#if HAVE_LIBREADLINE && HAVE_READLINE_READLINE_H return TRUE; #else return FALSE; @@ -1142,7 +1140,7 @@ int Yap_GetCharForSIGINT(void) { int ch; -#if HAVE_LIBREADLINE +#if HAVE_LIBREADLINE && HAVE_READLINE_READLINE_H if ((Yap_PrologMode & ConsoleGetcMode) && myrl_line != (char *) NULL) { ch = myrl_line[0]; free(myrl_line); @@ -1209,7 +1207,7 @@ EOFGetc(int sno) } else if (s->status & Promptable_Stream_f) { s->stream_putc = ConsolePutc; s->stream_wputc = put_wchar; -#if HAVE_LIBREADLINE +#if HAVE_LIBREADLINE && HAVE_READLINE_READLINE_H if (s->status & Tty_Stream_f) { s->stream_getc = ReadlineGetc; if (Stream[0].status & Tty_Stream_f && @@ -1617,7 +1615,7 @@ PlUnGetc (int sno) } else if (s->status & Promptable_Stream_f) { s->stream_putc = ConsolePutc; s->stream_wputc = put_wchar; -#if HAVE_LIBREADLINE +#if HAVE_LIBREADLINE && HAVE_READLINE_READLINE_H if (s->status & Tty_Stream_f) { s->stream_getc = ReadlineGetc; if (Stream[0].status & Tty_Stream_f && @@ -6288,7 +6286,7 @@ Yap_InitIOPreds(void) Yap_InitSockets (); #endif InitPlIO (); -#if HAVE_LIBREADLINE +#if HAVE_LIBREADLINE && HAVE_READLINE_READLINE_H InitReadline(); #endif } diff --git a/C/sysbits.c b/C/sysbits.c index ae524c875..8bfd54337 100644 --- a/C/sysbits.c +++ b/C/sysbits.c @@ -81,7 +81,10 @@ static char SccsId[] = "%W% %G%"; #include #endif #endif -#if HAVE_LIBREADLINE +#if HAVE_FENV_H +#include +#endif +#if HAVE_READLINE_READLINE_H #include #endif @@ -1168,10 +1171,6 @@ STATIC_PROTO (void my_signal, (int, void (*)(int))); */ -#if HAVE_FENV_H -#include -#endif - static RETSIGTYPE HandleMatherr(int sig) { @@ -1520,7 +1519,7 @@ HandleSIGINT (int sig) } if (Yap_PrologMode & (CritMode|ConsoleGetcMode)) { Yap_PrologMode |= InterruptMode; -#if HAVE_LIBREADLINE +#if HAVE_LIBREADLINE && HAVE_READLINE_READLINE_H if (Yap_PrologMode & ConsoleGetcMode) { fprintf(stderr, "Action (h for help): "); rl_point = rl_end = 0; diff --git a/C/unify.c b/C/unify.c index b87a901c7..aa7c2ba74 100644 --- a/C/unify.c +++ b/C/unify.c @@ -690,5 +690,9 @@ Yap_TrimTrail(void) #undef setregs #define setregs() #endif +#if SHADOW_HB + register CELL *HBREG = HB; +#endif + #include "trim_trail.h" } diff --git a/H/Regs.h b/H/Regs.h index 6db618db6..dd058ad4e 100644 --- a/H/Regs.h +++ b/H/Regs.h @@ -216,44 +216,28 @@ extern int Yap_stack_overflows; #define YENV Yap_REGS.YENV_ /* current environment (may differ from ENV)*/ #define S Yap_REGS.S_ /* structure pointer */ -register CELL *H asm ("g6"); -register tr_fr_ptr TR asm ("g7"); -#if defined(__svr4__) -register choiceptr B asm ("g5"); -#else +register CELL *H asm ("g5"); +#define TR Yap_REGS.TR_ /* latest choice point */ #define B Yap_REGS.B_ /* latest choice point */ -#endif #define CP Yap_REGS.CP_ /* continuation program counter */ #define HB Yap_REGS.HB_ /* heap (global) stack top at time of latest c.p. */ #define CreepFlag Yap_REGS.CreepFlag_ EXTERN inline void save_machine_regs(void) { Yap_REGS.H_ = H; - Yap_REGS.TR_ = TR; -#if defined(__svr4__) - Yap_REGS.B_ = B; -#endif } EXTERN inline void restore_machine_regs(void) { H = Yap_REGS.H_; - TR = Yap_REGS.TR_; -#if defined(__svr4__) - B = Yap_REGS.B_; -#endif } #define BACKUP_MACHINE_REGS() \ CELL *BK_H = H; \ - choiceptr BK_B = B; \ - tr_fr_ptr BK_TR = TR; \ restore_machine_regs() #define RECOVER_MACHINE_REGS() \ save_machine_regs(); \ - H = BK_H; \ - B = BK_B; \ - TR = BK_TR + H = BK_H EXTERN inline void save_H(void) { Yap_REGS.H_ = H; @@ -268,21 +252,15 @@ EXTERN inline void restore_H(void) { #define RECOVER_H() save_H(); H = BK_H EXTERN inline void save_B(void) { -#if defined(__svr4__) - Yap_REGS.B_ = B; -#endif } EXTERN inline void restore_B(void) { -#if defined(__svr4__) - B = Yap_REGS.B_; -#endif } #if defined(__svr4__) -#define BACKUP_B() choiceptr BK_B = B; restore_B() +#define BACKUP_B() -#define RECOVER_B() save_B(); B = BK_B +#define RECOVER_B() #else #define BACKUP_B() diff --git a/LGPL/Makefile.in b/LGPL/Makefile.in index bc01fa00e..848616d4a 100644 --- a/LGPL/Makefile.in +++ b/LGPL/Makefile.in @@ -31,11 +31,8 @@ PROGRAMS= $(srcdir)/debug.pl \ $(srcdir)/prolog_source.pl \ $(srcdir)/prolog_xref.pl -SWI_PROGRAMS= - install: $(PROGRAMS) mkdir -p $(DESTDIR)$(SHAREDIR)/Yap for p in $(PROGRAMS); do $(INSTALL_DATA) $$p $(DESTDIR)$(SHAREDIR)/Yap; done - for p in $(SWI_PROGRAMS); do $(INSTALL_DATA) $$p $(DESTDIR)$(SHAREDIR)/Yap/swi; done diff --git a/Makefile.in b/Makefile.in index 10d398ddf..639bb7e4c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -460,7 +460,7 @@ libYap.a: $(LIB_OBJECTS) $(RANLIB) libYap.a @DYNYAPLIB@: $(LIB_OBJECTS) - @DYNLIB_LD@ -install_name $(LIBDIR)/@YAPLIB@ -o @YAPLIB@ $(LIB_OBJECTS) $(LIBS) $(LDFLGS) + @DYNLIB_LD@ -o @YAPLIB@ $(LIB_OBJECTS) $(LIBS) $(LDFLGS) install: install_bin install_data diff --git a/config.h.in b/config.h.in index 51403fa64..7dc78f3c2 100644 --- a/config.h.in +++ b/config.h.in @@ -161,6 +161,7 @@ #undef HAVE_FETESTEXCEPT #undef HAVE_FGETPOS #undef HAVE_FINITE +#undef HAVE_FPCLASS #undef HAVE_FTIME #undef HAVE_GETCWD #undef HAVE_GETENV @@ -174,6 +175,7 @@ #undef HAVE_GETTIMEOFDAY #undef HAVE_GETWD #undef HAVE_ISATTY +#undef HAVE_ISINF #undef HAVE_ISNAN #undef HAVE_KILL #undef HAVE_LABS diff --git a/configure b/configure index 632dfe99c..c6fa3e2cf 100755 --- a/configure +++ b/configure @@ -309,7 +309,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT GCC C_INTERF_FLAGS C_PARSER_FLAGS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INDENT ac_ct_INDENT AR ac_ct_AR MPI_CC ac_ct_MPI_CC INSTALL_INFO CPP EGREP CPLINT_LIBS CPLINT_CFLAGS CPLINT_LDFLAGS CPLINT_SHLIB_LD ENABLE_CPLINT PRE_DYNLOADER_PATH EXTEND_DYNLOADER_PATH M4 M4GENHDRS INSTALL_DLLS MERGE_DLL_OBJS SHLIB_CFLAGS SHLIB_SUFFIX EXEC_SUFFIX DO_SECOND_LD SHLIB_LD SHLIB_SWI_LD DYNLIB_LD YAPLIB DYNYAPLIB YAP_EXTRAS NO_BUILTIN_REGEXP ENABLE_CHR ENABLE_CLPQR ENABLE_JPL JAVA_HOME JUNIT JAVAC JAVADOC JAVALIBS JAR IN_UNIX YAPMPILIB LAM_MPI_CC MPI_OBJS MPI_LIBS INSTALL_COMMAND INSTALLCLP JAVALIBPATH JAVAINCPATH LAMOBJS MAX_WORKERS STATIC_MODE ENABLE_WINCONSOLE USE_CUDD CUDD_LDFLAGS CUDD_CPPFLAGS INSTALL_MATLAB MATLAB_INCLUDE M4GENABSMI PROLOG_SYSTEM IN_YAP IN_SWI CHR_TARGETS LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT GCC C_INTERF_FLAGS C_PARSER_FLAGS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INDENT ac_ct_INDENT AR ac_ct_AR MPI_CC ac_ct_MPI_CC INSTALL_INFO CPP EGREP CPLINT_LIBS CPLINT_CFLAGS CPLINT_LDFLAGS CPLINT_SHLIB_LD ENABLE_CPLINT PRE_DYNLOADER_PATH EXTEND_DYNLOADER_PATH M4 M4GENHDRS INSTALL_DLLS MERGE_DLL_OBJS SHLIB_CFLAGS SHLIB_SUFFIX EXEC_SUFFIX DO_SECOND_LD SHLIB_LD SHLIB_SWI_LD DYNLIB_LD YAPLIB DYNYAPLIB YAP_EXTRAS NO_BUILTIN_REGEXP ENABLE_CHR ENABLE_CLPQR ENABLE_JPL JAVA JAVA_HOME JUNIT JAVAC JAVADOC JAVALIBS JAR IN_UNIX YAPMPILIB LAM_MPI_CC MPI_OBJS MPI_LIBS INSTALL_COMMAND INSTALLCLP JAVALIBPATH JAVAINCPATH LAMOBJS MAX_WORKERS STATIC_MODE ENABLE_WINCONSOLE USE_CUDD CUDD_LDFLAGS CUDD_CPPFLAGS INSTALL_MATLAB MATLAB_INCLUDE M4GENABSMI PROLOG_SYSTEM IN_YAP IN_SWI CHR_TARGETS LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -5508,6 +5508,7 @@ if test "$yap_cv_jpl" = no; then ENABLE_JPL="@#" elif test -e "$srcdir"/packages/jpl/Makefile.in; then ENABLE_JPL="" + JAVA=java JAVA_HOME="$yap_cv_jpl" if test "x$JAVALIBS" = "x"; then case "$target_os" in @@ -5523,10 +5524,12 @@ elif test -e "$srcdir"/packages/jpl/Makefile.in; then esac fi if test "$yap_cv_jpl" = ""; then + JAVA=java JAR=jar JAVAC=javac JAVADOC=javadoc else + JAVA="$yap_cv_jpl"/bin/java JAR="$yap_cv_jpl"/bin/jar JAVAC="$yap_cv_jpl"/bin/javac JAVADOC="$yap_cv_jpl"/bin/javadoc @@ -6453,12 +6456,20 @@ fi SHLIB_SWI_LD="gcc -shared -export-dynamic" DO_SECOND_LD="" LIBS="$LIBS -ldl" - case "$host_cpu" in + case "$target_cpu" in alpha*) LDFLAGS="-dynamic $LDFLAGS" ;; + x86*) + JAVALIBPATH="-L$JAVA_HOME/jre/lib/amd64 -L$JAVA_HOME/jre/lib/amd64/client -L$JAVA_HOME/jre/lib/amd64/server" + JAVAINCPATH="-I$JAVA_HOME/include -I$JAVA_HOME/include/linux" + if test "$CC" != "lcc" + then + LDFLAGS="-rdynamic $LDFLAGS" + fi + ;; *) - JAVALIBPATH="-L$JAVA_HOME/jre/lib/i386 -L$JAVA_HOME/jre/lib/i386/client" + JAVALIBPATH="-L$JAVA_HOME/jre/lib/i386 -L$JAVA_HOME/jre/lib/i386/client -L$JAVA_HOME/jre/lib/i386/server" JAVAINCPATH="-I$JAVA_HOME/include -I$JAVA_HOME/include/linux" if test "$CC" != "lcc" then @@ -6738,6 +6749,16 @@ fi INSTALL_DLLS="" fi ;; + *solaris*) + #an elf system + LDFLAGS="-dynamic $LDFLAGS" + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="gcc -shared" + SHLIB_SWI_LD="gcc -shared" + DO_SECOND_LD="" + SHLIB_SUFFIX=".so" + INSTALL_DLLS="" + ;; *cyg*|*mingw*) # gcc on cygwin seems to have trouble with longjmp # and -fomit-frame-point -DBP_FREE @@ -13789,6 +13810,7 @@ EXEC_SUFFIX="" + echo "$as_me:$LINENO: checking for gcc threaded code" >&5 @@ -14611,7 +14633,8 @@ done -for ac_func in fesettrapenable fgetpos finite ftime getcwd getenv + +for ac_func in fesettrapenable fgetpos finite fpclass ftime getcwd getenv do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -15030,7 +15053,8 @@ done -for ac_func in isatty isnan kill labs link lgamma + +for ac_func in isatty isnan isinf kill labs link lgamma do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -17683,6 +17707,7 @@ s,@NO_BUILTIN_REGEXP@,$NO_BUILTIN_REGEXP,;t t s,@ENABLE_CHR@,$ENABLE_CHR,;t t s,@ENABLE_CLPQR@,$ENABLE_CLPQR,;t t s,@ENABLE_JPL@,$ENABLE_JPL,;t t +s,@JAVA@,$JAVA,;t t s,@JAVA_HOME@,$JAVA_HOME,;t t s,@JUNIT@,$JUNIT,;t t s,@JAVAC@,$JAVAC,;t t diff --git a/configure.in b/configure.in index 879859653..b558a6bdf 100644 --- a/configure.in +++ b/configure.in @@ -655,6 +655,7 @@ if test "$yap_cv_jpl" = no; then ENABLE_JPL="@#" elif test -e "$srcdir"/packages/jpl/Makefile.in; then ENABLE_JPL="" + JAVA=java JAVA_HOME="$yap_cv_jpl" if test "x$JAVALIBS" = "x"; then case "$target_os" in @@ -670,10 +671,12 @@ elif test -e "$srcdir"/packages/jpl/Makefile.in; then esac fi if test "$yap_cv_jpl" = ""; then + JAVA=java JAR=jar JAVAC=javac JAVADOC=javadoc else + JAVA="$yap_cv_jpl"/bin/java JAR="$yap_cv_jpl"/bin/jar JAVAC="$yap_cv_jpl"/bin/javac JAVADOC="$yap_cv_jpl"/bin/javadoc @@ -769,12 +772,20 @@ case "$target_os" in SHLIB_SWI_LD="gcc -shared -export-dynamic" DO_SECOND_LD="" LIBS="$LIBS -ldl" - case "$host_cpu" in + case "$target_cpu" in alpha*) LDFLAGS="-dynamic $LDFLAGS" ;; + x86*) + JAVALIBPATH="-L$JAVA_HOME/jre/lib/amd64 -L$JAVA_HOME/jre/lib/amd64/client -L$JAVA_HOME/jre/lib/amd64/server" + JAVAINCPATH="-I$JAVA_HOME/include -I$JAVA_HOME/include/linux" + if test "$CC" != "lcc" + then + LDFLAGS="-rdynamic $LDFLAGS" + fi + ;; *) - JAVALIBPATH="-L$JAVA_HOME/jre/lib/i386 -L$JAVA_HOME/jre/lib/i386/client" + JAVALIBPATH="-L$JAVA_HOME/jre/lib/i386 -L$JAVA_HOME/jre/lib/i386/client -L$JAVA_HOME/jre/lib/i386/server" JAVAINCPATH="-I$JAVA_HOME/include -I$JAVA_HOME/include/linux" if test "$CC" != "lcc" then @@ -909,6 +920,16 @@ dnl Linux has both elf and a.out, in this case we found elf INSTALL_DLLS="" fi ;; + *solaris*) + #an elf system + LDFLAGS="-dynamic $LDFLAGS" + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="gcc -shared" + SHLIB_SWI_LD="gcc -shared" + DO_SECOND_LD="" + SHLIB_SUFFIX=".so" + INSTALL_DLLS="" + ;; *cyg*|*mingw*) # gcc on cygwin seems to have trouble with longjmp # and -fomit-frame-point -DBP_FREE @@ -1229,6 +1250,7 @@ AC_SUBST(NO_BUILTIN_REGEXP) AC_SUBST(ENABLE_CHR) AC_SUBST(ENABLE_CLPQR) AC_SUBST(ENABLE_JPL) +AC_SUBST(JAVA) AC_SUBST(JAVA_HOME) AC_SUBST(JUNIT) AC_SUBST(JAVAC) @@ -1401,11 +1423,11 @@ dnl Checks for library functions. AC_TYPE_SIGNAL AC_CHECK_FUNCS(acosh asinh atanh chdir ctime dlopen dup2) AC_CHECK_FUNCS(feclearexcept) -AC_CHECK_FUNCS(fesettrapenable fgetpos finite ftime getcwd getenv) +AC_CHECK_FUNCS(fesettrapenable fgetpos finite fpclass ftime getcwd getenv) AC_CHECK_FUNCS(gethostbyname gethostid gethostname) AC_CHECK_FUNCS(gethrtime getpagesize) AC_CHECK_FUNCS(getpwnam getrusage gettimeofday getwd) -AC_CHECK_FUNCS(isatty isnan kill labs link lgamma) +AC_CHECK_FUNCS(isatty isnan isinf kill labs link lgamma) AC_CHECK_FUNCS(localtime lstat mallinfo) AC_CHECK_FUNCS(mbsnrtowcs) AC_CHECK_FUNCS(memcpy memmove mkstemp mktemp) diff --git a/library/yap2swi/yap2swi.c b/library/yap2swi/yap2swi.c index 70d4237dc..3ae108565 100644 --- a/library/yap2swi/yap2swi.c +++ b/library/yap2swi/yap2swi.c @@ -2077,7 +2077,13 @@ X_API int PL_is_inf(term_t st) if (IsVarTerm(t)) return FALSE; if (!IsFloatTerm(t)) return FALSE; fl = FloatOfTerm(t); +#if HAVE_ISINF return isinf(fl); +#elif HAVE_FPCLASS + return (fpclass(fl) == FP_NINF || fpclass(fl) == FP_PINF); +#else + return FALSE; +#endif } X_API int PL_thread_self(void) diff --git a/packages/PLStream/pl-text.c b/packages/PLStream/pl-text.c index fd5c359b7..04bbb001a 100644 --- a/packages/PLStream/pl-text.c +++ b/packages/PLStream/pl-text.c @@ -30,6 +30,9 @@ #ifdef __WINDOWS__ #include "pl-mswchar.h" /* Terrible hack */ #endif +#if HAVE_LIMITS_H +#include /* solaris compatibility */ +#endif #undef LD #define LD LOCAL_LD diff --git a/packages/PLStream/pl-yap.c b/packages/PLStream/pl-yap.c index 76ba0d5cc..632d4f7b5 100644 --- a/packages/PLStream/pl-yap.c +++ b/packages/PLStream/pl-yap.c @@ -3,6 +3,9 @@ #include #include "pl-incl.h" +#ifdef HAVE_LIMITS_H +#include +#endif int fileerrors; diff --git a/packages/chr b/packages/chr index e071f01c1..c325e4564 160000 --- a/packages/chr +++ b/packages/chr @@ -1 +1 @@ -Subproject commit e071f01c1d9015e6d3fabc73092a6e902541485a +Subproject commit c325e4564bb8d4e32c27f2061df85f13d315974e diff --git a/packages/jpl b/packages/jpl index eb6d27251..65951de17 160000 --- a/packages/jpl +++ b/packages/jpl @@ -1 +1 @@ -Subproject commit eb6d27251c2548c25e6d37fff2a27a014caaa7aa +Subproject commit 65951de17491d8c4190c0bb25b171752d11d96d2