ruby-changes:60991
From: Takashi <ko1@a...>
Date: Sun, 3 May 2020 16:42:22 +0900 (JST)
Subject: [ruby-changes:60991] a218cbdf31 (master): Skip pdb corruption on Visual Studio 2015 as well
https://git.ruby-lang.org/ruby.git/commit/?id=a218cbdf31 From a218cbdf31c30835f5785cdaf3af3f97965b77c4 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun <takashikkbn@g...> Date: Sun, 3 May 2020 00:41:27 -0700 Subject: Skip pdb corruption on Visual Studio 2015 as well It turned out that the pdb corruption happens on Visual Studio 2015 as well. https://ci.appveyor.com/project/ruby/ruby/builds/32602953/job/3gj43q18wqeiy729 diff --git a/test/lib/jit_support.rb b/test/lib/jit_support.rb index b443a6f..26d3d97 100644 --- a/test/lib/jit_support.rb +++ b/test/lib/jit_support.rb @@ -54,21 +54,21 @@ module JITSupport https://github.com/ruby/ruby/blob/trunk/test/lib/jit_support.rb#L54 def supported? return @supported if defined?(@supported) - @supported = UNSUPPORTED_COMPILERS.all? do |regexp| + @supported = RbConfig::CONFIG["MJIT_SUPPORT"] != 'no' && UNSUPPORTED_COMPILERS.all? do |regexp| !regexp.match?(RbConfig::CONFIG['MJIT_CC']) - end && RbConfig::CONFIG["MJIT_SUPPORT"] != 'no' && !PENDING_RUBYCI_NICKNAMES.include?(ENV['RUBYCI_NICKNAME']) && !vs120_pdb_corrupted? && /mingw/ !~ RUBY_PLATFORM && /solaris/ !~ RUBY_PLATFORM # TODO: remove mingw / solaris exclusion after investigation + end && !appveyor_pdb_corrupted? && !PENDING_RUBYCI_NICKNAMES.include?(ENV['RUBYCI_NICKNAME']) && /mingw/ !~ RUBY_PLATFORM && /solaris/ !~ RUBY_PLATFORM # TODO: remove mingw / solaris exclusion after investigation end - # AppVeyor's Visual Studio 2013 is known to spuriously generate broken pch / pdb, like: + # AppVeyor's Visual Studio 2013 / 2015 are known to spuriously generate broken pch / pdb, like: # error C2859: c:\projects\ruby\x64-mswin_120\include\ruby-2.8.0\x64-mswin64_120\rb_mjit_header-2.8.0.pdb # is not the pdb file that was used when this precompiled header was created, recreate the precompiled header. # https://ci.appveyor.com/project/ruby/ruby/builds/32159878/job/l2p38snw8yxxpp8h # # Until we figure out why, this allows us to skip testing JIT when it happens. - def vs120_pdb_corrupted? + def appveyor_pdb_corrupted? return false unless ENV.key?('APPVEYOR') stdout, _stderr, _status = eval_with_jit_without_retry('proc {}.call', verbose: 2, min_calls: 1) - stdout.include?('x64-mswin64_120') && stdout.include?('.pdb is not the pdb file that was used when this precompiled header was created, recreate the precompiled header.') + stdout.include?('.pdb is not the pdb file that was used when this precompiled header was created, recreate the precompiled header.') end def remove_mjit_logs(stderr) diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb index af96a78..63579f2 100644 --- a/test/ruby/test_jit.rb +++ b/test/ruby/test_jit.rb @@ -1179,7 +1179,7 @@ class TestJIT < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_jit.rb#L1179 insns end - # `clang -g` on macOS creates a .dSYM file. Because it's only created on --jit-debug, + # `clang -g` on macOS creates a .dSYM directory. As it's only created on --jit-debug, # we're ignoring it for now. TODO: remove .dSYM file def leave_dsym? /darwin/ =~ RUBY_PLATFORM && @jit_debug -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/