Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-4584GitHub issuePublicReceived

valgrind unusable on stable channel: fatal "mandatory redirection" error (memcmp in stripped ld.so, no debug symbols shipped)

Reported by beXxou · filed Aug 14, 2026Closed upstream on 2026-08-21 by its own reporter beXxou. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.

Received and recorded verbatim. Nothing has been checked yet.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
Not yet mapped to any requirement or component.
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

valgrind unusable on stable channel: fatal "mandatory redirection" error (memcmp in stripped ld.so, no debug symbols shipped)revision 1 · captured 2026-10-04 12:03 UTC via poll

System details

  • Omarchy 3.8.3 (stable channel) - Kernel: 7.1.3-arch1-2 - glibc 2.43+r37+gfdf10644d6ee-1 - valgrind 3.25.1-5 - gcc 16.1.1+r346+g4e03491b401d-3 - binutils 2.46.1+r3+g046eeeef4721-1

What's wrong?

Valgrind cannot start at all. It aborts with a fatal error because it cannot
set up a mandatory function redirection for memcmp in the dynamic linker:

$ valgrind ./hello
==206675== Memcheck, a memory error detector
...
valgrind: Fatal error at startup: a function redirection
valgrind: which is mandatory for this platform-tool combination
valgrind: cannot be set up. Details of the redirection are:
valgrind: A must-be-redirected function
valgrind: whose name matches the pattern: memcmp
valgrind: in an object with soname matching: ld-linux-x86-64.so.2
valgrind: was not found whilst processing
valgrind: symbols from the object with soname: ld-linux-x86-64.so.2
valgrind: Cannot continue -- exiting now. Sorry.

How to reproduce

  1. sudo pacman -S valgrind
  2. printf 'int main(void){ return 0; }\n' > hello.c && gcc -g -O0 hello.c -o hello
  3. valgrind ./hello → fatal error above

Root cause analysis (verified on stable, Omarchy 3.8.3)

  • Since glibc 2.39, memcmp (an IFUNC) is implemented **inside the dynamic

linker** ld-linux-x86-64.so.2. Valgrind must intercept it and can only do
so if the symbol is discoverable.
- The installed ld.so is stripped: memcmp is absent from both .symtab
and .dynsym (readelf -sW /usr/lib/ld-linux-x86-64.so.2 | grep memcmp → 0 hits).
- The binary does carry a .gnu_debuglink pointing to
ld-linux-x86-64.so.2.debug, but that file does not exist on the system —
i.e. glibc's debug symbols (libc-debug) are not shipped, and the packages
are not obtainable:
- https://stable-mirror.omarchy.org/core-debug/... and
extra-debug/... → 404 (debug repos not mirrored)
- Official Arch core-debug is on glibc 2.44, while the Omarchy stable
mirror is pinned to 2.43+r37+gfdf10644d6ee-1 → debug files don't match
- debuginfod.archlinux.org returns 404 for the installed build-id
- archive.archlinux.org keeps no libc-debug package files

So on Omarchy stable, Valgrind is unusable with no package-level workaround.

Expected behaviour

valgrind ./hello should run and report memory errors/leaks.

Suggested fixes (any one resolves it)

  1. Ship glibc's debug symbols for the pinned glibc (libc-debug) on the

Omarchy mirror — matches upstream's documented fix and also enables
gdb/profiling on system libs.
2. Ship ld.so unstripped (as the error message suggests), or
3. Update glibc to current upstream so stock core-debug/libc-debug applies.

View raw text
### System details

- Omarchy 3.8.3 (stable channel) - Kernel: 7.1.3-arch1-2 - glibc 2.43+r37+gfdf10644d6ee-1 - valgrind 3.25.1-5 - gcc 16.1.1+r346+g4e03491b401d-3 - binutils 2.46.1+r3+g046eeeef4721-1

### What's wrong?


Valgrind cannot start at all. It aborts with a fatal error because it cannot
set up a mandatory function redirection for `memcmp` in the dynamic linker:

$ valgrind ./hello
==206675== Memcheck, a memory error detector
...
valgrind:  Fatal error at startup: a function redirection
valgrind:  which is mandatory for this platform-tool combination
valgrind:  cannot be set up.  Details of the redirection are:
valgrind:  A must-be-redirected function
valgrind:  whose name matches the pattern:      memcmp
valgrind:  in an object with soname matching:   ld-linux-x86-64.so.2
valgrind:  was not found whilst processing
valgrind:  symbols from the object with soname: ld-linux-x86-64.so.2
valgrind:  Cannot continue -- exiting now.  Sorry.

### How to reproduce

1. `sudo pacman -S valgrind`
2. `printf 'int main(void){ return 0; }\n' > hello.c && gcc -g -O0 hello.c -o hello`
3. `valgrind ./hello`  →  fatal error above

### Root cause analysis (verified on stable, Omarchy 3.8.3)

- Since glibc 2.39, `memcmp` (an IFUNC) is implemented **inside the dynamic
  linker** `ld-linux-x86-64.so.2`. Valgrind must intercept it and can only do
  so if the symbol is discoverable.
- The installed `ld.so` is **stripped**: `memcmp` is absent from both `.symtab`
  and `.dynsym` (`readelf -sW /usr/lib/ld-linux-x86-64.so.2 | grep memcmp` → 0 hits).
- The binary does carry a `.gnu_debuglink` pointing to
  `ld-linux-x86-64.so.2.debug`, but that file does not exist on the system —
  i.e. glibc's debug symbols (`libc-debug`) are not shipped, and the packages
  are not obtainable:
  - `https://stable-mirror.omarchy.org/core-debug/...` and
    `extra-debug/...` → **404** (debug repos not mirrored)
  - Official Arch `core-debug` is on glibc **2.44**, while the Omarchy stable
    mirror is pinned to **2.43+r37+gfdf10644d6ee-1** → debug files don't match
  - `debuginfod.archlinux.org` returns 404 for the installed build-id
  - `archive.archlinux.org` keeps no `libc-debug` package files

So on Omarchy stable, Valgrind is unusable with no package-level workaround.

### Expected behaviour

`valgrind ./hello` should run and report memory errors/leaks.

### Suggested fixes (any one resolves it)

1. Ship glibc's debug symbols for the pinned glibc (`libc-debug`) on the
   Omarchy mirror — matches upstream's documented fix and also enables
   `gdb`/profiling on system libs.
2. Ship `ld.so` unstripped (as the error message suggests), or
3. Update glibc to current upstream so stock `core-debug`/`libc-debug` applies.

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

No decision has been recorded yet.