3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-08-05 05:33:35 +00:00
z3/scripts
Lev Nachmanson 2ed4e90c75
Fix Java UnsatisfiedLinkError on macOS (#7640) (#9027)
On macOS, libz3java.dylib was built without an rpath to find libz3.dylib
in the same directory. When Java loaded the JNI library, the dynamic
linker could not resolve the libz3 dependency, causing
UnsatisfiedLinkError.

Three fixes:
- mk_util.py: add -Wl,-rpath,@loader_path to the macOS JNI link command
- CMakeLists.txt: set MACOSX_RPATH, BUILD_RPATH, INSTALL_RPATH for
z3java target; remove duplicate headerpad block
- update_api.py: improve Native.java error message to show the root
cause from both load attempts instead of only the fallback error

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-08 19:35:04 -07:00
..
tests
build-win-signed-cmake.yml
build-win-signed.yml
build_libcxx_msan.sh
coverage.yml
find_non_defined_param_eval_patterns.py
generate-doc.yml
jsdoctest.yml
mk_consts_files.py
mk_copyright.py
mk_def_file.py
mk_exception.py
mk_genfile_common.py
mk_gparams_register_modules_cpp.py
mk_install_tactic_cpp.py
mk_make.py
mk_mem_initializer_cpp.py
mk_nuget_task.py
mk_pat_db.py
mk_project.py
mk_unix_dist.py
mk_unix_dist_cmake.py
mk_util.py
mk_win_dist.py
mk_win_dist_cmake.py
policy.json
pyg2hpp.py
README
test-examples-cmake.yml
test-java-cmake.yml
test-jupyter.yml
test-regressions-coverage.yml
test-regressions.yml
test-z3.yml
trackall.sh
update_api.py
update_header_guards.py
update_include.py
update_version.py
VERSION.txt
vsts-mac.sh
vsts-vs2013.cmd
vsts-vs2017.cmd

Instructions for updating external Z3 API
-----------------------------------------

The python "macros": def_Type() and def_API() are used to add new types and function definitions to the Z3 API.
The .h files provided to `mk_bindings(API_files)` contain these definitions.
See src\api\z3_api.h for many examples.

The bindings for .Net and Python are generated when mk_make.py is invoked.