Another AIX Bootstrap failure
David Edelsohn
dje.gcc@gmail.com
Tue Jun 17 01:51:00 GMT 2014
It looks like _Settings is miscompiled, or more specifically a
function descriptor has a bogus value
0x100bcbac <_ZN14__gnu_parallel9_SettingsC1Ev>: addi r12,r2,-168
0x100bcbb0 <_ZN14__gnu_parallel9_SettingsC1Ev+4>: stw r2,20(r1)
0x100bcbb4 <_ZN14__gnu_parallel9_SettingsC1Ev+8>: lwz r0,0(r12)
0x100bcbb8 <_ZN14__gnu_parallel9_SettingsC1Ev+12>: lwz r2,4(r12)
0x100bcbbc <_ZN14__gnu_parallel9_SettingsC1Ev+16>: mtctr r0
=> 0x100bcbc0 <_ZN14__gnu_parallel9_SettingsC1Ev+20>: bctr
(gdb) x/x $r2-168
0x3002f90c <__dbargs+11440>: 0x100bcbac
(gdb) x/x $r12
0x3002f90c <__dbargs+11440>: 0x100bcbac
(gdb) p/x $ctr
$5 = 0x100bcbac
For some reason, the additional inlining is creating the wrong address
for the target.
- David
On Mon, Jun 16, 2014 at 6:06 PM, Jan Hubicka <hubicka@ucw.cz> wrote:
>> On Mon, Jun 16, 2014 at 12:35 AM, Jan Hubicka <hubicka@ucw.cz> wrote:
>>
>> > @@ -512,9 +516,9 @@ function_and_variable_visibility (bool w
>> > next = next->same_comdat_group)
>> > {
>> > next->set_comdat_group (NULL);
>> > - if (!next->alias)
>> > - next->set_section (NULL);
>> > symtab_make_decl_local (next->decl);
>> > + if (!node->alias)
>> > + node->reset_section ();
>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> > next->unique_name = ((next->resolution == LDPR_PREVAILING_DEF_IRONLY
>> > || next->unique_name
>> > || next->resolution == LDPR_PREVAILING_DEF_IRONLY_EXP)
>>
>> Honza, did you really intend to change the above from next->alias and
>> next->set_section () to node->alias and node->reset_section () ? That
>> doesn't look right.
>
> You are right, this is a pasto in anoying code duplication here. I fixed that
> in my local copy of the patch. I have a followup patch in the ipa-visibility
> TLC to merge the code duplication here, I am just holding it until we debug the
> issues.
>
> This bug will not affect AIX, becuase there are no comdat groups. It only
> wastes a bit of code size on ELF systems because of extra alignment coming
> from the named section.
>
> The hang happens in
> (gdb) bt
> #0 0x100be244 in __gnu_parallel::_Settings::_Settings() ()
> #1 0x10008d54 in _GLOBAL__FI_libstdc___so ()
> #2 0x10008e88 in _GLOBAL__AIXI_libstdc___so ()
> #3 0x100be954 in _GLOBAL__FI_genconstants ()
> #4 0xd017fa54 in mod_init1 () from /usr/lib/libc.a(shr.o)
> #5 0xd017f774 in __modinit () from /usr/lib/libc.a(shr.o)
> #6 0x100001a0 in __start ()
>
> I suppose it may be crtbegin/crtend miscompile. Any insight would be welcome,
> otherwise I will try to progress on debugging tonight or tomorrow.
>
> Honza
More information about the Gcc-patches
mailing list