Недопустимый заголовок стандартной библиотеки Arch Linux c ++ UTF-8

Я получаю довольно мистическую ошибку, когда я пытаюсь скомпилировать программы, используя как g ++, так и clang в Arch Linux. Самая маленькая программа, которая производит ошибку, – это

#include <locale> int main() { return 0; } 

Если я не включил locale , ошибка исчезнет. (Первоначально я нашел это при компиляции программы, включавшей iomanip , которая включает в себя locale .)

Я сохранил сообщения об ошибках в файлах для clang и g ++ ; это несколько мегабайт, поэтому я не буду их копировать. Существует множество предупреждений о «игнорировании нулевого символа», и я получаю предупреждение от программы /usr/bin/locale что некоторый исходный файл недействителен UTF-8.

В моем en_US.UTF-8 установлен en_US.UTF-8 . Это результат locale :

 LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 

Я попытался установить LC_ALL ; переустановка binutils и coreutils; снова установить локаль с помощью localectl; все это никак не влияет.

Linux и Unix - лучшая ОС в мире.