[Buildroot] [PATCH 1/1] package/libopenh264: fix mips32 build

Arnout Vandecappelle arnout at mind.be
Tue May 25 19:29:42 UTC 2021



On 24/05/2021 23:05, Fabrice Fontaine wrote:
> Fix build failure with mips32 which is raised since the addition of
> bootlin toolchains
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/cba3e9d0fd061cc3a92cb732bcdc2c7b66dbf6cb
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>

 Applied to master, thanks.

 Regards,
 Arnout

> ---
>  ...n-inc-asmdefs_mmi.h-fix-mips32-build.patch | 89 +++++++++++++++++++
>  1 file changed, 89 insertions(+)
>  create mode 100644 package/libopenh264/0003-codec-common-inc-asmdefs_mmi.h-fix-mips32-build.patch
> 
> diff --git a/package/libopenh264/0003-codec-common-inc-asmdefs_mmi.h-fix-mips32-build.patch b/package/libopenh264/0003-codec-common-inc-asmdefs_mmi.h-fix-mips32-build.patch
> new file mode 100644
> index 0000000000..e11b1d13ef
> --- /dev/null
> +++ b/package/libopenh264/0003-codec-common-inc-asmdefs_mmi.h-fix-mips32-build.patch
> @@ -0,0 +1,89 @@
> +From c505f81e336088b6729a5407a03459f488353288 Mon Sep 17 00:00:00 2001
> +From: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +Date: Mon, 24 May 2021 22:54:01 +0200
> +Subject: [PATCH] codec/common/inc/asmdefs_mmi.h: fix mips32 build
> +
> +Fix the following build failure on mips32 which is raised since version
> +2.0.0 and
> +https://github.com/cisco/openh264/commit/b13e5bceb18ebb93d0313b46aab4af6f480ca933:
> +
> +codec/common/mips/copy_mb_mmi.c: In function 'WelsCopy16x16_mmi':
> +./codec/common/inc/asmdefs_mmi.h:293:21: error: '_ABI64' undeclared (first use in this function)
> +  293 |    if (_MIPS_SIM == _ABI64)                                    \
> +      |                     ^~~~~~
> +
> +Fixes:
> + - http://autobuild.buildroot.org/results/cba3e9d0fd061cc3a92cb732bcdc2c7b66dbf6cb
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +[Upstream status: https://github.com/cisco/openh264/pull/3384]
> +---
> + codec/common/inc/asmdefs_mmi.h | 17 +++++++++++------
> + 1 file changed, 11 insertions(+), 6 deletions(-)
> +
> +diff --git a/codec/common/inc/asmdefs_mmi.h b/codec/common/inc/asmdefs_mmi.h
> +index 69a7ae39..5d1aed93 100644
> +--- a/codec/common/inc/asmdefs_mmi.h
> ++++ b/codec/common/inc/asmdefs_mmi.h
> +@@ -288,9 +288,9 @@
> + /**
> +  * backup register
> +  */
> ++#if defined(_ABI64) && _MIPS_SIM == _ABI64
> + #define BACKUP_REG \
> +    double __attribute__((aligned(16))) __back_temp[8];         \
> +-   if (_MIPS_SIM == _ABI64)                                    \
> +    __asm__ volatile (                                          \
> +      "gssqc1       $f25,      $f24,       0x00(%[temp])  \n\t" \
> +      "gssqc1       $f27,      $f26,       0x10(%[temp])  \n\t" \
> +@@ -299,8 +299,10 @@
> +      :                                                         \
> +      : [temp]"r"(__back_temp)                                  \
> +      : "memory"                                                \
> +-   );                                                          \
> +-  else                                                         \
> ++   );
> ++#else
> ++#define BACKUP_REG \
> ++   double __attribute__((aligned(16))) __back_temp[8];         \
> +    __asm__ volatile (                                          \
> +      "gssqc1       $f22,      $f20,       0x00(%[temp])  \n\t" \
> +      "gssqc1       $f26,      $f24,       0x10(%[temp])  \n\t" \
> +@@ -309,12 +311,13 @@
> +      : [temp]"r"(__back_temp)                                  \
> +      : "memory"                                                \
> +    );
> ++#endif
> + 
> + /**
> +  * recover register
> +  */
> ++#if defined(_ABI64) && _MIPS_SIM == _ABI64
> + #define RECOVER_REG \
> +-   if (_MIPS_SIM == _ABI64)                                    \
> +    __asm__ volatile (                                          \
> +      "gslqc1       $f25,      $f24,       0x00(%[temp])  \n\t" \
> +      "gslqc1       $f27,      $f26,       0x10(%[temp])  \n\t" \
> +@@ -323,8 +326,9 @@
> +      :                                                         \
> +      : [temp]"r"(__back_temp)                                  \
> +      : "memory"                                                \
> +-   );                                                          \
> +-   else                                                        \
> ++   );
> ++#else
> ++#define RECOVER_REG \
> +    __asm__ volatile (                                          \
> +      "gslqc1       $f22,      $f20,       0x00(%[temp])  \n\t" \
> +      "gslqc1       $f26,      $f24,       0x10(%[temp])  \n\t" \
> +@@ -333,6 +337,7 @@
> +      : [temp]"r"(__back_temp)                                  \
> +      : "memory"                                                \
> +    );
> ++#endif
> + 
> + # define OK             1
> + # define NOTOK          0
> +-- 
> +2.30.2
> +
> 



More information about the buildroot mailing list