diff --git a/build/build-publish-solvers/solver-yices.xml b/build/build-publish-solvers/solver-yices.xml
index db11353bec..d77a852d42 100644
--- a/build/build-publish-solvers/solver-yices.xml
+++ b/build/build-publish-solvers/solver-yices.xml
@@ -194,16 +194,16 @@ SPDX-License-Identifier: Apache-2.0
-
-
+
+
-
+
-
+
diff --git a/lib/native/source/yices2/jni.patch b/lib/native/source/yices2/jni.patch
index dc1fd95caa..69db997317 100644
--- a/lib/native/source/yices2/jni.patch
+++ b/lib/native/source/yices2/jni.patch
@@ -40,7 +40,7 @@ diff --git a/build.xml b/build.xml
@@ -75,7 +75,7 @@ diff --git a/src/main/java/com/sri/yices/Makefile b/src/main/java/com/sri/yices/
$(error "Unkown OS: $(OS)")
@@ -48,7 +50,11 @@
endif
-
+
# name of the library
-libyices2java := libyices2java.$(EXTENSION)
+ifeq ($(OS),win32)
@@ -83,40 +83,45 @@ diff --git a/src/main/java/com/sri/yices/Makefile b/src/main/java/com/sri/yices/
+else
+ libyices2java := libyices2java.$(EXTENSION)
+endif
-
+
# install name for darwin
libyices2java_install_name := $(YICES_JNI)/libyices2java.dylib
-@@ -56,9 +62,11 @@
+@@ -56,15 +62,11 @@
# we ignore versions and soname for now
-
+
# default include directories for jni.h and jni_md.h
--CPPFLAGS := -I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/$(OS)
--CXXFLAGS := -g -fPIC
--LIBS := -lyices -lgmp
+-GMP_CPPFLAGS ?= $(shell pkg-config --cflags gmp 2>/dev/null)
+-GMP_LIBS ?= $(shell pkg-config --libs gmp 2>/dev/null)
+CPPFLAGS := -I $(JNI_PATH) -I $(JNI_PATH)/$(OS) -I $(GMP_PATH)/include -I $(YICES_PATH)/include
+CXXFLAGS := -O3 -fPIC $(CXXFLAGS)
-+
+
+-CPPFLAGS += -I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/$(OS) $(GMP_CPPFLAGS)
+-CXXFLAGS += -g -fPIC
+-ifeq ($(strip $(GMP_LIBS)),)
+-GMP_LIBS := -lgmp
+-endif
+-LIBS += -lyices $(GMP_LIBS)
+LDFLAGS := -L $(YICES_PATH)/lib -L $(CUDD_PATH)/lib -L $(POLY_PATH)/lib -L $(GMP_PATH)/lib
-+LIBS := -lyices -lcudd -lpoly -lgmpxx -lgmp
-
++LIBS = -lyices -lcudd -lpoly -lgmpxx -lgmp
+
CXX ?= g++
-
-@@ -86,7 +94,10 @@
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -dynamiclib -o $@ yicesJNI.o $(LIBS)
-
+
+@@ -92,7 +94,10 @@
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -dynamiclib -o $@ yicesJNI.o $(LIBS)
+
libyices2java.so: yicesJNI.o
-- $(CXX) $(CFLAGS) $(LDFLAGS) -shared -o $@ yicesJNI.o $(LIBS)
+- $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ yicesJNI.o $(LIBS)
+ $(CXX) $(CFLAGS) $(LDFLAGS) -o $@ yicesJNI.o -shared -Wl,-soname,$(libyices2java) -Wl,-Bstatic $(LIBS) -static-libstdc++ -lstdc++ -Wl,-Bdynamic -lc -lm -Wl,--version-script=libyices2java.version
+
+yices2java.dll: yicesJNI.o
+ $(CXX) $(CFLAGS) $(LDFLAGS) -o $@ yicesJNI.o -shared -Wl,-soname,$(libyices2java) -Wl,-Bstatic,--whole-archive -lpthread -Wl,-Bstatic,--no-whole-archive $(LIBS) -static-libgcc -static-libstdc++ -lstdc++ -Wl,-Bdynamic -lm -Wl,--version-script=libyices2java.version
-
+
LIBDIR := $(YICES_JNI)
-
-@@ -99,7 +110,10 @@
+
+@@ -105,7 +110,10 @@
install-darwin:
cp $(libyices2java) $(LIBDIR)
-
+
+install-win32:
+ cp $(libyices2java) $(LIBDIR)
+