[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#554574: libstdc++6: apt segfaults on hppa



On Mon, Nov 23, 2009 at 5:22 AM, Aurelien Jarno <aurelien@aurel32.net> wrote:
> Carlos O'Donell a écrit :
>> On Sun, Nov 22, 2009 at 5:05 PM, John David Anglin
>> <dave@hiauly1.hia.nrc.ca> wrote:
>>>> While I set out the glibc types exactly as before (binary compatible),
>>>> the alignment restrictions were changed subtly.
>>> Excellent debugging!
>>
>> I have adjusted the glibc lock structure alignments to try and match
>> more accurately the original alignment restrictions.
>>
>> I have built a glibc with the new headers, and installed that into my
>> test system.
>>
>> I'm now rebuilding libstdc++6 against the new headers to determine if
>> this fixes the problem.
>>
>> I will have results by tomorrow.
>>
>
> Thanks a lot for the investigation, I really hope this will work.

It worked. I now see 0xb0 as the object offset, which gives a
compatible object layout for the libstdc++ iostream classes.

(gdb) x/16x $ret0 - 0xc
0x409a6f38 <_ZTCSt14basic_ifstreamIcSt11char_traitsIcEE0_Si>:
0x000000b0      0x00000000      0x409a72f0      0x401b2b96
0x409a6f48 <_ZTCSt14basic_ifstreamIcSt11char_traitsIcEE0_Si+16>:
 0x401b2b9e      0xffffff50      0xffffff50      0x409a72f0
0x409a6f58 <_ZTCSt14basic_ifstreamIcSt11char_traitsIcEE0_Si+32>:
 0x401b2ba6      0x401b2bae      0x00000000      0x409a6ff4
0x409a6f68 <_ZTVSt13basic_filebufIcSt11char_traitsIcEE+8>:
0x401b2e6e      0x401b2e76      0x401b2e7e      0x401b2e86

I can successfully run apt-get with the new libstdc++6 that I just built.

The testsuite result is cleaner:
~~~
FAIL: 29_atomics/atomic_flag/clear/1.c execution test
FAIL: 29_atomics/atomic_flag/test_and_set/explicit.c execution test

                === libstdc++ Summary ===

# of expected passes            5880
# of unexpected failures        2
# of expected failures          80
# of unsupported tests          331
~~~

I am still building with
~~~
# Disable cloog/ppl and pch on hppa.
ifneq (,$(findstring $(DEB_TARGET_ARCH), hppa))
  CONFARGS += --without-ppl --without-cloog --disable-libstdcxx-pch
endif
~~~
However, I don't think this made any difference.

Next steps:
(1) Wait for testsuite results to finish completely. Verify nothing
has regressed.
(2) Remove changes to gcc package debian/rules2 and re-run validation.
(3) In parallel provide new patch to debian-glibc to fix alignment
issues with pthread types.
(4) Ask debian-glibc team to run a build and look for testsuite regressions.

If the test results for (2) and (4) are clean, then I will give the
green light for a new glibc to be uploaded. This will fix the
libstdc++6 issues.

Cheers,
Carlos.


Reply to: