From ba42683e9afd8f3195d2c9659bb5f9f368ea0560 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Tue, 18 Oct 2016 23:41:50 +0300 Subject: [PATCH] libselinux: Fix ARM build failure Avoid this warning (which is in turn an error via -Werror): ```` avc_internal.c: In function 'avc_netlink_receive': avc_internal.c:105:25: error: cast increases required alignment of target type [-Werror=cast-align] struct nlmsghdr *nlh = (struct nlmsghdr *)buf; ^ ```` The code allocates abuffer with "__attribute__ ((aligned))", then passes it via a 'char*' parameter, which is then finally cast, causing the warning. So the code is ok but compiler is not smart enough to see it. It seems that -Wcast-align is a no-op on x86, so this shows up on ARM only. --- pkgs/os-specific/linux/libselinux/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/libselinux/default.nix b/pkgs/os-specific/linux/libselinux/default.nix index 1327a349474d..c7da0fcca2a9 100644 --- a/pkgs/os-specific/linux/libselinux/default.nix +++ b/pkgs/os-specific/linux/libselinux/default.nix @@ -19,7 +19,13 @@ stdenv.mkDerivation rec { buildInputs = [ pkgconfig libsepol pcre ] ++ optionals enablePython [ swig python ]; - NIX_CFLAGS_COMPILE = "-fstack-protector-all -std=gnu89"; + # Avoid this false warning: + # avc_internal.c: In function 'avc_netlink_receive': + # avc_internal.c:105:25: error: cast increases required alignment of target type [-Werror=cast-align] + # struct nlmsghdr *nlh = (struct nlmsghdr *)buf; + # ^ + + NIX_CFLAGS_COMPILE = "-std=gnu89 -Wno-error=cast-align"; # Unreleased upstream patch that fixes Python package issue arising # from recent SWIG changes.