openSUSE 10.2 2 LFS (не собирается glibc 2.7 (gcc 4.1.2 || gcc 4.3.0))

Системы, которые не вошли в список.

Модератор: Модераторы разделов

NAYakaSL
Сообщения: 16
ОС: openSuSE 10.2 to LFS

openSUSE 10.2 2 LFS

Сообщение NAYakaSL »

Базовая система стоит openSuSE 10.2. Но заинтересовался я LFS. Решил поставить, правда, скачал не те пакеты, которые в книжке указана (LFS v6.3) а самые новые.
Binutils-2.18 собралась без проблем.
Дальше стало сложнее.
GCC упорно не хотел собираться, да еще и просил gmp и mpfr. Пару дней парил мозг - поставил.
Собирал пакеты так:

Код: Выделить всё

#binutils
CC="gcc -B/usr/bin/" ../binutils-2.18/configure --prefix=/tools --disable-nls --disable-werror
make
make install
make -C ld clean
make -C ld LIB_PATH=/tools/lib
cp -v ld/ld-new /tools/bin
#gmp
CC="gcc -B/usr/bin/" ./configure --prefix=/tools --with-local-prefix=/tools --disable-nls --disable-werror
make
make install
#mpfr
CC="gcc -B/usr/bin/" ./configure --prefix=/tools --with-local-prefix=/tools --disable-nls --disable-werror
make
make install
#gcc
CC="gcc -B/usr/bin/" ../gcc-4.3.0/configure --prefix=/tools --with-local-prefix=/tools --with-gmp=/tools --with-mpfr=/tools --disable-nls --enable-shared --enable-languages=c --with-ld=/tools/bin/ld
make bootstrap
make install
ln -vs gcc /tools/bin/cc

а вот glibc-2.7 собираться не хочет упорно. По книжке конфигурируется так:
сначала надо установить заголовки будущего ядра

Код: Выделить всё

make mrproper
make headers_check
make INSTALL_HDR_PATH=dest headers_install
cp -rv dest/include/* /tools/include

потом, собственно, сам glibc
--disable-profile --enable-add-ons --enable-kernel=2.6.0 --with-binutils=/tools/bin --without-gd --with-headers=/tools/include --without-selinux
если все делаю так, то на этапе make вылазит ошибка типа could not find limits.h, даже если указать на заголовки в /usr
Я проверял: в папке он есть.
Если вообще не писать --with-headers=/tools/include, то компилится до определенного момента, а потом опять ошибка какая-то, точно не помню.
Вот, собственно говоря, сама ошибка:

Код: Выделить всё

mnt/rtl/sources/glibc-build/tcb-offsets.h.d /mnt/rtl/sources/glibc-build/tcb-offsets.h'
In file included from ../nptl/sysdeps/pthread/allocalim.h:21,
from ../include/alloca.h:20,
from ../stdlib/stdlib.h:497,
from ../include/stdlib.h:8,
from ../nptl/sysdeps/i386/i686/../tls.h:28,
from ../nptl/sysdeps/i386/i686/tls.h:34,
from ../include/tls.h:6,
from ../sysdeps/unix/sysv/linux/i386/sysdep.h:30,
from <stdin>:1:
../include/limits.h:125:26: error: limits.h: No such file or directory
make[2]: *** [/mnt/rtl/sources/glibc-build/tcb-offsets.h] Error 1
make[2]: Leaving directory `/mnt/rtl/sources/glibc-2.7/csu'
make[1]: *** [csu/subdir_lib] Error 2
make[1]: Leaving directory `/mnt/rtl/sources/glibc-2.7'
make: *** [all] Error 2
Life goes on...
Спасибо сказали:
Аватара пользователя
Killertester
Сообщения: 86
ОС: Gentoo

Re: openSUSE 10.2 2 LFS

Сообщение Killertester »

У меня похожая проблема вот что говорит ничё понять немогу уже 4 день

Код: Выделить всё

/DISCARD/ : { *(.gnu.glibc-stub.*) }@'
mv -f /mnt/lfs/sources/glibc-build/shlib.ldsT /mnt/lfs/sources/glibc-build/shlib.lds
gcc -B/tools/bin/   -shared -static-libgcc -Wl,-O1  -Wl,-z,defs -Wl,-dynamic-linker=/tools/lib/ld-linux.so.2  -B/mnt/lfs/sources/glibc-build/csu/  -Wl,--version-script=/mnt/lfs/sources/glibc-build/libc.map -Wl,-soname=libc.so.6 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -nostdlib -nostartfiles -e __libc_main -L/mnt/lfs/sources/glibc-build -L/mnt/lfs/sources/glibc-build/math -L/mnt/lfs/sources/glibc-build/elf -L/mnt/lfs/sources/glibc-build/dlfcn -L/mnt/lfs/sources/glibc-build/nss -L/mnt/lfs/sources/glibc-build/nis -L/mnt/lfs/sources/glibc-build/rt -L/mnt/lfs/sources/glibc-build/resolv -L/mnt/lfs/sources/glibc-build/crypt -L/mnt/lfs/sources/glibc-build/nptl -Wl,-rpath-link=/mnt/lfs/sources/glibc-build:/mnt/lfs/sources/glibc-build/math:/mnt/lfs/sources/glibc-build/elf:/mnt/lfs/sources/glibc-build/dlfcn:/mnt/lfs/sources/glibc-build/nss:/mnt/lfs/sources/glibc-build/nis:/mnt/lfs/sources/glibc-build/rt:/mnt/lfs/sources/glibc-build/resolv:/mnt/lfs/sources/glibc-build/crypt:/mnt/lfs/sources/glibc-build/nptl -o /mnt/lfs/sources/glibc-build/libc.so -T /mnt/lfs/sources/glibc-build/shlib.lds /mnt/lfs/sources/glibc-build/csu/abi-note.o /mnt/lfs/sources/glibc-build/elf/soinit.os /mnt/lfs/sources/glibc-build/libc_pic.os /mnt/lfs/sources/glibc-build/elf/sofini.os /mnt/lfs/sources/glibc-build/elf/interp.os /mnt/lfs/sources/glibc-build/elf/ld.so -lgcc
/mnt/lfs/sources/glibc-build/libc_pic.os: In function `__libc_fork':
/mnt/lfs/sources/glibc-build/glibc-2.7/posix/../nptl/sysdeps/unix/sysv/linux/i386/../fork.c:76: undefined reference to `__sync_bool_compare_and_swap_4'
/mnt/lfs/sources/glibc-build/libc_pic.os: In function `__nscd_drop_map_ref':
/mnt/lfs/sources/glibc-build/glibc-2.7/nscd/nscd-client.h:320: undefined reference to `__sync_fetch_and_add_4'
/mnt/lfs/sources/glibc-build/libc_pic.os: In function `nscd_getpw_r':
/mnt/lfs/sources/glibc-build/glibc-2.7/nscd/nscd_getpw_r.c:232: undefined reference to `__sync_fetch_and_add_4'
/mnt/lfs/sources/glibc-build/libc_pic.os: In function `__nscd_drop_map_ref':
/mnt/lfs/sources/glibc-build/glibc-2.7/nscd/nscd-client.h:320: undefined reference to `__sync_fetch_and_add_4'
/mnt/lfs/sources/glibc-build/libc_pic.os: In function `nscd_getgr_r':
/mnt/lfs/sources/glibc-build/glibc-2.7/nscd/nscd_getgr_r.c:321: undefined reference to `__sync_fetch_and_add_4'
/mnt/lfs/sources/glibc-build/libc_pic.os: In function `__nscd_drop_map_ref':
/mnt/lfs/sources/glibc-build/glibc-2.7/nscd/nscd-client.h:320: undefined reference to `__sync_fetch_and_add_4'
/mnt/lfs/sources/glibc-build/libc_pic.os:/mnt/lfs/sources/glibc-build/glibc-2.7/nscd/nscd_gethst_r.c:400: more undefined references to `__sync_fetch_and_add_4' follow
/mnt/lfs/sources/glibc-build/libc_pic.os: In function `__nscd_get_map_ref':
/mnt/lfs/sources/glibc-build/glibc-2.7/nscd/nscd_helper.c:404: undefined reference to `__sync_val_compare_and_swap_4'
/mnt/lfs/sources/glibc-build/libc_pic.os: In function `*__GI___libc_freeres':
/mnt/lfs/sources/glibc-build/glibc-2.7/malloc/set-freeres.c:39: undefined reference to `__sync_bool_compare_and_swap_4'
collect2: ld returned 1 exit status
make[1]: *** [/mnt/lfs/sources/glibc-build/libc.so] Error 1
make[1]: Leaving directory `/mnt/lfs/sources/glibc-build/glibc-2.7'
make: *** [all] Error 2
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: openSUSE 10.2 2 LFS

Сообщение RasenHerz »

у меня glibc во время компиляции, ничего не выдавала, НО во время установки вызвала Oops!.., после перезагрузки проги перестали запускаться и т.д. и т.п. В общем, система была полностью уничтожена))) Думаю дело в том что при установке были заменены старые версии glibc и вышел из строя даше компилятор))) В общем, острожнее с этим - уронить систему, как не фиг делать.
Спасибо сказали:
Аватара пользователя
Killertester
Сообщения: 86
ОС: Gentoo

Re: openSUSE 10.2 2 LFS

Сообщение Killertester »

С glibc разобрался но появилась конкретная ошибка при попытке входа в chroot мне выдало chroot: cannot run command `/tools/bin/env': No such file or directory Ктонить сталкивался может?
Спасибо сказали:
burunduk3
Сообщения: 1
ОС: Fedora 8, openSUSE(laptop)

Re: openSUSE 10.2 2 LFS

Сообщение burunduk3 »

Я тоже решил себе lfs собрать.
И та же проблема с новыми gcc/glibc
Про limits.h я нашёл решение:
http://gcc.gnu.org/ml/gcc/2007-12/msg00094.html
http://sourceware.org/ml/libc-alpha/2007-03/msg00017.html
В итоге помогает подредактировать glibc's configure.in (и потом переконфигурировать)
Строчку

Код: Выделить всё

SYSINCLUDES="-nostdinc -isystem $ccheaders \
заменить на

Код: Выделить всё

SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $ccheaders-fixed \


После этого возникает ошибка, про которую написал Killertester и её полечить мне пока не удалось
Спасибо сказали: