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

Bug#825342: marked as done (mips/mipsel: make sure all packages built with fpxx enabled)



Your message dated Wed, 23 Nov 2016 10:55:48 +0800
with message-id <CAKcpw6X=KfhFjq5SV_cpOQz=wLSGhFxdntuwZOa6_VVpm+dm1Q@mail.gmail.com>
and subject line Re: Bug#825342: mips/mipsel: make sure all packages built with fpxx enabled
has caused the Debian Bug report #825342,
regarding mips/mipsel: make sure all packages built with fpxx enabled
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
825342: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=825342
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org

Background:
1. About FPXX:[1]
    The o32 ABI has been modified and extended. The o32 64-bit
floating-point register support is now obsolete and has been removed.
It has been replaced by three ABI extensions FPXX, FP64A, and FP64.
The meaning of the -mfp64 command-line option has changed. It is now
used to enable the FP64A and FP64 ABI extensions.

The FPXX extension requires that code generated to access
double-precision values use even-numbered registers. Code that adheres
to this extension is link-compatible with all other o32
double-precision ABI variants and will execute correctly in all
hardware FPU modes. The command-line options -mabi=32 -mfpxx can be
used to enable this extension. MIPS II is the minimum processor
required.
The o32 FP64A extension requires that floating-point registers be
64-bit and odd-numbered single-precision registers are not allowed.
Code that adheres to the o32 FP64A variant is link-compatible with all
other o32 double-precision ABI variants. The command-line options
-mabi=32 -mfp64 -mno-odd-spreg can be used to enable this extension.
MIPS32R2 is the minimum processor required.
The o32 FP64 extension also requires that floating-point registers be
64-bit, but permits the use of single-precision registers. Code that
adheres to the o32 FP64 variant is link-compatible with o32 FPXX and
o32 FP64A variants only, i.e. it is not compatible with the original
o32 double-precision ABI. The command-line options -mabi=32 -mfp64
-modd-spreg can be used to enable this extension. MIPS32R2 is the
minimum processor required.

The new ABI variants can be enabled by default using the configure
time options --with-fp-32=[32|xx|64] and --with(out)-odd-sp-reg-32. It
is strongly recommended that all vendors begin to set o32 FPXX as the
default ABI. This will be required to run the generated code on MIPSR5
cores in conjunction with future MIPS SIMD (MSA) code and MIPSR6
cores.

2. How to detect whether FPXX is enabled:
    readelf -A all object files/shared libraries/static libraries and
    grep 'FP ABI: Hard float (32-bit CPU, Any FPU)'
    This only works for o32 objects aka (mips/mipsel)

3. The inherit of object type
    If all object in a binary/shared-library is compiled with fpxx and
it is linked
    with static libraries have non-fpxx objects, it will show type as non-fpxx

    if a fpxx-enabled shared-library linked with a non-fpxx enabled
shared library,
    it will still show as fpxx-enabled.

Howto:
    Since background 3, we will need make sure all of the static libraries have
    type as fpxx-enabled, and then rebuild all other packages
non-fpxx-enabled yet.


Scripts:
    detect.sh: usage: sh detect.sh mips > mips.txt
    buildable.sh: usage: sh buildable.sh mips > mips.buildable





[1]. https://gcc.gnu.org/gcc-5/changes.html

-- 
YunQiang Su

Attachment: buildable.sh
Description: Bourne shell script

Attachment: detect.sh
Description: Bourne shell script


--- End Message ---
--- Begin Message ---
On Wed, Nov 23, 2016 at 12:58 AM, Emilio Pozuelo Monfort
<pochu@debian.org> wrote:
> Hi,
>
> On 26/07/16 06:39, YunQiang Su wrote:
>> On Sat, Jul 23, 2016 at 5:06 PM, Emilio Pozuelo Monfort
>> <pochu@debian.org> wrote:
>>> On 09/06/16 21:13, Emilio Pozuelo Monfort wrote:
>>>> On 07/06/16 19:38, YunQiang Su wrote:
>>>>> After the 1st step of binNMU of mipsel (mips is still running),
>>>>
>>>> mips is finally catching up.
>>>>
>>>>> We still have these package having problem:
>>>>
>>>>> geoclue: give up
>>>>> libhtp: give up
>>>>
>>>> Not sure what you mean by "give up". Did you see my question in the previous mail?
>>>>
>>>>> libc++: clang not enable FPXX by default !!!!
>>>>
>>>> Did you file a bug for this?
>>>>
>>>>> The attachment is the list --- more than 3000 packages.
>>>>> Sorry for the previous wrong estimation.
>>>>
>>>> That list contains e.g. gtk+3.0, but that was rebuilt 8 days ago. Why is it on
>>>> the list? I thought we had been building with FPXX enabled for months. I'm
>>>> wondering if this 3k list is accurate or there are many false positives in there.
>>>
>>> Ping?
>>
>> Yes. It is a problem. It is due to my script detect some wrong files.
>>
>> While it seems that FPXX doesn't really stop our process to MIPS32r2,
>> as we have some more Octeon machines.
>>
>> So this is out release goal, while not need binNMU now.

After with more Octeon build machines, we don't need it any more.
So let me close it.

>
> Any news on this?
>
> Cheers,
> Emilio



-- 
YunQiang Su

--- End Message ---

Reply to: