Gcc &引用;内部编译器错误“;来自OpenSUSE 12.1上的yajl ruby构建

Gcc &引用;内部编译器错误“;来自OpenSUSE 12.1上的yajl ruby构建,gcc,opensuse,chef-infra,yajl,Gcc,Opensuse,Chef Infra,Yajl,作为chef客户端的一项要求,我正在尝试在OpenSUSE 12.1上安装yajl ruby。到目前为止,它正在返回以下消息: 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

作为chef客户端的一项要求,我正在尝试在OpenSUSE 12.1上安装yajl ruby。到目前为止,它正在返回以下消息:

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

这可能是编译器的问题,也可能是OpenSUSE上特定的问题。到目前为止,我还不确定该走哪条路。

gcc明确建议您向OpenSuse发送带有完整预处理源代码的bug报告(-E选项而不是“-c”,并向文件添加重定向)。这可能是因为opensuse gcc可能有一些修改。您应该查看bugs.opensuse.org上的说明,并向opensuse发送错误报告。如果bug也在基本gcc中,opensuse-bugzilla人员会将其转发到上游,或者会要求您这样做


为了避免“内部编译器错误”而不发送错误,您可以尝试更改生成选项。通常,“内部编译器错误”意味着在复杂的优化过程中出现了一些错误,所以您可以更改这个过程(优化阶段的顺序和启用的顺序)。最简单的方法是更改优化级别(例如,将
-O2
替换为
-O1
-O0
),或添加类似
-Osize

的内容。gcc明确建议您向OpenSuse发送带有完整预处理源的bug报告(-e选项而不是“-c”,并添加重定向到文件)。这可能是因为opensuse gcc可能有一些修改。您应该查看bugs.opensuse.org上的说明,并向opensuse发送错误报告。如果bug也在基本gcc中,opensuse-bugzilla人员会将其转发到上游,或者会要求您这样做


为了避免“内部编译器错误”而不发送错误,您可以尝试更改生成选项。通常,“内部编译器错误”意味着在复杂的优化过程中出现了一些错误,所以您可以更改这个过程(优化阶段的顺序和启用的顺序)。最简单的方法是更改优化级别(例如,将
-O2
替换为
-O1
-O0
),或者添加类似
-Osize

的内容。gcc明确建议您使用完整的预处理源代码向OpenSuse发送错误报告(-e选项而不是“-c”,并添加重定向到文件)。这可能是因为opensuse gcc可能有一些修改。您可以在下一个非SOPA日查看说明。如果bug也出现在基本gcc中,opensuse bugzilla人员会将其转发到上游,或者会要求您执行此操作。因此我认为chef尚未使用opensuse?:)不,对于某些罕见的配置,这看起来像是“内部编译器错误”,可以通过使用其他编译器,甚至通过将
-O2
更改为
-O0
来修复,就是这样。你能把它作为一个答案发布出来让我接受吗?gcc明确建议你向OpenSuse发送带有完整预处理源代码的bug报告(-E选项而不是“-c”,并添加一个重定向到文件)。这可能是因为opensuse gcc可能有一些修改。您可以在下一个非SOPA日查看说明。如果bug也出现在基本gcc中,opensuse bugzilla人员会将其转发到上游,或者会要求您执行此操作。因此我认为chef尚未使用opensuse?:)不,对于某些罕见的配置,这看起来像是“内部编译器错误”,可以通过使用其他编译器,甚至通过将
-O2
更改为
-O0
来修复,就是这样。你能把这个作为答案贴出来让我接受吗?
zypper install ruby ruby-devel ruby-ri ruby-rdoc ruby-shadow gcc gcc-c++ automake autoconf make curl dmidecode