diff options
author | Kristóf Marussy <kristof@marussy.com> | 2023-12-25 21:49:08 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2024-04-07 14:54:54 +0200 |
commit | 8eb8959c8bac379d738afb9a4643b2eb0b5bdb3a (patch) | |
tree | 497cec62489ad1136edae737dc0850ce02c611c9 | |
parent | build: package Z3 solver native libraries (diff) | |
download | refinery-8eb8959c8bac379d738afb9a4643b2eb0b5bdb3a.tar.gz refinery-8eb8959c8bac379d738afb9a4643b2eb0b5bdb3a.tar.zst refinery-8eb8959c8bac379d738afb9a4643b2eb0b5bdb3a.zip |
chore(z3): bump to z3 4.12.6
We still have to build Z3 for linux-aarch64, because the official release
requires glibc 2.35 (and the corresponding libstdc++), while Amazon Linux 2023
only supports glibc 2.34.
Also enabled optimization flags from Amazon Linux 2023 for the aarch64 Z3 build.
This tecnically excludes older armv8-a platforms (like Raspberry Pi 4), but most
modern SBC (like Raspberry Pi 5) already support armv8.2-a+crypto. At any rate,
the need to run Refinery on such paltforms in unlikely. At any rate, the build
flags should be supported on Neoverse N1-based cloud providers (including Amazon
and Hetzner), as well as Apple M devices (armv8.5-a).
-rwxr-xr-x | z3/docker/build_in_docker.sh | 8 | ||||
-rwxr-xr-x | z3/docker/cross_build.sh | 3 | ||||
-rw-r--r-- | z3/gradle.properties | 2 | ||||
-rw-r--r-- | z3/gradle/libs.versions.toml | 6 | ||||
-rwxr-xr-x | z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3.so | bin | 29479296 -> 30654912 bytes | |||
-rw-r--r-- | z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3.so.license | 2 | ||||
-rwxr-xr-x | z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3java.so | bin | 295952 -> 308224 bytes | |||
-rw-r--r-- | z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3java.so.license | 2 |
8 files changed, 13 insertions, 10 deletions
diff --git a/z3/docker/build_in_docker.sh b/z3/docker/build_in_docker.sh index cd28bd32..549e823d 100755 --- a/z3/docker/build_in_docker.sh +++ b/z3/docker/build_in_docker.sh | |||
@@ -15,7 +15,11 @@ apt-get install -y python3 make gcc-aarch64-linux-gnu g++-aarch64-linux-gnu unzi | |||
15 | wget "https://github.com/Z3Prover/z3/archive/refs/tags/z3-${z3_version}.zip" | 15 | wget "https://github.com/Z3Prover/z3/archive/refs/tags/z3-${z3_version}.zip" |
16 | unzip "z3-${z3_version}.zip" | 16 | unzip "z3-${z3_version}.zip" |
17 | cd "z3-z3-${z3_version}" | 17 | cd "z3-z3-${z3_version}" |
18 | CXX=aarch64-linux-gnu-g++ CC=aarch64-linux-gnu-gcc python3 scripts/mk_unix_dist.py -f --nodotnet --arch=arm64 | 18 | export CC=aarch64-linux-gnu-gcc |
19 | export CXX=aarch64-linux-gnu-g++ | ||
20 | # See https://docs.aws.amazon.com/linux/al2023/ug/performance-optimizations.html | ||
21 | export CFLAGS="-march=armv8.2-a+crypto -mtune=neoverse-n1 -ftree-vectorize" | ||
22 | export CXXFLAGS="${CFLAGS}" | ||
23 | python3 scripts/mk_unix_dist.py -f --nodotnet --arch=arm64 | ||
19 | cp --preserve=all "./dist/z3-${z3_version}-arm64-glibc-2.31/bin"/*.so /data/out/ | 24 | cp --preserve=all "./dist/z3-${z3_version}-arm64-glibc-2.31/bin"/*.so /data/out/ |
20 | chown "${target_uid}:${target_gid}" /data/out/* | 25 | chown "${target_uid}:${target_gid}" /data/out/* |
21 | |||
diff --git a/z3/docker/cross_build.sh b/z3/docker/cross_build.sh index fe5edd2f..522d5c02 100755 --- a/z3/docker/cross_build.sh +++ b/z3/docker/cross_build.sh | |||
@@ -11,6 +11,5 @@ z3_version="$(grep '^version=' ../gradle.properties | cut -d'=' -f2)" | |||
11 | rm -rf out | 11 | rm -rf out |
12 | mkdir out | 12 | mkdir out |
13 | docker run --platform linux/amd64 --rm -it -v "${PWD}:/data" --entrypoint /bin/bash docker.io/eclipse-temurin:17-jdk-focal /data/build_in_docker.sh "${z3_version}" "$(id -u)" "$(id -g)" | 13 | docker run --platform linux/amd64 --rm -it -v "${PWD}:/data" --entrypoint /bin/bash docker.io/eclipse-temurin:17-jdk-focal /data/build_in_docker.sh "${z3_version}" "$(id -u)" "$(id -g)" |
14 | rm -rf ../subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/* | 14 | rm -rf ../subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/*.so |
15 | cp ./out/* ../subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/ | 15 | cp ./out/* ../subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/ |
16 | |||
diff --git a/z3/gradle.properties b/z3/gradle.properties index 3ef49dc6..73b4d596 100644 --- a/z3/gradle.properties +++ b/z3/gradle.properties | |||
@@ -6,4 +6,4 @@ file.encoding=UTF-8 | |||
6 | group=tools.refinery.z3 | 6 | group=tools.refinery.z3 |
7 | org.gradle.configuration-cache=false | 7 | org.gradle.configuration-cache=false |
8 | org.gradle.parallel=true | 8 | org.gradle.parallel=true |
9 | version=4.12.2 | 9 | version=4.12.6 |
diff --git a/z3/gradle/libs.versions.toml b/z3/gradle/libs.versions.toml index 88cf8083..7c6c5ad7 100644 --- a/z3/gradle/libs.versions.toml +++ b/z3/gradle/libs.versions.toml | |||
@@ -3,13 +3,13 @@ | |||
3 | # SPDX-License-Identifier: Apache-2.0 | 3 | # SPDX-License-Identifier: Apache-2.0 |
4 | 4 | ||
5 | [versions] | 5 | [versions] |
6 | junit = "5.10.1" | 6 | junit = "5.10.2" |
7 | 7 | ||
8 | [libraries] | 8 | [libraries] |
9 | asm = { group = "org.ow2.asm", name = "asm", version = "9.6" } | 9 | asm = { group = "org.ow2.asm", name = "asm", version = "9.6" } |
10 | jna = { group = "net.java.dev.jna", name = "jna", version = "5.13.0" } | 10 | jna = { group = "net.java.dev.jna", name = "jna", version = "5.14.0" } |
11 | junit-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit" } | 11 | junit-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit" } |
12 | junit-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit" } | 12 | junit-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit" } |
13 | 13 | ||
14 | [plugins] | 14 | [plugins] |
15 | versions = { id = "com.github.ben-manes.versions", version = "0.50.0" } | 15 | versions = { id = "com.github.ben-manes.versions", version = "0.51.0" } |
diff --git a/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3.so b/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3.so index f7013e4f..574ee3ab 100755 --- a/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3.so +++ b/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3.so | |||
Binary files differ | |||
diff --git a/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3.so.license b/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3.so.license index 6f1e5a96..0993dbf7 100644 --- a/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3.so.license +++ b/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3.so.license | |||
@@ -2,5 +2,5 @@ Copyright (c) Microsoft Corporations | |||
2 | 2 | ||
3 | SPDX-License-Identifier: MIT | 3 | SPDX-License-Identifier: MIT |
4 | 4 | ||
5 | This file was created from the Z3 4.12.2 release sources using the | 5 | This file was created from the Z3 4.12.6 release sources using the |
6 | z3/docker/cross_build.sh script in this repository. | 6 | z3/docker/cross_build.sh script in this repository. |
diff --git a/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3java.so b/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3java.so index e37c7cdb..aace2c30 100755 --- a/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3java.so +++ b/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3java.so | |||
Binary files differ | |||
diff --git a/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3java.so.license b/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3java.so.license index 6f1e5a96..0993dbf7 100644 --- a/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3java.so.license +++ b/z3/subprojects/solver-linux-aarch64/src/main/resources/z3java-linux-aarch64/libz3java.so.license | |||
@@ -2,5 +2,5 @@ Copyright (c) Microsoft Corporations | |||
2 | 2 | ||
3 | SPDX-License-Identifier: MIT | 3 | SPDX-License-Identifier: MIT |
4 | 4 | ||
5 | This file was created from the Z3 4.12.2 release sources using the | 5 | This file was created from the Z3 4.12.6 release sources using the |
6 | z3/docker/cross_build.sh script in this repository. | 6 | z3/docker/cross_build.sh script in this repository. |