Pregunta

Como requisito para Chef-Client, estoy tratando de instalar Yajl-Ruby en OpenSuse 12.1. Hasta ahora, está devolviendo el siguiente mensaje:

linux:~ # gem install yajl-ruby
Building native extensions.  This could take a while...
ERROR:  Error installing yajl-ruby:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby extconf.rb
creating Makefile

make
gcc -I. -I/usr/lib64/ruby/1.8/x86_64-linux -I/usr/lib64/ruby/1.8/x86_64-linux -I.   -fPIC -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -g -fno-strict-aliasing  -fPIC  -Wall -funroll-loops  -c yajl.c
gcc -I. -I/usr/lib64/ruby/1.8/x86_64-linux -I/usr/lib64/ruby/1.8/x86_64-linux -I.   -fPIC -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -g -fno-strict-aliasing  -fPIC  -Wall -funroll-loops  -c yajl_alloc.c
gcc -I. -I/usr/lib64/ruby/1.8/x86_64-linux -I/usr/lib64/ruby/1.8/x86_64-linux -I.   -fPIC -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -g -fno-strict-aliasing  -fPIC  -Wall -funroll-loops  -c yajl_buf.c
gcc -I. -I/usr/lib64/ruby/1.8/x86_64-linux -I/usr/lib64/ruby/1.8/x86_64-linux -I.   -fPIC -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -g -fno-strict-aliasing  -fPIC  -Wall -funroll-loops  -c yajl_encode.c
yajl_encode.c: In function ‘hexToDigit’:
yajl_encode.c:201:1: internal compiler error: Aborted
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.opensuse.org/> for instructions.
make: *** [yajl_encode.o] Error 1


Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/yajl-ruby-1.1.0 for inspection.
Results logged to /usr/lib64/ruby/gems/1.8/gems/yajl-ruby-1.1.0/ext/yajl/gem_make.out

Se instalan los paquetes apropiados:

zypper install ruby ruby-devel ruby-ri ruby-rdoc ruby-shadow gcc gcc-c++ automake autoconf make curl dmidecode

Puede ser un problema con el compilador o puede haber un problema específico en OpenSuse. Hasta ahora, no estoy seguro de qué camino tomar.

¿Fue útil?

Solución

GCC claramente recomienda que envíe un informe de error a OpenSUSE con una fuente preprocesada completa (-e opción en lugar de "-c" y agregue una redirección al archivo). Esto puede deberse a que OpenSuse GCC podría tener algunas modificaciones. Debe verificar las instrucciones en bugs.opensuse.org y enviar un informe de errores a OpenSUSE. Si el error también está en GCC básico, OpenSuse Bugzilla People lo reenviará hacia arriba o le pedirá que haga esto

Para evitar un "error de compilador interno" sin enviar errores, puede intentar cambiar las opciones de compilación. Por lo general, el "error interno del compilador" significa que algo sale mal en el proceso complejo de optimizaciones, por lo que puede cambiar este proceso (las etapas de orden de optimización y cuáles están habilitadas). Lo más fácil es cambiar el nivel de optimización (por ejemplo, reemplazar -O2 con -O1 o -O0) o agregar algo como -Osize.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top