From: yasu@... Date: 2019-12-22T10:02:22+00:00 Subject: [ruby-core:96404] [Ruby master Bug#16331] fails to build with BSD make when any -j option is given (including -j 1) Issue #16331 has been updated by yasuhirokimura (Yasuhiro KIMURA). File buildtest-with-bmake-and-j-option.log added I executed following shell script on my FreeBSD test environment and got attached log file. ``` shell #!/bin/sh LANG=C ( echo System Information: echo ---------------------------------------------------------------------- dmesg echo ---------------------------------------------------------------------- echo Package Information: echo ---------------------------------------------------------------------- pkg info -aq echo ---------------------------------------------------------------------- cd /tmp for ver in 2.6.5 2.7.0-rc2 do echo Test build of ${ver}: tar xfpJ /net/freebsd/ports/distfiles/ruby/ruby-${ver}.tar.xz cd ruby-${ver} echo Configure: echo ---------------------------------------------------------------------- ./configure echo ---------------------------------------------------------------------- echo Build: echo ---------------------------------------------------------------------- make -j $(sysctl -n kern.smp.cpus) echo ---------------------------------------------------------------------- cd .. rm -rf ruby-${ver} done ) | 2>&1 tee buildtest-with-bmake-and-j-option.log ``` As you can see, `make -j` works fine with 2.6.5 but fails with 2.7.0-rc2. ---------------------------------------- Bug #16331: fails to build with BSD make when any -j option is given (including -j 1) https://bugs.ruby-lang.org/issues/16331#change-83329 * Author: meta@vmeta.jp (Koichiro Iwao) * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: 2.6.5 * Backport: 2.5: REQUIRED, 2.6: REQUIRED ---------------------------------------- When building Ruby parallely with BSD make (FreeBSD make), it fails to build. Reported by FreeBSD Ruby folks. Please keep in mind I didn't find out the root cause. OS: FreeBSD 12-STABLE See also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241633 ## How to reproduce ``` tar xf ruby-2.6.5.tar.gz cd ruby-2.6.5 ./configure --enable-shared --disable-readline --disable-libedit make -j 8 # any value will cause build failure (snip) configuring -test-/st/numhash configuring -test-/st/update --- enc --- ld: error: unable to find library -lruby cc: error: linker command failed with exit code 1 (use -v to see invocation) --- exts.mk --- configuring -test-/string configuring -test-/struct configuring -test-/symbol --- enc --- *** [.ext/x86_64-freebsd12.1/enc/encdb.so] Error code 1 ``` ## BSD make without -j option: success ``` cd ruby-2.6.5 make distclean ./configure --enable-shared --disable-readline --disable-libedit make `ruby' is up to date. *** Following extensions are not compiled: readline: Could not be configured. It will not be installed. /home/sair/tmp/ruby-2.6.5/ext/readline/extconf.rb:52: readline not found Check ext/readline/mkmf.log for more details. gdbm: Could not be configured. It will not be installed. Check ext/gdbm/mkmf.log for more details. *** Fix the problems, then remove these directories and try again if you want. making enc making trans `trans' is up to date. making encs Generating RDoc documentation ``` ## Using GNU make: success ``` cd ruby-2.6.5 export MAKE=gmake # GNU make make distclean ./configure --enable-shared --disable-readline --disable-libedit $MAKE -j 8 ``` ---Files-------------------------------- ruby-bsdmake.log (13.9 KB) buildtest-with-bmake-and-j-option.log (202 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: