Project

General

Profile

Actions

Bug #18592

closed

RPATH of bundled native extensions is incorrect

Added by Kulikjak (Jakub Kulik) almost 3 years ago. Updated over 2 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.2.0dev (2022-02-18T09:28:18Z master dff70b50d0) [x86_64-solaris2.11]
[ruby-core:107656]

Description

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:

      [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.


Related issues 1 (0 open1 closed)

Is duplicate of Ruby master - Bug #18373: Bundled gem (RBS, debug) extensions are not properly builtClosednobu (Nobuyoshi Nakada)Actions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0