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

Re: Incorrect code in SPARC shared libraries

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


Ben Hutchings
The world is coming to an end.  Please log off.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply to: