aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking
diff options
context:
space:
mode:
authorRoy Li <rongqing.li@windriver.com>2016-01-20 14:12:17 +0800
committerJoe MacDonald <joe_macdonald@mentor.com>2016-02-29 16:23:35 -0500
commite4dee444c07d01f99d85d9419bd31be08a35f805 (patch)
treeac1e2b8ae52ebf98798d2e925bee38efc383065c /meta-networking
parent038a0031a4f73ffad2a165134ee35fa61748a244 (diff)
downloadmeta-openembedded-contrib-e4dee444c07d01f99d85d9419bd31be08a35f805.tar.gz
ebtables: enable KERNEL_64_USERSPACE_32 for powerpc
Enable KERNEL_64_USERSPACE_32 when powerpc is using 64bit kernel and 32bit userspace. Some structs, which is used to communicate between user space and kernel, have the alignment issue on 64bit kernel with 32 bit userspace. To fix this issue, ebtables redefines these struct, not use the kernel(sysroot) include/uapi/linux/netfilter_bridge/ebtables.h, like ebt_entry_target: The kernel's: struct ebt_entry_target { union { char name[EBT_FUNCTION_MAXNAMELEN]; struct xt_target *target; } u; /* size of data */ unsigned int target_size; unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); }; The ebtables: struct ebt_entry_target { union { char name[EBT_FUNCTION_MAXNAMELEN]; struct ebt_target *target; } u; /* size of data */ unsigned int target_size; |#ifdef KERNEL_64_USERSPACE_32 unsigned int pad; |#endif unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); }; If the MLPREFIX of package matchs "lib.?32", the 32bit multilib package on 64bit kernel is being built, then enable KERNEL_64_USERSPACE_32. Signed-off-by: Roy Li <rongqing.li@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
Diffstat (limited to 'meta-networking')
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb13
1 files changed, 13 insertions, 0 deletions
diff --git a/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb b/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
index 2e49dab332..e9b726c5fb 100644
--- a/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
+++ b/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
@@ -27,6 +27,19 @@ S = "${WORKDIR}/ebtables-v${PV}"
inherit update-rc.d systemd
+python __anonymous () {
+ import re
+
+ karch = d.getVar('KARCH', True)
+ multilib = d.getVar('MLPREFIX', True)
+
+ if multilib and karch == 'powerpc64':
+ searchstr = "lib.?32"
+ reg = re.compile(searchstr)
+ if reg.search(multilib):
+ d.appendVar('CFLAGS' ,' -DKERNEL_64_USERSPACE_32 -DEBT_MIN_ALIGN=8')
+}
+
EXTRA_OEMAKE = " \
BINDIR=${base_sbindir} \
MANDIR=${mandir} \