Skip to content
This repository has been archived by the owner on Mar 4, 2019. It is now read-only.

Library not loaded: @rpath/"libtiny.dylib" -- image not found #62

Open
NHDaly opened this issue Feb 18, 2018 · 1 comment
Open

Library not loaded: @rpath/"libtiny.dylib" -- image not found #62

NHDaly opened this issue Feb 18, 2018 · 1 comment

Comments

@NHDaly
Copy link
Contributor

NHDaly commented Feb 18, 2018

It looks like the most recent change to support julia v0.7 has broken my system running v0.6.2.

The executable complains for some reason that it cannot find "libhello.dylib", despite it being right there next to it...

 23:03:52 | ~/src/static-julia (master) $ julia juliac.jl -vae hello.jl
Julia program file:
  "/Users/daly/src/static-julia/hello.jl"
C program file:
  "/Users/daly/src/static-julia/program.c"
Build directory:
  "/Users/daly/src/static-julia/builddir"
Change to build directory
Build module image files ".ji" in subdirectory "tmp_v0.6.2":
  `/Applications/Julia-0.6.app/Contents/Resources/julia/bin/julia -Ccore2 -J/Applications/Julia-0.6.app/Contents/Resources/julia/lib/julia/sys.dylib --compile=yes --depwarn=yes --startup-file=no -e '
  empty!(Base.LOAD_CACHE_PATH) # reset / remove any builtin paths
  push!(Base.LOAD_CACHE_PATH, abspath("tmp_v0.6.2")) # enable usage of precompiled files
  include("/Users/daly/src/static-julia/hello.jl") # include "julia_program" file
  empty!(Base.LOAD_CACHE_PATH) # reset / remove build-system-relative paths'`
WARNING: Method definition midpoints(Base.Range{T} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:535.
WARNING: Method definition midpoints(AbstractArray{T, 1} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:533.
Build object file "hello.o" in subdirectory "tmp_v0.6.2":
  `/Applications/Julia-0.6.app/Contents/Resources/julia/bin/julia -Ccore2 -J/Applications/Julia-0.6.app/Contents/Resources/julia/lib/julia/sys.dylib --compile=yes --depwarn=yes --startup-file=no --output-o tmp_v0.6.2/hello.o -e '
  empty!(Base.LOAD_CACHE_PATH) # reset / remove any builtin paths
  push!(Base.LOAD_CACHE_PATH, abspath("tmp_v0.6.2")) # enable usage of precompiled files
  include("/Users/daly/src/static-julia/hello.jl") # include "julia_program" file
  empty!(Base.LOAD_CACHE_PATH) # reset / remove build-system-relative paths'`
WARNING: Method definition midpoints(Base.Range{T} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:535.
WARNING: Method definition midpoints(AbstractArray{T, 1} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:533.
Build shared library "libhello.dylib" in build directory:
  `gcc -m64 -shared -o libhello.dylib tmp_v0.6.2/hello.o -std=gnu99 -I/Applications/Julia-0.6.app/Contents/Resources/julia/include/julia -DJULIA_ENABLE_THREADING=1 -fPIC -L/Applications/Julia-0.6.app/Contents/Resources/julia/lib -Wl,-rpath,/Applications/Julia-0.6.app/Contents/Resources/julia/lib -Wl,-rpath,/Applications/Julia-0.6.app/Contents/Resources/julia/lib/julia -ljulia '-Wl,-install_name,@rpath/"libhello.dylib"'`
Build executable file "hello" in build directory:
  `gcc -m64 '-DJULIAC_PROGRAM_LIBNAME="libhello"' -o hello /Users/daly/src/static-julia/program.c libhello.dylib -std=gnu99 -I/Applications/Julia-0.6.app/Contents/Resources/julia/include/julia -DJULIA_ENABLE_THREADING=1 -fPIC -L/Applications/Julia-0.6.app/Contents/Resources/julia/lib -Wl,-rpath,/Applications/Julia-0.6.app/Contents/Resources/julia/lib -Wl,-rpath,/Applications/Julia-0.6.app/Contents/Resources/julia/lib/julia -ljulia -Wl,-rpath,@executable_path`

 23:05:59 | ~/src/static-julia (master) $ ./builddir/hello
dyld: Library not loaded: @rpath/"libhello.dylib"
  Referenced from: /Users/daly/src/static-julia/./builddir/hello
  Reason: image not found
[4]    55109 abort      ./builddir/hello
 23:06:00 | ~/src/static-julia (master) $

Here it is working before the latest change:

 23:06:26 | ~/src/static-julia (c1f7b20) $ git checkout HEAD~
 23:06:26 | ~/src/static-julia (c1f7b20) $ julia juliac.jl -vae hello.jl
Julia program file:
  "/Users/daly/src/static-julia/hello.jl"
C program file:
  "/Users/daly/src/static-julia/program.c"
Build directory:
  "/Users/daly/src/static-julia/builddir"
Change to build directory
Build ".ji" files:
  `/Applications/Julia-0.6.app/Contents/Resources/julia/bin/julia -Ccore2 -J/Applications/Julia-0.6.app/Contents/Resources/julia/lib/julia/sys.dylib --compile=yes --depwarn=yes --startup-file=no -e '
  VERSION >= v"0.7+" && Base.init_load_path("/Applications/Julia-0.6.app/Contents/Resources/julia/bin") # initialize location of site-packages
  empty!(Base.LOAD_CACHE_PATH) # reset / remove any builtin paths
  push!(Base.LOAD_CACHE_PATH, abspath("tmp_v0.6.2")) # enable usage of precompiled files
  include("/Users/daly/src/static-julia/hello.jl") # include "julia_program" file
  empty!(Base.LOAD_CACHE_PATH) # reset / remove build-system-relative paths'`
WARNING: Method definition midpoints(AbstractArray{T, 1} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:533.
WARNING: Method definition midpoints(Base.Range{T} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:535.
WARNING: Method definition midpoints(Base.Range{T} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:535.
WARNING: Method definition midpoints(AbstractArray{T, 1} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:533.
WARNING: Method definition midpoints(Base.Range{T} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:535.
WARNING: Method definition midpoints(AbstractArray{T, 1} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:533.
WARNING: Method definition midpoints(Base.Range{T} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:535.
WARNING: Method definition midpoints(AbstractArray{T, 1} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:533.
Build object file "hello.o":
  `/Applications/Julia-0.6.app/Contents/Resources/julia/bin/julia -Ccore2 -J/Applications/Julia-0.6.app/Contents/Resources/julia/lib/julia/sys.dylib --compile=yes --depwarn=yes --startup-file=no --output-o tmp_v0.6.2/hello.o -e '
  VERSION >= v"0.7+" && Base.init_load_path("/Applications/Julia-0.6.app/Contents/Resources/julia/bin") # initialize location of site-packages
  empty!(Base.LOAD_CACHE_PATH) # reset / remove any builtin paths
  push!(Base.LOAD_CACHE_PATH, abspath("tmp_v0.6.2")) # enable usage of precompiled files
  include("/Users/daly/src/static-julia/hello.jl") # include "julia_program" file
  empty!(Base.LOAD_CACHE_PATH) # reset / remove build-system-relative paths'`
WARNING: Method definition midpoints(Base.Range{T} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:535.
WARNING: Method definition midpoints(AbstractArray{T, 1} where T) in module Base at deprecated.jl:56 overwritten in module StatsBase at /Users/daly/.julia/v0.6/StatsBase/src/hist.jl:533.
Build shared library "libhello.dylib":
  `gcc -m64 -shared -o libhello.dylib tmp_v0.6.2/hello.o -std=gnu99 -I/Applications/Julia-0.6.app/Contents/Resources/julia/include/julia -DJULIA_ENABLE_THREADING=1 -fPIC -L/Applications/Julia-0.6.app/Contents/Resources/julia/lib -Wl,-rpath,/Applications/Julia-0.6.app/Contents/Resources/julia/lib -Wl,-rpath,/Applications/Julia-0.6.app/Contents/Resources/julia/lib/julia -ljulia -Wl,-install_name,@rpath/libhello.dylib`
Build executable file "hello":
  `gcc -m64 -o hello /Users/daly/src/static-julia/program.c libhello.dylib -std=gnu99 -I/Applications/Julia-0.6.app/Contents/Resources/julia/include/julia -DJULIA_ENABLE_THREADING=1 -fPIC '-DJULIAC_PROGRAM_LIBNAME="libhello"' -L/Applications/Julia-0.6.app/Contents/Resources/julia/lib -Wl,-rpath,/Applications/Julia-0.6.app/Contents/Resources/julia/lib -Wl,-rpath,/Applications/Julia-0.6.app/Contents/Resources/julia/lib/julia -ljulia -Wl,-rpath,@executable_path`

 23:08:00 | ~/src/static-julia (c1f7b20) $ ./builddir/hello
hello, world
f() = -1.522602195629931
       ┌────────────────────────────────────────┐
   100 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠁⠀│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠊⠀⠀⠀│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠁⠀⠀⠀⠀│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠁⠀⠀⠀⠀⠀⠀│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠒⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│
       │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│
       │⠀⠀⠀⠀⠀⠀⢀⣀⠤⠔⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│
     0 │⣀⠤⠤⠔⠒⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│
       └────────────────────────────────────────┘
       1                                       10
 23:08:00 | ~/src/static-julia (c1f7b20) $

I'm on macOS 10.13.3 (17D47), fwiw.

I'm going to try to look now to see if I can find anything that could be responsible...

@NHDaly
Copy link
Contributor Author

NHDaly commented Feb 18, 2018

Ah, okay, it looks like the problem is with the new extra double-quotes around the libname at the end of the shared .dylib build command.

This works on my machine: '-Wl,-install_name,@rpath/libhello.dylib'
And this does not: '-Wl,-install_name,@rpath/"libhello.dylib"'.

I'll send a patch now.

NHDaly added a commit to NHDaly/static-julia that referenced this issue Feb 18, 2018
Fix "image not found" error by removing quotes from -install_name.

Fixes JuliaComputing#62.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant