Re: Проблема с компиляцией в Solaris 11 sparc

Maxim Dounin mdounin at mdounin.ru
Mon Feb 17 16:09:03 UTC 2014


Hello!

On Mon, Feb 17, 2014 at 09:50:47AM -0500, sebor wrote:

> Откуда ж столько камней)
> В общем поставил openssl отдельно от nginx'a:
> ./Config solaris64-sparcv9-gcc threads shared --prefix=/opt/openssl
> И собрал nginx с опциями;
> --with-ld-opt="-L/opt/openssl/lib" --with-cc-opt="-I/opt/openssl/include"
> Все скомпилилосьи работает. Но теперь, как я понимаю, перенсти бинарник
> nginx на другую машину я не смогу?
> При старте возникает ошибка:
> ld.so.1: nginx: fatal: relocation error: file /opt/nginx/sbin/nginx: symbol
> SSL_CTX_set_next_protos_advertised_cb: referenced symbol not found

Заголовки nginx взял откуда сказали, а библиотеку грузит 
динамически из системы, и там нет NPN.

Простейшее решение - таки собрать OpenSSL без динамических 
библиотек, чтобы nginx собрался со статическими.  I.e., no-shared 
при вызове OpenSSL'ного ./config'а.

(Можно ещё поиграть в прописывание -rpath при сборке / 
LD_LIBRARY_PATH перед запуском, но собрать статически - банально 
проще.)

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru