← Back to issue list

Use `ld` from the base snap for library linting

View original Github issue

Metadata

Project
snapcraft
Number
#4751
Type
issue
State
open
Author
mr-cal
Labels
Status: Triaged Type: Enhancement
Created
Updated
Closed
—

Current evaluation

Triaged enhancement to make snapcraft lint resolve libraries with the target base snap's dynamic linker instead of host ldd, preventing spurious core24/core26 warnings; the TODO remains in current code.

Suggested action: keep open

Reason: The issue is explicitly labeled Triaged, and the current implementation still calls utils.get_host_tool("ldd") with a TODO to use the base snap's linker (#4751). The requested command and rationale are clear, while #4748 was closed unmerged as superseded by this issue and no resolving implementation or commit is present.

Evaluated by: mr-cal-bot

Impact: 48 Quick Win: 20 Complexity: 50 Confidence: 92 Actionability: 82

Issue body

### What needs to get done Instead of using `ldd` from the host, use `ld --list` from the base snap (`/snap/coreXX/current/lib64/ld-linux-x86-64.so.2 --list`). [`pyelftools`](https://github.com/eliben/pyelftools) may have some helpful utilties ### Why it needs to get done `snapcraft lint` has unknown symbol warnings for core24, because it tries to use a linker from the host (a 22.04 environment) with core24's glibc ([source](https://github.com/canonical/snapcraft/blob/05ef28087a0687a8c5a07e4f979c0a70e2fc3b49/snapcraft/elf/_elf_file.py#L450)). See #4748 for more context

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 48
Quick Win: 20
Complexity: 50
Confidence: 92
Actionability: 82
keep open Triaged enhancement to make snapcraft lint resolve libraries with the target base snap's dynamic linker instead of host ldd, preventing spurious core24/core26 warnings; the TODO remains in current code.
qwen/qwen3.6-35b-a3b
Impact: 45
Quick Win: 20
Complexity: 45
Confidence: 85
Actionability: 80
keep open Enhancement to use ld --list from the base snap instead of host ldd for library linting, fixing spurious unknown symbol warnings on core24. Triaged and open.
qwen/qwen3.8-27b
Impact: 45
Quick Win: 22
Staleness: 65
Complexity: 50
Confidence: 80
Support Request: 5
keep open Enhancement to use the base snap's `ld --list` instead of the host `ldd` for library linting, fixing spurious unknown symbol warnings on core24. Triaged by a maintainer with an internal ticket; code TODO still references it and it remains unfixed.
qwen/qwen3.6-35b-a3b
Staleness: 80
Complexity: 40
Confidence: 85
Support Request: 5
keep open Enhancement to use the base snap ld instead of the host linker for library linting to resolve core24 symbol warnings. Currently triaged but inactive for over a year.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 50
Confidence: 75
Support Request: 5
keep open Enhancement to use the base snap's ld --list instead of host ldd for library linting, resolving core24 symbol warnings. Currently triaged but inactive for over a year.

Update history

No update history recorded yet.

Related work

  • Related To: canonical/snapcraft#4748 (confidence 100%)

    Explicitly referenced for context; its closed-unmerged work was recorded as superseded by #4751.

  • Related To: canonical/snapcraft#4752 (confidence 100%)

    Merged commit b040a158e added the TODO/comment referencing this issue but did not implement the linker change.

  • Related To: canonical/snapcraft#6332 (confidence 90%)

    Open issue reports ongoing spurious lint warnings for core24/core26 caused by lint using a core22 environment; its proposed fix PR #6448 was closed unmerged.

Related issues

Issue Project State Summary Similarity
#6332 `snapcraft lint` produces spurious warnings on core26 projects snapcraft open `snapcraft lint` hardcodes a core22 build instance, so linting core24/core26 snaps gives spurious glibc errors and unused-library warnings. Root cause confirmed in code; maintainer's fix PR #6448 was closed unmerged, so the bug persists.
73%
#3514 elf: add fallback methods to detect library dependencies snapcraft merged Merged in snapcore/snapcraft#3514 (commit 76ca948c4): ELF dependency detection now falls back from ldd to host-libc6 preloading and loader tracing before warning.
73%
#1992557 snapcraft remote-build snapcraft.yaml validation too strict snapcraft (launchpad) closed Strict validation in snapcraft remote-build rejected empty LD_LIBRARY_PATH for core22 snaps. Resolved by the new remote builder, which fixes the legacy core18/20 implementation bug.
70%