armel binaries using C++ exceptions likely broken

Loïc Minier loic.minier at ubuntu.com
Thu Oct 1 23:50:03 BST 2009


        Hi

 A quick update on this.

On Thu, Oct 01, 2009, Loïc Minier wrote:
>  Matthias Klose and Ramana Radhakrishnan tracked down the openoffice.org
>  startup crash on armel (LP #417009) to a serious gcc issue.

 It might relate, but we actually didn't confirm it helps oo.o or not
 yet.  Next oo.o uploads will have two versions of
 /usr/lib/ure/lib/libgcc3_uno.so, one built with the fixed toolchain and
 one built with a patched binutils (the one known to work, but we dont
 want the binutils patch).  So that's still under investigation.

 This is tracked in LP #417009 and LP #436617.

>  After we fix gcc, we will have to rebuild glibc which was hit by this
>  issue (check-textrel.out testcase was not passing anymore).  We will
>  also update binutils to revert the workaround we had there (which was
>  to disable some new linker checks -- that helped the oo.o issue).  Then
>  we would like to look at rebuilding affected binaries.

 This is all tracked in LP #440172 now.

>  The affected binaries have not been identified yet; the test for
>  deciding whether these are affected is to look for an .eh_frame section
>  with __FRAME_END__.  All packages using -fexceptions are likely to need
>  a rebuild, as well as C++ packages.  This likely means a high number of
>  packages (crt.o is affected and is copied in all binaries).  The
>  current plan is to check all shared libs for DT_TEXTREL and all
>  binaries at the same time, and start by rebuilding leaf libraries
>  first.  This is still being clarified/discussed.

 So the proper test according to Ramana is:
    Test for TEXTREL tag and an eh_frame section that has a size greater
    than 4 bytes.

 To see how wide ranging this issue was, I scanned files in
 {/,/usr/}{lib,bin,sbin}/* with a couple of shell scripts on an
 installed armel desktop system and only found 103 matches in 32 binary
 packages made of 27 sources

 The result was this relatively short list of sources:
    apt cairomm cups cwidget djvulibre eglibc exempi gcc-4.4 glibmm2.4
    gmp gtkmm2.4 hunspell icu ilmbase libcompizconfig libept mesa
    openexr openoffice.org openssh pangomm poppler ppl protobuf rarian
    taglib xapian-core


 Lots of C++ stuff as expected and I also manually verified that
 /usr/lib/ure/lib/*, /usr/lib/libstdc++.so.6 and /lib/libc.so.6 matched
 the test.

 I think we can start with these uploads and I can run a scan of main
 (and if time permits universe) using Kees' scripts over the WE.

  Bye
-- 
Loïc Minier
-------------- next part --------------
A non-text attachment was scrubbed...
Name: scan-all.sh
Type: application/x-sh
Size: 131 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/ubuntu-devel/attachments/20091002/754bbc98/attachment.sh 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: scan.sh
Type: application/x-sh
Size: 383 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/ubuntu-devel/attachments/20091002/754bbc98/attachment-0001.sh 


More information about the ubuntu-devel mailing list