Project

General

Profile

Actions

Bug #19615

closed

ruby psych.so always dynamic links libyaml.so, breaking build when libyaml.so is not in host lib paths

Added by luizluca (Luiz Angelo Daros de Luca) over 1 year ago. Updated over 1 year ago.

Status:
Feedback
Assignee:
-
Target version:
-
ruby -v:
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux-gnu]
[ruby-core:113329]

Description

Hello,

Before 3.2, libyaml was build statically into psych.so while now it will try to link the one provided during build. When you specify a different path for libraries during build, psych config does work as it tests creating conftest executables, with the linker pointing to the library at the specified path. However, when it links psych.so, it does not mentions the specified path, leaving the library resolution to the runtime linker. If the host system does not have a compatible libyaml.so.x, the build will fail when it tries to load psych.so.

I don't know what would be the cleanest solution but it would be nice if we could configure ruby to statically link libyaml into psych.so (and maybe any other ext dependencies).

As a workaround, you can add the different path to LD_LIBRARY_PATH during build and ruby calls or build with --with-static-linked-ext.

Actions

Also available in: Atom PDF

Like0
Like0