diff --git a/C/sysbits.c b/C/sysbits.c index c08429bd9..7e2a7cf71 100644 --- a/C/sysbits.c +++ b/C/sysbits.c @@ -1633,8 +1633,9 @@ ReceiveSignal (int s) #if (_MSC_VER || defined(__MINGW32__)) static BOOL WINAPI MSCHandleSignal(DWORD dwCtrlType) { - if (!Yap_InterruptsEnabled) { + if (Yap_InterruptsDisabled) { return FALSE; + } switch(dwCtrlType) { case CTRL_C_EVENT: case CTRL_BREAK_EVENT: diff --git a/Makefile.in b/Makefile.in index 2d47ec521..10d398ddf 100644 --- a/Makefile.in +++ b/Makefile.in @@ -432,6 +432,7 @@ mycb: $(srcdir)/mycb.c $(CC) $(CFLAGS) $(srcdir)/mycb.c -o mycb all: startup.yss + @INSTALL_DLLS@ (cd packages/PLStream; $(MAKE)) @INSTALL_DLLS@ (cd library/random; $(MAKE)) @INSTALL_DLLS@ (cd library/regex; $(MAKE)) @INSTALL_DLLS@ (cd library/rltree; $(MAKE)) @@ -440,7 +441,6 @@ all: startup.yss @INSTALL_DLLS@ (cd library/rltree; $(MAKE)) @INSTALL_DLLS@ (cd library/lammpi; $(MAKE)) @INSTALL_DLLS@ (cd library/matrix; $(MAKE)) - @INSTALL_DLLS@ (cd packages/PLStream; $(MAKE)) @INSTALL_DLLS@ (cd packages/sgml; $(MAKE)) @INSTALL_MATLAB@ (cd library/matlab; $(MAKE)) @ENABLE_JPL@ @INSTALL_DLLS@ (cd packages/jpl; $(MAKE)) diff --git a/configure b/configure index b31404616..62a9582e6 100755 --- a/configure +++ b/configure @@ -700,6 +700,7 @@ SHLIB_SUFFIX EXEC_SUFFIX DO_SECOND_LD SHLIB_LD +SHLIB_SWI_LD DYNLIB_LD YAPLIB DYNYAPLIB @@ -4221,10 +4222,11 @@ fi then prefix="\${SYSTEMDRIVE}/Yap" fi + ENABLE_WINCONSOLE="" else + ENABLE_WINCONSOLE="#" LIBS="-lcygwin" fi - ENABLE_WINCONSOLE="#" elif test "$target_os" = "mingw32" then yap_cv_readline=no @@ -6851,6 +6853,7 @@ fi INSTALL_DLLS="#" EXTRA_OBJS="" SHLIB_LD="#" +SHLIB_SWI_LD="#" DO_SECOND_LD="#" M4="m4" MERGE_DLL_OBJS="#" @@ -6934,6 +6937,7 @@ fi then SHLIB_SUFFIX=".so" SHLIB_LD="gcc -shared -export-dynamic" + SHLIB_SWI_LD="gcc -shared -export-dynamic" DO_SECOND_LD="" LIBS="$LIBS -ldl" case "$host_cpu" in @@ -6985,7 +6989,8 @@ _ACEOF then #this tells ld to export all non-static symbols, #otherwise no external predicates. - SHLIB_LD="ld -b -E ${LDFLAGS}" + SHLIB_LD="gcc -shared -export-dynamic" + SHLIB_SWI_LD="gcc -shared -export-dynamic" DO_SECOND_LD="" SHLIB_SUFFIX=".sl" SHLIB_CFLAGS="+z" @@ -7096,6 +7101,7 @@ fi SHLIB_SUFFIX=".so" SHLIB_LD="ld -shared -expect_unresolved '*'" + SHLIB_SWI_LD="ld -shared -expect_unresolved '*'" DO_SECOND_LD="" fi ;; @@ -7104,6 +7110,7 @@ fi SHLIB_SUFFIX=".so" DO_SECOND_LD="" SHLIB_LD="ld -n32 -shared -rdata_shared" + SHLIB_SWI_LD="ld -n32 -shared -rdata_shared" INSTALL_DLLS="" ;; *darwin*) @@ -7189,6 +7196,7 @@ fi # SHLIB_LD="$CC -bundle -bundle_loader \$(abs_top_builddir)/yap -L\$(abs_top_builddir) -lYap -undefined dynamic_lookup -Wl,-x -dead-strip -dead_strip_dylibs" # LDFLAGS="-Wl,-x -dead_strip -dead_strip_dylibs $LDFLAGS" SHLIB_LD="$CC -bundle -flat_namespace -undefined suppress" + SHLIB_SWI_LD="$CC -bundle -flat_namespace -undefined suppress" INSTALL_DLLS="" CC="$CC -fstrict-aliasing -freorder-blocks -fsched-interblock -Wall -Wstrict-aliasing=2" JAVALIBPATH="-L/System/Library/Frameworks/JavaVM.framework/Libraries" @@ -7205,6 +7213,7 @@ fi LDFLAGS="-Wl,--export-dynamic $LDFLAGS" SHLIB_CFLAGS="-fPIC" SHLIB_LD="ld -Bshareable -x" + SHLIB_SWI_LD="ld -Bshareable -x" DO_SECOND_LD="" SHLIB_SUFFIX=".so" INSTALL_DLLS="" @@ -7216,6 +7225,7 @@ fi YAPLIB="libWYap.a" SHLIB_CFLAGS="" SHLIB_LD="\$(CC) -shared ../../yap.dll" + SHLIB_SWI_LD="\$(CC) -shared ../../yap.dll ../../packages/PLStream/plstream.dll" SHLIB_SUFFIX=".dll" C_PARSER_FLAGS="$C_INTERF_FLAGS" LDFLAGS="-Wl,--large-address-aware $LDFLAGS" @@ -13893,6 +13903,7 @@ EXEC_SUFFIX="" + { echo "$as_me:$LINENO: checking for gcc threaded code" >&5 @@ -17531,6 +17542,7 @@ SHLIB_SUFFIX!$SHLIB_SUFFIX$ac_delim EXEC_SUFFIX!$EXEC_SUFFIX$ac_delim DO_SECOND_LD!$DO_SECOND_LD$ac_delim SHLIB_LD!$SHLIB_LD$ac_delim +SHLIB_SWI_LD!$SHLIB_SWI_LD$ac_delim DYNLIB_LD!$DYNLIB_LD$ac_delim YAPLIB!$YAPLIB$ac_delim DYNYAPLIB!$DYNYAPLIB$ac_delim @@ -17540,7 +17552,6 @@ ENABLE_CHR!$ENABLE_CHR$ac_delim ENABLE_CLPQR!$ENABLE_CLPQR$ac_delim ENABLE_JPL!$ENABLE_JPL$ac_delim JAVA_HOME!$JAVA_HOME$ac_delim -JUNIT!$JUNIT$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then @@ -17582,6 +17593,7 @@ _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF +JUNIT!$JUNIT$ac_delim JAVAC!$JAVAC$ac_delim JAVADOC!$JAVADOC$ac_delim JAVALIBS!$JAVALIBS$ac_delim @@ -17613,7 +17625,7 @@ LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 29; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 30; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/configure.in b/configure.in index c5cf3207b..4bef87b06 100644 --- a/configure.in +++ b/configure.in @@ -484,10 +484,11 @@ then then prefix="\${SYSTEMDRIVE}/Yap" fi + ENABLE_WINCONSOLE="" else + ENABLE_WINCONSOLE="#" LIBS="-lcygwin" fi - ENABLE_WINCONSOLE="#" elif test "$target_os" = "mingw32" then yap_cv_readline=no @@ -744,6 +745,7 @@ dnl defaults INSTALL_DLLS="#" EXTRA_OBJS="" SHLIB_LD="#" +SHLIB_SWI_LD="#" DO_SECOND_LD="#" M4="m4" MERGE_DLL_OBJS="#" @@ -764,6 +766,7 @@ case "$target_os" in then SHLIB_SUFFIX=".so" SHLIB_LD="gcc -shared -export-dynamic" + SHLIB_SWI_LD="gcc -shared -export-dynamic" DO_SECOND_LD="" LIBS="$LIBS -ldl" case "$host_cpu" in @@ -812,7 +815,8 @@ case "$target_os" in then #this tells ld to export all non-static symbols, #otherwise no external predicates. - SHLIB_LD="ld -b -E ${LDFLAGS}" + SHLIB_LD="gcc -shared -export-dynamic" + SHLIB_SWI_LD="gcc -shared -export-dynamic" DO_SECOND_LD="" SHLIB_SUFFIX=".sl" SHLIB_CFLAGS="+z" @@ -851,6 +855,7 @@ dnl Linux has both elf and a.out, in this case we found elf have_dl=no) SHLIB_SUFFIX=".so" SHLIB_LD="ld -shared -expect_unresolved '*'" + SHLIB_SWI_LD="ld -shared -expect_unresolved '*'" DO_SECOND_LD="" fi ;; @@ -859,6 +864,7 @@ dnl Linux has both elf and a.out, in this case we found elf SHLIB_SUFFIX=".so" DO_SECOND_LD="" SHLIB_LD="ld -n32 -shared -rdata_shared" + SHLIB_SWI_LD="ld -n32 -shared -rdata_shared" INSTALL_DLLS="" ;; *darwin*) @@ -880,6 +886,7 @@ dnl Linux has both elf and a.out, in this case we found elf # SHLIB_LD="$CC -bundle -bundle_loader \$(abs_top_builddir)/yap -L\$(abs_top_builddir) -lYap -undefined dynamic_lookup -Wl,-x -dead-strip -dead_strip_dylibs" # LDFLAGS="-Wl,-x -dead_strip -dead_strip_dylibs $LDFLAGS" SHLIB_LD="$CC -bundle -flat_namespace -undefined suppress" + SHLIB_SWI_LD="$CC -bundle -flat_namespace -undefined suppress" INSTALL_DLLS="" CC="$CC -fstrict-aliasing -freorder-blocks -fsched-interblock -Wall -Wstrict-aliasing=2" JAVALIBPATH="-L/System/Library/Frameworks/JavaVM.framework/Libraries" @@ -896,6 +903,7 @@ dnl Linux has both elf and a.out, in this case we found elf LDFLAGS="-Wl,--export-dynamic $LDFLAGS" SHLIB_CFLAGS="-fPIC" SHLIB_LD="ld -Bshareable -x" + SHLIB_SWI_LD="ld -Bshareable -x" DO_SECOND_LD="" SHLIB_SUFFIX=".so" INSTALL_DLLS="" @@ -907,6 +915,7 @@ dnl Linux has both elf and a.out, in this case we found elf YAPLIB="libWYap.a" SHLIB_CFLAGS="" SHLIB_LD="\$(CC) -shared ../../yap.dll" + SHLIB_SWI_LD="\$(CC) -shared ../../yap.dll ../../packages/PLStream/plstream.dll" SHLIB_SUFFIX=".dll" C_PARSER_FLAGS="$C_INTERF_FLAGS" LDFLAGS="-Wl,--large-address-aware $LDFLAGS" @@ -1206,6 +1215,7 @@ AC_SUBST(EXEC_SUFFIX) dnl how to call the loader AC_SUBST(DO_SECOND_LD) AC_SUBST(SHLIB_LD) +AC_SUBST(SHLIB_SWI_LD) AC_SUBST(DYNLIB_LD) dnl objects in YAP library AC_SUBST(YAPLIB) diff --git a/packages/PLStream/Makefile.in b/packages/PLStream/Makefile.in index 70a2c8d1d..6f1d71247 100644 --- a/packages/PLStream/Makefile.in +++ b/packages/PLStream/Makefile.in @@ -54,7 +54,7 @@ C_SOURCES=$(srcdir)/pl-buffer.c $(srcdir)/pl-ctype.c \ OBJS=pl-buffer.o pl-ctype.o pl-error.o pl-feature.o \ pl-file.o pl-os.o \ pl-stream.o pl-string.o pl-table.o pl-text.o pl-utf8.o \ - pl-yap.o @ENABLE_WINCONSOLE@ popen.o utf8.o uxnt.o + pl-yap.o @ENABLE_WINCONSOLE@ utf8.o uxnt.o SOBJS=plstream@SHLIB_SUFFIX@ #in some systems we just create a single object, in others we need to diff --git a/packages/PLStream/pl-yap.h b/packages/PLStream/pl-yap.h index be7a6ca6d..22905cb49 100644 --- a/packages/PLStream/pl-yap.h +++ b/packages/PLStream/pl-yap.h @@ -186,5 +186,16 @@ valHandle(term_t tt) #endif /* __YAP_PROLOG__ */ +static int +stripostfix(const char *s, const char *e) +{ size_t ls = strlen(s); + size_t le = strlen(e); + + if ( ls >= le ) + return strcasecmp(&s[ls-le], e) == 0; + + return FALSE; +} + #endif /* PL_YAP_H */ diff --git a/packages/sgml/Makefile.in b/packages/sgml/Makefile.in index 7909b2d35..f265c7cc4 100644 --- a/packages/sgml/Makefile.in +++ b/packages/sgml/Makefile.in @@ -112,7 +112,7 @@ ifeq (@PROLOG_SYSTEM@,yap) $(CC) $(CFLAGS) $(SHLIB_CFLAGS) -o $@ -c $< @DO_SECOND_LD@sgml2pl@SHLIB_SUFFIX@: $(PLOBJ) -@DO_SECOND_LD@ @SHLIB_LD@ -o sgml2pl@SHLIB_SUFFIX@ $(PLOBJ) +@DO_SECOND_LD@ @SHLIB_SWI_LD@ -o sgml2pl@SHLIB_SUFFIX@ $(PLOBJ) all: $(TARGETS) $(PROGRAMS)