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

Re: Incorrect code in SPARC shared libraries



Ben Hutchings wrote:
> 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

done

> 2. Schedule binNMU of qt-x11-free and stlport5.1 on sparc

done

> 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)

shouldn't be needed as binNMUs should not be blocked

Cheers

Luk


Reply to: