Backport #7550

Can't rebuild 1.9.3-p327 because of missing

Added by l0b0 (Victor Engmark) over 7 years ago. Updated over 7 years ago.



As (()), Ruby compiles fine the first time after extracting, but repeating it after a (({make distclean})) doesn't work.

The commands:

$ tar --extract --gzip --file ruby-1.9.3-p327.tar.gz
$ cd ruby-1.9.3-p327/
$ ./configure --prefix=$HOME/.rbenv/versions/1.9.3-p327 &> my-config.log
$ make &> my-make.log
$ make distclean
$ ./configure --prefix=$HOME/.rbenv/versions/1.9.3-p327 &> my-config2.log
$ diff my-config* && echo identical
$ make &> my-make2.log

From the difference, it looks like at least some generated files are not deleted by (({make distclean})) - miniprelude.c being the first. Then ripper is not configured. And last it seems that .ext/i686-linux/-test-/ and subdirectories has been deleted but not regenerated.


my-config.log (15.7 KB) my-config.log ./configure log l0b0 (Victor Engmark), 12/12/2012 07:28 PM
my-make.log (68.7 KB) my-make.log First make log l0b0 (Victor Engmark), 12/12/2012 07:28 PM
my-make2.log (14.7 KB) my-make2.log Second make log l0b0 (Victor Engmark), 12/12/2012 07:28 PM

Updated by Henryse (Henry Seurer) over 7 years ago

I also ran into a problem when trying to build 327 on CentOS 6.2. It was having a problem with the following file missing:


When I tried to build ruby I would get the following error:

make[2]: Entering directory /home/ruby-1.9.3-p327/ext/-test-/array/resize'
linking shared-object -test-/array/
/usr/bin/ld: cannot open output file ../../../../.ext/i686-linux/-test-/array/ No such file or directory
collect2: ld returned 1 exit status
make[2]: *** [../../../../.ext/i686-linux/-test-/array/] Error 1
make[2]: Leaving directory
make[1]: *** [ext/-test-/array/resize/all] Error 2
make[1]: Leaving directory `/home/ruby-1.9.3-p327'
make: *** [build-ext] Error 2

So I did the following:

mkdir ../../../../.ext
mkdir ../../../../.ext/x86_64-linux
mkdir ../../../../.ext/x86_64-linux/-test-
mkdir ../../../../.ext/x86_64-linux/-test-/array

I had to do this for each target in the -test- directory.

Upon further investigation, if you do the following in each of the failing directories it fixes the issue:

make -B

I ran into this issue on the following OSs:
OSX 10.8.2
CentOS 6.2

It worked find in Ubuntu.

Updated by usa (Usaku NAKAMURA) over 7 years ago

  • Status changed from Open to Assigned
  • Assignee set to nobu (Nobuyoshi Nakada)

nobu, do you have any idea about this?

Updated by phasis68 (Heesob Park) over 7 years ago

In order to fix this issue, the change set r36820 should be backported.


Updated by usa (Usaku NAKAMURA) over 7 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r38528.
Victor, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

merge revision(s) 36820: [Backport #7550]

mkmf.rb: clean timestamps

* lib/mkmf.rb (MakeMakefile::CLEANINGS): clean timestamp files.

Updated by bcardarella (Brian Cardarella) over 7 years ago

I just applied this diff and am still getting the same error

Also available in: Atom PDF