zchunk: upgrade to 1.2.4

Add a patch submitted upstream to fix the argp detection with clang.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Ross Burton 2023-02-23 12:32:39 +00:00 committed by Khem Raj
parent d051d73bbb
commit 224f393f51
3 changed files with 60 additions and 22 deletions

View File

@ -0,0 +1,35 @@
From e69d907c3fe8765ce50ce1258648ebc8283ef8a7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 22 Feb 2023 14:55:07 -0800
Subject: [PATCH] meson: Use global function in argp check
clang is optimizing away parse_opt() since its marked static and not
used in main(), make life a bit harder for clang :)
removing static now emits the global symbols to be resolved during link
and when libargp is missing the error is thrown rightly
riscv64-yoe-linux-musl-ld: /tmp/a-5ba039.o: in function `.Lpcrel_hi0':
a.c:(.text+0x44): undefined reference to `argp_state_help'
clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Submitted [https://github.com/zchunk/zchunk/pull/92/]
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 3b92d58..ab54abd 100644
--- a/meson.build
+++ b/meson.build
@@ -57,7 +57,7 @@ if host_machine.system() == 'windows'
endif
# argp-standalone dependency (if required)
-if build_machine.system() == 'windows' or build_machine.system() == 'darwin' or build_machine.system() == 'freebsd' or not cc.links('#include <argp.h>\nstatic error_t parse_opt (int key, char *arg, struct argp_state *state) { argp_usage(state); return 0; }; void main() {}')
+if build_machine.system() == 'windows' or build_machine.system() == 'darwin' or build_machine.system() == 'freebsd' or not cc.links('#include <argp.h>\nerror_t parse_opt (int key, char *arg, struct argp_state *state) { argp_usage(state); return 0; }; void main() {}')
argplib = cc.find_library('argp', has_headers : ['argp.h'], required: false)
if not argplib.found()
argplib = dependency('argp-standalone')

View File

@ -1,22 +0,0 @@
DESCRIPTION = "A file format designed for highly efficient deltas while maintaining good compression"
AUTHOR = "Jonathan Dieter"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=daf6e68539f564601a5a5869c31e5242"
SRC_URI = "git://github.com/zchunk/zchunk.git;protocol=https;branch=main"
SRCREV = "dd6a30a1e4e8b738b0cafc682f3c00e7706134e5"
S = "${WORKDIR}/git"
DEPENDS = "\
curl \
zstd \
"
DEPENDS:append:libc-musl = " argp-standalone"
LDFLAGS:append:libc-musl = " -largp"
inherit meson pkgconfig
BBCLASSEXTEND = "native nativesdk"

View File

@ -0,0 +1,25 @@
DESCRIPTION = "A file format designed for highly efficient deltas while maintaining good compression"
AUTHOR = "Jonathan Dieter"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=daf6e68539f564601a5a5869c31e5242"
SRC_URI = "git://github.com/zchunk/zchunk.git;protocol=https;branch=main \
file://clang.patch"
SRCREV = "0bed8496262a71beadccd4e562bdac093ef6e06f"
S = "${WORKDIR}/git"
DEPENDS = "zstd"
DEPENDS:append:libc-musl = " argp-standalone"
inherit meson pkgconfig lib_package
PACKAGECONFIG ??= "openssl zckdl"
# zckdl gets packaged into zchunk-bin
PACKAGECONFIG[zckdl] = "-Dwith-curl=enabled,-Dwith-curl=disabled,curl"
# Use OpenSSL primitives for SHA
PACKAGECONFIG[openssl] = "-Dwith-openssl=enabled,-Dwith-openssl=disabled,openssl"
BBCLASSEXTEND = "native nativesdk"