LINUX.ORG.RU

Сборка LFS на uclibc, не компилируется native i386-linux-uclibc-gcc


0

0

Пробую собрать систему LFS на основе uclibc.
Почти по этой шпаргалке: http://linuxfromscratch.org/pipermail/hlfs-dev/2004-November/001291.html

1. Конфигурируем uclibc-0.9.27, компилируем и устанавливаем в /usr/i386-linux-uclibc/

2. Компилируем и устанавливаем binutils-2.17:
./configure --prefix=/usr/i386-linux-uclibc --disable-nls --target=i386-linux-uclibc
make configure-host
make LDFLAGS="-all-static"
make install
make -C ld clean
make -C ld LDFLAGS="-all-static" LIB_PATH=/usr/i386-linux-uclibc
make -C ld install

3. Патчим (под uclibc), компилируем и устанавливаем кросс-компилятор gcc-3.4.6:
./configure --target=i386-linux-uclibc --prefix=/usr/i386-linux-uclibc -libexecdir=/usr/i386-linux-uclibc/lib --disable-nls --disable-shared --enable-languages=c
make
make install

4. Немножко патчим установку uclibc:
ln -s /usr/i386-linux-uclibc/lib/crt* /usr/i386-linux-uclibc/i386-pc-linux-uclibc/lib

5. Тестируем кросс-компилятор (для запуска a.out надо прописать uclibc'овский загрузчик в /lib):
echo 'main(){}' > dummy.c
i386-linux-uclibc-gcc dummy.c

6. патчим (под uclibc), компилируем и устанавливаем нативный компилятор gcc-3.4.6 (слинкованный с uclibc):
*.patch:
100-uclibc-conf.patch
200-uclibc-locale.patch
300-libstdc++-pic.patch
304-index_macro.patch
600-gcc34-arm-ldm-peephole.patch
601-gcc34-arm-ldm-peephole2.patch
601-gcc34-arm-ldm.patch
602-sdk-libstdc++-includes.patch
700-pr15068-fix.patch
71_all_sh-pr16665-fix.patch
72_all_sh-no-reorder-blocks.patch
73_all_sh-pr20617.patch
800-arm-bigendian.patch
800-powerpc-libc_stack_end-uclibc.patch
810-mips-xgot.patch
900-nios2.patch

CC="i386-linux-uclibc-gcc" ./configure --prefix=/usr/i386-linux-uclibc --host=i386-linux-uclibc --build=i386-linux-uclibc --target=i386-linux-uclibc --enable-shared -libexecdir=/usr/i386-linux-uclibc/lib --with-local-prefix=/usr/i386-linux-uclibc --enable-threads=posix --disable-__cxa_atexit --enable-languages=c,c++ --disable-libstdcxx-pch
make
....
Configuring in gcc
configure: creating cache ./config.cache
checking build system type... i386-pc-linux-uclibc
checking host system type... i386-pc-linux-uclibc
checking target system type... i386-pc-linux-uclibc
checking LIBRARY_PATH variable... ok
checking GCC_EXEC_PREFIX variable... ok
checking whether to place generated files in the source directory... no
checking whether a default linker was specified... no
checking whether a default assembler was specified... no
checking for i386-linux-uclibc-gcc... i386-linux-uclibc-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
make: *** [configure-gcc] Error 1


Почему выходит такая бяка ?

★★★★★

Ответ на: комментарий от Chubaka

> --host и --target должны отличаться. иначе он не выставляет $cross_compiling=yes

Вопрос не про кросс-компилятор (его бинарник я получил на первой сборке), а именно про "нативный" i386-linux-uclibc-gcc (==host).

> на сайте uclibc есть buildroot

ага, надо будет в buildroot глянуть

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