From ada707b4e1e0959acd292577c0a4f423a03e308c Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 4 Aug 2012 20:05:33 +0000 Subject: systemd: Use cross cpp While building for non x86 arch (ppc) found that build was using host's cpp which was not generating exact syscall list for ppc since it was using the include files from host With this patch will use $(CPP) instead of hardcoding cpp in makefile.am and then set CPP properly in recipe Fixes build failures on cross builds Signed-off-by: Khem Raj Signed-off-by: Koen Kooi --- .../systemd/systemd/use-cross-cpp.patch | 30 ++++++++++++++++++++++ meta-systemd/recipes-core/systemd/systemd_git.bb | 2 ++ 2 files changed, 32 insertions(+) create mode 100644 meta-systemd/recipes-core/systemd/systemd/use-cross-cpp.patch diff --git a/meta-systemd/recipes-core/systemd/systemd/use-cross-cpp.patch b/meta-systemd/recipes-core/systemd/systemd/use-cross-cpp.patch new file mode 100644 index 0000000000..8a4371ec76 --- /dev/null +++ b/meta-systemd/recipes-core/systemd/systemd/use-cross-cpp.patch @@ -0,0 +1,30 @@ +hardcoding cpp does not work when cross compiling systemd. +since it will use the include headers from host system and +syscalls are different for different architectures. + +Signed-off-by: Khem Raj + +Upstream-Status: Pending + +Index: systemd-187/Makefile.am +=================================================================== +--- systemd-187.orig/Makefile.am 2012-07-29 16:39:57.628405921 -0700 ++++ systemd-187/Makefile.am 2012-07-29 16:40:37.248405921 -0700 +@@ -1026,7 +1026,7 @@ + src/core/syscall-to-name.h + + src/core/syscall-list.txt: Makefile +- $(AM_V_GEN)cpp $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include sys/syscall.h < /dev/null | $(AWK) '/^#define[ \t]+__NR_[^ ]+[ \t]+[0-9]/ { sub(/__NR_/, "", $$2); print $$2; }' > $@ ++ $(AM_V_GEN)$(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include sys/syscall.h < /dev/null | $(AWK) '/^#define[ \t]+__NR_[^ ]+[ \t]+[0-9]/ { sub(/__NR_/, "", $$2); print $$2; }' > $@ + + src/core/syscall-from-name.gperf: src/core/syscall-list.txt Makefile + $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct syscall_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, __NR_%s\n", $$1, $$1 }' < $< > $@ +@@ -2199,7 +2199,7 @@ + + src/udev/keymap/keys.txt: Makefile + $(AM_V_at)mkdir -p src/udev/keymap +- $(AM_V_GEN)cpp $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include linux/input.h < /dev/null | $(AWK) '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@ ++ $(AM_V_GEN)$(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include linux/input.h < /dev/null | $(AWK) '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@ + + src/udev/keymap/keys-from-name.gperf: src/udev/keymap/keys.txt Makefile + $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print $$1 ", " $$1 }' < $< > $@ diff --git a/meta-systemd/recipes-core/systemd/systemd_git.bb b/meta-systemd/recipes-core/systemd/systemd_git.bb index 5d1c28b319..b1cc9c3941 100644 --- a/meta-systemd/recipes-core/systemd/systemd_git.bb +++ b/meta-systemd/recipes-core/systemd/systemd_git.bb @@ -27,6 +27,7 @@ SRCREV = "3fd89536883ea9e24e69f28de0d11cd7cffb42ce" SRC_URI = "git://anongit.freedesktop.org/systemd/systemd;protocol=git \ file://use-rootlibdir.patch \ + file://use-cross-cpp.patch \ file://gtk-doc.make \ file://touchscreen.rules \ file://modprobe.rules \ @@ -62,6 +63,7 @@ EXTRA_OECONF = " --with-distro=${SYSTEMDDISTRO} \ # There's no docbook-xsl-native, so for the xsltproc check to false do_configure_prepend() { + export CPP="${HOST_PREFIX}cpp ${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" sed -i /xsltproc/d configure.ac cp ${WORKDIR}/gtk-doc.make ${S}/docs/ -- cgit 1.2.3-korg