user [email protected] usertags 825342 binnmu thanks Hi,
On 26/05/16 11:48, YunQiang Su wrote: > 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 I have just discussed this with Aurelien and he has explained to me that this change happened a while ago and that we have been building packages with the new flags for a few months already. So this is just about finishing this 'transition' and making sure all the binaries in the archive are built against the new ABI. Can you give us a list of packages that need to be rebuilt in each of mips and mipsel? Then we can go and schedule the binNMUs. Cheers, Emilio

