Bug #9010
open./configure --prefix= cannot handle directories with spaces
Description
It appears that the linking task fails when the --prefix value contains spaces.
Steps to Reproduce:
- ./configure --prefix="$HOME/foo bar"
- make
Expected Result: success
Actual Result:
make[2]: Entering directory /home/hal/src/ruby-2.0.0-p247' linking ruby gcc: error: bar/lib: No such file or directory gcc: error: bar/lib: No such file or directory make[2]: *** [ruby] Error 1 make[2]: Leaving directory
/home/hal/src/ruby-2.0.0-p247'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/hal/src/ruby-2.0.0-p247'
make: *** [build-ext] Error 2
Updated by nagachika (Tomoyuki Chikanaga) about 11 years ago
- Tracker changed from Backport to Bug
- Project changed from Backport200 to Ruby master
- Status changed from Open to Assigned
- Assignee set to nobu (Nobuyoshi Nakada)
- Priority changed from 5 to Normal
Updated by Hanmac (Hans Mackowiak) about 11 years ago
maybe its a problem with your shell? on Mac i am currently using it works
hm or try if you can build ruby-trunk.
Updated by postmodern (Hal Brodigan) almost 11 years ago
Tested against r44682 on bash 4.2.5 and got the same error:
$ ./configure --prefix="$HOME/foo bar"
$ make
...
linking static-library libruby-static.a
verifying static-library libruby-static.a
linking ruby
gcc: error: bar/lib: No such file or directory
gcc: error: bar/lib: No such file or directory
make[2]: *** [ruby] Error 1
make[2]: Leaving directory `/vault/0/src/ruby/trunk'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/vault/0/src/ruby/trunk'
make: *** [build-ext] Error 2
Updated by hsbt (Hiroshi SHIBATA) about 10 years ago
- ruby -v set to trunk
I can't reproduce with trunk and ruby_2_1 branch.
Updated by postmodern (Hal Brodigan) over 9 years ago
Still hitting this with ruby 2.2.1.
Steps To Reproduce¶
mkdir "$PWD/fake home"
export HOME="$PWD/fake home"
cd "$HOME"
wget http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.1.tar.bz2
tar -xjvf ruby-2.2.1.tar.bz2
cd ruby-2.2.1
./configure --prefix="$HOME/.rubies/ruby-2.2.1"
make
Result¶
linking ruby
gcc: error: home/.rubies/ruby-2.2.1/lib: No such file or directory
gcc: error: home/.rubies/ruby-2.2.1/lib: No such file or directory
make[2]: *** [ruby] Error 1
make[2]: Leaving directory `/home/hal/fake home/ruby-2.2.1'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/hal/fake home/ruby-2.2.1'
make: *** [build-ext] Error 2
Updated by jeremyevans0 (Jeremy Evans) over 3 years ago
This appears to still be an issue in the master branch. It appears to be first hit when linking extensions (example uses --prefix="/home/jeremy/local foo bar"
):
cc -shared -fPIC -o ../../../.ext/x86_64-openbsd6.9/-test-/RUBY_ALIGNOF.so c.o -L. -L../../.. -L. -L/usr/local/lib -fstack-protector-strong -Wl,-E -L/usr/local/lib -Wl,-rpath,/home/jeremy/local foo bar/lib -L/home/jeremy/local foo bar/lib -lruby -lm -lc
Seems like quoting the -Wl,-rpath,
and -L
arguments may fix this particular case, but I'm not sure if that will cause other problems.
Updated by fcheung (Frederick Cheung) 12 months ago
Still happening on master as b1f345b1 when building on macos:
../configure --prefix="${HOME}/dir with space/.rubies/ruby-master"
make install
produces
...
linking shared-library libruby.3.3.dylib
clang: error: no such file or directory: 'with'
clang: error: no such file or directory: 'space/.rubies/ruby-master/lib/libruby.3.3.dylib'
make: *** [libruby.3.3.dylib] Error 1