lzop: Fix build using x32 ABI
PATCH 1/1 lzop: Fix build using x32 ABI
When tries to build lzop using x32 ABI fails trying to get FLAGS register that is 64-bit and destination variable is 32-bit size_t.
[YOCTO #7424]
--- .../lzop/lzop/x32_abi_miniacc_h.patch | 36 ++++++++++++++++++++++ meta/recipes-support/lzop/lzop_1.03.bb | 4 ++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-support/lzop/lzop/x32_abi_miniacc_h.patch
meta/recipes-support/lzop/lzop/x32_abi_miniacc_h.patch new file +36 -0
@@ -0,0 +1,36 @@ +Fix get of FLAGS register in x32 ABI, + +x32 ABI requires to have 64-bit variable to store FLAGS register +instead of size_t that is 32-bit variable, this fix operand +type mismatch when try to pop previous pushf value. + +Upstream-status: Submitted + +Signed-off-by: Aníbal Limón <[email protected]> + +Index: lzop-1.03/src/miniacc.h +=================================================================== +--- lzop-1.03.orig/src/miniacc.h ++++ lzop-1.03/src/miniacc.h +@@ -754,6 +754,9 @@ + #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64) + # define ACC_ARCH_AMD64 1 + # define ACC_INFO_ARCH "amd64" ++# if defined(__ILP32__) ++# define ACC_ARCH_AMD64_X32 1 ++# endif + #elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB)) + # define ACC_ARCH_ARM 1 + # define ACC_ARCH_ARM_THUMB 1 +@@ -6787,7 +6790,11 @@ ACCLIB_PUBLIC_NOINLINE(void, acc_debug_n + ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_query) (void) + { + #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC) ++# if defined(ACC_ARCH_AMD64_X32) ++ unsigned long long r; ++# else + size_t r; ++# endif + __asm__ __volatile__("pushf\n pop %0\n" : "=a" (r) : : __ACC_ASM_CLOBBER); + return (int)(r >> 18) & 1; + #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
meta/recipes-support/lzop/lzop_1.03.bb +3 -1
@@ -6,13 +6,15 @@ compression ratio. The lzop compression utility was designed with the goals \n\ of reliability, speed, portability and with reasonable drop-in compatibility \n\ to gzip." DEPENDS += "lzo" +PR = "r1" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=dfeaf3dc4beef4f5a7bdbc35b197f39e \ file://src/lzop.c;beginline=5;endline=21;md5=6797bd3ed0a1a49327b7ebf9366ebd86" SRC_URI = "http://www.lzop.org/download/${BP}.tar.gz \ - file://acinclude.m4" + file://acinclude.m4 \ + file://x32_abi_miniacc_h.patch " SRC_URI[md5sum] = "006c5e27fb78cdd14a628fdfa5aa1905" SRC_URI[sha256sum] = "c1425b8c77d49f5a679d5a126c90ea6ad99585a55e335a613cae59e909dbb2c9"
Signature · 1 line
1.8.4.5
Quoted 2 lines · Aníbal Limón
+PR = "r1"
No need to add a PR.
Ross
Quoted 6 lines · Ross
Quoted 2 lines · Aníbal Limón
+PR = "r1"
No need to add a PR.
Hi Ross,
I followed the documentation [1], if no increment PR is needed i think we need to clarity in the docs.
Sending v2...
[1] http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#using-a-quilt-workflow
alimon
Quoted 3 lines
Ross
Quoted 3 lines · Aníbal Limón
I followed the documentation [1], if no increment PR is needed i think we need to clarity in the docs.
Yes, the docs need updating. Thanks for pointing out where you were told to do this!
(AR taken to tell Scott)
Ross
Quoted 7 lines · Ross
I followed the documentation [1], if no increment PR is needed i think we
Quoted 2 lines
need to clarity in the docs.
Yes, the docs need updating. Thanks for pointing out where you were told to do this!
It's already been fixed in the development documentation:
http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html#using-a-quilt-workflow
Ross