Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx> 于2021年3月29日周一 下午5:30写道: > > On Mon, Mar 29, 2021 at 01:09:18PM +0800, YunQiang Su wrote: > > YunQiang Su <yunqiang.su@xxxxxxxxxxxxx> 于2021年3月22日周一 上午10:00写道: > > > > > > The MIPS FPU may have 3 mode: > > > FR=0: MIPS I style, all of the FPR are single. > > > FR=1: all 32 FPR can be double. > > > FRE: redirecting the rw of odd-FPR to the upper 32bit of even-double FPR. > > > > > > The binary may have 3 mode: > > > FP32: can only work with FR=0 and FRE mode > > > FPXX: can work with all of FR=0/FR=1/FRE mode. > > > FP64: can only work with FR=1 mode > > > > > > Some binary, for example the output of golang, may be mark as FPXX, > > > while in fact they are FP32. It is caused by the bug of design and linker: > > > Object produced by pure Go has no FP annotation while in fact they are FP32; > > > if we link them with the C module which marked as FPXX, > > > the result will be marked as FPXX. If these fake-FPXX binaries is executed > > > in FR=1 mode, some problem will happen. > > > > > > In Golang, now we add the FP32 annotation, so the future golang programs > > > won't have this problem. While for the existing binaries, we need a > > > kernel workaround. > > > > > > > We meet a new problem in Debian: with the O32_FP64 enabled kernel, > > mips64el may also be affected. > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=983583 > > hmm, raising this issue in this context before knowing more details, > feels very trigger happy to me and this doesn't help accepting anything, > jfyi... > > Could you please provide a link for downloading a golang binary, which > would need this patch to run ? > For rootfs, you can download http://58.246.137.130:20180/debian-from/rootfs/buster-mipsel.tar.xz or create by: sudo debootstrap --arch mipsel --include golang-1.11-go \ buster buster-mipsel http://deb.debian.org/debian For binary packages, you can download: https://packages.debian.org/buster/mipsel/golang-1.11-go/download just chroot the rootfs and run: /usr/lib/go-1.11/bin/go It will crash if kernel's O32_FP64 option is enabled. > Thomas. > > -- > Crap can work. Given enough thrust pigs will fly, but it's not necessarily a > good idea. [ RFC1925, 2.3 ] -- YunQiang Su