[Buildroot] [PATCH] package/libcap: needs headers >= 3.0

Yann E. MORIN yann.morin.1998 at free.fr
Sun Nov 16 11:04:47 UTC 2014


libcap requires XATTR_NAME_CAPS, which was introduced in Linux 2.6.24.

However, we have some toolchains, liek the CodeSourcery PowerPC 2011.03,
that is missing those defines, even though it uses headers from Linux
2.6.38.

Since there is no perfect way to avoid the situation, just require
headers >= 3.0 to build libcap.

Propagate the new dependency to packages that select libcap.

Fixes a lot of build failures, of which:
    http://autobuild.buildroot.net/results/e90/e909ca48ad2d1c85b19258f65e0c89a2813ac45e/
    http://autobuild.buildroot.net/results/23a/23aac9bb1cc48e5974bcf50256a16c67318f9ba2/
    http://autobuild.buildroot.net/results/597/597da58cb2fccb92d7883802c60b31264cacad08/
    http://autobuild.buildroot.net/results/538/538b23417c68f6c8c0c8c92dfc0e8ed314bac01b/
    ...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Cc: Gustavo Zacarias <gustavo at zacarias.com.ar>
Cc: Bernd Kuhls <bernd.kuhls at t-online.de>
---
 package/cdrkit/Config.in | 5 +++--
 package/libcap/Config.in | 4 ++++
 package/lxc/Config.in    | 6 ++++--
 package/squid/Config.in  | 6 ++++--
 4 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/package/cdrkit/Config.in b/package/cdrkit/Config.in
index 9ba5dbf..81c5c01 100644
--- a/package/cdrkit/Config.in
+++ b/package/cdrkit/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_CDRKIT
 	select BR2_PACKAGE_LIBCAP
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_MMU # fork
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libcap
 	bool "cdrkit"
 	help
 	  cdrkit is a suite of programs for recording CDs and DVDs,
@@ -12,6 +13,6 @@ config BR2_PACKAGE_CDRKIT
 
 	  http://www.cdrkit.org/
 
-comment "cdrkit needs a toolchain w/ largefile"
+comment "cdrkit needs a toolchain w/ largefile, headers >= 3.0"
 	depends on BR2_USE_MMU
-	depends on !BR2_LARGEFILE
+	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
diff --git a/package/libcap/Config.in b/package/libcap/Config.in
index 5b0c827..2e3c8d9 100644
--- a/package/libcap/Config.in
+++ b/package/libcap/Config.in
@@ -1,5 +1,6 @@
 config BR2_PACKAGE_LIBCAP
 	bool "libcap"
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # XATTR_NAME_CAPS
 	help
 	  This library implements the user-space interfaces to the
 	  POSIX 1003.1e capabilities available in Linux kernels. These
@@ -22,3 +23,6 @@ config BR2_PACKAGE_LIBCAP_TOOLS
 	  CONFIG_EXT2_FS_XATTR and CONFIG_EXT2_FS_SECURITY for ext2).
 
 endif
+
+comment "libcap needs a toolchain w/ headers >= 3.0"
+	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
diff --git a/package/lxc/Config.in b/package/lxc/Config.in
index 3eae64a..cf85712 100644
--- a/package/lxc/Config.in
+++ b/package/lxc/Config.in
@@ -7,6 +7,7 @@ config BR2_PACKAGE_LXC
 	depends on BR2_USE_MMU # fork()
 	depends on !BR2_avr32 # no timerfd
 	depends on !BR2_nios2 # the toolchain doesn't support setns syscall
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libcap
 	help
 	  Linux Containers (LXC), provides the ability to group and isolate
 	  of a set of processes in a jail by virtualizing and accounting the
@@ -14,8 +15,9 @@ config BR2_PACKAGE_LXC
 
 	  https://linuxcontainers.org/
 
-comment "lxc needs a toolchain w/ IPv6, threads, largefile"
+comment "lxc needs a toolchain w/ IPv6, threads, largefile, headers >= 3.0"
 	depends on BR2_USE_MMU
 	depends on !BR2_avr32 # no timerfd
 	depends on !BR2_nios2 # the toolchain doesn't support setns syscall
-	depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_LARGEFILE
+	depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS \
+                || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
diff --git a/package/squid/Config.in b/package/squid/Config.in
index ad9fab5..ce38371 100644
--- a/package/squid/Config.in
+++ b/package/squid/Config.in
@@ -1,7 +1,8 @@
-comment "squid needs a toolchain w/ C++, IPv6"
+comment "squid needs a toolchain w/ C++, IPv6, headers >= 3.0"
 	depends on BR2_USE_MMU
 	depends on !BR2_avr32 # toolchain too old
-	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_INET_IPV6
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_INET_IPV6 \
+        || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
 
 config BR2_PACKAGE_SQUID
 	bool "squid"
@@ -9,6 +10,7 @@ config BR2_PACKAGE_SQUID
 	depends on BR2_INET_IPV6
 	# needs fork()
 	depends on BR2_USE_MMU
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libcap
 	select BR2_PACKAGE_LIBCAP
 	help
 	  Caching proxy for the Web supporting HTTP, HTTPS, FTP, and more.
-- 
1.9.1



More information about the buildroot mailing list