Skip to content

Don't strip DT_SONAME from the shared libobjc - #423

Merged
davidchisnall merged 1 commit into
gnustep:masterfrom
triplef:fix-libobjc-soname
Sep 8, 2026
Merged

Don't strip DT_SONAME from the shared libobjc#423
davidchisnall merged 1 commit into
gnustep:masterfrom
triplef:fix-libobjc-soname

Conversation

@triplef

@triplef triplef commented Sep 8, 2026

Copy link
Copy Markdown
Member

The NO_SONAME property was introduced in 76a8831 (2014) as set_property(TARGET PROPERTY NO_SONAME true) — with the target name missing, so it never applied to any target and libobjc has shipped with a DT_SONAME on every ELF platform ever since.

#422 corrected the syntax while moving the shared library into if (BUILD_SHARED_LIBOBJC), which activated the property for the first time. The resulting libobjc.so has no DT_SONAME, so any consumer linked against it by absolute path records that absolute build-time path in its DT_NEEDED and fails to load once installed elsewhere.

NO_SONAME also contradicts the SOVERSION set two lines above, so remove the line rather than the version.

@davidchisnall
davidchisnall merged commit aca3916 into gnustep:master Sep 8, 2026
91 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants