RPATH of bundled native extensions is incorrect
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:
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:
 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.
prefix = $(DESTDIR)/usr/local
prefix = $(DESTDIR)/builds/rubytest/usr/local
When I change it to the expected one, the issue is gone.