From: "Kulikjak (Jakub Kulik)" Date: 2022-02-18T12:25:23+00:00 Subject: [ruby-core:107656] [Ruby master Bug#18592] RPATH of bundled native extensions is incorrect Issue #18592 has been reported by Kulikjak (Jakub Kulik). ---------------------------------------- Bug #18592: RPATH of bundled native extensions is incorrect https://bugs.ruby-lang.org/issues/18592 * 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: