This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/45611] New: [4.6 regression] SIGBUS in generate_option_input_file on Solaris 2/SPARC
- From: "ro at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Sep 2010 10:23:29 -0000
- Subject: [Bug bootstrap/45611] New: [4.6 regression] SIGBUS in generate_option_input_file on Solaris 2/SPARC
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Between rev 163993 and 164013, mainline bootstrap started failing on Solaris 2
SPARC. The stage2 libgcc fails to configure because the stage2 xgcc gets a
SIGBUS for
% ../../xgcc -B../../gcc/ -c -g -O2 conftest.c
Bus Error
Running xgcc under gdb, I find that the crash happens here:
Program received signal SIGSEGV, Segmentation fault.
generate_option_input_file (argc=<value optimized out>, argv=<value optimized
out>, lang_mask=<value optimized out>, decoded_options=0xffbff394,
decoded_options_count=0xffbff390) at
/vol/gcc/src/hg/trunk/local/gcc/opts-common.c:750
1: x/i $pc
=> 0x28584 <decode_cmdline_options_to_array+168>: clrx [ %l0 + 0x18 ]
%lo+0x18 isn't 8-byte aligned at that point.
Comparing the assembler code between the working and failing versions, I find
that the following change has happened:
decode_cmdline_options_to_array+0xa4: c0 24 20 14 clr [%l0 +
0x14]
- decode_cmdline_options_to_array+0xa8: c0 24 20 18 clr [%l0 +
0x18]
- decode_cmdline_options_to_array+0xac: c0 24 20 1c clr [%l0 +
0x1c]
- decode_cmdline_options_to_array+0xb0: c4 24 20 24 st %g2, [%l0 +
0x24]
+ decode_cmdline_options_to_array+0xa8: c0 74 20 18 clrx [%l0 +
0x18]
+ decode_cmdline_options_to_array+0xac: c4 24 20 24 st %g2, [%l0 +
0x24]
i.e. two clr insns (which are ok with 4-byte alignment) have been replaced by
a single clrx.
I'll start a reghunt to find the culprit patch.
--
Summary: [4.6 regression] SIGBUS in generate_option_input_file on
Solaris 2/SPARC
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ro at gcc dot gnu dot org
GCC build triplet: sparc-sun-solaris2*
GCC host triplet: sparc-sun-solaris2*
GCC target triplet: sparc-sun-solaris2*
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45611