diff --git a/common.mk b/common.mk index ff11693b30bb50..8feb982f6bda55 100644 --- a/common.mk +++ b/common.mk @@ -1226,12 +1226,13 @@ missing-srcs: $(srcdir)/missing/des_tables.c srcs: common-srcs missing-srcs srcs-enc srcs-doc -RIPPER_SRCS = $(srcdir)/ext/ripper/ripper.c \ - $(srcdir)/ext/ripper/ripper_init.c \ - $(srcdir)/ext/ripper/eventids1.h \ - $(srcdir)/ext/ripper/eventids1.c \ - $(srcdir)/ext/ripper/eventids2table.c \ - # RIPPER_SRCS +RIPPER_SRCS1 = $(srcdir)/ext/ripper/ripper.c +RIPPER_SRCS2 = $(srcdir)/ext/ripper/ripper_init.c \ + $(srcdir)/ext/ripper/eventids1.h \ + $(srcdir)/ext/ripper/eventids1.c \ + $(srcdir)/ext/ripper/eventids2table.c \ + # RIPPER_SRCS2 +RIPPER_SRCS = $(RIPPER_SRCS1) $(RIPPER_SRCS2) EXT_SRCS = ripper_srcs \ $(srcdir)/ext/rbconfig/sizeof/sizes.c \ @@ -1348,10 +1349,12 @@ dump_ast$(BUILD_EXEEXT): $(tooldir)/dump_ast.c $(LIBPRISM_OBJS) $(Q) $(CC) $(CFLAGS) $(OUTFLAG)$@ $(INCFLAGS) $(tooldir)/dump_ast.c $(LIBPRISM_OBJS) build-tool/Makefile: $(tooldir)/dump_ast.mkmf.rb prism-srcs prism-incs - +$(BASERUBY) -s $(tooldir)/dump_ast.mkmf.rb "-INCFLAGS=$(INCFLAGS)" "-make=$(MAKE)" build-tool $(tooldir)/dump_ast.c dump_ast.$(OBJEXT) $(LIBPRISM_OBJS) + +$(BASERUBY) -s $(tooldir)/dump_ast.mkmf.rb \ + "-INCFLAGS=$(INCFLAGS)" "-make=$(MAKE)" "-objext=$(OBJEXT)" \ + build-tool $(tooldir)/dump_ast.c dump_ast.$(OBJEXT) $(LIBPRISM_OBJS) build-tool/dump_ast$(BUILD_EXEEXT): build-tool/Makefile - cd build-tool && MAKEFLAGS= MFLAGS= && unset MAKEFLAGS MFLAGS && $(MAKE) + cd build-tool && MAKEFLAGS= MFLAGS= && unset MAKEFLAGS MFLAGS && $(MAKE) Q=$(Q) clean-local:: clean-build-tool clean-build-tool: @@ -1379,6 +1382,8 @@ $(RIPPER_SRCS): $(srcdir)/parse.y $(srcdir)/defs/id.def $(RIPPER_SRCS): $(srcdir)/ext/ripper/depend $(srcdir)/ext/ripper/extconf.rb $(RIPPER_SRCS): $(srcdir)/ext/ripper/tools/preproc.rb $(srcdir)/ext/ripper/tools/dsl.rb $(RIPPER_SRCS): $(srcdir)/ext/ripper/ripper_init.c.tmpl $(srcdir)/ext/ripper/eventids2.c +$(RIPPER_SRCS2): $(RIPPER_SRCS1) +$(RIPPER_SRCS1): $(ECHO) generating $@ $(Q) $(CHDIR) $(@D) && \ $(CAT_DEPEND) depend | \ diff --git a/test/ruby/test_env.rb b/test/ruby/test_env.rb index b77f3d09ba7154..48409f843566e9 100644 --- a/test/ruby/test_env.rb +++ b/test/ruby/test_env.rb @@ -197,6 +197,7 @@ def test_keys def test_keys_encoding bug20958 = '[ruby-core:120277] [Bug #20958]' + omit "locale encoding is not UTF-8" unless ENCODING == Encoding::UTF_8 orig = ENV.to_hash ENV.clear key = "TEST20958\u{30c6 30b9 30c8}" @@ -206,14 +207,15 @@ def test_keys_encoding omit "platform does not support UTF-8 environment variables." end EnvUtil.with_default_internal(nil) do - enc = RUBY_PLATFORM =~ /mswin|mingw/ ? - Encoding::UTF_8 : Encoding.find("locale") - assert_equal(enc, ENV.keys.last.encoding, bug20958) - assert_equal(key.encode(enc), ENV.keys.last, bug20958) + assert_equal(ENCODING, ENV.keys.last.encoding, bug20958) + assert_equal(key.encode(ENCODING), ENV.keys.last, bug20958) end ENV.update(orig) #required to restore ENV[RbConfig::CONFIG['LIBPATHENV']] - env = {key => "x", "LOCALE" => "en_US.UTF-8", "LC_ALL" => "en_US.UTF-8"} + env = {key => "x"} + # invoke_ruby forces the C locale, restore the locale of this process, + # which is known to be UTF-8 here. + EnvUtil::LANG_ENVS.each {|e| env[e] = ENV[e]} load_path = $LOAD_PATH.map {|v| "-I#{v}" } internal_enc = "Windows-31J" params = [env, *load_path, "-Eutf-8:#{internal_enc}"] diff --git a/tool/dump_ast.mkmf.rb b/tool/dump_ast.mkmf.rb index eec6b72f79b520..8382fe2b5207d9 100755 --- a/tool/dump_ast.mkmf.rb +++ b/tool/dump_ast.mkmf.rb @@ -14,6 +14,10 @@ $VPATH = ["$(srcdir)", "$(srcdir)/#{tooldir.basename}", prismdir, tooldir] $INCFLAGS << " -I#{prismdir}" $CPPFLAGS = $CFLAGS = $INCFLAGS +if $objext && $OBJEXT && $objext != $OBJEXT + ext1, ext2 = ".#{$objext}", ".#{$OBJEXT}" + objs.each {|obj| obj.chomp!(ext1) << ext2} +end include FileUtils::Verbose mkpath(workdir) @@ -22,16 +26,18 @@ File.write('Makefile', [MakeMakefile.configuration(srcdir.to_s), <<~MAKEFILE].join("")) target = #{target}#{$EXEEXT} objs = #{objs.join(' ')} + Q = + .SUFFIXES: .c .#{$OBJEXT} $(target): $(objs) - \t#{link} $(objs) + \t$(Q) #{link} $(objs) objs: $(objs) .c.#{$OBJEXT}: - \t#{MakeMakefile::COMPILE_C} + \t$(Q) #{MakeMakefile::COMPILE_C} clean: - \t$(RM) $(target) $(objs) Makefile - \t$(RMDIRS) #{dirs.join(' ')} + \t$(Q) $(RM) $(target) $(objs) Makefile + \t$(Q) $(RMDIRS) #{dirs.join(' ')} MAKEFILE }