[#44776] [ruby-trunk - Bug #6385][Open] mtime vie File.stat(filename).utime vs File.open(filename, 'r').mtime in Windows — "kolmanv (Kolman Vornovitsky)" <kolmanv@...>

9 messages 2012/05/01

[#44782] [ruby-trunk - Bug #6387][Open] 1.9.3p194 crashed on require in ubuntu — "ywen (Yi Wen)" <hayafirst@...>

12 messages 2012/05/01

[#44795] [ruby-trunk - Bug #6391][Open] Segment Fault while execute make_encmake.rb for Ruby 1.9.3 P194 ( MinGW64) — "raylinn@... (ray linn)" <raylinn@...>

13 messages 2012/05/02

[#44911] [ruby-trunk - Bug #6408][Open] DelegateClass#eql? and <=> don't work as expected — "tenderlovemaking (Aaron Patterson)" <aaron@...>

11 messages 2012/05/06

[#44951] [ruby-trunk - Feature #6414][Open] Destructuring Assignment — "edtsech (Edward Tsech)" <edtsech@...>

14 messages 2012/05/08

[#44958] [ruby-trunk - Feature #6418][Assigned] Supporing a subset of ANSI escape code on Windows — "usa (Usaku NAKAMURA)" <usa@...>

11 messages 2012/05/09

[#45035] [ruby-trunk - Bug #6433][Open] rb_thread_blocking_region(): ubf() function is executed with GVL — ibc (Iñaki Baz Castillo) <ibc@...>

12 messages 2012/05/14

[#45180] [ruby-trunk - Feature #6478][Open] BasicObject#__class__ — "trans (Thomas Sawyer)" <transfire@...>

14 messages 2012/05/22

[#45193] [ruby-trunk - Feature #6482][Open] Add URI requested to Net::HTTP request and response objects — "drbrain (Eric Hodel)" <drbrain@...7.net>

16 messages 2012/05/23

[#45198] [ruby-trunk - Feature #6483][Open] parametric map — "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>

14 messages 2012/05/23

[#45222] [ruby-trunk - Feature #6492][Open] Inflate all HTTP Content-Encoding: deflate, gzip, x-gzip responses by default — "drbrain (Eric Hodel)" <drbrain@...7.net>

23 messages 2012/05/24

[#45252] [ruby-trunk - Feature #6499][Open] Array::zip — "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>

14 messages 2012/05/26

[#45272] [ruby-trunk - Feature #6503][Open] Support for the NPN extension to TLS/SSL — "igrigorik (Ilya Grigorik)" <ilya@...>

13 messages 2012/05/27

[#45316] [ruby-trunk - Feature #6515][Open] array.c: added method that verifies if an Array is part of another — "lellisga (Li Ellis Galardo)" <lellisga@...>

14 messages 2012/05/30

[ruby-core:44999] [Ruby 1.8 - Bug #6424][Open] mkmf generates incorrect Makefile

From: "restless (Aleksey Kravchenko)" <rhash.admin@...>
Date: 2012-05-11 19:07:26 UTC
List: ruby-core #44999
Issue #6424 has been reported by restless (Aleksey Kravchenko).

----------------------------------------
Bug #6424: mkmf generates incorrect Makefile
https://bugs.ruby-lang.org/issues/6424

Author: restless (Aleksey Kravchenko)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux]



The code to reproduce the bug:
--- begin of extconf.rb ---
require 'mkmf'
create_makefile('test')
--- end of extconf.rb ---

--- begin of test.c ---
/* empty ruby module */
--- end of test.c ---

The steps to reproduce and error log:

$ ruby extconf.rb
$ make -j2 install DESTDIR=/tmp MAKEDIRS="sleep 1; echo do_mkdir; mkdir -p"
sleep 1; echo do_mkdir; mkdir -p /tmp/usr/local/lib/site_ruby/1.8/x86_64-linux
gcc -I. -I/usr/lib/ruby/1.8/x86_64-linux -I/usr/lib/ruby/1.8/x86_64-linux -I. -D_FORTIFY_SOURCE=2   -fPIC -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -Wall -fno-strict-aliasing -g -g -O2  -fPIC   -c test.c
gcc -shared -o test.so test.o -L. -L/tmp/usr/lib -L. -Wl,-z,relro -rdynamic -Wl,-export-dynamic    -lruby1.8  -lpthread -lrt -ldl -lcrypt -lm   -lc
/usr/bin/install -c -m 0755 test.so /tmp/usr/local/lib/site_ruby/1.8/x86_64-linux
/usr/bin/install: cannot create regular file `/tmp/usr/local/lib/site_ruby/1.8/x86_64-linux': No such file or directory
make: *** [/tmp/usr/local/lib/site_ruby/1.8/x86_64-linux/test.so] Error 1
make: *** Waiting for unfinished jobs....
do_mkdir

Expected: no error shall occur. The $(MAKEDIRS) mkdir command must be executed alwais before installing *.so file.

Note: I've specified MAKEDIRS command with 'sleep' only to reproduce the concurrency bug.
Originally it occurred on busy Debian build-server, running `make -j2 install` (in 2 parallel threads).

The cause of the bug is incorrect dependency of 'install-so' in Makefile:

--- part of generated Makefile ---
install: install-so install-rb

install-so: $(RUBYARCHDIR)
install-so: $(RUBYARCHDIR)/$(DLLIB)
$(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
	$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
...
$(RUBYARCHDIR):
	$(MAKEDIRS) $@
--- end of part of generated Makefile ---



-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next