2.1.243 native build segfaults at startup on Arch Linux (glibc 2.44) — even `--version` and `claude update`
Summary
The 2.1.243 native build segfaults immediately on startup on Arch Linux — every invocation, including claude --version and claude update. 2.1.240, 2.1.241 and 2.1.245 all run fine on the same machine, so this looks specific to 2.1.243 (2.1.242 not tested).
Filing for the record because 2.1.243 was completely unusable and self-recovery was impossible: claude update / claude upgrade segfault too, so the only way out was manually re-pointing the launcher symlink at a retained older version.
Environment
- Arch Linux, kernel 6.18.44-1-lts, x86_64
- glibc 2.44+r24+g16be1518495f-1 (upgraded 2026-08-16)
- Install method:
native(~/.local/share/claude/versions/) - Reproduced from both fish and bash
Reproduction
$ ~/.local/share/claude/versions/2.1.243 --version
Segmentation fault (core dumped)
$ echo $?
139
Crashes identically for: bare claude, claude --version, claude update, claude upgrade, claude --resume <id>, and headless claude -p .... Setting LC_ALL=C LANG=C makes no difference. Reproduced across two boots and ~26 separate invocations.
Stack trace
Signal: 11 (SEGV)
#0 0x0000000001d10458 free (2.1.243 + 0x1b10458)
#1 0x00007f78b363530a __newlocale (libc.so.6 + 0x3530a)
#2 0x0000000001abd282 n/a (2.1.243 + 0x18bd282)
#3 0x00007f78b369d7fc n/a (libc.so.6 + 0x9d7fc)
#4 0x00007f78b369d879 pthread_once (libc.so.6 + 0x9d879)
#5 0x0000000001abc2d2 n/a (2.1.243 + 0x18bc2d2)
#6 0x0000000001ace6cf n/a (2.1.243 + 0x18ce6cf)
#7 0x0000000001abdc0a n/a (2.1.243 + 0x18bdc0a)
#8 0x0000000001abe9c4 n/a (2.1.243 + 0x18be9c4)
#9 0x00007f78b369d7fc n/a (libc.so.6 + 0x9d7fc)
#10 0x00007f78b369d879 pthread_once (libc.so.6 + 0x9d879)
#11 0x0000000001abea15 n/a (2.1.243 + 0x18bea15)
#12 0x0000000001abead7 n/a (2.1.243 + 0x18bead7)
#13 0x0000000001abb922 n/a (2.1.243 + 0x18bb922)
#14 0x0000000001abb724 n/a (2.1.243 + 0x18bb724)
#15 0x0000000001aadadd n/a (2.1.243 + 0x18adadd)
#16 0x00007f78b3627892 __libc_start_main (libc.so.6 + 0x27892)
#17 0x0000000001953a2e n/a (2.1.243 + 0x1753a2e)
Notes
- The crash sits in startup locale initialization (
__newlocaleunderpthread_once), before argument parsing — which explains why even--versiondies and why the in-band updater can't be used to escape. - The
freeframe is attributed to the binary, butnm -D --defined-onlyshows neither 2.1.241 nor 2.1.243 exportsfree, so that is most likely nearest-symbol attribution rather than an allocator interposition against glibc. - Each crash wrote a 70.7 MB core dump; 26 of them accumulated before it was noticed.
Versions tested on this machine
| Version | Result |
|---|---|
| 2.1.240 | OK |
| 2.1.241 | OK |
| 2.1.242 | not tested |
| 2.1.243 | SIGSEGV, every invocation |
| 2.1.245 | OK |
Workaround
Re-point the launcher at a retained older build:
ln -sf ~/.local/share/claude/versions/2.1.241 ~/.local/bin/claude
Installing 2.1.245 (claude install 2.1.245) also resolves it — whatever this was appears already fixed there.