io/readlink.c
- это просто реализация заглушки, которая всегда дает сбой во время выполнения. Он не должен компилироваться вообще при сборке для GNU / Linux. Вместо этого реализация должна исходить из универсальной оболочки системных вызовов в sysdeps/unix/syscalls.list
:
readlink - readlink i:spi __readlink readlink
Однако, последние архитектуры Linux (такие как generic
на языке Linux, в настоящее время aarch64, csky, nios2 и riscv)) больше не имеют системного вызова readlink
и функции, которая должна быть реализована с использованием readlinkat
. Эта реализация находится в файле sysdeps/unix/sysv/linux/generic/readlink.c
.
Не ясно, что вы делаете, поэтому скомпилирован неверный файл. Вы уверены, что установили совместимые заголовки ядра?
Конкретный восходящий коммит (который вошел в glibc 2.15):
commit 95b7042bac3e2cfc6fef7aec6acc7d46dd50eba5
Author: Roland McGrath <roland@hack.frob.com>
Date: Fri Nov 11 10:02:42 2011 -0800
Fix __readlink declaration.
Но, учитывая фундаментальную природуПроблема со сборкой, с которой вы столкнулись, я сомневаюсь, что применение этого патча при устранении немедленного сбоя сборки в итоге даст вам функциональную сборку glibc.