Skip to content
  • Nobuyoshi Nakada's avatar
    ce8a8c10
    Remove unnecessary require of fileutils · ce8a8c10
    Nobuyoshi Nakada authored
    Today I updated my ruby core clone, and I run the usual steps to compile
    ruby. When running "make", I run into the following error:
    
    ```
    (... stuff ...)
    encdb.h unchanged
    Traceback (most recent call last):
    	5: from ./tool/mkconfig.rb:19:in `<main>'
    	4: from ./tool/mkconfig.rb:19:in `require'
    	3: from /home/deivid/Code/ruby/lib/fileutils.rb:4:in `<top (required)>'
    	2: from /home/deivid/Code/ruby/lib/fileutils.rb:4:in `require'
    	1: from /home/deivid/Code/ruby/rbconfig.rb:11:in `<top (required)>'
    /home/deivid/Code/ruby/rbconfig.rb:13:in `<module:RbConfig>': ruby lib version (2.5.0) doesn't match executable version (2.6.0) (RuntimeError)
    uncommon.mk:780: recipe for target '.rbconfig.time' failed
    make: *** [.rbconfig.time] Error 1
    ```
    
    Apparently, the script that generates the root `rbconfig.rb` file requires
    `fileutils`, which in turn requires 'rbconfig' (for mjit-headers it says in a
    comment), which uses the `rbconfig.rb` config file in the root folder if it
    exists. In my case, this file existed but had been generated on 2.5.0, thus
    causing the error.
    
    I think we can avoid this sort of circular dependency by not requiring
    `fileutils`, since it does not seem to be used anywhere in the
    `tool/mkconfig.rb` script since r55338.
    
    [Fix GH-2045]
    
    From: David Rodríguez <deivid.rodriguez@riseup.net>
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    ce8a8c10
    Remove unnecessary require of fileutils
    Nobuyoshi Nakada authored
    Today I updated my ruby core clone, and I run the usual steps to compile
    ruby. When running "make", I run into the following error:
    
    ```
    (... stuff ...)
    encdb.h unchanged
    Traceback (most recent call last):
    	5: from ./tool/mkconfig.rb:19:in `<main>'
    	4: from ./tool/mkconfig.rb:19:in `require'
    	3: from /home/deivid/Code/ruby/lib/fileutils.rb:4:in `<top (required)>'
    	2: from /home/deivid/Code/ruby/lib/fileutils.rb:4:in `require'
    	1: from /home/deivid/Code/ruby/rbconfig.rb:11:in `<top (required)>'
    /home/deivid/Code/ruby/rbconfig.rb:13:in `<module:RbConfig>': ruby lib version (2.5.0) doesn't match executable version (2.6.0) (RuntimeError)
    uncommon.mk:780: recipe for target '.rbconfig.time' failed
    make: *** [.rbconfig.time] Error 1
    ```
    
    Apparently, the script that generates the root `rbconfig.rb` file requires
    `fileutils`, which in turn requires 'rbconfig' (for mjit-headers it says in a
    comment), which uses the `rbconfig.rb` config file in the root folder if it
    exists. In my case, this file existed but had been generated on 2.5.0, thus
    causing the error.
    
    I think we can avoid this sort of circular dependency by not requiring
    `fileutils`, since it does not seem to be used anywhere in the
    `tool/mkconfig.rb` script since r55338.
    
    [Fix GH-2045]
    
    From: David Rodríguez <deivid.rodriguez@riseup.net>
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Loading