Wanted to report so that others don't run into the same foot-gun. And make a tracking issue in case it can be fixed.
Linker error when binary is same as project. (using the quick-start test example)
% make app
juliac \
--output-exe appproject \
--bundle build \
--trim=safe \
--experimental \
AppProject
✓ Compiling...
ld: warning: reexported library with install name '@rpath/libunwind.1.dylib' found at '/Users/ben/.julia/juliaup/julia-1.12.6+0.x64.apple.darwin14/Julia-1.12.app/Contents/Resources/julia/lib/julia/libunwind.1.0.dylib' couldn't be matched with any parent library and will be linked directly
ld: open() failed, errno=21 for 'appproject'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ERROR:
Compilation failed: ProcessFailedException(Base.Process[Process(`gcc -std=gnu11 -I/Users/ben/.julia/juliaup/julia-1.12.6+0.x64.apple.darwin14/Julia-1.12.app/Contents/Resources/julia/include/julia -fPIC -L/Users/ben/.julia/juliaup/julia-1.12.6+0.x64.apple.darwin14/Julia-1.12.app/Contents/Resources/julia/lib -L/Users/ben/.julia/juliaup/julia-1.12.6+0.x64.apple.darwin14/Julia-1.12.app/Contents/Resources/julia/lib/julia -Wl,-rpath,@loader_path/../lib -Wl,-rpath,@loader_path/../lib/julia -o appproject -Wl,-all_load /var/folders/lb/7gfx254569x0vc6zg3mjqg8h0000gn/T/jl_qxMule/image.o.a /var/folders/lb/7gfx254569x0vc6zg3mjqg8h0000gn/T/jl_7rrGQD/juliac-jl-options-init.o -Wl, -ljulia -ljulia-internal -Wl,-install_name,@rpath/appproject`, ProcessExited(1))])
Stacktrace:
[1] error(::String, ::ProcessFailedException)
@ Base ./error.jl:54
[2] link_products(recipe::JuliaC.LinkRecipe)
@ JuliaC ~/.julia/packages/JuliaC/29fnd/src/linking.jl:154
[3] _main_cli(args::Vector{String}; io::Base.TTY)
@ JuliaC ~/.julia/packages/JuliaC/29fnd/src/JuliaC.jl:209
[4] _main_cli(args::Vector{String})
@ JuliaC ~/.julia/packages/JuliaC/29fnd/src/JuliaC.jl:199
[5] main(ARGS::Vector{String})
@ JuliaC ~/.julia/packages/JuliaC/29fnd/src/JuliaC.jl:214
[6] _start()
@ Base ./client.jl:556
caused by: failed process: Process(`gcc -std=gnu11 -I/Users/ben/.julia/juliaup/julia-1.12.6+0.x64.apple.darwin14/Julia-1.12.app/Contents/Resources/julia/include/julia -fPIC -L/Users/ben/.julia/juliaup/julia-1.12.6+0.x64.apple.darwin14/Julia-1.12.app/Contents/Resources/julia/lib -L/Users/ben/.julia/juliaup/julia-1.12.6+0.x64.apple.darwin14/Julia-1.12.app/Contents/Resources/julia/lib/julia -Wl,-rpath,@loader_path/../lib -Wl,-rpath,@loader_path/../lib/julia -o appproject -Wl,-all_load /var/folders/lb/7gfx254569x0vc6zg3mjqg8h0000gn/T/jl_qxMule/image.o.a /var/folders/lb/7gfx254569x0vc6zg3mjqg8h0000gn/T/jl_7rrGQD/juliac-jl-options-init.o -Wl, -ljulia -ljulia-internal -Wl,-install_name,@rpath/appproject`, ProcessExited(1)) [1]
Stacktrace:
[1] pipeline_error
@ ./process.jl:597 [inlined]
[2] run(::Cmd; wait::Bool)
@ Base ./process.jl:512
[3] run
@ ./process.jl:509 [inlined]
[4] link_products(recipe::JuliaC.LinkRecipe)
@ JuliaC ~/.julia/packages/JuliaC/29fnd/src/linking.jl:152
[5] _main_cli(args::Vector{String}; io::Base.TTY)
@ JuliaC ~/.julia/packages/JuliaC/29fnd/src/JuliaC.jl:209
[6] _main_cli(args::Vector{String})
@ JuliaC ~/.julia/packages/JuliaC/29fnd/src/JuliaC.jl:199
[7] main(ARGS::Vector{String})
@ JuliaC ~/.julia/packages/JuliaC/29fnd/src/JuliaC.jl:214
[8] _start()
@ Base ./client.jl:556
make: *** [app] Error 1
Linking works once the executable is renamed.
% make app
juliac \
--output-exe app-project \
--bundle build \
--trim=safe \
--experimental \
AppProject
✓ Compiling...
ld: warning: reexported library with install name '@rpath/libunwind.1.dylib' found at '/Users/ben/.julia/juliaup/julia-1.12.6+0.x64.apple.darwin14/Julia-1.12.app/Contents/Resources/julia/lib/julia/libunwind.1.0.dylib' couldn't be matched with any parent library and will be linked directly
PackageCompiler: bundled libraries:
├── Base:
│ ├── libLLVM.dylib - 60.666 MiB
│ ├── libatomic.1.dylib - 66.172 KiB
│ ├── libdSFMT.dylib - 44.547 KiB
│ ├── libgcc_s.1.1.dylib - 212.453 KiB
│ ├── libgcc_s.1.dylib - 40.828 KiB
│ ├── libgfortran.5.dylib - 3.374 MiB
│ ├── libgmp.10.dylib - 679.906 KiB
│ ├── libgmpxx.4.dylib - 59.500 KiB
│ ├── libgomp.1.dylib - 435.344 KiB
│ ├── libjulia-codegen.1.12.6.dylib - 2.231 MiB
│ ├── libjulia-internal.1.12.6.dylib - 4.997 MiB
│ ├── libmpfr.6.dylib - 576.234 KiB
│ ├── libopenlibm.4.0.dylib - 184.969 KiB
│ ├── libpcre2-8.0.dylib - 863.734 KiB
│ ├── libquadmath.0.dylib - 353.453 KiB
│ ├── libssp.0.dylib - 34.750 KiB
│ ├── libstdc++.6.dylib - 3.950 MiB
│ ├── libuv.2.dylib - 340.109 KiB
│ ├── libz.1.3.1.dylib - 126.641 KiB
│ ├── libunwind.1.0.dylib - 64.406 KiB
│ ├── libjulia.1.12.6.dylib - 220.641 KiB
├── Stdlibs:
│ ├── OpenBLAS_jll
│ │ ├── libopenblas64_.0.3.29.dylib - 63.236 MiB
│ ├── libblastrampoline_jll
│ │ ├── libblastrampoline.5.dylib - 2.847 MiB
Total library file size: 145.503 MiB
Wanted to report so that others don't run into the same foot-gun. And make a tracking issue in case it can be fixed.
Linker error when binary is same as project. (using the quick-start test example)
Linking works once the executable is renamed.