summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-03 14:08:18 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-03 14:08:18 +0000
commit5be2e8eb3954a769a5e639da5e92572116e840bc (patch)
treead5f668640404e96a1f24d6d6a80e29a95512280 /ext
parent83466682e292cf7f0faeacd945f37829707b80a6 (diff)
merge revision(s) 40080,40081: [Backport #8209]
* ext/extmk.rb (extmake): Use Logging.open to switch stdout and stderr. Delay Logging::log_close until the failure message is written. Write the failure message only if log file is opened. * lib/mkmf.rb (Logging.log_opened?): New method. [ruby-dev:47215] [Bug #8209] * ext/extmk.rb (extmake): Invoke Logging::log_close in a ensure clause. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@42359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rwxr-xr-xext/extmk.rb19
1 files changed, 6 insertions, 13 deletions
diff --git a/ext/extmk.rb b/ext/extmk.rb
index 4e5f64d4f6..597fc78f60 100755
--- a/ext/extmk.rb
+++ b/ext/extmk.rb
@@ -193,19 +193,11 @@ def extmake(target)
Logging::logfile 'mkmf.log'
rm_f makefile
if conf
- stdout = $stdout.dup
- stderr = $stderr.dup
- unless verbose?
- $stderr.reopen($stdout.reopen(@null))
- end
- begin
+ Logging.open do
+ unless verbose?
+ $stderr.reopen($stdout.reopen(@null))
+ end
load $0 = conf
- ensure
- Logging::log_close
- $stderr.reopen(stderr)
- $stdout.reopen(stdout)
- stdout.close
- stderr.close
end
else
create_makefile(target)
@@ -235,7 +227,7 @@ def extmake(target)
mess = "#{error}\n#{mess}"
end
- Logging::message(mess)
+ Logging::message(mess) if Logging.log_opened?
print(mess)
$stdout.flush
return true
@@ -271,6 +263,7 @@ def extmake(target)
$extpath |= $LIBPATH
end
ensure
+ Logging::log_close
unless $ignore
RbConfig.module_eval {
remove_const(:CONFIG)