Skip to content

[6.38] Fix LIB_CORE_NAME mismatch when soversion is enabled#21396

Open
root-project-bot wants to merge 1 commit intoroot-project:v6-38-00-patchesfrom
root-project-bot:BP_6.38_pull_21375
Open

[6.38] Fix LIB_CORE_NAME mismatch when soversion is enabled#21396
root-project-bot wants to merge 1 commit intoroot-project:v6-38-00-patchesfrom
root-project-bot:BP_6.38_pull_21375

Conversation

@root-project-bot
Copy link

Backport of #21375, requested by @hageboeck. For your information @chrisburr

On Linux, dl_iterate_phdr reports loaded libraries by their SONAME
(e.g. libCore.so.6.38), not their full filename (libCore.so.6.38.02).

Commit ff7e631 changed LIB_CORE_NAME from using the SOVERSION-based
name to TARGET_FILE_NAME, which gives the full versioned filename. When
soversion is enabled, this causes TROOT::GetSharedLibDir() to fail to
match the library name reported by the dynamic linker, returning an
empty path. This breaks module loading and causes cling to attempt
recompiling modules from source at runtime, which fails when external
headers (e.g. Vc) are not in cling's include path.

Fix by using TARGET_SONAME_FILE_NAME when soversion is enabled on Linux.
On macOS, _dyld_get_image_name returns the actual filename, so
TARGET_FILE_NAME remains correct there.

(cherry picked from commit 82162e3)
@github-actions
Copy link

Test Results

    19 files      19 suites   2d 22h 18m 45s ⏱️
 3 715 tests  3 714 ✅ 0 💤 1 ❌
68 854 runs  68 853 ✅ 0 💤 1 ❌

For more details on these failures, see this check.

Results for commit 59b984b.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants