Привожу решение проблемы по портирования gnat из линукса на 64 битную фриБСД. Как уже писал ранее суть трабля в том что под БСД в 63 бита рабочего gnat пока нет прямо там собрать свой неполучиться т. к. для сборки gnat нужен ... gnat!
Итак для портирования выполняются следующие шаги.
1) Выбирается prefix директория куда будет собираться новый промежуточный компилятор, например $HOME/gcc поддиректория bin добавляется в PATH а lib в LD_LIBRARY_PATH
2) собирается нативный для linux компилятор и устанавливается в $HOME/gcc. Пример конфигурации:
../gcc-4_4-branch/configure --prefix=$HOME/gcc --enable-languages=c,ada --enable-checking=release --enable-ssp --enable-__cxa_atexit --enable-libstdcxx-allocator=new --enable-version-specific-runtime-libs --program-suffix=-4.4 --enable-linux-futex --without-system-libunwind --with-arch-32=i586 --with-tune=core2 --build=x86_64-suse-linux
устанавливается ксобраный компилятор, НО РЕЗУЛЬТАТЫ СБОРКИ НЕ ОЧИЩАЮТСЯ!
2) В $HOME/gcc собирается кроссплатформенное окружение в виде binutils (Обязательно собрать с опцией --with-sysroot) и каталогов /lib /usr/lib /usr/include целевой системы
3) Собирается кроссплатформенный компилятор. Пример конфигурации:
../gcc-4_4-branch/configure --prefix=$HOME/gcc --target=x86_64-mybuild-freebsd7 --enable-languages=c,ada --enable-__cxa_atexit --enable-shared --with-sysroot=$HOME/gcc/x86_64-mybuild-freebsd7/ --with-headers=$HOME/gcc/x86_64-mybuild-freebsd7/usr/include --with-libs=$HOME/gcc/x86_64-mybuild-freebsd7/lib --with-arch-32=i586 --with-tune=core2 --enable-libstdcxx-allocator=new
собранныйкомпилятор устанавливается.
4) ПОВЕРХ КРОСС-КОМПИЛЯТОРА ПЕРЕУСТАНАВЛИВАЕМ НАТИВНЫЙ ДЛЯ СИСТЕМЫ КОМПИЛЯТОР выдавая make install в директории его сборки
5) Делаем копию дерева исходных кодов компилятора. На оригинал gcc-4_4-branch накладываем приведенный далее пач: patch -p0 < cross_natice.patch . Это необходимо так как на данный момент система сборки gnat в gcc разломана для кроскомпиляции нативного компилятора.
6) Также необходимо добавить в дерево исходных текстов компилятора файл gcc/ada/system-freebsd-x86_64.ads приведенные ниже
7) Кросскомпиляцией собираем в дирректроию $HOME/gcc/freebsd/ GMP и MPRF.
8) Собираем нативный для целевой системы компилятор. Пример конфигурации:
./gcc-4_4-branch/configure --build=x86_64-suse-linux --host=x86_64-mybuild-freebsd7 --prefix=$HOME/gcc/freebsd/ --enable-languages=c,ada --with-gmp=$HOME/gcc/freebsd/ --with-mpfr=$HOME/gcc/freebsd/ --disable-shared --disable-bootstrap --disable-multilib
9) Устанавливаем компилятор. Запаковываем его переписываем под FreeBSD 7 amd 64 и там уже на его основе собираем еще один gcc который и можно будет использовать.
Вот такой геморойчик!
Ответ на:
комментарий
от mskmsk1985
Ответ на:
комментарий
от Dark_SavanT
Ответ на:
комментарий
от io
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Вопрос по правильной сборке GCC+GLibc, pass1 (2012)
- Форум gcc 4.1.2 как собрать? (2013)
- Форум QProcess и gcc -v (2016)
- Форум зависает gcc ! :))) (2005)
- Форум gcc - в чем косяк ? (2014)
- Форум cc. Не работает автодополнение при выборе каталога/файла для компиляции. (2016)
- Форум Ошибки при компиляции GCC (2014)
- Форум Как на линуксах собрать gcc под шиндоус? (2017)
- Форум Сборка древних ядер linux (2014)
- Форум Сборка gcc 4.4.2 (2009)