Skip to contentSkip to conversation

musl: add a sys/queue.h implementation

PATCH New Sergio Prado 5 participants 10 messages Nov 30, 2015 – Dec 1, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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 sys-queue that will install 'sys/queue.h' in the staging directory when enabled.

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.

---
 package/musl/musl.mk                               |   5 +
 package/sys-queue/Config.in                        |   8 +
 package/sys-queue/queue.h                          | 846 +++++++++++++++++++++
 package/sys-queue/sys-queue.mk                     |  23 +
 toolchain/toolchain-external/toolchain-external.mk |   7 +
 5 files changed, 889 insertions(+)
 create mode 100644 package/sys-queue/Config.in
 create mode 100644 package/sys-queue/queue.h
 create mode 100644 package/sys-queue/sys-queue.mk
package/musl/musl.mk +5 -0
index 6fdcc7312288..45843e4893c6 100644
@@ -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
+# sys-queue package that will install a sys/queue.h file in the
+# staging directory based on the NetBSD implementation.
+MUSL_DEPENDENCIES += sys-queue
+
 # musl is part of the toolchain so disable the toolchain dependency
 MUSL_ADD_TOOLCHAIN_DEPENDENCY = NO
 
package/sys-queue/Config.in new file +8 -0
new file mode 100644
index 000000000000..edc6610f6e65
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_SYS_QUEUE
+	bool "sys/queue.h support"
+	help
+	  Musl does not provide a 'sys/queue.h' implementation, and this would
+	  be a problem for packages that depend on it.
+
+	  This package provides an implementation of 'sys/queue.h', based on 
+	  the NetBSD implementation.
package/sys-queue/queue.h new file +846 -0

846 lines not on this page · raw message

package/sys-queue/sys-queue.mk new file +23 -0
new file mode 100644
index 000000000000..053ef8fd9e0d
@@ -0,0 +1,23 @@
+################################################################################
+#
+# sys-queue
+#
+################################################################################
+
+# source included in buildroot
+SYS_QUEUE_SOURCE =
+SYS_QUEUE_VERSION = 1.70
+
+SYS_QUEUE_LICENSE = BSD
+SYS_QUEUE_LICENSE_FILES = queue.h
+
+SYS_QUEUE_INSTALL_STAGING = YES
+
+define SYS_QUEUE_INSTALL_STAGING_CMDS
+	if [ ! -f $(STAGING_DIR)/usr/include/sys/queue.h ]; then \
+		$(INSTALL) -D -m 0644 package/sys-queue/queue.h \
+			$(STAGING_DIR)/usr/include/sys/queue.h; \
+	fi
+endef
+
+$(eval $(generic-package))
toolchain/toolchain-external/toolchain-external.mk +7 -0
index 613ce506608b..6b7d8021fe85 100644
@@ -237,6 +237,13 @@ TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float
 TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_SOFTFLOAT=1
 endif
 
+# musl does not provide a sys/queue.h implementation, so add the
+# sys-queue package that will install a sys/queue.h file in the
+# staging directory based on the NetBSD implementation.
+ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
+TOOLCHAIN_EXTERNAL_DEPENDENCIES += sys-queue
+endif
+
 # The Linaro ARMhf toolchain expects the libraries in
 # {/usr,}/lib/arm-linux-gnueabihf, but Buildroot copies them to
 # {/usr,}/lib, so we need to create a symbolic link.
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 musl: add a sys/queue.h implementation

Hi Sergio,

Quoted 15 lines · Sergio Prado

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 sys-queue that will install 'sys/queue.h' in the staging directory when enabled.

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'.

Quoted 6 lines

Fixes:
http://autobuild.buildroot.net/results/24bad2d06ab40024dacf136bee722072d587f84e

And possibly many others.

Thanks for working on this.

package/sys-queue/sys-queue.mk line 17

Quoted 2 lines
package/sys-queue/sys-queue.mk new file +2 -0
+define SYS_QUEUE_INSTALL_STAGING_CMDS
+	if [ ! -f $(STAGING_DIR)/usr/include/sys/queue.h ]; then \

We generally don't check for existence of files in target/staging, just overwrite them. Is there a reason to do this here? As I understand sys-queue is now a dependency of the toolchain, so if the toolchain provides sys/queue.h it will overwrite this one anyway.

package/sys-queue/sys-queue.mk line 21

Quoted 4 lines
package/sys-queue/sys-queue.mk new file +4 -0
+		$(INSTALL) -D -m 0644 package/sys-queue/queue.h \
+			$(STAGING_DIR)/usr/include/sys/queue.h; \
+	fi
+endef

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#2 lore raw

PATCH 1/1 musl: add a sys/queue.h implementation

Hi Baruch,

2015-12-01 2:38 GMT-02:00 Baruch Siach <[email protected]>:

Quoted 31 lines

Hi Sergio,

Quoted 10 lines · Sergio Prado

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 sys-queue that will install 'sys/queue.h' in the staging directory when enabled.

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.

Quoted 7 lines

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

Quoted 4 lines

And possibly many others.

Thanks for working on this.

package/sys-queue/sys-queue.mk line 17

Quoted 2 lines
package/sys-queue/sys-queue.mk new file +2 -0
+define SYS_QUEUE_INSTALL_STAGING_CMDS
+     if [ ! -f $(STAGING_DIR)/usr/include/sys/queue.h ]; then \
Quoted 7 lines

We generally don't check for existence of files in target/staging, just overwrite them. Is there a reason to do this here? As I understand sys-queue
is now a dependency of the toolchain, so if the toolchain provides sys/queue.h
it will overwrite this one anyway.

You are right. Initially, sys-queue would be installed after the external toolchain package, so this would prevents from overriding the toolchain's sys/queue.h implementation. But that's not the case anymore, so I'm OK with removing this check.

Thanks!

Quoted 6 lines

package/sys-queue/sys-queue.mk line 21

Quoted 5 lines
package/sys-queue/sys-queue.mk new file +4 -0
+             $(INSTALL) -D -m 0644 package/sys-queue/queue.h \
+                     $(STAGING_DIR)/usr/include/sys/queue.h; \
+     fi
+endef
Quoted 8 lines

baruch

--
http://baruch.siach.name/blog/ ~. .~ Tk Open
Systems =}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151201/dc644e9e/attachment.html>

#3 lore raw

PATCH 1/1 musl: add a sys/queue.h implementation

In reply to Sergio Prado

Sergio,

Quoted 3 lines · Sergio Prado
 package/musl/musl.mk                               |   5 +
 package/sys-queue/Config.in                        |   8 +
 package/sys-queue/queue.h                          | 846 +++++++++++++++++++++

Rather than bundling the queue.h file, can we download it from some location ? For example, you could use
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/queue.h?rev=1.30.

Quoted 6 lines
package/sys-queue/Config.in new file +0 -0
new file mode 100644
index 000000000000..edc6610f6e65

package/sys-queue/Config.in line 8

Quoted 8 lines
package/sys-queue/Config.in new file +8 -0
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_SYS_QUEUE
+	bool "sys/queue.h support"
+	help
+	  Musl does not provide a 'sys/queue.h' implementation, and this would
+	  be a problem for packages that depend on it.
+
+	  This package provides an implementation of 'sys/queue.h', based on 
+	  the NetBSD implementation.

Do we really need this package to have a prompt? I think it could remain a hidden package, no?

Quoted 6 lines
package/sys-queue/sys-queue.mk new file +0 -0
new file mode 100644
index 000000000000..053ef8fd9e0d

package/sys-queue/sys-queue.mk line 9

Quoted 9 lines
package/sys-queue/sys-queue.mk new file +9 -0
@@ -0,0 +1,23 @@
+################################################################################
+#
+# sys-queue
+#
+################################################################################
+
+# source included in buildroot
+SYS_QUEUE_SOURCE =
+SYS_QUEUE_VERSION = 1.70

Where is this version coming from ?

package/sys-queue/sys-queue.mk line 11

Quoted 2 lines
package/sys-queue/sys-queue.mk new file +2 -0
+
+SYS_QUEUE_LICENSE = BSD

BSD-3c

package/sys-queue/sys-queue.mk line 21

Quoted 10 lines
package/sys-queue/sys-queue.mk new file +10 -0
+SYS_QUEUE_LICENSE_FILES = queue.h
+
+SYS_QUEUE_INSTALL_STAGING = YES
+
+define SYS_QUEUE_INSTALL_STAGING_CMDS
+	if [ ! -f $(STAGING_DIR)/usr/include/sys/queue.h ]; then \
+		$(INSTALL) -D -m 0644 package/sys-queue/queue.h \
+			$(STAGING_DIR)/usr/include/sys/queue.h; \
+	fi
+endef

As Baruch said, please install unconditionally.

Otherwise, looks good to me.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

PATCH 1/1 musl: add a sys/queue.h implementation

Hello Thomas,

2015-12-01 8:29 GMT-02:00 Thomas Petazzoni <
[email protected]>:

Quoted 4 lines

Sergio,

On Mon, 30 Nov 2015 21:02:15 -0200, Sergio Prado wrote:

Quoted 9 lines
Quoted 3 lines
 package/musl/musl.mk                               |   5 +
 package/sys-queue/Config.in                        |   8 +
 package/sys-queue/queue.h                          | 846

+++++++++++++++++++++

Rather than bundling the queue.h file, can we download it from some location ? For example, you could use
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/queue.h?rev=1.30.

One of my first questions was if we should keep queue.h inside Buildroot or download it from somewhere. And you say we could keep it inside Buildroot, and point me to package/makedevs/ that has a source code inside it. But I can change it if that's a problem.

Quoted 11 lines

package/sys-queue/Config.in line 4

Quoted 10 lines
package/sys-queue/Config.in new file +4 -0
new file mode 100644
index 000000000000..edc6610f6e65
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_SYS_QUEUE
+     bool "sys/queue.h support"
+     help
+       Musl does not provide a 'sys/queue.h' implementation, and this

would

Quoted 9 lines

package/sys-queue/Config.in

Quoted 3 lines
package/sys-queue/Config.in new file +3 -0
+       be a problem for packages that depend on it.
+
+       This package provides an implementation of 'sys/queue.h', based

on

package/sys-queue/Config.in line 8

Quoted 1 line
package/sys-queue/Config.in new file +1 -0
+       the NetBSD implementation.

Do we really need this package to have a prompt? I think it could remain a hidden package, no?

Since it is not included in the package/Config.in, it is still hidden, right? At least I can't find it when searching inside menuconfig. I created this file just as a matter of documentation, but I can remove if it is not necessary.

Quoted 15 lines

package/sys-queue/

Quoted 2 lines
package/sys-queue/ renamed from package/sys-queue/sys-queue.mk +0 -0

sys-queue.mk

package/sys-queue/sys-queue.mk

Quoted 6 lines

new file mode 100644
index 000000000000..053ef8fd9e0d

package/sys-queue/sys-queue.mk new file +0 -0
@@ -0,0 +1,23 @@

+################################################################################

package/sys-queue/sys-queue.mk line 4

Quoted 4 lines
package/sys-queue/sys-queue.mk new file +3 -0
+#
+# sys-queue
+#

+################################################################################

Quoted 7 lines

package/sys-queue/sys-queue.mk line 9

Quoted 4 lines
package/sys-queue/sys-queue.mk new file +4 -0
+
+# source included in buildroot
+SYS_QUEUE_SOURCE =
+SYS_QUEUE_VERSION = 1.70

Where is this version coming from ?

From the source code.
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/queue.h?rev=1.70

Quoted 6 lines

package/sys-queue/sys-queue.mk line 11

Quoted 3 lines
package/sys-queue/sys-queue.mk new file +2 -0
+
+SYS_QUEUE_LICENSE = BSD

BSD-3c

Quoted 13 lines

package/sys-queue/sys-queue.mk line 21

Quoted 10 lines
package/sys-queue/sys-queue.mk new file +10 -0
+SYS_QUEUE_LICENSE_FILES = queue.h
+
+SYS_QUEUE_INSTALL_STAGING = YES
+
+define SYS_QUEUE_INSTALL_STAGING_CMDS
+     if [ ! -f $(STAGING_DIR)/usr/include/sys/queue.h ]; then \
+             $(INSTALL) -D -m 0644 package/sys-queue/queue.h \
+                     $(STAGING_DIR)/usr/include/sys/queue.h; \
+     fi
+endef

As Baruch said, please install unconditionally.

OK.

Quoted 5 lines

Otherwise, looks good to me.

Thanks!

Thanks!

Quoted 7 lines

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151201/7ac828e0/attachment.html>

#5 lore raw

PATCH 1/1 musl: add a sys/queue.h implementation

Sergio,

Quoted 6 lines · Sergio Prado
Quoted 3 lines

Rather than bundling the queue.h file, can we download it from some location ? For example, you could use
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/queue.h?rev=1.30.

One of my first questions was if we should keep queue.h inside Buildroot or download it from somewhere. And you say we could keep it inside Buildroot,

Hum, are you sure your question was whether we should download it or keep it inside Buildroot? I think your question was more "is it possible to keep it inside Buildroot?", to which I answered yes, indeed :-)

But anyway, doesn't really matter. I personally believe it's better to download stuff when we can rather than bundling it. Hopefully others will agree with me.

Quoted 7 lines
Quoted 2 lines

Do we really need this package to have a prompt? I think it could remain a hidden package, no?

Since it is not included in the package/Config.in, it is still hidden, right? At least I can't find it when searching inside menuconfig. I created this file just as a matter of documentation, but I can remove if it is not necessary.

A Config.in that is not included anywhere is not useful at all, so it shouldn't exist.

Quoted 8 lines
Quoted 5 lines

package/sys-queue/sys-queue.mk line 9

Quoted 3 lines
package/sys-queue/sys-queue.mk new file +3 -0
+# source included in buildroot
+SYS_QUEUE_SOURCE =
+SYS_QUEUE_VERSION = 1.70

Where is this version coming from ?

From the source code.
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/queue.h?rev=1.70

Alright, so it can be used in <pkg>_SOURCE. You will have to overwrite the EXTRACT_CMDS however, because it's not a tarball. See jquery.mk for example.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#6 lore raw

PATCH 1/1 musl: add a sys/queue.h implementation

2015-12-01 9:00 GMT-02:00 Thomas Petazzoni <
[email protected]>:

Quoted 13 lines

Sergio,

Quoted 5 lines · Sergio Prado
Quoted 3 lines

Rather than bundling the queue.h file, can we download it from some location ? For example, you could use
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/queue.h?rev=1.30.

One of my first questions was if we should keep queue.h inside Buildroot

or

Quoted 1 line

download it from somewhere. And you say we could keep it inside

Buildroot,

Quoted 9 lines

Hum, are you sure your question was whether we should download it or keep it inside Buildroot? I think your question was more "is it possible to keep it inside Buildroot?", to which I answered yes, indeed :-)

But anyway, doesn't really matter. I personally believe it's better to download stuff when we can rather than bundling it. Hopefully others will agree with me.

OK. I'll do it.

Quoted 7 lines
Quoted 7 lines
Quoted 4 lines

Do we really need this package to have a prompt? I think it could remain a hidden package, no?

Since it is not included in the package/Config.in, it is still hidden, right? At least I can't find it when searching inside menuconfig. I

Quoted 8 lines

created

Quoted 1 line

this file just as a matter of documentation, but I can remove if it is

not

Quoted 1 line

necessary.

A Config.in that is not included anywhere is not useful at all, so it shouldn't exist.

Right.

Quoted 7 lines
Quoted 7 lines
Quoted 6 lines

package/sys-queue/sys-queue.mk line 9

Quoted 4 lines
package/sys-queue/sys-queue.mk new file +3 -0
+# source included in buildroot
+SYS_QUEUE_SOURCE =
+SYS_QUEUE_VERSION = 1.70

Where is this version coming from ?

Quoted 7 lines
Quoted 2 lines

From the source code.
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/queue.h?rev=1.70

Alright, so it can be used in <pkg>_SOURCE. You will have to overwrite the EXTRACT_CMDS however, because it's not a tarball. See jquery.mk for example.

OK, thanks.

Quoted 7 lines

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151201/e2357a96/attachment.html>

#7 lore raw

PATCH 1/1 musl: add a sys/queue.h implementation

In reply to Sergio Prado

Hi all,

Quoted 4 lines · Sergio Prado

Musl does not provide a 'sys/queue.h' implementation, and this has been
a problem for packages that depend on it.

Quoted 9 lines

So lets create a package called sys-queue that will install 'sys/queue.h'
in the staging directory when enabled.

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.

Maybe we can handle this similiar to the gettext integration and define a BR2_NEEDS_SYS_QUEUE for toolchains not providing a queue library.

Packages that need a queue implementation can use 'select BR2_PACKAGE_NETBSD_QUEUE if BR2_NEEDS_SYS_QUEUE' in their Config.in file and add a '$(if $(BR2_NEEDS_SYS_QUEUE),netbsd-queue)' to their dependencies in the .mk file.?

This means we have a package 'netbsd-queue' with the sources of the NetBSD project you proposed. Note, there exists more implementations of the queue library, e.g. OpenBSD, Apple, so I would prefer to use the name of the implementation as there is no *the* sys/queue.h.

Furthermore, we allow a package to use, for whatever reasons, to select a different queue implementation.

On the other hand, maybe it is to confusing for the package maintainer to have different options for a queue library, so we just provide a default package named 'sys-queue' using the sources of NetBSD?

Best regards
J?rg Krause

#8 lore raw

PATCH 1/1 musl: add a sys/queue.h implementation

Quoted 17 lines · J?rg Krause

Hi all,

Quoted 4 lines · Sergio Prado

Musl does not provide a 'sys/queue.h' implementation, and this has been
a problem for packages that depend on it.

Quoted 9 lines

So lets create a package called sys-queue that will install 'sys/queue.h'
in the staging directory when enabled.

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.

Quoted 7 lines

Maybe we can handle this similiar to the gettext integration and define a BR2_NEEDS_SYS_QUEUE for toolchains not providing a queue library.

Packages that need a queue implementation can use 'select BR2_PACKAGE_NETBSD_QUEUE if BR2_NEEDS_SYS_QUEUE' in their Config.in file and add a '$(if $(BR2_NEEDS_SYS_QUEUE),netbsd-queue)' to their dependencies in the .mk file.

This would add quite a lot of complexity. Unconditionally installing
sys/queue.h for musl libraries is really a lot simpler.

Quoted 5 lines

This means we have a package 'netbsd-queue' with the sources of the NetBSD project you proposed. Note, there exists more implementations of the queue library, e.g. OpenBSD, Apple, so I would prefer to use the name of the implementation as there is no *the* sys/queue.h.

That's a good idea. Not that I expect we'll ever carry another queue
implementation (actually we already have two: uClibc and glibc).

Regards,
Arnout

Quoted 15 lines

Furthermore, we allow a package to use, for whatever reasons, to select a different queue implementation.

On the other hand, maybe it is to confusing for the package maintainer to have different options for a queue library, so we just provide a default package named 'sys-queue' using the sources of NetBSD?

Best regards
J?rg Krause
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#9 lore raw

PATCH 1/1 musl: add a sys/queue.h implementation

2015-12-01 18:34 GMT-02:00 Arnout Vandecappelle <[email protected]>:

Quoted 30 lines · J?rg Krause
Quoted 17 lines

Hi all,

Quoted 4 lines · Sergio Prado

Musl does not provide a 'sys/queue.h' implementation, and this has been
a problem for packages that depend on it.

Quoted 9 lines

So lets create a package called sys-queue that will install 'sys/queue.h'
in the staging directory when enabled.

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.

Quoted 7 lines

Maybe we can handle this similiar to the gettext integration and define a BR2_NEEDS_SYS_QUEUE for toolchains not providing a queue library.

Packages that need a queue implementation can use 'select BR2_PACKAGE_NETBSD_QUEUE if BR2_NEEDS_SYS_QUEUE' in their Config.in file and add a '$(if $(BR2_NEEDS_SYS_QUEUE),netbsd-queue)' to their dependencies in the .mk file.

This would add quite a lot of complexity. Unconditionally installing
sys/queue.h for musl libraries is really a lot simpler.

Quoted 1 line
Quoted 8 lines
Quoted 4 lines

This means we have a package 'netbsd-queue' with the sources of the NetBSD project you proposed. Note, there exists more implementations of the queue library, e.g. OpenBSD, Apple, so I would prefer to use the name of the implementation as there is no *the* sys/queue.h.

That's a good idea. Not that I expect we'll ever carry another queue
implementation (actually we already have two: uClibc and glibc).

I liked the idea. I'll rename the package to netbsd-queue.

Quoted 20 lines

Regards,
Arnout

Quoted 8 lines

Furthermore, we allow a package to use, for whatever reasons, to select a different queue implementation.

On the other hand, maybe it is to confusing for the package maintainer to have different options for a queue library, so we just provide a default package named 'sys-queue' using the sources of NetBSD?

Quoted 7 lines

Best regards
J?rg Krause
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Quoted 8 lines

--

Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151201/59ac6a1a/attachment.html>