Сколько помню, всегда обновлял glibc как написано в LFS Book:
./configure && make && make install
Грабли возникают уже на том этапе, что «make install» сначала устанавливает ряд файлов, а только потом ещё дособирает другой ряд файлов. В итоге получается, что, например, GCC уже собирает бинарники для нового glibc'а, а его в системе пока ещё нет. И вот обойти эти грабли можно задав отдельную директорию через $DESTDIR. Сначала glibc устанавливает себя туда, а уже потом это файло перемещается в систему.
Также glibc теперь хардкодит в себя --prefix, который должен быть «/usr». А по старым стандартам *.so файлы glibc'а перемещались из /usr/lib в /lib на тот случай, если, вдруг, /usr нет при загрузке системы. А теперь оно стало работать не так.
Сейчас буду обновлять систему дальше, а пока нахожусь одной ногой в старых стандартах, а другой в новых, это выглядит в т.ч. так:
> ls -l /lib/ld-linux-x86-64.so.2
lrwxrwxrwx 1 root root 31 сен 28 12:57 /lib/ld-linux-x86-64.so.2 -> ../usr/lib/ld-linux-x86-64.so.2
>