Como compilar mod_wsgi, mod_fastcgi, etc no Mountain Lion (Mavericks), corrigindo `apxs: Erro: O comando falhou com rc = 65536`?

22

Atualizei para o OS X Mountain Lion. A atualização removeu todos os meus módulos python e apache, incluindo mod_wsgi.

Agora estou tentando recompilar o mod_wsgi (compilado sem problemas no Lion).

Eu uso o código fonte daqui: http://code.google.com/p/modwsgi/wiki/DownloadTheSoftware?tm=2

./configure cria Makefile sem problemas:

$ ./configure
checking for apxs2... no
checking for apxs... /usr/sbin/apxs
checking Apache version... 2.2.22
checking for python... /usr/bin/python
configure: creating ./config.status
config.status: creating Makefile

Mas faça erro de devoluções:

$ make
/usr/sbin/apxs -c -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE  -Wc,'-arch x86_64' mod_wsgi.c -Wl,-F/System/Library/Frameworks -framework Python -u _PyMac_Error /System/Library/Frameworks/  -arch x86_64 -ldl  -framework CoreFoundation  
/usr/share/apr-1/build-1/libtool --silent --mode=compile /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/local/include -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch x86_64 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE  -c -o mod_wsgi.lo mod_wsgi.c && touch mod_wsgi.slo
env: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc: No such file or directory
apxs:Error: Command failed with rc=65536
.
make: *** [mod_wsgi.la] Error 1
Daniil Ryzhkov
fonte

Respostas:

32

Resolvi esse problema ao escrever a pergunta:

Por alguma razão, a /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/pasta (contendo as Ferramentas de Linha de Comando do Xcode) está aqui:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain

Para consertar o problema:

$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain

Sugestão de Greg Bair para Mavericks:

$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain

Isso cria um link simbólico para a pasta correta.

Daniil Ryzhkov
fonte
4
Deve-se destacar que esse é um problema com a configuração de compilação dos apxs que a Apple forneceu até onde eu sei e nada a ver com mod_wsgi. Ele surgiu antes do lançamento do Mountain Lion e alguém forneceu feedback à Apple de alguma forma, mas a Apple não o corrigiu. É provável que esse problema afete qualquer tentativa de compilar módulos Apache usando apxs e não apenas mod_wsgi.
Graham Dumpleton
O problema que enviei parece estar relacionado ao utilitário. Por alguma razão, ele acha que o compilador (gcc) está localizado em outra pasta. É simplesmente corrigível através da criação de link simbólico (veja minha resposta para detalhes). O sudo make install depois disso também funciona.
Daniil Ryzhkov
Presumindo o mesmo local do arquivo que o MacOS X antigo, o problema estará nas definições em /usr/share/httpd/build/config_vars.mk que o apxs usa.
Graham Dumpleton
Como sugere @GrahamDumpleton, esta solução também corrige problemas com o mod_fastcgi v2.4.6.
Graham Miln
3
Observe que isso também funciona para o Mavericks, mas seria # $ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain
Greg Bair 26/10
2

Deparou-se com o mesmo problema, no entanto, a criação do link simbólico não resolveu o problema para mim. O que funcionou foi adicionar a bandeira --disable-frameworkao ./configurecomando. Veja a essência para mais detalhes.

talonsensei
fonte