Загрузчик я свой собрал - ему libc не требуются, попробовал сбрать buildroot - на busybox сразу ругань, не находит пути к инклудам uclibc. Куда его нужно распаковать чтобы он правильно заработал ? судя по этому
HOME в префикс была включена - не думаю что у нас названия хомяков совпадают :) Чего делать то ? :)
Непонятно - не находит инклуды даже если скопировать в /home/repman
ИМХО что-то намудрено с префиксами при сборке тулчайна - ничего не может найти от uclibc - ни хидеров, ни библиотек...
Место расположения никакого значения не имеет, работает из любой директории...
Все библиотеки и заголовки есть в тулчейне - используй sysroot.
Я сделал копию тулчейна в buildroot (она же $(BASE_DIR)), директорию sys-root тулчейна назначил как BR2_STAGING_DIR - все само находится и работает, из списка BR2_TOOLCHAIN_EXTERNAL_LIBS по умолчанию нужно 1 библиотеку убрать (кончается на _s), ее в моем toochain не пердусмотрено....
При сборке buildroot - BR2_STAGING_DIR передается для gcc как sysroot, а в нем есть все необходимое (headers, libs и т.д.) для сборки...
Имейте ввиду, что sys-root должен быть WRITABLE, т.к. buildroot будет туда по ходу сборки еще добавлять библиотеки, бинарники и т.п.... поэтому же лучше работать с копией тулчейна...
Неее - так не интересно, нормальному тулчайну ничего не нужно прописывать. Кстати есть неплохой проект по автоматизированной сборке совего нормального тулчайна crosstool
Кстати в продолжении темы о тулчайнах и busybox - почему-то у меня с uclibc не работает mdev и не могу залогиниться. Собираю прямо тут же с тулчайном 2007q - все работает как часы... Все перепробовал - oabi/eabi.
Путь и префикс ты прописать любому внешнему toolchain'у должен, по любому... для моего только sysroot добавлен....
Кстати, наверное, можно не переназначать STAGING_DIR, а просто скопировать туда содержимое sys-root тулчейна... должно работать также.... (???)
Такое у меня происходит только если uClibc собраны с eabi, если везде oabi - все ок....
eabi тулчейн у меня пока собрать не получается... либо он uclibc теряет, либо на eabi не переходит.... Никак не могу въехать какой ему правильный триплет задать для таргета... arm-uclibc-linux-gnueabi - теряется uclibc, arm-linux-uclibcgnueabi - теряется eabi... Может кто знает ???
p.s. crosstool видел, пользовал... там все очень старое...
На сайте crosstool нашел ссылку на проект
http://www.pengutronix.de/software/ptxdist/
говорят что это аналог buildroot - никто не пробовал его ? какие впечатления ?
Ты его НЕ тулчайну, а бьюлдруту указываешь... тулчайн хорошо знает где его sysroot, если не приказано в командной строке искать его в другом месте...
Если сможешь приказать buildroot НЕ использовать sysroot вообще - тогда можешь не указывать... я не знаю как ему запретить это делать, если не укажешь правильный, то buildroot свой подставит, где нет никаких библиотек и хеадеров...
Посмотри на процесс сборки, что передается gcc с параметром --sysroot... происходит принудительное переопредление sysroot, что приказано, то он и делает....
Вот в этом и дело - нормальный тулчайн работает как бы ему не мешали внешние утилиты :) И для нормального тулчайна кроме указания пути и префикса ничего не нужно указывать в буилдруте.
Собственно к чему я это все :)
Вот я уже давал ссылку на crosstools
Собрал замечательный тулчайн с uclibc, правда все же oabi - все работает, достаточно указывать путь и префикс в buildroot.
Ядро с initramfs содержащей весь набор busybox + madplay+uclibc всего 2,2 Мбайт. Загрузчик поучился еще меньше чем раньше - спокойно влазит в 4 кбайт :)