ruby-changes:18449
From: tenderlove <ko1@a...>
Date: Thu, 6 Jan 2011 09:18:30 +0900 (JST)
Subject: [ruby-changes:18449] Ruby:r30472 (trunk): * lib/mkmf.rb (configuration): fixing gsub when multiple error flags
tenderlove 2011-01-06 09:18:16 +0900 (Thu, 06 Jan 2011) New Revision: 30472 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30472 Log: * lib/mkmf.rb (configuration): fixing gsub when multiple error flags are passed to GCC. Modified files: trunk/ChangeLog trunk/lib/mkmf.rb trunk/test/mkmf/test_find_executable.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 30471) +++ ChangeLog (revision 30472) @@ -1,3 +1,8 @@ +Thu Jan 6 09:12:31 2011 Aaron Patterson <aaron@t...> + + * lib/mkmf.rb (configuration): fixing gsub when multiple error flags + are passed to GCC. + Thu Jan 6 05:25:49 2011 Nobuyoshi Nakada <nobu@r...> * array.c (rb_ary_modify): export. Index: lib/mkmf.rb =================================================================== --- lib/mkmf.rb (revision 30471) +++ lib/mkmf.rb (revision 30472) @@ -1660,7 +1660,9 @@ extconf_h = $extconf_h ? "-DRUBY_EXTCONF_H=\\\"$(RUBY_EXTCONF_H)\\\" " : $defs.join(" ") << " " if warnflags = CONFIG['warnflags'] and CONFIG['GCC'] == 'yes' and !$extmk # turn warnings into errors only for bundled extensions. - warnflags = warnflags.gsub(/(?:\A|\s)-Werror=/, '\1-W') + warnflags = warnflags.split.map { |flag| + flag.gsub(/(?:\A|\s)-Werror=/, '\1-W') + }.join ' ' end mk << %{ CC = #{CONFIG['CC']} Index: test/mkmf/test_find_executable.rb =================================================================== --- test/mkmf/test_find_executable.rb (revision 30471) +++ test/mkmf/test_find_executable.rb (revision 30472) @@ -2,6 +2,22 @@ class TestMkmf class TestFindExecutable < TestMkmf + def test_valid_warnflags + val = $extmk + begin + makefile = mkmf do + $extmk = false + self.class::CONFIG['warnflags'] = "-Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32" + self.class::CONFIG['GCC'] = 'yes' + configuration '.' + end + generated_flags = makefile.grep(/warnflags/).first[/^warnflags = .*$/] + assert_equal "warnflags = -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32", generated_flags + ensure + $extmk = val + end + end + def test_find_executable bug2669 = '[ruby-core:27912]' path, ENV["PATH"] = ENV["PATH"], path -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/