Message ID | 20230223123239.1727935-1-ross.burton@arm.com |
---|---|
State | Under Review |
Headers | show |
Series | [v3] zchunk: upgrade to 1.2.4 | expand |
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] > -=-=-=-=-=-=-=-=-=-=-=- >
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 --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"
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