From 407ddb492e02bda52bde53de0632b120d0a2c507 Mon Sep 17 00:00:00 2001 From: Debian BOINC Maintainers Date: Tue, 30 Sep 2014 12:49:40 +0000 Subject: [PATCH] _fix_armhf Basically, the original assembly code for analyzeFuncs_neon.S and analyzeFuncs_vfp.S is writen for soft-float call convention. Since ARM has changed the way the function call with vfp, you will get a compilation error like the following if you don't modify the code. /usr/bin/ld: error: seti_boinc uses VFP register arguments, analyzeFuncs_neon.o does not /usr/bin/ld: failed to merge target specific data of file analyzeFuncs_neon.o /usr/bin/ld: error: seti_boinc uses VFP register arguments, analyzeFuncs_vfp.o does not /usr/bin/ld: failed to merge target specific data of file analyzeFuncs_vfp.o collect2: error: ld returned 1 exit status make[2]: *** [seti_boinc] Error 1 May be I should talk to Eric about making the changes in the main tree with #ifdef _armhf_ or somthing like that. meanwhile if you come across the compilation error above, you have the solution. Gbp-Pq: Name 214_fix_armhf.patch --- client/vector/analyzeFuncs_neon.S | 8 ++++++++ client/vector/analyzeFuncs_vfp.S | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/client/vector/analyzeFuncs_neon.S b/client/vector/analyzeFuncs_neon.S index b57f639..4ea422b 100644 --- a/client/vector/analyzeFuncs_neon.S +++ b/client/vector/analyzeFuncs_neon.S @@ -41,8 +41,16 @@ * Author: Mateusz Szpakowski */ +#if defined(__VFP_FP__) && !defined(__SOFTFP__) + .syntax unified +#endif .arch armv7-a .fpu neon +#if defined(__VFP_FP__) && !defined(__SOFTFP__) + .eabi_attribute 27, 3 + .eabi_attribute 28, 1 +#endif + .eabi_attribute 20, 1 .eabi_attribute 21, 1 .eabi_attribute 23, 3 diff --git a/client/vector/analyzeFuncs_vfp.S b/client/vector/analyzeFuncs_vfp.S index 739322b..fee885c 100644 --- a/client/vector/analyzeFuncs_vfp.S +++ b/client/vector/analyzeFuncs_vfp.S @@ -41,8 +41,16 @@ * Author: Mateusz Szpakowski */ +#if defined(__VFP_FP__) && !defined(__SOFTFP__) + .syntax unified +#endif .arch armv6 .fpu vfp +#if defined(__VFP_FP__) && !defined(__SOFTFP__) + .eabi_attribute 27, 3 + .eabi_attribute 28, 1 +#endif + .eabi_attribute 20, 1 .eabi_attribute 21, 1 .eabi_attribute 23, 3 -- 2.30.2