LINUX.ORG.RU

[gcc] Virtual memory exhausted при сборке PHP на FreeBSD

 


0

0

Пытаюсь собрать PHP на хостинге.

Сначала сборка идёт, но потом вываливается с ошибкой:

virtual memory exhausted: Cannot allocate memory make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) 131072
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) 32768
max memory size         (kbytes, -m) 131072
open files                      (-n) 64
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 32768
cpu time               (seconds, -t) 300
max user processes              (-u) 48
virtual memory          (kbytes, -v) 131072

Судя по top, процесс cc1 разрастается до примерно 131072 и помирает.

Пробовал уменьшить через ulimit -v но ничего не меняется. Нагуглил что потребление памяти у гцц можно снизить с помощью

--param ggc-min-expand=0 --param ggc-min-heapsize=0
, но они не помогли.

$ gcc --version
gcc (GCC) 3.4.6 [FreeBSD] 20060305
$ uname -sr 
FreeBSD 6.2-STABLE

Как ещё можно уменьшить прожорливость gcc? Напомню что рутового доступа к машине не имею.

★★★★★
Ответ на: комментарий от gods-little-toy

> Пальцем в небо - а если оптимизации вообще запретить (-O0) - чего будет?

не помогает(

Nao ★★★★★
() автор топика

Собери на своей машине, залей на хостинг.

Lumi ★★★★★
()

убрать -pipe
из CFLAGS CXXFLAGS

собирать с make -j1

PHP 5.2.x на линуксе с 128 Mb памяти собиралось без проблем

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

если не получится , можно
либо кросскомпилировать ,
либо снять образ vps и запустить его в виртуальной машине у себя, уже с нормальным обьемом памяти,
либо настраивать distcc (на своей стороне - демона) и компилировать через него,
вариант freebsd client <-> linux server тоже работать будет, важно только чтобы версии gcc были похожи

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

> PHP 5.2.x на линуксе с 128 Mb памяти собиралось без проблем
У меня тоже 5.2.x на хостинге всегда без проблем собиралась, но вот что-то с 5.3 не заладилось.

> либо снять образ vps и запустить его в виртуальной машине у себя, уже с нормальным обьемом памяти,

Там не vps, там банальный shared хостинг ;)

> либо настраивать distcc (на своей стороне - демона) и компилировать через него,

Вот! Спасибо огромное. Собрал этот злосчастный файлик при помощи distcc, а остальное дособралось там без проблем.

Nao ★★★★★
() автор топика
Ответ на: комментарий от AEP

> Попробуй добавить -finline-limit=30 с CFLAGS

Всё равно не хватает памяти. Но проблему я уже решил с помощью distcc.

Nao ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.