summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/mkmf.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 853f2f4da8..055ed226ea 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -297,8 +297,16 @@ end
def create_tmpsrc(src)
src = yield(src) if block_given?
src = src.gsub(/[ \t]+$/, '').gsub(/\A\n+|^\n+$/, '').sub(/[^\n]\z/, "\\&\n")
- open(CONFTEST_C, "wb") do |cfile|
- cfile.print src
+ count = 0
+ begin
+ open(CONFTEST_C, "wb") do |cfile|
+ cfile.print src
+ end
+ rescue Errno::EACCES
+ if (count += 1) < 5
+ sleep 0.2
+ retry
+ end
end
src
end