mirror of
https://github.com/Z3Prover/z3
synced 2026-02-21 07:54:42 +00:00
Apply headerpad fix to build systems (Python and CMake) and fix validation test paths
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
parent
c291c7cf95
commit
3ae8d7026a
6 changed files with 20 additions and 7 deletions
4
.github/workflows/nightly-validation.yml
vendored
4
.github/workflows/nightly-validation.yml
vendored
|
|
@ -713,7 +713,7 @@ jobs:
|
|||
|
||||
# Create a test path with same length as typical setup-z3 usage
|
||||
# This simulates what setup-z3 does: changing to absolute path
|
||||
TEST_PATH="/Users/runner/hostedtoolcache/z3/latest/x64/z3-4.15.5-x64-osx-15.7.3/bin/libz3.dylib"
|
||||
TEST_PATH="/Users/runner/hostedtoolcache/z3/latest/x64/z3-test-dir/bin/libz3.dylib"
|
||||
|
||||
# Try to change the install name - this will fail if headerpad is insufficient
|
||||
install_name_tool -id "$TEST_PATH" -change "$ORIGINAL_NAME" "$TEST_PATH" libz3.dylib
|
||||
|
|
@ -765,7 +765,7 @@ jobs:
|
|||
|
||||
# Create a test path with same length as typical setup-z3 usage
|
||||
# This simulates what setup-z3 does: changing to absolute path
|
||||
TEST_PATH="/Users/runner/hostedtoolcache/z3/latest/arm64/z3-4.15.5-arm64-osx-15.7.3/bin/libz3.dylib"
|
||||
TEST_PATH="/Users/runner/hostedtoolcache/z3/latest/arm64/z3-test-dir/bin/libz3.dylib"
|
||||
|
||||
# Try to change the install name - this will fail if headerpad is insufficient
|
||||
install_name_tool -id "$TEST_PATH" -change "$ORIGINAL_NAME" "$TEST_PATH" libz3.dylib
|
||||
|
|
|
|||
|
|
@ -2749,8 +2749,6 @@ def mk_config():
|
|||
CXXFLAGS = '%s -arch arm64' % CXXFLAGS
|
||||
LDFLAGS = '%s -arch arm64' % LDFLAGS
|
||||
SLIBEXTRAFLAGS = '%s -arch arm64' % SLIBEXTRAFLAGS
|
||||
# Add header padding for macOS to allow install_name_tool to modify the dylib
|
||||
# This fixes issues where install_name_tool fails with "larger updated load commands do not fit"
|
||||
if IS_OSX:
|
||||
SLIBFLAGS += ' -Wl,-headerpad_max_install_names'
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,11 @@ endif()
|
|||
# so that if those are also shared libraries they are referenced by `libz3.so`.
|
||||
target_link_libraries(libz3 PRIVATE ${Z3_DEPENDENT_LIBS})
|
||||
|
||||
# On macOS, add headerpad for install_name_tool compatibility
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND BUILD_LIBZ3_SHARED)
|
||||
target_link_options(libz3 PRIVATE "-Wl,-headerpad_max_install_names")
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
# Create include directory with headers for easier developer integration
|
||||
################################################################################
|
||||
|
|
|
|||
|
|
@ -54,6 +54,11 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|||
endif()
|
||||
# FIXME: Should this library have SONAME and VERSION set?
|
||||
|
||||
# On macOS, add headerpad for install_name_tool compatibility
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
target_link_options(z3java PRIVATE "-Wl,-headerpad_max_install_names")
|
||||
endif()
|
||||
|
||||
# This prevents CMake from automatically defining ``z3java_EXPORTS``
|
||||
set_property(TARGET z3java PROPERTY DEFINE_SYMBOL "")
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,11 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|||
target_link_options(z3jl PRIVATE "-Wl,-headerpad_max_install_names")
|
||||
endif()
|
||||
|
||||
# On macOS, add headerpad for install_name_tool compatibility
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
target_link_options(z3jl PRIVATE "-Wl,-headerpad_max_install_names")
|
||||
endif()
|
||||
|
||||
option(Z3_INSTALL_JULIA_BINDINGS "Install Julia bindings when invoking install target" ON)
|
||||
if(Z3_INSTALL_JULIA_BINDINGS)
|
||||
install(TARGETS z3jl
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
find_package(OCaml REQUIRED)
|
||||
|
||||
set(exe_ext ${CMAKE_EXECUTABLE_SUFFIX})
|
||||
|
|
@ -159,9 +160,8 @@ endif()
|
|||
|
||||
if( APPLE )
|
||||
# set(ocaml_rpath "@executable_path/../libz3${so_ext}")
|
||||
# Add header padding to allow install_name_tool to modify the dylib
|
||||
# This fixes issues where install_name_tool fails with "larger updated load commands do not fit"
|
||||
list(APPEND c_lib_deps "-ldopt" "-Wl,-headerpad_max_install_names")
|
||||
# Add headerpad for install_name_tool compatibility on macOS
|
||||
list(APPEND c_lib_deps "-Wl,-headerpad_max_install_names")
|
||||
elseif( UNIX )
|
||||
set(ocaml_rpath "\\$ORIGIN/../libz3${so_ext}")
|
||||
list(APPEND c_lib_deps "-dllpath" ${ocaml_rpath})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue