Fragen? Antworten! Siehe auch: Alternativlos
Nach ein bisschen herumprobieren kommt raus, dass dasselbe clang-Binary aus dem Build-Verzeichnis aufgerufen funktioniert, aber der holt sich sein xmmintrin.h auch aus dem Build-Verzeichnis. Mein Produktions-Bleedinge-Edge-clang ist in /opt/llvm und das ist aus einem Squashfs mit zstd gemountet.
Stellt sich raus: Wenn ich das Binary aus dem Buildverzeichnis aufrufe, aber per -I xmmintrin.h aus dem squashfs hole, dann platzt das.
Diese Konstellation habe ich seit Jahren auf anderen Geräten im Einsatz. Der Unterschied ist, dass das neue Gerät AVX512 kann.
Meine Arbeitshypothese ist gerade, dass squashfs+zstd im Kernel AVX512 benutzt und damit Register im Userspace übernagelt. Ich erinnere mich dunkel an eine "ist das gültiges UTF-8"-Implementation mit AVX512 von diesem einen kanadischen Professor und seiner Arbeitsgruppe. Jetzt habe ich jedenfalls clang ohne squashfs installiert und es läuft sauber durch.
Das finde ich ja mal äußerst beunruhigend hier gerade. Wenn das stimmt, habe ich mit den Auswirkungen noch mal mehr als Glück gehabt.
Update: Stellt sich raus: Das Problem tritt auch ohne AVX512 auf. Das hat nichts damit zu tun. squashfs ist gerade (Linux 6.0) kaputt.