From 6d2cdd10841b29e937e55e479dfd492d91488b40 Mon Sep 17 00:00:00 2001 From: Jay Cook Date: Tue, 2 Apr 2024 12:36:03 -0400 Subject: [PATCH 1/3] Fix bug in create_sysimg_from_object_file for Xcode 15 CLT --- src/PackageCompiler.jl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/PackageCompiler.jl b/src/PackageCompiler.jl index c3cb8878..ea3372c3 100644 --- a/src/PackageCompiler.jl +++ b/src/PackageCompiler.jl @@ -686,7 +686,17 @@ function create_sysimg_from_object_file(object_files::Vector{String}, end mkpath(dirname(sysimage_path)) # Prevent compiler from stripping all symbols from the shared lib. - o_file_flags = Sys.isapple() ? `-Wl,-all_load $object_files` : `-Wl,--whole-archive $object_files -Wl,--no-whole-archive` + if Sys.isapple() + cltools_version_cmd = `pkgutil --pkg-info=com.apple.pkg.CLTools_Executables` + cltools_version = match(r"version: (.*)\n", readchomp(cltools_version_cmd))[1] + if startswith(cltools_version, "15") + o_file_flags = `-Wl,-all_load $object_files -Wl,-ld_classic` + else + o_file_flags = `-Wl,-all_load $object_files` + end + else + o_file_flags = `-Wl,--whole-archive $object_files -Wl,--no-whole-archive` + end extra = get_extra_linker_flags(version, compat_level, soname) cmd = `$(bitflag()) $(march()) -shared -L$(julia_libdir()) -L$(julia_private_libdir()) -o $sysimage_path $o_file_flags $(Base.shell_split(ldlibs())) $extra` run_compiler(cmd; cplusplus=true) From 1d955aa286858146e11cecb4137690e9adad0631 Mon Sep 17 00:00:00 2001 From: Jay Cook Date: Tue, 2 Apr 2024 16:21:37 -0400 Subject: [PATCH 2/3] Bump version --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 7d311c03..d3fe7088 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "PackageCompiler" uuid = "9b87118b-4619-50d2-8e1e-99f35a4d4d9d" -version = "2.1.17" +version = "2.1.18" [deps] Artifacts = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" From 7161e1a8690f70d3fc1d159e6e59e9b5e28fd684 Mon Sep 17 00:00:00 2001 From: Jay Cook Date: Thu, 4 Apr 2024 12:46:30 -0400 Subject: [PATCH 3/3] =?UTF-8?q?Check=20for=20versions=20=E2=89=A5=2015,=20?= =?UTF-8?q?handle=20pkgutil=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PackageCompiler.jl | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/PackageCompiler.jl b/src/PackageCompiler.jl index ea3372c3..762d58cb 100644 --- a/src/PackageCompiler.jl +++ b/src/PackageCompiler.jl @@ -687,9 +687,15 @@ function create_sysimg_from_object_file(object_files::Vector{String}, mkpath(dirname(sysimage_path)) # Prevent compiler from stripping all symbols from the shared lib. if Sys.isapple() - cltools_version_cmd = `pkgutil --pkg-info=com.apple.pkg.CLTools_Executables` - cltools_version = match(r"version: (.*)\n", readchomp(cltools_version_cmd))[1] - if startswith(cltools_version, "15") + try + cltools_version_cmd = `pkgutil --pkg-info=com.apple.pkg.CLTools_Executables` + cltools_version = match(r"version: (.*)\n", readchomp(cltools_version_cmd))[1] + global major_version = split(cltools_version, ".")[1] + catch e + @warn "Could not determine the version of the Command Line Tools, assuming greater than 14" + global major_version = "15" + end + if parse(Int64, major_version) > 14 o_file_flags = `-Wl,-all_load $object_files -Wl,-ld_classic` else o_file_flags = `-Wl,-all_load $object_files` @@ -1431,7 +1437,7 @@ function bundle_julia_libexec(ctx, dest_dir) p7zip_exe = basename(p7zip_path) cp(p7zip_path, joinpath(bundle_libexec_dir, p7zip_exe)) - return + return end function recursive_dir_size(path)