Usando gcc em vez de SUNWspro cc em ruby mkmf para yajl no Solaris 10

1

Como obtenho o mkmf para usar o gcc em vez de / opt / SUNWspro / bin / cc no Solaris 10?

Estou tentando instalar o chef usando o gem install chef. Está falhando com:

Building native extensions.  This could take a while...
ERROR:  Error installing chef:
    ERROR: Failed to build gem native extension.

    /opt/csw/bin/ruby18 extconf.rb
creating Makefile

make
/opt/SUNWspro/bin/cc -I. -I/opt/csw/lib/ruby/1.8/i386-solaris2.9 -I/opt/csw/lib/ruby/1.8 /i386-solaris2.9 -I. -I/opt/csw/include -D_FILE_OFFSET_BITS=64  -KPIC -xO3 -m32 -xarch=386  -KPIC  -Wall -funroll-loops  -c yajl.c
make: /opt/SUNWspro/bin/cc: Command not found
make: *** [yajl.o] Error 127


Gem files will remain installed in /opt/csw/lib/ruby/gems/1.8/gems/yajl-ruby-0.8.2 for inspection.
Results logged to /opt/csw/lib/ruby/gems/1.8/gems/yajl-ruby-0.8.2/ext/yajl/gem_make.out

Examinando /opt/csw/lib/ruby/gems/1.8/gems/yajl-ruby-0.8.2/ext/yajl/Makefile dá:

CC = /opt/SUNWspro/bin/cc

Crucialmente, configurar a variável de ambiente CC para o gcc não faz absolutamente nada.

Cross postado de StackOverflow

    
por Sarge 06.07.2011 / 17:37

3 respostas

1

Se o seu pacote CSWruby é atual (parece ser desde que o binário é ruby18), você pode usar o mecanismo de alternativas para mudar para um rbconfig.rb que é configurado para usar / opt / csw / gcc4 / bin / gcc do compilador do sol. Se não é muito atual, havia um utilitário incluído por um tempo chamado cswrbconfig que permitia alternar entre compiladores. Eu esqueci qual versão do pacote eu adicionei também, mas o recurso está disponível há mais de um ano se a memória serve.

Se você tiver mais perguntas sobre CSWruby (ou outros pacotes do OpenCSW), encontre os mantenedores em #opencsw no freenode irc.

(Sou o mantenedor do Ruby do OpenCSW.)

    
por 08.07.2011 / 21:47
1

Você exportou o CC depois de defini-lo?

CC=/usr/sfw/bin/gcc
export CC

Em seguida, execute o seu material mkmf.

Editar - hacky - crie um link

mkdir -p /opt/SUNWspro/bin/
ln -s /usr/sfw/bin/gcc /opt/SUNWspro/bin/cc

Note que eu também 'consertei' o caminho no CC = acima, já que o gcc vive em / usr / sfw agora.

    
por 06.07.2011 / 21:34
0

Edite o Makefile e modifique a variável CC para o seu binário do gcc e tente novamente.

Existe um passo ./configure? Se assim for, você pode tentar configurar a variável CC env antes de executá-lo.

    
por 06.07.2011 / 19:14