При попытке установить последнюю версию glibc на мою машину при условии, что я выполнил исполняемый файл "config" с флагами: ../configure CFLAGS="-O3 -fPIC" --disable-sanity-checks
он правильно генерирует make-файл, хотя я думаю, что disable-sanity-проверок приведет к некоторым ошибкам.
Но всякий раз, когда я пытаюсь выполнить сгенерированный Makefile с помощью make, консоль выводит следующую ошибку:
make[3]: Leaving directory '/mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/elf'
gcc -nostdlib -nostartfiles -shared -o /mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/glibc-build/elf/ld.so.new \
-Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -Wl,-z,defs \
/mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/glibc-build/elf/librtld.os -Wl,--version-script=/mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/glibc-build/ld.map
\
-Wl,-soname=ld-linux-x86-64.so.2 \
-Wl,-defsym=_begin=0
/mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/glibc-build/elf/librtld.os: In function `process_envvars':
/mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/elf/rtld.c:2686: undefined reference to `__GI___open64_nocancel'
/usr/bin/ld: /mnt/c/Users/SCP173/Downloads/Thread/glib/glibc/glibc-build/elf/librtld.os: relocation R_X86_64_PC32 against undefined symbol `__GI___open64_nocancel' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Как я уже сказал, я пытался добавить флаг -fPIC
, но все равно не поймал его. И я вроде как новичок в .os
, .map
и других расширениях, таких как те. Я делаю это совершенно неправильно? Или как мне скомпилировать только этот файл, используя gcc
вместо передачи флага всей команде make
?