[#108552] [Ruby master Bug#18782] Race conditions in autoload when loading the same feature with multiple threads. — "ioquatix (Samuel Williams)" <noreply@...>
Issue #18782 has been reported by ioquatix (Samuel Williams).
11 messages
2022/05/14
[ruby-core:108473] [Ruby master Bug#18592] RPATH of bundled native extensions is incorrect
From:
"Kulikjak (Jakub Kulik)" <noreply@...>
Date:
2022-05-06 07:28:54 UTC
List:
ruby-core #108473
Issue #18592 has been updated by Kulikjak (Jakub Kulik).
I am sorry, this is a duplicate to issue #18373 and can be closed.
----------------------------------------
Bug #18592: RPATH of bundled native extensions is incorrect
https://bugs.ruby-lang.org/issues/18592#change-97514
* Author: Kulikjak (Jakub Kulik)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.2.0dev (2022-02-18T09:28:18Z master dff70b50d0) [x86_64-solaris2.11]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN
----------------------------------------
Hi, when building Ruby 3.1.0 on Solaris, one of our lint checks found out that RPATH/RUNPATH of bundled native extensions (debug and rbs) incorrectly includes DESTDIR.
This can be easily reproduced with the following:
``` shell
git clone https://github.com/ruby/ruby.git
cd ruby
./autogen.sh
./configure --enable-rpath
PKG_CONFIG_PATH="/usr/lib/amd64/pkgconfig" /usr/gnu/bin/make
/usr/gnu/bin/make install DESTDIR=/builds/rubytest/
elfdump /builds/rubytest/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.4.0/lib/debug/debug.so | grep RPATH
```
while the expected **RPATH** should be `/usr/local/lib` as that is the path where ruby will ultimately live (and `DESTDIR` should be ignored), the output from the elfdump above is:
```
[6] RPATH 0x44e /builds/rubytest/usr/local/lib
```
We deliver ruby to a non-default location, but the issue is still there.
I did a little digging and found out that `prefix` variable in the extensions Makefile is incorrect, but so far I wasn't able to determine where is it being set as such.
Expected: `prefix = $(DESTDIR)/usr/local`
Actual: `prefix = $(DESTDIR)/builds/rubytest/usr/local`
When I change it to the expected one, the issue is gone.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>