Message ID | 20220524152411.1663373-1-ross.burton@arm.com |
---|---|
State | Under Review |
Headers | show |
Series | [1/2] lzo: add (from oe-core) | expand |
Obviously, don’t merge this until the recipes are removed from oe-core. Ross > On 24 May 2022, at 16:24, Ross Burton via lists.openembedded.org <ross.burton=arm.com@lists.openembedded.org> wrote: > > lzo is being removed from oe-core, so add it here for people who still > want to use it. > > Signed-off-by: Ross Burton <ross.burton@arm.com> > --- > ...onfigdir-to-solve-the-undefine-error.patch | 27 +++++++ > ...Use-memcpy-instead-of-reinventing-it.patch | 70 +++++++++++++++++++ > meta-oe/recipes-support/lzo/lzo/run-ptest | 33 +++++++++ > meta-oe/recipes-support/lzo/lzo_2.10.bb | 35 ++++++++++ > 4 files changed, 165 insertions(+) > create mode 100644 meta-oe/recipes-support/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch > create mode 100644 meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch > create mode 100644 meta-oe/recipes-support/lzo/lzo/run-ptest > create mode 100644 meta-oe/recipes-support/lzo/lzo_2.10.bb > > diff --git a/meta-oe/recipes-support/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch b/meta-oe/recipes-support/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch > new file mode 100644 > index 0000000000..5235a15dc9 > --- /dev/null > +++ b/meta-oe/recipes-support/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch > @@ -0,0 +1,27 @@ > +From e730bfd7c2d3a4b5f3605878599cb9b20d31b1fd Mon Sep 17 00:00:00 2001 > +From: Fan Xin <fan.xin@jp.fujitsu.com> > +Date: Fri, 2 Jun 2017 11:52:25 +0900 > +Subject: [PATCH] Add pkgconfigdir to solve the undefine error. > + > +Upstream-Status: Pending > + > +Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com> > +--- > + Makefile.am | 1 + > + 1 file changed, 1 insertion(+) > + > +diff --git a/Makefile.am b/Makefile.am > +index e4d383b..c75023d 100644 > +--- a/Makefile.am > ++++ b/Makefile.am > +@@ -14,6 +14,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir) > + LDADD = src/liblzo2.la > + lib_LTLIBRARIES = > + noinst_PROGRAMS = > ++pkgconfigdir = $(libdir)/pkgconfig > + pkgconfig_DATA = lzo2.pc > + > + > +-- > +1.9.1 > + > diff --git a/meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch b/meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch > new file mode 100644 > index 0000000000..db3a70e803 > --- /dev/null > +++ b/meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch > @@ -0,0 +1,70 @@ > +From: Simon McVittie <smcv@debian.org> > +Date: Sun, 23 Nov 2014 22:50:33 +0000 > +Subject: Use memcpy() instead of reinventing it > + > +gcc inlines memcpy() with results as fast as handwritten code (at > +least in my brief testing with lzop), and knows the alignment > +constraints for our architectures. > + > +Change suggested by Julian Taylor. > + > +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757037 > + > +Upstream-Status: Pending > +Signed-off-by: Saul Wold <sgw@linux.intel.com> > +--- > + minilzo/minilzo.c | 14 ++++++++++++++ > + src/lzo_func.h | 14 ++++++++++++++ > + 2 files changed, 28 insertions(+) > + > + > +diff --git a/minilzo/minilzo.c b/minilzo/minilzo.c > +index ab2be5f..6913c2f 100644 > +--- a/minilzo/minilzo.c > ++++ b/minilzo/minilzo.c > +@@ -3523,6 +3523,20 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8) > + if ((void)0, n__n > 0) do { *d__n++ = *s__n++; } while (--n__n > 0); \ > + LZO_BLOCK_END > + > ++/* Debian-specific change: we know that our compiler inlines memcpy() with > ++ * constant n to be as fast as handwritten code, and knows which architectures > ++ * need things correctly aligned. */ > ++#undef LZO_MEMOPS_COPY1 > ++#undef LZO_MEMOPS_COPY2 > ++#undef LZO_MEMOPS_COPY4 > ++#undef LZO_MEMOPS_COPY8 > ++#undef LZO_MEMOPS_COPYN > ++#define LZO_MEMOPS_COPY1(dd,ss) memcpy(dd, ss, 1) > ++#define LZO_MEMOPS_COPY2(dd,ss) memcpy(dd, ss, 2) > ++#define LZO_MEMOPS_COPY4(dd,ss) memcpy(dd, ss, 4) > ++#define LZO_MEMOPS_COPY8(dd,ss) memcpy(dd, ss, 8) > ++#define LZO_MEMOPS_COPYN(dd,ss,nn) memcpy(dd, ss, nn) > ++ > + __lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss) > + { > + lzo_uint16_t v; > +diff --git a/src/lzo_func.h b/src/lzo_func.h > +index dfaa676..1cc1b53 100644 > +--- a/src/lzo_func.h > ++++ b/src/lzo_func.h > +@@ -333,6 +333,20 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8) > + if ((void)0, n__n > 0) do { *d__n++ = *s__n++; } while (--n__n > 0); \ > + LZO_BLOCK_END > + > ++/* Debian-specific change: we know that our compiler inlines memcpy() with > ++ * constant n to be as fast as handwritten code, and knows which architectures > ++ * need things correctly aligned. */ > ++#undef LZO_MEMOPS_COPY1 > ++#undef LZO_MEMOPS_COPY2 > ++#undef LZO_MEMOPS_COPY4 > ++#undef LZO_MEMOPS_COPY8 > ++#undef LZO_MEMOPS_COPYN > ++#define LZO_MEMOPS_COPY1(dd,ss) memcpy(dd, ss, 1) > ++#define LZO_MEMOPS_COPY2(dd,ss) memcpy(dd, ss, 2) > ++#define LZO_MEMOPS_COPY4(dd,ss) memcpy(dd, ss, 4) > ++#define LZO_MEMOPS_COPY8(dd,ss) memcpy(dd, ss, 8) > ++#define LZO_MEMOPS_COPYN(dd,ss,nn) memcpy(dd, ss, nn) > ++ > + __lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss) > + { > + lzo_uint16_t v; > diff --git a/meta-oe/recipes-support/lzo/lzo/run-ptest b/meta-oe/recipes-support/lzo/lzo/run-ptest > new file mode 100644 > index 0000000000..6acb89fc1f > --- /dev/null > +++ b/meta-oe/recipes-support/lzo/lzo/run-ptest > @@ -0,0 +1,33 @@ > +#!/bin/sh > + > +./lzotest -mavail -n10 -q /etc/services > +if [ $? -eq 0 ]; then > + echo 'PASS: lzotest' > +else > + echo 'FAIL: lzotest' > +fi > +LZOTEST=./lzotest /bin/sh -e "./check.sh" "/etc" > +./align > +if [ $? -eq 0 ]; then > + echo 'PASS: align' > +else > + echo 'FAIL: align' > +fi > +./chksum > +if [ $? -eq 0 ]; then > + echo 'PASS: chksum' > +else > + echo 'FAIL: chksum' > +fi > +./simple > +if [ $? -eq 0 ]; then > + echo 'PASS: simple' > +else > + echo 'FAIL: simple' > +fi > +./testmini > +if [ $? -eq 0 ]; then > + echo 'PASS: testmini' > +else > + echo 'FAIL: testmini' > +fi > diff --git a/meta-oe/recipes-support/lzo/lzo_2.10.bb b/meta-oe/recipes-support/lzo/lzo_2.10.bb > new file mode 100644 > index 0000000000..195c2f2939 > --- /dev/null > +++ b/meta-oe/recipes-support/lzo/lzo_2.10.bb > @@ -0,0 +1,35 @@ > +SUMMARY = "Lossless data compression library" > +DESCRIPTION = "A portable lossless data compression library written in \ > +ANSI C that offers pretty fast compression and *extremely* fast decompression. " > +HOMEPAGE = "http://www.oberhumer.com/opensource/lzo/" > +SECTION = "libs" > +LICENSE = "GPL-2.0-or-later" > +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ > + file://src/lzo_init.c;beginline=5;endline=25;md5=9ae697ca01829b0a383c5d2d163e0108" > + > +SRC_URI = "http://www.oberhumer.com/opensource/lzo/download/lzo-${PV}.tar.gz \ > + file://0001-Use-memcpy-instead-of-reinventing-it.patch \ > + file://0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch \ > + file://run-ptest \ > + " > + > +SRC_URI[md5sum] = "39d3f3f9c55c87b1e5d6888e1420f4b5" > +SRC_URI[sha256sum] = "c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072" > + > +inherit autotools ptest > + > +CVE_PRODUCT = "lzo oberhumer:lzo2" > + > +EXTRA_OECONF = "--enable-shared" > + > +do_install_ptest() { > + t=${D}${PTEST_PATH} > + cp ${S}/util/check.sh $t > + cp ${B}/minilzo/testmini $t > + for i in tests/align tests/chksum lzotest/lzotest examples/simple > + do cp ${B}/`dirname $i`/.libs/`basename $i` $t; \ > + done > +} > + > + > +BBCLASSEXTEND = "native nativesdk" > -- > 2.25.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#97253): https://lists.openembedded.org/g/openembedded-devel/message/97253 > Mute This Topic: https://lists.openembedded.org/mt/91313396/6875888 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ross.burton@arm.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Thanks. I have seen the relevant patches in core. On Tue, May 24, 2022 at 8:29 AM Ross Burton <ross.burton@arm.com> wrote: > > Obviously, don’t merge this until the recipes are removed from oe-core. > > Ross > > > On 24 May 2022, at 16:24, Ross Burton via lists.openembedded.org <ross.burton=arm.com@lists.openembedded.org> wrote: > > > > lzo is being removed from oe-core, so add it here for people who still > > want to use it. > > > > Signed-off-by: Ross Burton <ross.burton@arm.com> > > --- > > ...onfigdir-to-solve-the-undefine-error.patch | 27 +++++++ > > ...Use-memcpy-instead-of-reinventing-it.patch | 70 +++++++++++++++++++ > > meta-oe/recipes-support/lzo/lzo/run-ptest | 33 +++++++++ > > meta-oe/recipes-support/lzo/lzo_2.10.bb | 35 ++++++++++ > > 4 files changed, 165 insertions(+) > > create mode 100644 meta-oe/recipes-support/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch > > create mode 100644 meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch > > create mode 100644 meta-oe/recipes-support/lzo/lzo/run-ptest > > create mode 100644 meta-oe/recipes-support/lzo/lzo_2.10.bb > > > > diff --git a/meta-oe/recipes-support/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch b/meta-oe/recipes-support/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch > > new file mode 100644 > > index 0000000000..5235a15dc9 > > --- /dev/null > > +++ b/meta-oe/recipes-support/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch > > @@ -0,0 +1,27 @@ > > +From e730bfd7c2d3a4b5f3605878599cb9b20d31b1fd Mon Sep 17 00:00:00 2001 > > +From: Fan Xin <fan.xin@jp.fujitsu.com> > > +Date: Fri, 2 Jun 2017 11:52:25 +0900 > > +Subject: [PATCH] Add pkgconfigdir to solve the undefine error. > > + > > +Upstream-Status: Pending > > + > > +Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com> > > +--- > > + Makefile.am | 1 + > > + 1 file changed, 1 insertion(+) > > + > > +diff --git a/Makefile.am b/Makefile.am > > +index e4d383b..c75023d 100644 > > +--- a/Makefile.am > > ++++ b/Makefile.am > > +@@ -14,6 +14,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir) > > + LDADD = src/liblzo2.la > > + lib_LTLIBRARIES = > > + noinst_PROGRAMS = > > ++pkgconfigdir = $(libdir)/pkgconfig > > + pkgconfig_DATA = lzo2.pc > > + > > + > > +-- > > +1.9.1 > > + > > diff --git a/meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch b/meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch > > new file mode 100644 > > index 0000000000..db3a70e803 > > --- /dev/null > > +++ b/meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch > > @@ -0,0 +1,70 @@ > > +From: Simon McVittie <smcv@debian.org> > > +Date: Sun, 23 Nov 2014 22:50:33 +0000 > > +Subject: Use memcpy() instead of reinventing it > > + > > +gcc inlines memcpy() with results as fast as handwritten code (at > > +least in my brief testing with lzop), and knows the alignment > > +constraints for our architectures. > > + > > +Change suggested by Julian Taylor. > > + > > +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757037 > > + > > +Upstream-Status: Pending > > +Signed-off-by: Saul Wold <sgw@linux.intel.com> > > +--- > > + minilzo/minilzo.c | 14 ++++++++++++++ > > + src/lzo_func.h | 14 ++++++++++++++ > > + 2 files changed, 28 insertions(+) > > + > > + > > +diff --git a/minilzo/minilzo.c b/minilzo/minilzo.c > > +index ab2be5f..6913c2f 100644 > > +--- a/minilzo/minilzo.c > > ++++ b/minilzo/minilzo.c > > +@@ -3523,6 +3523,20 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8) > > + if ((void)0, n__n > 0) do { *d__n++ = *s__n++; } while (--n__n > 0); \ > > + LZO_BLOCK_END > > + > > ++/* Debian-specific change: we know that our compiler inlines memcpy() with > > ++ * constant n to be as fast as handwritten code, and knows which architectures > > ++ * need things correctly aligned. */ > > ++#undef LZO_MEMOPS_COPY1 > > ++#undef LZO_MEMOPS_COPY2 > > ++#undef LZO_MEMOPS_COPY4 > > ++#undef LZO_MEMOPS_COPY8 > > ++#undef LZO_MEMOPS_COPYN > > ++#define LZO_MEMOPS_COPY1(dd,ss) memcpy(dd, ss, 1) > > ++#define LZO_MEMOPS_COPY2(dd,ss) memcpy(dd, ss, 2) > > ++#define LZO_MEMOPS_COPY4(dd,ss) memcpy(dd, ss, 4) > > ++#define LZO_MEMOPS_COPY8(dd,ss) memcpy(dd, ss, 8) > > ++#define LZO_MEMOPS_COPYN(dd,ss,nn) memcpy(dd, ss, nn) > > ++ > > + __lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss) > > + { > > + lzo_uint16_t v; > > +diff --git a/src/lzo_func.h b/src/lzo_func.h > > +index dfaa676..1cc1b53 100644 > > +--- a/src/lzo_func.h > > ++++ b/src/lzo_func.h > > +@@ -333,6 +333,20 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8) > > + if ((void)0, n__n > 0) do { *d__n++ = *s__n++; } while (--n__n > 0); \ > > + LZO_BLOCK_END > > + > > ++/* Debian-specific change: we know that our compiler inlines memcpy() with > > ++ * constant n to be as fast as handwritten code, and knows which architectures > > ++ * need things correctly aligned. */ > > ++#undef LZO_MEMOPS_COPY1 > > ++#undef LZO_MEMOPS_COPY2 > > ++#undef LZO_MEMOPS_COPY4 > > ++#undef LZO_MEMOPS_COPY8 > > ++#undef LZO_MEMOPS_COPYN > > ++#define LZO_MEMOPS_COPY1(dd,ss) memcpy(dd, ss, 1) > > ++#define LZO_MEMOPS_COPY2(dd,ss) memcpy(dd, ss, 2) > > ++#define LZO_MEMOPS_COPY4(dd,ss) memcpy(dd, ss, 4) > > ++#define LZO_MEMOPS_COPY8(dd,ss) memcpy(dd, ss, 8) > > ++#define LZO_MEMOPS_COPYN(dd,ss,nn) memcpy(dd, ss, nn) > > ++ > > + __lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss) > > + { > > + lzo_uint16_t v; > > diff --git a/meta-oe/recipes-support/lzo/lzo/run-ptest b/meta-oe/recipes-support/lzo/lzo/run-ptest > > new file mode 100644 > > index 0000000000..6acb89fc1f > > --- /dev/null > > +++ b/meta-oe/recipes-support/lzo/lzo/run-ptest > > @@ -0,0 +1,33 @@ > > +#!/bin/sh > > + > > +./lzotest -mavail -n10 -q /etc/services > > +if [ $? -eq 0 ]; then > > + echo 'PASS: lzotest' > > +else > > + echo 'FAIL: lzotest' > > +fi > > +LZOTEST=./lzotest /bin/sh -e "./check.sh" "/etc" > > +./align > > +if [ $? -eq 0 ]; then > > + echo 'PASS: align' > > +else > > + echo 'FAIL: align' > > +fi > > +./chksum > > +if [ $? -eq 0 ]; then > > + echo 'PASS: chksum' > > +else > > + echo 'FAIL: chksum' > > +fi > > +./simple > > +if [ $? -eq 0 ]; then > > + echo 'PASS: simple' > > +else > > + echo 'FAIL: simple' > > +fi > > +./testmini > > +if [ $? -eq 0 ]; then > > + echo 'PASS: testmini' > > +else > > + echo 'FAIL: testmini' > > +fi > > diff --git a/meta-oe/recipes-support/lzo/lzo_2.10.bb b/meta-oe/recipes-support/lzo/lzo_2.10.bb > > new file mode 100644 > > index 0000000000..195c2f2939 > > --- /dev/null > > +++ b/meta-oe/recipes-support/lzo/lzo_2.10.bb > > @@ -0,0 +1,35 @@ > > +SUMMARY = "Lossless data compression library" > > +DESCRIPTION = "A portable lossless data compression library written in \ > > +ANSI C that offers pretty fast compression and *extremely* fast decompression. " > > +HOMEPAGE = "http://www.oberhumer.com/opensource/lzo/" > > +SECTION = "libs" > > +LICENSE = "GPL-2.0-or-later" > > +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ > > + file://src/lzo_init.c;beginline=5;endline=25;md5=9ae697ca01829b0a383c5d2d163e0108" > > + > > +SRC_URI = "http://www.oberhumer.com/opensource/lzo/download/lzo-${PV}.tar.gz \ > > + file://0001-Use-memcpy-instead-of-reinventing-it.patch \ > > + file://0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch \ > > + file://run-ptest \ > > + " > > + > > +SRC_URI[md5sum] = "39d3f3f9c55c87b1e5d6888e1420f4b5" > > +SRC_URI[sha256sum] = "c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072" > > + > > +inherit autotools ptest > > + > > +CVE_PRODUCT = "lzo oberhumer:lzo2" > > + > > +EXTRA_OECONF = "--enable-shared" > > + > > +do_install_ptest() { > > + t=${D}${PTEST_PATH} > > + cp ${S}/util/check.sh $t > > + cp ${B}/minilzo/testmini $t > > + for i in tests/align tests/chksum lzotest/lzotest examples/simple > > + do cp ${B}/`dirname $i`/.libs/`basename $i` $t; \ > > + done > > +} > > + > > + > > +BBCLASSEXTEND = "native nativesdk" > > -- > > 2.25.1 > > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#97255): https://lists.openembedded.org/g/openembedded-devel/message/97255 > Mute This Topic: https://lists.openembedded.org/mt/91313396/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/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch b/meta-oe/recipes-support/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch new file mode 100644 index 0000000000..5235a15dc9 --- /dev/null +++ b/meta-oe/recipes-support/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch @@ -0,0 +1,27 @@ +From e730bfd7c2d3a4b5f3605878599cb9b20d31b1fd Mon Sep 17 00:00:00 2001 +From: Fan Xin <fan.xin@jp.fujitsu.com> +Date: Fri, 2 Jun 2017 11:52:25 +0900 +Subject: [PATCH] Add pkgconfigdir to solve the undefine error. + +Upstream-Status: Pending + +Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com> +--- + Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile.am b/Makefile.am +index e4d383b..c75023d 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -14,6 +14,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir) + LDADD = src/liblzo2.la + lib_LTLIBRARIES = + noinst_PROGRAMS = ++pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = lzo2.pc + + +-- +1.9.1 + diff --git a/meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch b/meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch new file mode 100644 index 0000000000..db3a70e803 --- /dev/null +++ b/meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch @@ -0,0 +1,70 @@ +From: Simon McVittie <smcv@debian.org> +Date: Sun, 23 Nov 2014 22:50:33 +0000 +Subject: Use memcpy() instead of reinventing it + +gcc inlines memcpy() with results as fast as handwritten code (at +least in my brief testing with lzop), and knows the alignment +constraints for our architectures. + +Change suggested by Julian Taylor. + +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757037 + +Upstream-Status: Pending +Signed-off-by: Saul Wold <sgw@linux.intel.com> +--- + minilzo/minilzo.c | 14 ++++++++++++++ + src/lzo_func.h | 14 ++++++++++++++ + 2 files changed, 28 insertions(+) + + +diff --git a/minilzo/minilzo.c b/minilzo/minilzo.c +index ab2be5f..6913c2f 100644 +--- a/minilzo/minilzo.c ++++ b/minilzo/minilzo.c +@@ -3523,6 +3523,20 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8) + if ((void)0, n__n > 0) do { *d__n++ = *s__n++; } while (--n__n > 0); \ + LZO_BLOCK_END + ++/* Debian-specific change: we know that our compiler inlines memcpy() with ++ * constant n to be as fast as handwritten code, and knows which architectures ++ * need things correctly aligned. */ ++#undef LZO_MEMOPS_COPY1 ++#undef LZO_MEMOPS_COPY2 ++#undef LZO_MEMOPS_COPY4 ++#undef LZO_MEMOPS_COPY8 ++#undef LZO_MEMOPS_COPYN ++#define LZO_MEMOPS_COPY1(dd,ss) memcpy(dd, ss, 1) ++#define LZO_MEMOPS_COPY2(dd,ss) memcpy(dd, ss, 2) ++#define LZO_MEMOPS_COPY4(dd,ss) memcpy(dd, ss, 4) ++#define LZO_MEMOPS_COPY8(dd,ss) memcpy(dd, ss, 8) ++#define LZO_MEMOPS_COPYN(dd,ss,nn) memcpy(dd, ss, nn) ++ + __lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss) + { + lzo_uint16_t v; +diff --git a/src/lzo_func.h b/src/lzo_func.h +index dfaa676..1cc1b53 100644 +--- a/src/lzo_func.h ++++ b/src/lzo_func.h +@@ -333,6 +333,20 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8) + if ((void)0, n__n > 0) do { *d__n++ = *s__n++; } while (--n__n > 0); \ + LZO_BLOCK_END + ++/* Debian-specific change: we know that our compiler inlines memcpy() with ++ * constant n to be as fast as handwritten code, and knows which architectures ++ * need things correctly aligned. */ ++#undef LZO_MEMOPS_COPY1 ++#undef LZO_MEMOPS_COPY2 ++#undef LZO_MEMOPS_COPY4 ++#undef LZO_MEMOPS_COPY8 ++#undef LZO_MEMOPS_COPYN ++#define LZO_MEMOPS_COPY1(dd,ss) memcpy(dd, ss, 1) ++#define LZO_MEMOPS_COPY2(dd,ss) memcpy(dd, ss, 2) ++#define LZO_MEMOPS_COPY4(dd,ss) memcpy(dd, ss, 4) ++#define LZO_MEMOPS_COPY8(dd,ss) memcpy(dd, ss, 8) ++#define LZO_MEMOPS_COPYN(dd,ss,nn) memcpy(dd, ss, nn) ++ + __lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss) + { + lzo_uint16_t v; diff --git a/meta-oe/recipes-support/lzo/lzo/run-ptest b/meta-oe/recipes-support/lzo/lzo/run-ptest new file mode 100644 index 0000000000..6acb89fc1f --- /dev/null +++ b/meta-oe/recipes-support/lzo/lzo/run-ptest @@ -0,0 +1,33 @@ +#!/bin/sh + +./lzotest -mavail -n10 -q /etc/services +if [ $? -eq 0 ]; then + echo 'PASS: lzotest' +else + echo 'FAIL: lzotest' +fi +LZOTEST=./lzotest /bin/sh -e "./check.sh" "/etc" +./align +if [ $? -eq 0 ]; then + echo 'PASS: align' +else + echo 'FAIL: align' +fi +./chksum +if [ $? -eq 0 ]; then + echo 'PASS: chksum' +else + echo 'FAIL: chksum' +fi +./simple +if [ $? -eq 0 ]; then + echo 'PASS: simple' +else + echo 'FAIL: simple' +fi +./testmini +if [ $? -eq 0 ]; then + echo 'PASS: testmini' +else + echo 'FAIL: testmini' +fi diff --git a/meta-oe/recipes-support/lzo/lzo_2.10.bb b/meta-oe/recipes-support/lzo/lzo_2.10.bb new file mode 100644 index 0000000000..195c2f2939 --- /dev/null +++ b/meta-oe/recipes-support/lzo/lzo_2.10.bb @@ -0,0 +1,35 @@ +SUMMARY = "Lossless data compression library" +DESCRIPTION = "A portable lossless data compression library written in \ +ANSI C that offers pretty fast compression and *extremely* fast decompression. " +HOMEPAGE = "http://www.oberhumer.com/opensource/lzo/" +SECTION = "libs" +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://src/lzo_init.c;beginline=5;endline=25;md5=9ae697ca01829b0a383c5d2d163e0108" + +SRC_URI = "http://www.oberhumer.com/opensource/lzo/download/lzo-${PV}.tar.gz \ + file://0001-Use-memcpy-instead-of-reinventing-it.patch \ + file://0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch \ + file://run-ptest \ + " + +SRC_URI[md5sum] = "39d3f3f9c55c87b1e5d6888e1420f4b5" +SRC_URI[sha256sum] = "c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072" + +inherit autotools ptest + +CVE_PRODUCT = "lzo oberhumer:lzo2" + +EXTRA_OECONF = "--enable-shared" + +do_install_ptest() { + t=${D}${PTEST_PATH} + cp ${S}/util/check.sh $t + cp ${B}/minilzo/testmini $t + for i in tests/align tests/chksum lzotest/lzotest examples/simple + do cp ${B}/`dirname $i`/.libs/`basename $i` $t; \ + done +} + + +BBCLASSEXTEND = "native nativesdk"
lzo is being removed from oe-core, so add it here for people who still want to use it. Signed-off-by: Ross Burton <ross.burton@arm.com> --- ...onfigdir-to-solve-the-undefine-error.patch | 27 +++++++ ...Use-memcpy-instead-of-reinventing-it.patch | 70 +++++++++++++++++++ meta-oe/recipes-support/lzo/lzo/run-ptest | 33 +++++++++ meta-oe/recipes-support/lzo/lzo_2.10.bb | 35 ++++++++++ 4 files changed, 165 insertions(+) create mode 100644 meta-oe/recipes-support/lzo/lzo/0001-Add-pkgconfigdir-to-solve-the-undefine-error.patch create mode 100644 meta-oe/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch create mode 100644 meta-oe/recipes-support/lzo/lzo/run-ptest create mode 100644 meta-oe/recipes-support/lzo/lzo_2.10.bb