Ошибка в сборке mips-unknown-linux-gnu через crossdev
f3ex 21 июля, 2009 - 09:09
Всем доброго дня.
Ставлю кросскомпилятор под mips, через crossdev
crossdev --target mips-unknown-linux-gnu
При сборке вылазиет ошибка:
* Forcing the latest versions of {binutils,gcc}-config/gnuconfig ... [ ok ] * Log: /var/log/portage/cross-mips-unknown-linux-gnu-binutils.log * Emerging cross-binutils ... [ ok ] * Log: /var/log/portage/cross-mips-unknown-linux-gnu-linux-headers-quick.log * Emerging cross-linux-headers-quick ... [ ok ] * Log: /var/log/portage/cross-mips-unknown-linux-gnu-glibc-headers.log * Emerging cross-glibc-headers ... * glibc failed :( * If you file a bug, please attach the following logfiles: * /var/log/portage/cross-mips-unknown-linux-gnu-info.log * /var/log/portage/cross-mips-unknown-linux-gnu-glibc-headers.log
Файлы с логами:
http://f8ex.ru/gentoo_embedded/cross-mips-unknown-linux-gnu-info.log.txt
http://f8ex.ru/gentoo_embedded/cross-mips-unknown-linux-gnu-glibc-headers.log.txt
Крашится с
/usr/bin/install: cannot stat `/var/tmp/cross/mips-unknown-linux-gnu/portage/cross-mips-unknown-linux-gnu/glibc-2.9_p20081201-r2/work/build-pos-mips-unknown-linux-gnu-headers/gnu/lib-names.h': No such file or directory
Баг кроссдева? У меня может переменная не та стоит? для ARM все собирается корректно.
»
- Для комментирования войдите или зарегистрируйтесь
--without-headers Build C library headers before C compiler
crossdev -t mipsel-gentoo-linux-uclibc --without-headers
emerge crossdev-wrappers
emerge-mipsel-gentoo-linux-uclibc uclibc
emerge-mipsel-gentoo-linux-uclibc etc...
CFLAGS="-mtune=pentium2
CFLAGS="-mtune=pentium2 -march=native -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
CHOST="i686-pc-linux-gnu"
Правда, собирал для mips32
Тоже не хотел собираться
ни с glibc, ни с uclibc
crossdev -t mips - так не хотел собираться,
crossdev -t mips-unknown-linux-uclibc - и так не хотел,
crossdev -S -t mips-unknown-linux-uclibc - и так тоже не хотел,
и с добавлением USE="-*" ко всем вышеизложенным вариантам тоже не захотел.
UCLIBC_CPU="MIPS_ISA_MIPS32" crossdev -t mips-unknown-linux-uclibc
а вот так собрался.
Причом ошибка в build.log как-то совсем не указывала на то, чтобы надо
указать тип ЦП. Было конечно в build.log об том, что надо UCLIBC_CPU=
сделать, но без указания оного, просто включается generic.
А собираться не хотел из-за невозможности собрать locales.
(Так по-крайней мере было сказано в build.log).
Начал исправлять ошибки\неточности по-одной, после исправления первой же
сборка завершилась успешно.
Если у кого-то получилось указать $UCLIBC_CPU через make.conf,
или через use-flags, пожалуйста, обнародуйте, а то у меня не получилось.
(echo 'UCLIBC_CPU="MIPS_ISA_MIPS32"' >> /etc/make.conf
не возымел действия как ожидалось на
crossdev -t mips-unknown-linux-uclibc)
Так же хотелось бы услышать, имеет ли crossdev базу совместимости версий
компонентов тулчейна, или это приснилось мне.
Добавлено:
в /usr/sbin/crossdev нашел:
# only allow UCLIBC_CPU from env, not from make.conf/profile
export UCLIBC_CPU=${UCLIBC_CPU}
понятно теперь стало почему он не хотел из make.conf брать переменную