Patchwork [PATCHv2] libffi: fix powerpc build breakage

login
register
mail settings
Submitter Gustavo Zacarias
Date Feb. 22, 2013, 6:56 p.m.
Message ID <1361559414-19521-1-git-send-email-gustavo@zacarias.com.ar>
Download mbox | patch
Permalink /patch/222610/
State Accepted
Commit 00a11f5640616931a920f27da4ea59671c8d3aaf
Headers show

Comments

Gustavo Zacarias - Feb. 22, 2013, 6:56 p.m.
Happens with the latest release when there are no FP registers.
Fixes:
http://autobuild.buildroot.net/results/bc43261d3ddc9d4c320522563249f4a0695a35a4/

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/libffi/libffi-002-fix-ppc-nofpr.patch | 29 +++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 package/libffi/libffi-002-fix-ppc-nofpr.patch
Peter Korsgaard - Feb. 22, 2013, 7:44 p.m.
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:

 Gustavo> Happens with the latest release when there are no FP registers.
 Gustavo> Fixes:
 Gustavo> http://autobuild.buildroot.net/results/bc43261d3ddc9d4c320522563249f4a0695a35a4/

Committed, thanks!

Patch

diff --git a/package/libffi/libffi-002-fix-ppc-nofpr.patch b/package/libffi/libffi-002-fix-ppc-nofpr.patch
new file mode 100644
index 0000000..729bae8
--- /dev/null
+++ b/package/libffi/libffi-002-fix-ppc-nofpr.patch
@@ -0,0 +1,29 @@ 
+From: Gilles Talis <gilles.talis@gmail.com>
+
+On PPC, if __NO_FPRS__ is defined, fparg_count and NUM_FPR_ARG_REGISTERS
+are not defined, thus must not be used.
+
+Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
+---
+ src/powerpc/ffi.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/powerpc/ffi.c b/src/powerpc/ffi.c
+index f3a96a1..9c69584 100644
+--- a/src/powerpc/ffi.c
++++ b/src/powerpc/ffi.c
+@@ -376,9 +376,10 @@ ffi_prep_args_SYSV (extended_cif *ecif, unsigned *const stack)
+      with the number found in ffi_prep_cif_machdep().  However, intarg_count
+      is incremeneted whenever we place an FP arg on the stack, so account for
+      that before our assert test.  */
++#ifndef __NO_FPRS__
+   if (fparg_count > NUM_FPR_ARG_REGISTERS)
+     intarg_count -= fparg_count - NUM_FPR_ARG_REGISTERS;
+-#ifndef __NO_FPRS__
++
+   FFI_ASSERT (fpr_base.u
+ 	      <= stacktop.u - ASM_NEEDS_REGISTERS - NUM_GPR_ARG_REGISTERS);
+ #endif
+-- 
+1.7.10.4
+