Skip to content

Commit 9179057

Browse files
Merge pull request #453 from sosy-lab/fix-library-symlinks
Remove a broken symlink to a native library on arm64 and update the README for windows binaries.
2 parents 882dda4 + 86cc7ad commit 9179057

File tree

3 files changed

+40
-17
lines changed

3 files changed

+40
-17
lines changed

lib/native/arm64-linux/libopensmtjava.so

Lines changed: 0 additions & 1 deletion
This file was deleted.

lib/native/arm64-windows/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<!--
2+
This file is part of JavaSMT,
3+
an API wrapper for a collection of SMT solvers:
4+
https://github.com/sosy-lab/java-smt
5+
6+
SPDX-FileCopyrightText: 2025 Dirk Beyer <https://www.sosy-lab.org>
7+
8+
SPDX-License-Identifier: Apache-2.0
9+
-->
10+
11+
# How to install a SMT solver library for Windows (arm64) for developers of JavaSMT
12+
13+
Currently, the only native solver that is supported on Windows for arm64 is Z3. The Java based
14+
solvers SMTInterpol and Princess are also available and will simply work out of the box. To use
15+
Z3 on arm64 its native libraries first need to be linked or copied to this directory. This can
16+
be done just as described in the `README` for Windows on x86 [here](../x86_64-windows/README.md)
17+
18+
Either link the library as admin:
19+
- `mklink libz3.dll ..\..\java\runtime-z3\arm64\libz3.dll`
20+
- `mklink libz3java.dll ..\..\java\runtime-z3\arm64\libz3java.dll`
21+
22+
...or copy the library files directly to this folder:
23+
- `copy ..\..\java\runtime-z3\arm64\libz3.dll libz3.dll`
24+
- `copy ..\..\java\runtime-z3\arm64\libz3java.dll libz3java.dll`

lib/native/x86_64-windows/README.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,41 +25,41 @@ which are either to create symlinks or to copy the library files.
2525
Symbolic links allow for an automatic update as soon as a dependency is changed via Ant/Ivy.
2626
Windows does not allow user-space symlinks, but requires administrator rights to create them.
2727
Thus, we cannot check them into the repository. Please execute the following as administrator
28-
in the current directory `lib/native/x86_64-windows`:
28+
in the current directory `lib\native\x86_64-windows`:
2929

3030
For Z3:
31-
- mklink libz3.dll ..\..\java\runtime-z3\x64\libz3.dll
32-
- mklink libz3java.dll ..\..\java\runtime-z3\x64\libz3java.dll
31+
- `mklink libz3.dll ..\..\java\runtime-z3\x64\libz3.dll`
32+
- `mklink libz3java.dll ..\..\java\runtime-z3\x64\libz3java.dll`
3333

3434
For MathSAT5:
35-
- mklink mpir.dll ..\..\java\runtime-mathsat\mpir.dll
36-
- mklink mathsat.dll ..\..\java\runtime-mathsat\mathsat.dll
37-
- mklink mathsat5j.dll ..\..\java\runtime-mathsat\mathsat5j.dll
35+
- `mklink mpir.dll ..\..\java\runtime-mathsat\x64\mpir.dll`
36+
- `mklink mathsat.dll ..\..\java\runtime-mathsat\x64\mathsat.dll`
37+
- `mklink mathsat5j.dll ..\..\java\runtime-mathsat\x64\mathsat5j.dll`
3838

3939
For Bitwuzla:
40-
- mklink libbitwuzlaj.dll ..\..\java\runtime-bitwuzla\libbitwuzlaj.dll
40+
- `mklink libbitwuzlaj.dll ..\..\java\runtime-bitwuzla\x64\libbitwuzlaj.dll`
4141

4242
### With a direct copy of the library:
4343

4444
An alternative simple solution (without the need of administrator rights) is to copy over
45-
those files from the `lib\java\runtime-*\` directory into the current directory `lib/native/x86_64-windows`:
45+
those files from the `lib\java\runtime-*\` directory into the current directory `lib\native\x86_64-windows`:
4646
Please note that this copy process needs to be repeated after each update of a solver library via Ant/Ivy dependencies.
4747

4848
For Z3:
49-
- copy ..\..\java\runtime-z3\x64\libz3.dll libz3.dll
50-
- copy ..\..\java\runtime-z3\x64\libz3java.dll libz3java.dll
49+
- `copy ..\..\java\runtime-z3\x64\libz3.dll libz3.dll`
50+
- `copy ..\..\java\runtime-z3\x64\libz3java.dll libz3java.dll`
5151

5252
For MathSAT5:
53-
- copy ..\..\java\runtime-mathsat\mpir.dll mpir.dll
54-
- copy ..\..\java\runtime-mathsat\mathsat.dll mathsat.dll
55-
- copy ..\..\java\runtime-mathsat\mathsat5j.dll mathsat5j.dll
53+
- `copy ..\..\java\runtime-mathsat\x64\mpir.dll mpir.dll`
54+
- `copy ..\..\java\runtime-mathsat\x64\mathsat.dll mathsat.dll`
55+
- `copy ..\..\java\runtime-mathsat\x64\mathsat5j.dll mathsat5j.dll`
5656

5757
For Bitwuzla:
58-
- copy ..\..\java\runtime-bitwuzla\libbitwuzlaj.dll libbitwuzlaj.dll
58+
- `copy ..\..\java\runtime-bitwuzla\x64\libbitwuzlaj.dll libbitwuzlaj.dll`
5959

6060
Or simply use a wildcard:
61-
- copy ..\..\java\runtime-*\*dll .\
62-
- copy ..\..\java\runtime-*\x64\*dll .\
61+
- `copy ..\..\java\runtime-*\*dll .\`
62+
- `copy ..\..\java\runtime-*\x64\*dll .\`
6363

6464
## Additional dependencies:
6565

0 commit comments

Comments
 (0)