
Hello Ruby Dev Team, With Ruby 3.2.2, gem install fails because in rbconfig.rb, MAKEFILE_CONFIG's $(target_os) is not expanded (whereas CONFIG's is expanded correctly). The inline doc in mkconfig.rb states that the caller can expand MAKEFILE_CONFIG's values by calling RbConfig::expand(). However, ruby-shadow gem's Makefile generator -- extconf.rb -- does not call expand and directly uses mkmf.rb's CONFIG instance (which is RbConfig::MAKEFILE_CONFIG), because of which $(target_os) does not get expanded. This causes ruby-shadow gem install to fail with Ruby 3.2.2. Would the Ruby Dev Team accept the following proposal to fix mkconfig.rb, so that the generated rbconfig.rb instantiates MAKEFILE_CONFIG AFTER CONFIG's values have been expanded? # Existing code... CONFIG.each_value do |val| RbConfig::expand(val) end # Move instantiation of MAKEFILE_CONFIG after expanding CONFIG's values. MAKEFILE_CONFIG = {} CONFIG.each{|k,v| MAKEFILE_CONFIG[k] = v.dup} If we fix it in mkconfig.rb, we can avoid callers having to explicitly call expand for MAKEFILE_CONFIG's values. Thanks.