diff mbox series

[v3] zchunk: upgrade to 1.2.4

Message ID 20230223123239.1727935-1-ross.burton@arm.com
State Under Review
Headers show
Series [v3] zchunk: upgrade to 1.2.4 | expand

Commit Message

Ross Burton Feb. 23, 2023, 12:32 p.m. UTC
Add a patch submitted upstream to fix the argp detection with clang.

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 .../recipes-support/zchunk/files/clang.patch  | 35 +++++++++++++++++++
 .../recipes-support/zchunk/zchunk_1.2.0.bb    | 22 ------------
 .../recipes-support/zchunk/zchunk_1.2.4.bb    | 25 +++++++++++++
 3 files changed, 60 insertions(+), 22 deletions(-)
 create mode 100644 meta-oe/recipes-support/zchunk/files/clang.patch
 delete mode 100644 meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
 create mode 100644 meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb

Comments

Stefano Babic Feb. 26, 2023, 3:39 p.m. UTC | #1
Hi Ross,

Jonathan released a new version of zchunk 1.3.0, that fixes some huge 
memory consumption on embedded system. What about to skip 1.2.4 and just 
upgrade to 1.3.0 ? Or do you prefer I send a patch after you merged 1.2.4 ?

Best regards,
Stefano

On 23.02.23 13:32, Ross Burton wrote:
> Add a patch submitted upstream to fix the argp detection with clang.
> 
> Signed-off-by: Ross Burton <ross.burton@arm.com>
> ---
>   .../recipes-support/zchunk/files/clang.patch  | 35 +++++++++++++++++++
>   .../recipes-support/zchunk/zchunk_1.2.0.bb    | 22 ------------
>   .../recipes-support/zchunk/zchunk_1.2.4.bb    | 25 +++++++++++++
>   3 files changed, 60 insertions(+), 22 deletions(-)
>   create mode 100644 meta-oe/recipes-support/zchunk/files/clang.patch
>   delete mode 100644 meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
>   create mode 100644 meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb
> 
> diff --git a/meta-oe/recipes-support/zchunk/files/clang.patch b/meta-oe/recipes-support/zchunk/files/clang.patch
> new file mode 100644
> index 0000000000..86faf4aac7
> --- /dev/null
> +++ b/meta-oe/recipes-support/zchunk/files/clang.patch
> @@ -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')
> diff --git a/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb b/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
> deleted file mode 100644
> index 0baea5032a..0000000000
> --- a/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
> +++ /dev/null
> @@ -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"
> diff --git a/meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb b/meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb
> new file mode 100644
> index 0000000000..b4fd027603
> --- /dev/null
> +++ b/meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb
> @@ -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"
> 
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#101223): https://lists.openembedded.org/g/openembedded-devel/message/101223
> Mute This Topic: https://lists.openembedded.org/mt/97181425/3618551
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [sbabic@denx.de]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Khem Raj Feb. 26, 2023, 10:25 p.m. UTC | #2
On Sun, Feb 26, 2023 at 7:39 AM Stefano Babic <sbabic@denx.de> wrote:

> Hi Ross,
>
> Jonathan released a new version of zchunk 1.3.0, that fixes some huge
> memory consumption on embedded system. What about to skip 1.2.4 and just
> upgrade to 1.3.0 ? Or do you prefer I send a patch after you merged 1.2.4 ?


Send a patch on top of master-next

>
>
> Best regards,
> Stefano
>
> On 23.02.23 13:32, Ross Burton wrote:
> > Add a patch submitted upstream to fix the argp detection with clang.
> >
> > Signed-off-by: Ross Burton <ross.burton@arm.com>
> > ---
> >   .../recipes-support/zchunk/files/clang.patch  | 35 +++++++++++++++++++
> >   .../recipes-support/zchunk/zchunk_1.2.0.bb    | 22 ------------
> >   .../recipes-support/zchunk/zchunk_1.2.4.bb    | 25 +++++++++++++
> >   3 files changed, 60 insertions(+), 22 deletions(-)
> >   create mode 100644 meta-oe/recipes-support/zchunk/files/clang.patch
> >   delete mode 100644 meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
> >   create mode 100644 meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb
> >
> > diff --git a/meta-oe/recipes-support/zchunk/files/clang.patch
> b/meta-oe/recipes-support/zchunk/files/clang.patch
> > new file mode 100644
> > index 0000000000..86faf4aac7
> > --- /dev/null
> > +++ b/meta-oe/recipes-support/zchunk/files/clang.patch
> > @@ -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')
> > diff --git a/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
> b/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
> > deleted file mode 100644
> > index 0baea5032a..0000000000
> > --- a/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
> > +++ /dev/null
> > @@ -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"
> > diff --git a/meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb
> b/meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb
> > new file mode 100644
> > index 0000000000..b4fd027603
> > --- /dev/null
> > +++ b/meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb
> > @@ -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"
> >
> >
> >
> >
> >
>
> --
> =====================================================================
> DENX Software Engineering GmbH,        Managing Director: Erika Unter
> HRB 165235 Munich,   Office: Kirchenstr.5, 82194 Groebenzell, Germany
> Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
> =====================================================================
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#101257):
> https://lists.openembedded.org/g/openembedded-devel/message/101257
> Mute This Topic: https://lists.openembedded.org/mt/97181425/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
diff mbox series

Patch

diff --git a/meta-oe/recipes-support/zchunk/files/clang.patch b/meta-oe/recipes-support/zchunk/files/clang.patch
new file mode 100644
index 0000000000..86faf4aac7
--- /dev/null
+++ b/meta-oe/recipes-support/zchunk/files/clang.patch
@@ -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')
diff --git a/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb b/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
deleted file mode 100644
index 0baea5032a..0000000000
--- a/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
+++ /dev/null
@@ -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"
diff --git a/meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb b/meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb
new file mode 100644
index 0000000000..b4fd027603
--- /dev/null
+++ b/meta-oe/recipes-support/zchunk/zchunk_1.2.4.bb
@@ -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"