# uname -sr
FreeBSD 4.11-STABLE
# gcc -v
Using builtin specs.
gcc version 2.95.4 20020320 [FreeBSD]
# pkg_info -Ix gcc
gcc-3.4.6_20051206 GNU Compiler Collection 3.4
gcc-4.2.5.20090325_5 GNU Compiler Collection 4.2
gcc-4.4.7.20110628 GNU Compiler Collection 4.4
gcc-4.5.4.20110721 GNU Compiler Collection 4.5
Пособирал разные версии GCC на 4.11-STABLE. Как уже ранее
писал, часть практически нужного софта типа LLVM в составе clamav уже не собирается gcc-2.95.4.
- Зато gcc-3.4.6 прекрасно собирается им из портов, результирующий пакет не имеет зависимостей, а им уже можно собирать порты через make USE_GCC=3.4
Пакет можно установить командой pkg_add -r http://www.grosbein.net/freebsd/packages-4.11/gcc-3.4.6_20051206.tgz
- gcc-4.2.5 (он уже новее, чем штатный в FreeBSD 8.2) прекрасно собирается с использованием gcc-3.4.6 и имеет зависимости, которые также собрались без проблем. Результирующий пакет с зависимостями можно установить командами:
export PACKAGESITE=http://www.grosbein.net/freebsd/packages-4.11/
pkg_add -r gmp-5.0.2
pkg_add -r mpfr-3.0.1
pkg_add -r libiconv-1.9.2_1
pkg_add -r gcc-4.2.5.20090325_5
- gcc-4.4.7 при сборке (с использованием 4.2.5) потянул за собой свежие binutils из портов ради as, а binutils захотел zlib посвежее, чем zlib-1.1.4 в базовой системе 4.11. Поэтому сделал порт zlib-1.2.5, который ставит свежий zlib со всеми модификациями от FreeBSD 9.0. После чего binutils прекрасно собрался, а после него и gcc-4.4.7:
export PACKAGESITE=http://www.grosbein.net/freebsd/packages-4.11/
pkg_add -r zlib-1.2.5
pkg_add -r binutils-2.21.1
pkg_add -r gmp-5.0.2
pkg_add -r mpfr-3.0.1
pkg_add -r libiconv-1.9.2_1
pkg_add -r gcc-4.4.7.20110628
- gcc-4.5.4 уже захотел /usr/include/stdint.h (C99), который появился во FreeBSD только с 5.0, но вполне удовольствовался симлинком stdint.h -> inttypes.h и после этого собрался (с USE_GCC=4.4), вместе со своим Java frontend, отчего размер пожатого пакета подскочил в шесть раз и превысил 100MB.
export PACKAGESITE=http://www.grosbein.net/freebsd/packages-4.11/
pkg_add -r zlib-1.2.5
pkg_add -r binutils-2.21.1
pkg_add -r gmp-5.0.2
pkg_add -r mpc-0.9
pkg_add -r mpfr-3.0.1
pkg_add -r libiconv-1.9.2_1
pkg_add -r gcc-4.5.4.20110721
- gcc-4.6.2 уже не удовлетворяется симлинком на inttypes.h в качестве /usr/include/stdint.h, а требует настоящий файл, в котором определяется гораздо больше типов. Поэтому на нём я решил пока остановиться.