Issue #7710 has been updated by jonforums (Jon Forums).


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.
----------------------------------------
Bug #7710: [mingw] r38839 breaks build
https://bugs.ruby-lang.org/issues/7710#change-35465

Author: jonforums (Jon Forums)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2013-01-14 trunk 38808) [i386-mingw32]


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?


-- 
http://bugs.ruby-lang.org/