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


nobu (Nobuyoshi Nakada) wrote:
> "host" has meanings when you build a cross-compiler.  You build a
> compiler on "build" platform, which runs on "host" platform and
> generates code for "target" platform.  So we don't need "host" almost,
> and often we tweaks "target" in configure.in.

I have a different interpretation of the following docs, and also believe `host_os`, not `target_os` should be used (at runtime) to determine which OS Ruby is running on.

http://sourceware.org/autobook/autobook/autobook_260.html#SEC260
http://sourceware.org/autobook/autobook/autobook_261.html#SEC261


----------------------------------------
Feature #8090: resolv.rb checks platform based on RUBY_PLATFORM, which is insufficient for JRuby
https://bugs.ruby-lang.org/issues/8090#change-37999

Author: headius (Charles Nutter)
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: next minor


JRuby shares stdlib with MRI, and as a result we've had to patch a number of things. We'd like to get some of these changes back into MRI's copy.

This issue refers to the following check in resolv.rb:

    if /mswin|mingw|bccwin/ =~ RUBY_PLATFORM
      require 'win32/resolv'
      DefaultFileName = Win32::Resolv.get_hosts_path
    else
      DefaultFileName = '/etc/hosts'
    end

Because RUBY_PLATFORM on JRuby is always 'java', this check will use the incorrect "hosts" path on Windows. This was reported as an issue in https://github.com/jruby/jruby/issues/580.

We had patched 1.8 stdlib but not 1.9 stdlib to use the following line for checking platform:

    if /mswin|mingw|bccwin/ =~ RUBY_PLATFORM || ::RbConfig::CONFIG['host_os'] =~ /mswin/

I would like to commit this change back to MRI for 1.9.3, 2.0, and 2.1. It does not produce a behavioral change on MRI, since there's no supported platforms that will match /mswin/ for host_os, but it means we won't have to maintain a diff. 


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