JuliaLang / PackageCompiler.jl

Compile your Julia Package
https://julialang.github.io/PackageCompiler.jl/dev/
MIT License
1.4k stars 186 forks source link

macOS: can not build app on macOS reporting `System image file failed consistency check` #864

Closed ctarn closed 9 months ago

ctarn commented 9 months ago

I can not compile the same mini app as #812 on macOS using PackageCompiler@2.1.10 and Julia@1.9.3. The executable prints ERROR: System image file failed consistency check: maybe opened the wrong version? and exits.

It is weird that even after downgrading PackageCompiler@2.1.7 and Julia@1.9.0, it still does not work. I am using the same computer as #812, but the system should be upgraded after that. I am still trying.

versioninfo

julia> versioninfo()
Julia Version 1.9.3
Commit bed2cd540a1 (2023-08-24 14:43 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: macOS (x86_64-apple-darwin22.4.0)
  CPU: 16 × Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.6 (ORCJIT, skylake)
  Threads: 1 on 16 virtual cores

tested mini app

$ ls . src
.:
Project.toml  src/

src:
MiniApp.jl

$ cat Project.toml 
name = "MiniApp"
uuid = "f943f3d7-887a-4ed5-b0c0-a1d6899aa8f6"
version = "0.1.0"

$ cat src/MiniApp.jl
module MiniApp

function julia_main()::Cint
    println("this is MiniApp")
    return 0
end

end

compile

$ julia --project=.
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.9.3 (2023-08-24)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

(MiniApp) pkg> add PackageCompiler@2.1.10
   Resolving package versions...
    Updating `~/tmp/Project.toml`
  [9b87118b] + PackageCompiler v2.1.10
    Updating `~/tmp/Manifest.toml`
  [c27321d9] + Glob v1.3.1
  [9b87118b] + PackageCompiler v2.1.10
  [05181044] + RelocatableFolders v1.0.1
  [6c6a2e73] + Scratch v1.2.0
  [0dad84c5] + ArgTools v1.1.1
  [56f22d72] + Artifacts
  [2a0f44e3] + Base64
  [ade2ca70] + Dates
  [f43a241f] + Downloads v1.6.0
  [7b1f6079] + FileWatching
  [b77e0a4c] + InteractiveUtils
  [4af54fe1] + LazyArtifacts
  [b27032c2] + LibCURL v0.6.3
  [76f85450] + LibGit2
  [8f399da3] + Libdl
  [56ddb016] + Logging
  [d6f4376e] + Markdown
  [ca575930] + NetworkOptions v1.2.0
  [44cfe95a] + Pkg v1.9.2
  [de0858da] + Printf
  [3fa0cd96] + REPL
  [9a3f8284] + Random
  [ea8e919c] + SHA v0.7.0
  [9e88b42a] + Serialization
  [6462fe0b] + Sockets
  [fa267f1f] + TOML v1.0.3
  [a4e569a6] + Tar v1.10.0
  [cf7118a7] + UUIDs
  [4ec0a83e] + Unicode
  [deac9b47] + LibCURL_jll v7.84.0+0
  [29816b5a] + LibSSH2_jll v1.10.2+0
  [c8ffd9c3] + MbedTLS_jll v2.28.2+0
  [14a3606d] + MozillaCACerts_jll v2022.10.11
  [83775a58] + Zlib_jll v1.2.13+0
  [8e850ede] + nghttp2_jll v1.48.0+0
  [3f19e933] + p7zip_jll v17.4.0+0
Precompiling project...
  2 dependencies successfully precompiled in 2 seconds. 6 already precompiled.

julia> import PackageCompiler

julia> PackageCompiler.create_app(".", "build.tmp", force=true)
PackageCompiler: bundled libraries:
  ├── Base:
  │    ├── libLLVM.dylib - 66.998 MiB
  │    ├── libatomic.1.dylib - 66.984 KiB
  │    ├── libdSFMT.dylib - 45.453 KiB
  │    ├── libgcc_s.1.1.dylib - 159.062 KiB
  │    ├── libgcc_s.1.dylib - 41.750 KiB
  │    ├── libgfortran.5.dylib - 3.271 MiB
  │    ├── libgmp.10.dylib - 676.188 KiB
  │    ├── libgmpxx.4.dylib - 60.391 KiB
  │    ├── libgomp.1.dylib - 397.781 KiB
  │    ├── libjulia-codegen.1.9.dylib - 1.856 MiB
  │    ├── libjulia-internal.1.9.dylib - 4.308 MiB
  │    ├── libmpfr.6.dylib - 547.203 KiB
  │    ├── libopenlibm.4.0.dylib - 185.562 KiB
  │    ├── libpcre2-8.0.dylib - 835.812 KiB
  │    ├── libquadmath.0.dylib - 355.656 KiB
  │    ├── libssp.0.dylib - 35.578 KiB
  │    ├── libstdc++.6.dylib - 3.617 MiB
  │    ├── libuv.2.dylib - 326.609 KiB
  │    ├── libz.1.2.13.dylib - 127.500 KiB
  │    ├── libunwind.1.0.dylib - 73.594 KiB
  │    ├── libjulia.1.9.dylib - 223.344 KiB
  ├── Stdlibs:
  │   ├── LibCURL_jll
  │   │   ├── libcurl.4.dylib - 572.641 KiB
  │   ├── LibGit2_jll
  │   │   ├── libgit2.1.5.0.dylib - 1.206 MiB
  │   ├── LibSSH2_jll
  │   │   ├── libssh2.1.0.1.dylib - 247.141 KiB
  │   ├── MbedTLS_jll
  │   │   ├── libmbedcrypto.2.28.2.dylib - 600.062 KiB
  │   │   ├── libmbedtls.2.28.2.dylib - 277.672 KiB
  │   │   ├── libmbedx509.2.28.2.dylib - 179.031 KiB
  │   ├── OpenBLAS_jll
  │   │   ├── libopenblas64_.0.3.21.dylib - 60.526 MiB
  │   ├── SuiteSparse_jll
  │   │   ├── libamd.2.4.6.dylib - 73.188 KiB
  │   │   ├── libbtf.1.2.6.dylib - 47.906 KiB
  │   │   ├── libcamd.2.4.6.dylib - 73.234 KiB
  │   │   ├── libccolamd.2.9.6.dylib - 85.656 KiB
  │   │   ├── libcholmod.3.0.14.dylib - 1.067 MiB
  │   │   ├── libcolamd.2.9.6.dylib - 64.891 KiB
  │   │   ├── libklu.1.3.8.dylib - 251.984 KiB
  │   │   ├── libldl.2.2.6.dylib - 44.359 KiB
  │   │   ├── librbio.2.2.6.dylib - 90.438 KiB
  │   │   ├── libspqr.2.0.9.dylib - 263.172 KiB
  │   │   ├── libsuitesparseconfig.5.10.1.dylib - 36.281 KiB
  │   │   ├── libumfpack.5.7.9.dylib - 904.906 KiB
  │   ├── libblastrampoline_jll
  │   │   ├── libblastrampoline.5.dylib - 2.591 MiB
  │   ├── nghttp2_jll
  │   │   ├── libnghttp2.14.dylib - 250.781 KiB
  Total library file size: 153.469 MiB
✔ [02m:56s] PackageCompiler: compiling base system image (incremental=false)
Precompiling project...
  8 dependencies successfully precompiled in 47 seconds
✔ [03m:08s] PackageCompiler: compiling nonincremental system image

error log

$ ./build.tmp/bin/MiniApp
ERROR: System image file failed consistency check: maybe opened the wrong version?
ctarn commented 9 months ago

closing it since duplicating to #738

sloede commented 9 months ago

Duplicate of #738