Skip to content

Can't name executable the same as the package "linker command failed with exit code 1" #132

Description

@BenjaminDoran

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions