dadv: (Default)

# 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, а требует настоящий файл, в котором определяется гораздо больше типов. Поэтому на нём я решил пока остановиться.

dadv: (Default)

Если кто ещё не в курсе: начиная с 15 апреля 2010 версии clamav 0.94.x и старее отключаются с очередным обновлением баз:

All ClamAV releases older than 0.95 are affected by a bug in freshclam which prevents incremental updates from working with signatures longer than 980 bytes.
You can find more details on this issue on our bugzilla (see bug #1395)

This bug affects our ability to distribute complex signatures (e.g. logical signatures) with incremental updates.

So far we haven’t released any signatures which exceed this limit.
Before we do we want as many users as possible to upgrade to the latest version of ClamAV.

Starting from 15 April 2010 our CVD will contain a special signature which disables all clamd installations older than 0.95 – that is to say older than 1 year.

Обновить версию до 0.96 можно и на FreeBSD 4.11. После обновления дерева портов:

echo '_GCCVERSION=029504' >> /etc/make.conf
cd /usr/ports/security/clamav
fetch http://www.grosbein.net/freebsd/patches/clamav-0.96.diff.gz
gunzip clamav-0.96.diff.gz
patch -p1 < clamav-0.96.diff
make clean config # отключить LLVM
make all deinstall install


При отключенном LLVM (новая фича в clamav-0.96) вполне возможно собрать эту версию системным gcc-2.95.4 и clamav работает. Для того, чтобы использовать и LLVM, нужно сначала поставить пакетом gcc-3.4 (14Mb) и собирать порт им:

pkg_add -r ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/4.11-RELEASE/packages/lang/gcc-3.4.4_20041224.tgz
или
pkg_add -r http://www.grosbein.net/freebsd/gcc-3.4.6_20051206.tgz
make USE_GCC=3.4 clean config all deinstall install


Всё замечательно работает. Установка дополнительной версии gcc не влияет на системный компилятор и не сказывается на работе системы. Новым gcc софт собирается, только если это явно затребовать (например, через USE_GCC=3.4, см. выше).

Profile

dadv: (Default)
Choose your future

June 2017

M T W T F S S
   1234
56 7891011
12131415161718
19202122232425
2627282930  

Syndicate

RSS Atom

Tags

Style Credit

Powered by Dreamwidth Studios