Если я вас правильно понял, более подробный вопрос:
Какие параметры конфигурации использовали разработчики GNU Arm Embedded Toolchain при создании библиотек newlib, поставляемых в архиве gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2?
Эти для newlib:
--target=arm-none-eabi --enable-newlib-io-long-long --enable-newlib-register-fini --enable-newlib-retargetable-locking --disable-newlib-supplied-syscalls --disable-nls
А вот эти для newlib-nano:
--target=arm-none-eabi --enable-newlib-reent-small --disable-newlib-fvwrite-in-streamio --disable-newlib-fseek-optimization --disable-newlib-wide-orient --enable-newlib-nano-malloc --disable-newlib-unbuf-stream-opt --enable-lite-exit --enable-newlib-global-atexit --enable-newlib-nano-formatted-io --disable-nls
Как я понял? Давайте пройдемся по процессу:
Эти пакеты построены на панели запуска , где вы найдете все сборки , которые имели место на lanuchpad. Я выбрал gcc-arm-none-eabi 6-2017q2-1 из 2017-10-24 . Там я могу найти buildlog . Я собрал журнал сборки с помощью | grep "^+ " | grep "configure " | grep 'src/newlib'
, а мне осталось:
+ /<<PKGBUILDDIR>>/src/newlib/configure --target=arm-none-eabi --prefix=/<<PKGBUILDDIR>>/install-native --infodir=/<<PKGBUILDDIR>>/install-native/share/doc/gcc-arm-none-eabi/info --mandir=/<<PKGBUILDDIR>>/install-native/share/doc/gcc-arm-none-eabi/man --htmldir=/<<PKGBUILDDIR>>/install-native/share/doc/gcc-arm-none-eabi/html --pdfdir=/<<PKGBUILDDIR>>/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-newlib-io-long-long --enable-newlib-register-fini --enable-newlib-retargetable-locking --disable-newlib-supplied-syscalls --disable-nls
+ /<<PKGBUILDDIR>>/src/newlib/configure --target=arm-none-eabi --prefix=/<<PKGBUILDDIR>>/build-native/target-libs --disable-newlib-supplied-syscalls --enable-newlib-reent-small --disable-newlib-fvwrite-in-streamio --disable-newlib-fseek-optimization --disable-newlib-wide-orient --enable-newlib-nano-malloc --disable-newlib-unbuf-stream-opt --enable-lite-exit --enable-newlib-global-atexit --enable-newlib-nano-formatted-io --disable-nls
Немного о Шерлоке Холмсе, и я пришел к выводу, что вторая строка - это newlib, настроенная для сборки как newlib-nano (--enable-newlib-reent-small
), первая - это newlib, настроенная для сборки как полная newlib.
Чтобы ответить на вопрос вашей темы, чтобы перекомпилировать newlib и newlib-nano таким же образом, передайте опции, которые я опубликовал выше, в скрипт newlib ./configure
.