Я компилирую 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
переменная окружения.