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

Bug#825342: mips/mipsel: make sure all packages built with fpxx enabled



On Thu, May 26, 2016 at 6:28 PM, Emilio Pozuelo Monfort
<pochu@debian.org> wrote:
> user release.debian.org@packages.debian.org
> 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.
>

Yes.  See the attachment. Please binNMU these packages
for both mips and mipsel

> Cheers,
> Emilio



-- 
YunQiang Su
a52dec
adasockets
adns
alsaplayer
amora-server
anthy
apcalc
apmd
apq
asis
attr
auto-07p
autounit
avis-client-c
barcode
bglibs
binpac
box2d
bzip2
canlock
cconv
ccseapps
chicken
cln
clsync
cmocka
cppdb
cppformat
cqrlib
cvector
cvm
dahdi-tools
daq
dbusada
dico
discover
dlz-ldap-enum
dmraid
doodle
double-conversion
e2fsprogs
eb
ecl
editline
elk
erfa
evemu
eventlog
faad2
firedns
florence
freealut
freebsd-libs
freetuxtv
fstrcmp
fstrm
fxt
gaviotatb
gcc-4.9
gcc-5
gcc-6
gcc-snapshot
gccxml
gconf
gdbm
gdb-msp430
geoclue
geomview
gfbgraph
gle
glfw
gmime
gnat-4.9
gsl
gss
gtksourceview2
gtkspell
gupnp-igd
g-wrap
hfsplus
idzebra
iml
inotify-tools
intercal
jasper
jbigkit
judy
klavaro
ladr
libalog
libantlr3c
libao
libast
libaws
libbdplus
libbonoboui
libc++
libcorelinux
libdbi
libdbusmenu
libdmx
libdshconfig
libdumb
libexif
libexplain
libfap
libflorist
libfontenc
libforms
libfprint
libfs
libgksu
libgnatcoll
libgsecuredelete
libgtkada
libhtp
libhx
libibmad
libibumad
libice
libid3tag
libidn2-0
libipathverbs
libircclient
libisocodes
libitl-gobject
libjpeg6b
libjpeg8
libkqueue
liblaxjson
liblo
liblog4ada
liblogging
libmaa
libmatheval
libmcrypt
libmng
libmongo-client
libmp3splt
libmspack
libncursesada
libnes
libnfo
libntlm
libodb
libodb-boost
libodb-pgsql
libodb-qt
libodb-sqlite
liboggplay
libomxil-bellagio
libomxxvideo
libpaper
libpcapnav
libpciaccess
libpff
libppd
libquantum
librpcsecgss
libsm
libspectrum
libspnav
libsx
libtecla
libtelnet
libtemplates-parser
libtirpc
libtrio
libuninameslist
libunique
libuv
libvisca
libwebcam
libx11
libxaw
libxcursor
libxdamage
libxext
libxfixes
libxfont
libxinerama
libxkbcommon
libxmlezout
libxpm
libxrandr
libxres
libxshmfence
libxtst
libxv
libxvmc
libxxf86dga
libxxf86vm
libyaml
libyubikey
libzerg
linbox
link-grammar
lirc
lrzip
lua-bitop
lua-curl
lua-cyrussasl
lua-discount
lua-ldap
lua-rexlib
lua-rings
lua-sql
lua-zlib
lzo2
mdbtools
minidjvu
moonshot-ui
mozjs24
mpclib3
mpdcron
mpeg2dec
mpfi
muroard
neartree
netatalk
nifticlib
nsf
ntl
nut
o3dgc
oath-toolkit
ocrad
opari2
opencore-amr
openjade
opensm
osptoolkit
pangox-compat
pcscada
picosat
pidgin-librvp
polyorb
popt
portmidi
pth
raptor
recutils
samtools-legacy
sbc
shhmsg
sigscheme
siproxd
smpeg
smp-utils
snappea
snort
snowball
sombok
speex
srecord
st
startup-notification
sysfsutils
tcplay
tidy
tix
twolame
ucimf-chewing
ucl
uhttpmock
ustr
vanessa-adt
vanessa-logger
vanessa-socket
vcdimager
waili
webrtc-audio-processing
whitedb
wildmidi
wolfssl
xcb-util
xcb-util-image
xcb-util-keysyms
xgks
xmorph
xvidcore
xz-utils
yajl
ykclient
zlib
zthreads
zziplib

Reply to: