On Fri, Apr 13, 2018 at 10:44:53PM +0100, Stuart Henderson wrote: > On 2018/04/13 14:22, s_g...@telus.net wrote: > > cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I. > > -I../include -Iinclude -I../src -O2 -pipe -MT src/arm/sysv.lo -MD -MP -MF > > src/arm/.deps/sysv.Tpo -c ../src/arm/sysv.S -fPIC -DPIC -o > > src/arm/.libs/sysv.o > > ../src/arm/sysv.S:363:2: error: invalid instruction, did you mean: fldmiax? > > fldmiadgt ip, {d0-d7} > > ^ > > ../src/arm/sysv.S:412:2: error: invalid instruction, did you mean: fstmiax? > > fstmiadeq r2, {d0-d3} > > ^ > > /tmp/sysv-897c4d.s:263:2: error: invalid instruction > > fstmfdd sp!, {d0-d7} > > ^ > > /tmp/sysv-897c4d.s:313:2: error: invalid instruction, did you mean: fldmiax? > > fldmiad sp, {d0-d1} > > ^ > > /tmp/sysv-897c4d.s:316:2: error: invalid instruction, did you mean: fldmiax? > > fldmiad sp, {d0-d3} > > ^ > > Error while executing cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include > > -Iinclude -I../src -I. -I../include -Iinclude -I../src -O2 -pipe -MT > > src/arm/sysv.lo -MD -MP -MF src/arm/.deps/sysv.Tpo -c ../src/arm/sysv.S > > -fPIC -DPIC -o src/arm/.libs/sysv.o > > *** Error 2 in arm-unknown-openbsd6.3 (Makefile:1337 'src/arm/sysv.lo') > > *** Error 1 in arm-unknown-openbsd6.3 (Makefile:1621 'all-recursive') > > *** Error 1 in arm-unknown-openbsd6.3 (Makefile:730 'all') > > *** Error 1 in /usr/ports/pobj/libffi-3.2.1/libffi-3.2.1 (Makefile:616 > > 'all') > > Please apply this diff to ports/devel/libffi, clean and retry and > report back whether you're able to successfully build libffi. > (Don't wait until you have other pieces for php built before letting > us know about libffi, please). > > jasper, ok with you if it works? (there is finally a 3.3.0 rc now > but probably better to avoid going down that route for now just to > fix this :) Seemed to have worked; OK with me.
> Index: patches/patch-src_arm_sysv_S > =================================================================== > RCS file: /cvs/ports/devel/libffi/patches/patch-src_arm_sysv_S,v > retrieving revision 1.7 > diff -u -p -r1.7 patch-src_arm_sysv_S > --- patches/patch-src_arm_sysv_S 22 Jan 2018 06:28:00 -0000 1.7 > +++ patches/patch-src_arm_sysv_S 13 Apr 2018 21:41:29 -0000 > @@ -1,10 +1,24 @@ > -$OpenBSD: patch-src_arm_sysv_S,v 1.7 2018/01/22 06:28:00 bcallah Exp $ > +$OpenBSD$ > > +From FreeBSD, see also > https://github.com/libffi/libffi/issues/162 > +https://github.com/libffi/libffi/issues/191 > + > +This code is completely different in the 3.3 branch so can probably just > +be removed straight off when a release has been from there. > > Index: src/arm/sysv.S > --- src/arm/sysv.S.orig > +++ src/arm/sysv.S > +@@ -360,7 +360,7 @@ ARM_FUNC_START(ffi_call_VFP) > + cmp r0, #3 > + sub ip, fp, #64 > + flddle d0, [ip] > +- fldmiadgt ip, {d0-d7} > ++ vldmiagt ip, {d0-d7} > + > + LSYM(Lbase_args): > + @ move first 4 parameters in registers > @@ -396,7 +396,7 @@ LSYM(Lbase_args): > beq LSYM(Lepilogue_vfp) > > @@ -14,3 +28,34 @@ Index: src/arm/sysv.S > beq LSYM(Lepilogue_vfp) > > cmp r3, #FFI_TYPE_FLOAT > +@@ -409,7 +409,7 @@ LSYM(Lbase_args): > + > + cmp r3, #FFI_TYPE_STRUCT_VFP_FLOAT > + cmpne r3, #FFI_TYPE_STRUCT_VFP_DOUBLE > +- fstmiadeq r2, {d0-d3} > ++ vstmiaeq r2, {d0-d3} > + > + LSYM(Lepilogue_vfp): > + RETLDM "r0-r3,fp" > +@@ -420,7 +420,7 @@ LSYM(Lepilogue_vfp): > + > + > + ARM_FUNC_START(ffi_closure_VFP) > +- fstmfdd sp!, {d0-d7} > ++ vstmdb sp!, {d0-d7} > + @ r0-r3, then d0-d7 > + UNWIND .pad #80 > + add ip, sp, #80 > +@@ -470,10 +470,10 @@ ARM_FUNC_START(ffi_closure_VFP) > + ldmia sp, {r0, r1} > + b .Lclosure_epilogue_vfp > + .Lretfloat_struct_vfp: > +- fldmiad sp, {d0-d1} > ++ vldmia sp, {d0-d1} > + b .Lclosure_epilogue_vfp > + .Lretdouble_struct_vfp: > +- fldmiad sp, {d0-d3} > ++ vldmia sp, {d0-d3} > + b .Lclosure_epilogue_vfp > + > + .ffi_closure_VFP_end: > -- jasper