LINUX.ORG.RU

glibc-2.4 - гадость, но у нас ничего больше нету


0

0

Собственно вот, собираю glibc-2.4 под ядром 2.6.18 компилятором gcc-4.1.1 и binutils-2.16, возникает ошибка линкера при сборке:
---------------------------------------------------------------------
/tmp/glibc-2.4-build/libc_pic.os: In function `fchownat':
../sysdeps/unix/sysv/linux/i386/fchownat.c:181: undefined reference to `__atfct_seterrno'
collect2: ld returned 1 exit status
---------------------------------------------------------------------
В чём может быть дело?


а с binutils-2.17 тоже возникает? и с какими флгами собираешь, особенно линкуешь?

mic ★★★★★
()
Ответ на: комментарий от e

> а с binutils-2.17 тоже возникает? и с какими флгами собираешь, особенно линкуешь?
Нет возможности (пока) слить 2.17, сейчас скачал патч на 2.16.1, пересоберу, попробую. Чуть позже скажу флаги.

> При чем здесь текущее ядро? Какие инклюдосы лежат в основе?
Как при чём? Инклуды от ядра беру текущего. Версию уже грил - 2.6.18.

EViL
() автор топика
Ответ на: комментарий от EViL

ССЗБ, стабильными инклюдосами от ядра для целей помещения в /usr/include являются 2.6.11 и 2.6.17. Поверь, ничего такого нового в 2.6.18 - просто не появилось, а вот поломатым может оказаться многое.

2.6.11 - рок стабля на x86, 2.6.17 - на amd64, полет нормальный с момента выхода 2.6.17.

CFLAGS - не более чем "-O3 -march=... -pipe", LDFLAGS вообще лучше не ставить - мейнтейнеры глибцы все же не дураки и их консерватизм имеет обоснование.

В бинутилках 2.17 поломали многие вещи (глибц-2.3.6 без патчей уже не собирается), так что решай сам... С glibc-2.4 пока больше гемора, чем фишек, тем более скоро выйдет 2.3.7.

e
()
Ответ на: комментарий от e

> ССЗБ, стабильными инклюдосами от ядра для целей помещения в /usr/include являются 2.6.11 и 2.6.17. Поверь, ничего такого нового в 2.6.18 - просто не появилось, а вот поломатым может оказаться многое.
Беглый осмотр показал, что вроде ничего не поломали. То, что поломали в 2.6.17 тут тоже не работает.

> В бинутилках 2.17 поломали многие вещи (глибц-2.3.6 без патчей уже не собирается), так что решай сам... С glibc-2.4 пока больше гемора, чем фишек, тем более скоро выйдет 2.3.7.
Что-ж, получается даже хорошо, что я не могу обновиться :)
Не, влом качать ещё и 2.3.7.

> CFLAGS - не более чем "-O3 -march=... -pipe", LDFLAGS вообще лучше не ставить - мейнтейнеры глибцы все же не дураки и их консерватизм имеет обоснование.
Я вообще никакие {C,LD}FLAGS руками не указывал, может в этом дело?
Собирал так:
--
/usr/src/glibc-2.4/configure --prefix=/usr --enable-kernel=2.6.18 -with-headers=/usr/src/linux/include --enable-add-ons=libidn,nptl --with-tls --with-__thread --without-cvs
--
На 2.6.16 всё прекрасно собиралось, а тут вот такая несуразица :(

EViL
() автор топика
Ответ на: комментарий от EViL

PPS: блин, мысль вылетела. Вот последние строчки выполнения make:
----------------
gcc -shared -static-libgcc -Wl,-O1 -Wl,-z,defs -Wl,-dynamic-linker=/lib/ld-linux.so.2 -B/tmp/glibc-2.4-build/csu/ -Wl,--version-script=/tmp/glibc-2.4-build/libc.map -Wl,-soname=libc.so.6 -Wl,-z,combreloc -Wl,-z,relro -nostdlib -nostartfiles -e __libc_main -L/tmp/glibc-2.4-build -L/tmp/glibc-2.4-build/math -L/tmp/glibc-2.4-build/elf -L/tmp/glibc-2.4-build/dlfcn -L/tmp/glibc-2.4-build/nss -L/tmp/glibc-2.4-build/nis -L/tmp/glibc-2.4-build/rt -L/tmp/glibc-2.4-build/resolv -L/tmp/glibc-2.4-build/crypt -L/tmp/glibc-2.4-build/nptl -Wl,-rpath-link=/tmp/glibc-2.4-build:/tmp/glibc-2.4-build/math:/tmp/glibc-2.4-bu ild/elf:/tmp/glibc-2.4-build/dlfcn:/tmp/glibc-2.4-build/nss:/tmp/glibc-2.4-build /nis:/tmp/glibc-2.4-build/rt:/tmp/glibc-2.4-build/resolv:/tmp/glibc-2.4-build/cr ypt:/tmp/glibc-2.4-build/nptl -o /tmp/glibc-2.4-build/libc.so -T /tmp/glibc-2.4-build/shlib.lds /tmp/glibc-2.4-build/csu/abi-note.o /tmp/glibc-2.4-build/elf/soinit.os /tmp/glibc-2.4-build/libc_pic.os /tmp/glibc-2.4-build/elf/sofini.os /tmp/glibc-2.4-build/elf/interp.os /tmp/glibc-2.4-build/elf/ld.so -lgcc
/tmp/glibc-2.4-build/libc_pic.os: In function `fchownat':
../sysdeps/unix/sysv/linux/i386/fchownat.c:181: undefined reference to `__atfct_seterrno'
collect2: ld returned 1 exit status
make[1]: *** [/tmp/glibc-2.4-build/libc.so] Ошибка 1
make[1]: Leaving directory `/usr/src/glibc-2.4'
make: *** [all] Ошибка 2
----------------

EViL
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.