[OE-core] [PATCH V5 1/1] systemd: upgrade to 215

Martin Jansa martin.jansa at gmail.com
Wed Aug 13 16:53:25 UTC 2014


On Wed, Aug 13, 2014 at 03:00:41PM +0800, ChenQi wrote:
> On 08/11/2014 07:59 PM, Martin Jansa wrote:
> > On Thu, Jul 31, 2014 at 04:08:05PM +0800, Chen Qi wrote:
> >> Upgrade systemd from 213 to 215.
> >>
> >> systemd-older-kernel.patch is removed as it's fixed in 215.
> >>
> >> Backport two patches to fix compilation problem for qemuppc.
> >>
> >>      0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch
> >>      0002-endian-explicitly-include-endian.h-wherever-we-want-.patch
> > Can you please fix following warnings, I haven't seen them with 213 version.
> >
> > WARNING: QA Issue: systemd rdepends on libdw, but it isn't a build dependency? [build-deps]
> > WARNING: QA Issue: libgudev-1.0 rdepends on libdw, but it isn't a build dependency? [build-deps]
> > WARNING: QA Issue: libsystemd rdepends on libdw, but it isn't a build dependency? [build-deps]
> > WARNING: QA Issue: libudev rdepends on libdw, but it isn't a build dependency? [build-deps]
> 
> Just noticed this email.
> Thank you very much.
> I'll fix them and send out a new version.

Thanks!

It would be great if you can add required kernel version to commit
message.

There is good news for people like me who needs to deal with BSPs having only
older kernels.

215 version doesn't require cgroups xattr support:
https://www.mail-archive.com/systemd-devel@lists.freedesktop.org/msg20356.html
which was preventing me to use 213 version on om-gta02 with 3.2 kernel

cgroups xattr support was added in kernel 3.7, someone tried to backport
it to 3.4:
https://github.com/linux-sunxi/linux-sunxi/pull/192/commits

Now it boots again with 3.2 kernel and
http://cgit.freedesktop.org/systemd/systemd/tree/README#n40
http://cgit.freedesktop.org/systemd/systemd/tree/README?id=v215#n40
says that any 3.* kernel should be ok

Regards,

> >> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> >> ---
> >>   ...k-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch |  116 ++++++++++++++++++++
> >>   ...icitly-include-endian.h-wherever-we-want-.patch |   52 +++++++++
> >>   .../systemd/systemd/systemd-older-kernel.patch     |   56 ----------
> >>   .../systemd/{systemd_213.bb => systemd_215.bb}     |   10 +-
> >>   4 files changed, 174 insertions(+), 60 deletions(-)
> >>   create mode 100644 meta/recipes-core/systemd/systemd/0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch
> >>   create mode 100644 meta/recipes-core/systemd/systemd/0002-endian-explicitly-include-endian.h-wherever-we-want-.patch
> >>   delete mode 100644 meta/recipes-core/systemd/systemd/systemd-older-kernel.patch
> >>   rename meta/recipes-core/systemd/{systemd_213.bb => systemd_215.bb} (97%)
> >>
> >> diff --git a/meta/recipes-core/systemd/systemd/0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch b/meta/recipes-core/systemd/systemd/0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch
> >> new file mode 100644
> >> index 0000000..228d835
> >> --- /dev/null
> >> +++ b/meta/recipes-core/systemd/systemd/0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch
> >> @@ -0,0 +1,116 @@
> >> +Upstream-Status: Backport
> >> +
> >> +Subject: always check for __BYTE_ORDER == __BIG_ENDIAN when checking for endianess
> >> +
> >> +Let's always stick to glibc's way to determine byte order, and not mix
> >> +autoconf-specific checks with gcc checks.
> >> +
> >> +Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> >> +---
> >> + src/shared/architecture.h |   12 ++++++------
> >> + src/shared/gpt.h          |    4 ++--
> >> + src/shared/time-dst.c     |    6 +++---
> >> + 3 files changed, 11 insertions(+), 11 deletions(-)
> >> +
> >> +diff --git a/src/shared/architecture.h b/src/shared/architecture.h
> >> +index 4821d5d..58e97e5 100644
> >> +--- a/src/shared/architecture.h
> >> ++++ b/src/shared/architecture.h
> >> +@@ -80,7 +80,7 @@ Architecture uname_architecture(void);
> >> + #  define native_architecture() ARCHITECTURE_X86
> >> + #  define LIB_ARCH_TUPLE "i386-linux-gnu"
> >> + #elif defined(__powerpc64__)
> >> +-#  if defined(WORDS_BIGENDIAN)
> >> ++#  if __BYTE_ORDER == __BIG_ENDIAN
> >> + #    define native_architecture() ARCHITECTURE_PPC64
> >> + #    define LIB_ARCH_TUPLE "ppc64-linux-gnu"
> >> + #  else
> >> +@@ -88,7 +88,7 @@ Architecture uname_architecture(void);
> >> + #    error "Missing LIB_ARCH_TUPLE for PPC64LE"
> >> + #  endif
> >> + #elif defined(__powerpc__)
> >> +-#  if defined(WORDS_BIGENDIAN)
> >> ++#  if __BYTE_ORDER == __BIG_ENDIAN
> >> + #    define native_architecture() ARCHITECTURE_PPC
> >> + #    define LIB_ARCH_TUPLE "powerpc-linux-gnu"
> >> + #  else
> >> +@@ -117,7 +117,7 @@ Architecture uname_architecture(void);
> >> + #  define native_architecture() ARCHITECTURE_SPARC
> >> + #  define LIB_ARCH_TUPLE "sparc-linux-gnu"
> >> + #elif defined(__mips64__)
> >> +-#  if defined(WORDS_BIGENDIAN)
> >> ++#  if __BYTE_ORDER == __BIG_ENDIAN
> >> + #    define native_architecture() ARCHITECTURE_MIPS64
> >> + #    error "Missing LIB_ARCH_TUPLE for MIPS64"
> >> + #  else
> >> +@@ -125,7 +125,7 @@ Architecture uname_architecture(void);
> >> + #    error "Missing LIB_ARCH_TUPLE for MIPS64_LE"
> >> + #  endif
> >> + #elif defined(__mips__)
> >> +-#  if defined(WORDS_BIGENDIAN)
> >> ++#  if __BYTE_ORDER == __BIG_ENDIAN
> >> + #    define native_architecture() ARCHITECTURE_MIPS
> >> + #    define LIB_ARCH_TUPLE "mips-linux-gnu"
> >> + #  else
> >> +@@ -136,7 +136,7 @@ Architecture uname_architecture(void);
> >> + #  define native_architecture() ARCHITECTURE_ALPHA
> >> + #  define LIB_ARCH_TUPLE "alpha-linux-gnu"
> >> + #elif defined(__aarch64__)
> >> +-#  if defined(WORDS_BIGENDIAN)
> >> ++#  if __BYTE_ORDER == __BIG_ENDIAN
> >> + #    define native_architecture() ARCHITECTURE_ARM64_BE
> >> + #    define LIB_ARCH_TUPLE "aarch64_be-linux-gnu"
> >> + #  else
> >> +@@ -144,7 +144,7 @@ Architecture uname_architecture(void);
> >> + #    define LIB_ARCH_TUPLE "aarch64-linux-gnu"
> >> + #  endif
> >> + #elif defined(__arm__)
> >> +-#  if defined(WORDS_BIGENDIAN)
> >> ++#  if __BYTE_ORDER == __BIG_ENDIAN
> >> + #    define native_architecture() ARCHITECTURE_ARM_BE
> >> + #    if defined(__ARM_EABI__)
> >> + #      if defined(__ARM_PCS_VFP)
> >> +diff --git a/src/shared/gpt.h b/src/shared/gpt.h
> >> +index 64090e0..278940b 100644
> >> +--- a/src/shared/gpt.h
> >> ++++ b/src/shared/gpt.h
> >> +@@ -42,10 +42,10 @@
> >> + #  define GPT_ROOT_NATIVE GPT_ROOT_X86
> >> + #endif
> >> +
> >> +-#if defined(__aarch64__) && !defined(WORDS_BIGENDIAN)
> >> ++#if defined(__aarch64__) && (__BYTE_ORDER != __BIG_ENDIAN)
> >> + #  define GPT_ROOT_NATIVE GPT_ROOT_ARM_64
> >> + #  define GPT_ROOT_SECONDARY GPT_ROOT_ARM
> >> +-#elif defined(__arm__) && !defined(WORDS_BIGENDIAN)
> >> ++#elif defined(__arm__) && (__BYTE_ORDER != __BIG_ENDIAN)
> >> + #  define GPT_ROOT_NATIVE GPT_ROOT_ARM
> >> + #endif
> >> +
> >> +diff --git a/src/shared/time-dst.c b/src/shared/time-dst.c
> >> +index ceca2fa..6195b11 100644
> >> +--- a/src/shared/time-dst.c
> >> ++++ b/src/shared/time-dst.c
> >> +@@ -207,8 +207,8 @@ read_again:
> >> +                 if (type_idxs[i] >= num_types)
> >> +                         return -EINVAL;
> >> +
> >> +-        if (BYTE_ORDER == BIG_ENDIAN ? sizeof(time_t) == 8 && trans_width == 4
> >> +-                                     : sizeof(time_t) == 4 || trans_width == 4) {
> >> ++        if (__BYTE_ORDER == __BIG_ENDIAN ? sizeof(time_t) == 8 && trans_width == 4
> >> ++                                         : sizeof(time_t) == 4 || trans_width == 4) {
> >> +                 /* Decode the transition times, stored as 4-byte integers in
> >> +                    network (big-endian) byte order.  We work from the end of
> >> +                    the array so as not to clobber the next element to be
> >> +@@ -216,7 +216,7 @@ read_again:
> >> +                 i = num_transitions;
> >> +                 while (i-- > 0)
> >> +                         transitions[i] = decode((char *)transitions + i * 4);
> >> +-        } else if (BYTE_ORDER != BIG_ENDIAN && sizeof(time_t) == 8) {
> >> ++        } else if (__BYTE_ORDER != __BIG_ENDIAN && sizeof(time_t) == 8) {
> >> +                 /* Decode the transition times, stored as 8-byte integers in
> >> +                    network (big-endian) byte order.  */
> >> +                 for (i = 0; i < num_transitions; ++i)
> >> +--
> >> +1.7.9.5
> >> +
> >> diff --git a/meta/recipes-core/systemd/systemd/0002-endian-explicitly-include-endian.h-wherever-we-want-.patch b/meta/recipes-core/systemd/systemd/0002-endian-explicitly-include-endian.h-wherever-we-want-.patch
> >> new file mode 100644
> >> index 0000000..5494192
> >> --- /dev/null
> >> +++ b/meta/recipes-core/systemd/systemd/0002-endian-explicitly-include-endian.h-wherever-we-want-.patch
> >> @@ -0,0 +1,52 @@
> >> +Upstream-Status: Backport
> >> +
> >> +Subject: endian: explicitly include endian.h wherever we want to use __BYTE_ORDER
> >> +
> >> +Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> >> +---
> >> + src/libsystemd/sd-bus/bus-protocol.h |    1 +
> >> + src/shared/architecture.h            |    2 ++
> >> + src/shared/gpt.h                     |    2 ++
> >> + 3 files changed, 5 insertions(+)
> >> +
> >> +diff --git a/src/libsystemd/sd-bus/bus-protocol.h b/src/libsystemd/sd-bus/bus-protocol.h
> >> +index 5046d17..4f46468 100644
> >> +--- a/src/libsystemd/sd-bus/bus-protocol.h
> >> ++++ b/src/libsystemd/sd-bus/bus-protocol.h
> >> +@@ -21,6 +21,7 @@
> >> +   along with systemd; If not, see <http://www.gnu.org/licenses/>.
> >> + ***/
> >> +
> >> ++#include <endian.h>
> >> +
> >> + /* Endianness */
> >> +
> >> +diff --git a/src/shared/architecture.h b/src/shared/architecture.h
> >> +index 58e97e5..38780d1 100644
> >> +--- a/src/shared/architecture.h
> >> ++++ b/src/shared/architecture.h
> >> +@@ -21,6 +21,8 @@
> >> +   along with systemd; If not, see <http://www.gnu.org/licenses/>.
> >> + ***/
> >> +
> >> ++#include <endian.h>
> >> ++
> >> + #include "util.h"
> >> +
> >> + /* A cleaned up architecture definition. We don't want to get lost in
> >> +diff --git a/src/shared/gpt.h b/src/shared/gpt.h
> >> +index 278940b..ef3444f 100644
> >> +--- a/src/shared/gpt.h
> >> ++++ b/src/shared/gpt.h
> >> +@@ -19,6 +19,8 @@
> >> +   along with systemd; If not, see <http://www.gnu.org/licenses/>.
> >> + ***/
> >> +
> >> ++#include <endian.h>
> >> ++
> >> + #include "sd-id128.h"
> >> +
> >> + /* We only support root disk discovery for x86, x86-64 and ARM for
> >> +--
> >> +1.7.9.5
> >> +
> >> diff --git a/meta/recipes-core/systemd/systemd/systemd-older-kernel.patch b/meta/recipes-core/systemd/systemd/systemd-older-kernel.patch
> >> deleted file mode 100644
> >> index 18b50e7..0000000
> >> --- a/meta/recipes-core/systemd/systemd/systemd-older-kernel.patch
> >> +++ /dev/null
> >> @@ -1,56 +0,0 @@
> >> -From 6109f02dcc4f2d7a461c5772bab494f5753a2203 Mon Sep 17 00:00:00 2001
> >> -From: Robert Yang <liezhi.yang at windriver.com>
> >> -Date: Thu, 29 May 2014 08:09:07 +0000
> >> -Subject: [PATCH] rtnl-types.c: check IFLA_VLAN_PROTOCOL
> >> -
> >> -The older kernel's linux/if_link.h doesn't have IFLA_VLAN_PROTOCOL, we need
> >> -check whether it has been defined or not.
> >> -
> >> -The maintainer said that he would fix it:
> >> -
> >> -http://thread.gmane.org/gmane.comp.sysutils.systemd.devel/18200
> >> -
> >> -Also we need redefine IFLA_MAX from 34 to 35 when define IFLA_CARRIER,
> >> -otherwise there would be error:
> >> -
> >> -| src/libsystemd/sd-rtnl/rtnl-types.c:233:9: error: array index in initializer exceeds array bounds
> >> -|          [IFLA_CARRIER]          = { .type = NLA_U8 },
> >> -
> >> -Upstream-Status: Pending
> >> -
> >> -Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> >> ----
> >> - src/libsystemd/sd-rtnl/rtnl-types.c | 2 ++
> >> - src/shared/missing.h                | 2 ++
> >> - 2 files changed, 4 insertions(+)
> >> -
> >> -diff --git a/src/libsystemd/sd-rtnl/rtnl-types.c b/src/libsystemd/sd-rtnl/rtnl-types.c
> >> -index 44ac5ec..ab6161f 100644
> >> ---- a/src/libsystemd/sd-rtnl/rtnl-types.c
> >> -+++ b/src/libsystemd/sd-rtnl/rtnl-types.c
> >> -@@ -67,7 +67,9 @@ static const NLType rtnl_link_info_data_vlan_types[IFLA_VLAN_MAX + 1] = {
> >> -         [IFLA_VLAN_EGRESS_QOS]  = { .type = NLA_NESTED },
> >> -         [IFLA_VLAN_INGRESS_QOS] = { .type = NLA_NESTED },
> >> - */
> >> -+#ifdef IFLA_VLAN_PROTOCOL
> >> -         [IFLA_VLAN_PROTOCOL]    = { .type = NLA_U16 },
> >> -+#endif
> >> - };
> >> -
> >> - static const NLType rtnl_link_info_data_bond_types[IFLA_BOND_MAX + 1] = {
> >> -diff --git a/src/shared/missing.h b/src/shared/missing.h
> >> -index d5ec2f8..732853f 100644
> >> ---- a/src/shared/missing.h
> >> -+++ b/src/shared/missing.h
> >> -@@ -94,6 +94,8 @@
> >> -
> >> - #ifndef IFLA_CARRIER
> >> -   #define IFLA_CARRIER 33
> >> -+  #undef IFLA_MAX
> >> -+  #define IFLA_MAX 35
> >> -   #ifndef IFLA_NUM_RX_QUEUES
> >> -     #define IFLA_NUM_RX_QUEUES 32
> >> -     #ifndef IFLA_NUM_TX_QUEUES
> >> ---
> >> -1.8.3.4
> >> -
> >> diff --git a/meta/recipes-core/systemd/systemd_213.bb b/meta/recipes-core/systemd/systemd_215.bb
> >> similarity index 97%
> >> rename from meta/recipes-core/systemd/systemd_213.bb
> >> rename to meta/recipes-core/systemd/systemd_215.bb
> >> index 5de7cdc..9eafa38 100644
> >> --- a/meta/recipes-core/systemd/systemd_213.bb
> >> +++ b/meta/recipes-core/systemd/systemd_215.bb
> >> @@ -17,9 +17,9 @@ SECTION = "base/shell"
> >>   
> >>   inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives qemu systemd ptest
> >>   
> >> -SRCREV = "c9679c652b3c31f2510e8805d81630680ebc7e95"
> >> +SRCREV = "252ff40a3827b4e8e62e03a5e2f80da3fe02bee6"
> >>   
> >> -PV = "213+git${SRCPV}"
> >> +PV = "215+git${SRCPV}"
> >>   
> >>   SRC_URI = "git://anongit.freedesktop.org/systemd/systemd;branch=master;protocol=git \
> >>              file://binfmt-install.patch \
> >> @@ -31,12 +31,13 @@ SRC_URI = "git://anongit.freedesktop.org/systemd/systemd;branch=master;protocol=
> >>              file://0001-uClibc-doesn-t-implement-pwritev-preadv.patch \
> >>              file://uclibc-sysinfo_h.patch \
> >>              file://uclibc-get-physmem.patch \
> >> +           file://0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch \
> >> +           file://0002-endian-explicitly-include-endian.h-wherever-we-want-.patch \
> >>              file://touchscreen.rules \
> >>              file://00-create-volatile.conf \
> >>              file://init \
> >>              file://run-ptest \
> >> -           file://systemd-older-kernel.patch \
> >> -          "
> >> +         "
> >>   
> >>   S = "${WORKDIR}/git"
> >>   
> >> @@ -231,6 +232,7 @@ FILES_${PN} = " ${base_bindir}/* \
> >>                   ${exec_prefix}/lib/systemd \
> >>                   ${exec_prefix}/lib/modules-load.d \
> >>                   ${exec_prefix}/lib/sysctl.d \
> >> +                ${exec_prefix}/lib/sysusers.d \
> >>                   ${localstatedir} \
> >>                   /lib/udev/rules.d/70-uaccess.rules \
> >>                   /lib/udev/rules.d/71-seat.rules \
> >> -- 
> >> 1.7.9.5
> >>
> >> -- 
> >> _______________________________________________
> >> Openembedded-core mailing list
> >> Openembedded-core at lists.openembedded.org
> >> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> 

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20140813/662ca1a1/attachment-0002.sig>


More information about the Openembedded-core mailing list