Existem dois caminhos de linkers distintos, o tempo de compilação e o tempo de execução .
Eu acho que o autoconf ( configure
) é raramente configurado para fazer a coisa correta com locais de biblioteca alternativos, usando --with-something=
normalmente não gera os sinalizadores de vinculador corretos ( -R
ou% código%). Se você tivesse apenas -Wl,-rpath
bibliotecas, funcionaria, mas para .a
bibliotecas o que você precisa especificar é o .so
:
export PHP_RPATHS=/usr/local/php5/lib
./configure [options as required]
(Em muitos casos, basta anexar RPATH
ao comando LDFLAGS
, mas o processo de compilação do PHP é um pouco diferente.)
Isso efetivamente adiciona caminhos extras de pesquisa do vinculador a cada binário, como se esses caminhos estivessem especificados em configure
ou em sua configuração de vinculador padrão ( LD_LIBRARY_PATH
).
Isso também cuida da adição de /etc/ld.so.conf
a -L/usr/local/php5/lib
para que as bibliotecas de uso em tempo de compilação e em tempo de execução sejam do mesmo diretório (existe o potencial para problemas com versões incompatíveis em locais diferentes, mas você não precisa se preocupe aqui).
Uma vez construída, você pode verificar com:
$ objdump -j dynamic -x ./sapi/cli/php | grep RPATH
RPATH /usr/local/php5/lib
$ objdump -j dynamic -x ./libs/libphp5.so | fgrep RPATH
RPATH /usr/local/php5/lib
A execução de LDFLAGS
também confirmará quais bibliotecas são carregadas de onde.
Para que ldd
deve ser realmente usado é apontar para --with-jpeg-dir
ou algum diretório de nível superior, os diretórios /usr/local/
, include/
e possivelmente outros são anexados, dependendo do que o compilador / vinculador precisa .
Você só precisa de lib/
se --with-jpeg-dir
não conseguir encontrar a instalação, o configure a encontrará automaticamente em configure
e em outros lugares "padrão" (possivelmente específicos da plataforma). No seu caso, acho que /usr/local
está encontrando o libjpeg em um local padrão e silenciosamente desconsiderando a diretiva.
(Além disso, o PHP 5.3.13 não é mais atual, sugiro 5.3.21, a versão atual no momento.)