Project

General

Profile

Actions

Bug #7710

closed

[mingw] r38839 breaks build

Added by jonforums (Jon Forums) almost 12 years ago. Updated almost 12 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 2.0.0dev (2013-01-14 trunk 38808) [i386-mingw32]
Backport:
[ruby-core:51489]

Description

On my Win7 32bit system using mingw-w64 gcc 4.7.2 and the RubyInstaller build recipes I get the following failure

make[2]: Entering directory /c/projects/rubyinstaller-git/sandbox/ruby19_build/ext/ripper' extracting ripper.y from ../../../../../../Users/Jon/Documents/RubyDev/ruby-git/parse.y id.h not found in ["..\\..\\..\\..\\..\\..\\Users\\Jon\\Documents\\RubyDev\\ruby-git\\ext\\ripper;..\\..;..\\..\\.ext\\include\\i386-mingw32\\ruby;..\\..\\..\\..\\..\\..\\Users\\Jon\\Documents\\RubyDev\\ruby-git\\include\\ruby;..\\..;..\\..\\..\\..\\..\\..\\Users\\Jon\\Documents\\RubyDev\\ruby-git"] make[2]: *** [ripper.y] Error 1 make[2]: Leaving directory /c/projects/rubyinstaller-git/sandbox/ruby19_build/ext/ripper'
make[1]: *** [ext/ripper/all] Error 2
make[1]: Leaving directory `/c/projects/rubyinstaller-git/sandbox/ruby19_build'
make: *** [build-ext] Error 2

due to id.h not being found.

The same failure is occurring on the RubyInstaller CI: http://ci.rubyinstaller.org/job/ruby-trunk-x86-build/820/console

While placing id.h in ext/ripper enabled a successful rebuild, havoc reigned during make test-all. Reverting r38839 fixed the issue.

FWIW, in both the passing and failing cases my rbconfig.rb contains

CONFIG["PATH_SEPARATOR"] = ":"

I won't have time to play with configure.in to see if changing the separator to ";" on mingw will also fix the issue, but I'm sceptical given the test-all failures.

As previous *nix and win7 builds were fine, why was this change needed?

Updated by luislavena (Luis Lavena) almost 12 years ago

  • Status changed from Open to Assigned

Updated by jonforums (Jon Forums) almost 12 years ago

I see test-all failures after reverting r38839; trying a fresh build to see if it's a red-herring.

Luis or Hiroshi...can you repro?

Updated by jonforums (Jon Forums) almost 12 years ago

With a fresh Win7 build, reverting r38839 fixes the build, make test is OK, but make test-all stumbles over the cliff in

[ 7987/13078] TestProcess#test_too_long_path2

by exiting sh (msys) into cmd.exe. Oddly, typing exit from cmd.exe (eh??) returns you back to sh, gives the following failure

c:\projects\rubyinstaller-git\sandbox\ruby19_build>
c:\projects\rubyinstaller-git\sandbox\ruby19_build>exit
= 474.95 s
58) Failure:
test_too_long_path2(TestProcess) [c:/Users/Jon/Documents/RubyDev/ruby-git/test/ruby/test_process.rb:1393]:
[ruby-core:34833].
[Errno::ENOENT, Errno::E2BIG] expected but nothing was raised.

and continues running tests until finishing with

Finished tests in 1319.324032s, 9.9127 tests/s, 1591.9213 assertions/s.
13078 tests, 2100260 assertions, 2 failures, 2 errors, 96 skips

ruby -v: ruby 2.0.0dev (2013-01-17 trunk 38864) [i386-mingw32]
make: *** [yes-test-all] Error 4
sh-3.1$

Here's TestProcess#test_too_long_path2

def test_too_long_path2
bug4315 = '[ruby-core:34833]'
exs = [Errno::ENOENT]
exs << Errno::E2BIG if defined?(Errno::E2BIG)
assert_raise(*exs, bug4315) {Process.spawn('"a"|'*10_000_000)}
end

On Arch 3.6.11 with r38839 reverted: build OK, make test OK, and make test-all completes with 4 (unrelated?) failures.

Updated by luislavena (Luis Lavena) almost 12 years ago

  • Priority changed from Normal to 7

Hello Nobu,

We didn't get a response about this from you.

Please let us know if you can solve this or that we should revert such change.

Thank you.

Updated by shyouhei (Shyouhei Urabe) almost 12 years ago

  • Priority changed from 7 to 5

Hi, I know it's important, but wanna decrease its priority because it seems build finishes.

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago

Now I suspect msys should be cross compiling.

Actions #7

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago

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

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


vpath.rb: hack for msys make

  • tool/vpath.rb (VPath#def_options): hack for msys make, which
    converts a command line argument to non-msys command seems like a
    path list automagically. [Bug #7710] [ruby-core:51489]

Updated by luislavena (Luis Lavena) almost 12 years ago

shyouhei (Shyouhei Urabe) wrote:

Hi, I know it's important, but wanna decrease its priority because it seems build finishes.

Urabe-san, the first build that passed was 30 minutes ago, it was broken for many builds:

http://ci.rubyinstaller.org/view/All/builds

Updated by luislavena (Luis Lavena) almost 12 years ago

nobu (Nobuyoshi Nakada) wrote:

Now I suspect msys should be cross compiling.

I don't understand this but thank you for fixing it.

I assume this could affect cross-compilation of Ruby? I'll try and report back.

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago

I meant that we should use msys-native ruby as BASERUBY instead of built miniruby, but seems msys doesn't provide its native ruby.

Updated by jonforums (Jon Forums) almost 12 years ago

Thank you nobu-san.

Win7 32bit

build: PASS
make test: PASS
make test-all: 2 FAILS, #7276 and TestProcess#test_too_long_path2 (new issue) mentioned above

Arch 3.6.11 32bit

build, make test, make test-all: PASS

Ubuntu Server 12.10 64bit

build, make test, make test-all: PASS

I will create a new issue for TestProcess#test_too_long_path2 later today. Odd that it's not also failing at ci.rubyinstaller.org

re: potentially using msys-native ruby as BASERUBY rather than build miniruby, this will not work well with the existing rubyinstaller build recipes because the msys environment is not usually persistent. Meaning, msys+mingw are typically extracted into a temp sandbox dir and only used for the build. The sandbox dir is usually deleted after each build. For example, when I build on Win7 32bit I create a 800MiB ramdisk (via imdisk) holding the temp sandbox build dir.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0