aboutsummaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
authorGravatar Sergio Prado <sergio.prado@e-labworks.com>2015-12-01 22:58:28 -0200
committerGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-12-17 22:02:27 +0100
commitfa6473729cf868dff232dfbc9674a168cc3f9b97 (patch)
tree72ad38bb2ba13aa0151f4683aa6983b4408d3731 /package
parent1a886a9a25446c04371f5698ae34d9cb7b12c5fa (diff)
downloadbuildroot-fa6473729cf868dff232dfbc9674a168cc3f9b97.tar.gz
buildroot-fa6473729cf868dff232dfbc9674a168cc3f9b97.tar.bz2
musl: add a sys/queue.h implementation
Musl does not provide a 'sys/queue.h' implementation, and this has been a problem for packages that depend on it. So lets create a package called netbsd-queue that will install a 'sys/queue.h' in the staging directory when enabled, based on the NetBSD implementation. Musl toolchain and external toolchain packages will depend on this package, so that 'sys/queue.h' will be always installed when compiling with a musl based toolchain. Tested on ARM and x86 in the following cases: - Buildroot musl toolchain. - External musl toolchain without 'sys/queue.h'. - External musl toolchain with 'sys/queue.h'. Fixes: http://autobuild.buildroot.net/results/24bad2d06ab40024dacf136bee722072d587f84e And possibly many others. Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'package')
-rw-r--r--package/musl/musl.mk5
-rw-r--r--package/netbsd-queue/netbsd-queue.hash2
-rw-r--r--package/netbsd-queue/netbsd-queue.mk23
3 files changed, 30 insertions, 0 deletions
diff --git a/package/musl/musl.mk b/package/musl/musl.mk
index 6fdcc73122..2cc6699a35 100644
--- a/package/musl/musl.mk
+++ b/package/musl/musl.mk
@@ -13,6 +13,11 @@ MUSL_LICENSE_FILES = COPYRIGHT
# cross-compiler and the kernel headers
MUSL_DEPENDENCIES = host-gcc-initial linux-headers
+# musl does not provide a sys/queue.h implementation, so add the
+# netbsd-queue package that will install a sys/queue.h file in the
+# staging directory based on the NetBSD implementation.
+MUSL_DEPENDENCIES += netbsd-queue
+
# musl is part of the toolchain so disable the toolchain dependency
MUSL_ADD_TOOLCHAIN_DEPENDENCY = NO
diff --git a/package/netbsd-queue/netbsd-queue.hash b/package/netbsd-queue/netbsd-queue.hash
new file mode 100644
index 0000000000..f8e2a6c598
--- /dev/null
+++ b/package/netbsd-queue/netbsd-queue.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 c13407edd0e33be73cae72514cb234f8612e1c0e54401c9448daffd3a240158b queue.h?rev=1.70
diff --git a/package/netbsd-queue/netbsd-queue.mk b/package/netbsd-queue/netbsd-queue.mk
new file mode 100644
index 0000000000..0f486fa258
--- /dev/null
+++ b/package/netbsd-queue/netbsd-queue.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# netbsd-queue
+#
+################################################################################
+
+NETBSD_QUEUE_VERSION = 1.70
+NETBSD_QUEUE_SITE = http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys
+NETBSD_QUEUE_SOURCE = queue.h?rev=$(NETBSD_QUEUE_VERSION)
+NETBSD_QUEUE_LICENSE = BSD-3c
+
+NETBSD_QUEUE_INSTALL_STAGING = YES
+
+define NETBSD_QUEUE_EXTRACT_CMDS
+ cp $(DL_DIR)/$(NETBSD_QUEUE_SOURCE) $(@D)/queue.h
+endef
+
+define NETBSD_QUEUE_INSTALL_STAGING_CMDS
+ $(INSTALL) -D -m 0644 $(@D)/queue.h \
+ $(STAGING_DIR)/usr/include/sys/queue.h
+endef
+
+$(eval $(generic-package))