On Sat, 2009-01-03 at 01:13 +0000, Ben Hutchings wrote: > Bug #506713 in gcc-4.3, which has just been fixed in unstable, results > in incorrect code generation in SPARC shared libraries. I identified > this as the cause of bug #490999 in kicker, but it presumably affects > other shared libraries and will require binNMUs to fix. However, doing > a binNMU for every package that builds a shared library would obviously > take a lot of buildd time and would likely make a mess of dependencies. > > I do not know exactly what is the general pattern for the wrongly > generated code, but I will try scanning for shared libraries containing > the pattern: > > save %sp, offset1, %sp > /* up to 10 instructions */ > ld [ %sp + offset2 ], reg > > where offset1 + offset2 < 0 and reg is any register. After I removed cases where the intermediate instructions included a restore, return, or store to the stack location, there were only two matches. One we already knew about; the other was: Package: libstlport5.1ldbl Source: stlport5.1 File: usr/lib/libstlport.so.5.1.5 Function: stlp_std::basic_ios<wchar_t, stlp_std::char_traits<wchar_t> >::_M_handle_exception(int) (It's conceivable that this code is actually valid due to oddities of the exception-handling ABI. However I didn't see any other instance in exception-handling code.) So I think we need to: 1. Upgrade gcc-4.3 on sparc buildds 2. Schedule binNMU of qt-x11-free and stlport5.1 on sparc 3. Unblock the binNMU'd packages (these packages currently have the same source versions in lenny and sid, so no additional changes would be involved) Ben. -- Ben Hutchings The world is coming to an end. Please log off.
Attachment:
signature.asc
Description: This is a digitally signed message part