Patchwork [V5,1/1] systemd: upgrade to 215

login
register
mail settings
Submitter Qi.Chen@windriver.com
Date July 31, 2014, 8:08 a.m.
Message ID <65f32e0e16b2bf162e5d7b809fd705e0f48b6c20.1406793899.git.Qi.Chen@windriver.com>
Download mbox | patch
Permalink /patch/77007/
State New
Headers show

Comments

Qi.Chen@windriver.com - July 31, 2014, 8:08 a.m.
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

Signed-off-by: Chen Qi <Qi.Chen@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%)
Koen Kooi - Aug. 1, 2014, 9:43 a.m.
Op 31 jul. 2014, om 10:08 heeft Chen Qi <Qi.Chen@windriver.com> het volgende geschreven:

> 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
> 
> Signed-off-by: Chen Qi <Qi.Chen@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@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@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@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@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 \


Like I keep saying, the sysusers files need to be in CONFFILES
Martin Jansa - Aug. 11, 2014, 11:59 a.m.
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]

> Signed-off-by: Chen Qi <Qi.Chen@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@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@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@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@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@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Qi.Chen@windriver.com - Aug. 13, 2014, 7 a.m.
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.

Best Regards,
Chen Qi

>> Signed-off-by: Chen Qi <Qi.Chen@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@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@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@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@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@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Qi.Chen@windriver.com - Aug. 13, 2014, 7:10 a.m.
On 08/01/2014 05:43 PM, Koen Kooi wrote:
> Op 31 jul. 2014, om 10:08 heeft Chen Qi <Qi.Chen@windriver.com> het volgende geschreven:
>
>> 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
>>
>> Signed-off-by: Chen Qi <Qi.Chen@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@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@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@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@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 \
>
> Like I keep saying, the sysusers files need to be in CONFFILES
>

Hi Koen,

Sorry for the late reply.

I checked the initial commit of sysusers.d/ in the systemd git repo.

"
This also adds a minimal user definition file, that should be
     sufficient for most basic systems. Distributions are expected to patch
     these files and augment the contents, for example with fixed UIDs for
     the users where that's necessary.
"

 From the above commit message, we can tell that these files are 
expected to be modified by distros instead of users including admins.
If a file is not expected to be modified by users, how can it be a 
configuration file?

Below is the complete commit message in the git repo.

""""

sysusers: add minimal tool to reconstruct /etc/passwd and /etc/group 
from static files

     systemd-sysusers is a tool to reconstruct /etc/passwd and /etc/group
     from static definition files that take a lot of inspiration from
     tmpfiles snippets. These snippets should carry information about system
     users only. To make sure it is not misused for normal users these
     snippets only allow configuring UID and gecos field for each user, but
     do not allow configuration of the home directory or shell, which is
     necessary for real login users.

     The purpose of this tool is to enable state-less systems that can
     populate /etc with the minimal files necessary, solely from static data
     in /usr. systemd-sysuser is additive only, and will never override
     existing users.

     This tool will create these files directly, and not via some user
     database abtsraction layer. This is appropriate as this tool is 
supposed
     to run really early at boot, and is only useful for creating system
     users, and system users cannot be stored in remote databases anyway.

     The tool is also useful to be invoked from RPM scriptlets, instead of
     useradd. This allows moving from imperative user descriptions in RPM to
     declarative descriptions.

     The UID/GID for a user/group to be created can either be chosen 
dynamic,
     or fixed, or be read from the owner of a file in the file system, in
     order to support reconstructing the correct IDs for files that shall be
     owned by them.

     This also adds a minimal user definition file, that should be
     sufficient for most basic systems. Distributions are expected to patch
     these files and augment the contents, for example with fixed UIDs for
     the users where that's necessary.


""""

Best Regards,
Chen Qi
Koen Kooi - Aug. 13, 2014, 7:27 a.m.
Op 13 aug. 2014, om 09:10 heeft ChenQi <Qi.Chen@windriver.com> het volgende geschreven:

> On 08/01/2014 05:43 PM, Koen Kooi wrote:
>> Op 31 jul. 2014, om 10:08 heeft Chen Qi <Qi.Chen@windriver.com> het volgende geschreven:
>> 
>>> 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
>>> 
>>> Signed-off-by: Chen Qi <Qi.Chen@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@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@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@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@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 \
>> 
>> Like I keep saying, the sysusers files need to be in CONFFILES
>> 
> 
> Hi Koen,
> 
> Sorry for the late reply.
> 
> I checked the initial commit of sysusers.d/ in the systemd git repo.
> 
> "
> This also adds a minimal user definition file, that should be
>    sufficient for most basic systems. Distributions are expected to patch
>    these files and augment the contents, for example with fixed UIDs for
>    the users where that's necessary.
> "
> 
> From the above commit message, we can tell that these files are expected to be modified by distros instead of users including admins.

Nowhere does it say "instead of users", it only says "by distros". The question to ask is: do you want changes to this to get blown away by package upgrades?

> If a file is not expected to be modified by users, how can it be a configuration file?
> 
> Below is the complete commit message in the git repo.
> 
> """"
> 
> sysusers: add minimal tool to reconstruct /etc/passwd and /etc/group from static files
> 
>    systemd-sysusers is a tool to reconstruct /etc/passwd and /etc/group
>    from static definition files that take a lot of inspiration from
>    tmpfiles snippets. These snippets should carry information about system
>    users only. To make sure it is not misused for normal users these
>    snippets only allow configuring UID and gecos field for each user, but
>    do not allow configuration of the home directory or shell, which is
>    necessary for real login users.
> 
>    The purpose of this tool is to enable state-less systems that can
>    populate /etc with the minimal files necessary, solely from static data
>    in /usr. systemd-sysuser is additive only, and will never override
>    existing users.
> 
>    This tool will create these files directly, and not via some user
>    database abtsraction layer. This is appropriate as this tool is supposed
>    to run really early at boot, and is only useful for creating system
>    users, and system users cannot be stored in remote databases anyway.
> 
>    The tool is also useful to be invoked from RPM scriptlets, instead of
>    useradd. This allows moving from imperative user descriptions in RPM to
>    declarative descriptions.
> 
>    The UID/GID for a user/group to be created can either be chosen dynamic,
>    or fixed, or be read from the owner of a file in the file system, in
>    order to support reconstructing the correct IDs for files that shall be
>    owned by them.
> 
>    This also adds a minimal user definition file, that should be
>    sufficient for most basic systems. Distributions are expected to patch
>    these files and augment the contents, for example with fixed UIDs for
>    the users where that's necessary.
> 
> 
> """"
> 
> Best Regards,
> Chen Qi
>
Martin Jansa - Aug. 13, 2014, 4:53 p.m.
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@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@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@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@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@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@lists.openembedded.org
> >> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>

Patch

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@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@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@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@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 \