Назад | Перейти на главную страницу

Компиляция PHP в Solaris

Я компилирую PHP с --enable-fpm на Solaris 10 (sun4v sparc SUNW, Sun-Fire-T1000) и останавливается на

#error Sparc v8 and predecessors are not and will not be supported (see bug report 53310)

После ошибки у меня ЦП v9? Почему возникает ошибка? Как следует сигнализировать о включении компиляции -mcpu=v9 ? Это поможет?

Редактировать:

Я пробовал скомпилировать и 5.3.8, и последнюю версию 5.4.7 - и ошибка появляется для обоих. PHP и PHP-CGI компилируются нормально.

Edit2:

Флаг конфигурации -

./configure --enable-fpm

Наконец-то заработал.

Требуется для компиляции со следующими настройками.

export CC=gcc
export CFLAGS="-m64"
export CXX=gcc
export CXXFLAGS="-m64"
export LDFLAGS="-m64 -L/lib/64 -L/usr/sfw/lib/64"
export LD_LIBRARY_PATH="/usr/local/lib/sparcv9/:/usr/local/lib:/usr/local/apache2/lib:/usr/sfw/lib/sparcv9:/usr/local/lib/sparcv9:/usr/lib/sparcv9"
export LDFLAGS="-lrt"

Обычно это сводится к инструкции сравнения и замены, которая недоступна в v8, но доступна в v8 + и более новых процессорах.

Трудно сказать, что случилось, потому что ты не показал свой ./configure вызов, соответствующие переменные среды, ни точное место, где произошел сбой (этап конфигурации? этап компиляции?). Иногда есть тест, который проверяет v8 +, но плохо написан и дает осечки.

Неясно, почему возникает ошибка, потому что в наши дни компиляторы по умолчанию используют v8 +, а не v8. Если вы ничего не установили, вы должны получить двоичный файл v8 + (для 32-разрядной сборки) и двоичный файл v9 (для 64-разрядной сборки).

Если вы хотите сигнализировать о сборке, которую хотите -mcpu=v9, экспортируйте это в CFLAGS переменная окружения.