Skip to contentSkip to conversation

musl: add compatibility cdefs.h header (branch yem/cdefs)

PATCH Superseded Yann E. MORIN 4 participants 24 messages Aug 12, 2016 – Aug 14, 2016

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover musl: add compatibility cdefs.h header (branch yem/cdefs)

Hello All!

This series is an ateempt at quiescing, once and for all, all the build failures under musl, due to missing non-standard header cdefs.h.

sys/cdefs.h is a non-standrad header, originating from glibc. Its goal is two fold:

- first, it hides away legacy compiler specifities by providing macros to declare prototypes and so on; this is *really* legacy, and targets pre-ANSI compilers (that is, I was already born, but had no idea what ANSI was, nor what a compiler was, for that matters);

- second, it provides macros to begin and end C declarations in headers that can be included from C++ code. This is so trivial that the need for a macro is not even obvious to begin with.

Of course, this header is totally non-standard, and the macros it defines are definitely non-standard as well. However, it has started to be used in more and more packages as time passed, so that, decades later, its use is so widespread that eradicating it is an impossible task.

But then enters musl, a strict standard-compliant C library, with as few non-standard externsions as possible (if at all?). musl does not provide a sys/cdefs.h headers, so a lot of code breaks with musl.

To make matters more intractable, sys/cdefs.h is included from inside many other headers from glibc, making its macros available to a wide audience without realizing they need a non-standard header.

Fixing all those bodies of code is nigh impossible, so instead we provide a strictly-minimal sys/cdefs.h, that defines only the three strictly-required macros:

- __P() to declare function prototypes;
- __BEGIN_DECLS and __END_DECLS to enclose C declarations.

When (if!) more are needed, they can be added later.

The basic idea was suggested by Thomas P. on IRC. Thanks! :-)

This then allows us to drop quite a few patches that were removing use of cdefs.h. However, including sys/cdefs.h has been added to two packages that were relying on other glibc headers to include it.

Regards,
Yann E. MORIN.

The following changes since commit f0e1381ef91ac85ad4fc9ab3db30057279ffe7c5

toolchain: Bump ARC tools to arc-2016.09-eng008 (2016-08-11 15:07:06 +0200)

are available in the git repository at:

git://git.buildroot.org/~ymorin/git/buildroot.git

for you to fetch changes up to d4d54fc8edf86a9c69e7f1593004e698a4614bbb

package/qlibc: drop a musl-compatibility patch (2016-08-12 22:28:57 +0200)

----------------------------------------------------------------
Yann E. MORIN (8):
package/netbsd-compat-headers: provide compatibility headers not in musl package/rpcbind: include cdefs.h where needed package/aircrack-ng: drop a musl-compatibility patch package/android-tools: drop musl-compatibility cdefs patching out package/bcusdk: drop a musl-compatibility patch package/libsepol: drop a musl-compatibility patch package/linknx: drop a musl-compatibility patch package/qlibc: drop a musl-compatibility patch

 package/Config.in                                  |    2 +-
 package/aircrack-ng/0004-fix-musl-build.patch      |   53 -
 .../0004-Fix-build-issue-with-musl.patch           |  181 +---
 ...build.patch => 0006-fix-big-endian-build.patch} |    0
 .../0007-include-cdefs-h-when-needed.patch         |   41 +
 ...t-use-the-non-standard-sys-cdefs.h-header.patch |   48 -
 ...d_set-requires-inclusion-of-sys-select.h.patch} |    0
 package/libsepol/0005-replace-cdefs.patch          | 1074 --------------------
 package/linknx/0002-musl-cdefs.patch               |   37 -
 package/musl-compat-headers/Config.in              |    2 +
 package/musl-compat-headers/cdefs.h                |   40 +
 .../musl-compat-headers.hash}                      |    0
 package/musl-compat-headers/musl-compat-headers.mk |   29 +
 package/musl/Config.in                             |    3 +-
 package/musl/musl.mk                               |   10 +-
 package/netbsd-queue/Config.in                     |    2 -
 package/netbsd-queue/netbsd-queue.mk               |   24 -
 ...l-build-by-removing-usage-of-internal-gli.patch |   59 --
 ...003-src-include-cdefs.h-for-the-__P-macro.patch |  126 +++
 toolchain/toolchain-external/Config.in             |    3 +-
 toolchain/toolchain-external/toolchain-external.mk |   10 +-
 21 files changed, 257 insertions(+), 1487 deletions(-)
 delete mode 100644 package/aircrack-ng/0004-fix-musl-build.patch
 rename package/android-tools/{0005-fix-big-endian-build.patch => 0006-fix-big-endian-build.patch} (100%)
 create mode 100644 package/android-tools/0007-include-cdefs-h-when-needed.patch
 delete mode 100644 package/bcusdk/0001-Do-not-use-the-non-standard-sys-cdefs.h-header.patch
 rename package/bcusdk/{0002-fd_set-requires-inclusion-of-sys-select.h.patch => 0001-fd_set-requires-inclusion-of-sys-select.h.patch} (100%)
 delete mode 100644 package/libsepol/0005-replace-cdefs.patch
 delete mode 100644 package/linknx/0002-musl-cdefs.patch
 create mode 100644 package/musl-compat-headers/Config.in
 create mode 100644 package/musl-compat-headers/cdefs.h
 rename package/{netbsd-queue/netbsd-queue.hash => musl-compat-headers/musl-compat-headers.hash} (100%)
 create mode 100644 package/musl-compat-headers/musl-compat-headers.mk
 delete mode 100644 package/netbsd-queue/Config.in
 delete mode 100644 package/netbsd-queue/netbsd-queue.mk
 delete mode 100644 package/qlibc/0004-md5-fix-musl-build-by-removing-usage-of-internal-gli.patch
 create mode 100644 package/rpcbind/0003-src-include-cdefs.h-for-the-__P-macro.patch
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#1 lore raw

PATCH 1/8 package/netbsd-compat-headers: provide compatibility headers not in musl

musl provides neither sys/queue.h nor sys/cdefs.h. Those two headers are however quite widely used in a lot of packages (though they should at least not use cdefs,h which is only full of mostly-legacy macros, and which is mostly an internal header of glibc and was never really meant to be exposed to, and used by packages).

But we don;t live in an ideal world, so a lot of packages break when those two headers are missing.

We already took care of sys/queue.h with the netbsd-queue package. But the need for cdefs.h is getting more and more pressing.

We rename the netbsd-queue package into musl-compat-headers, and we make it install sys/queue.h (from NetBSD) and sys/cdefs.h (a minimalist one we bundle in Buildroot). We can't use the cdefs.h from NetBSD because it includes machine-dependent headers; instead we bundle a very minimalistic one, that covers only what we need.

Cc Thomas Petazzoni <[email protected]>
---
 package/Config.in                                  |  2 +-
 package/musl-compat-headers/Config.in              |  2 ++
 package/musl-compat-headers/cdefs.h                | 40 ++++++++++++++++++++++
 .../musl-compat-headers.hash}                      |  0
 package/musl-compat-headers/musl-compat-headers.mk | 29 ++++++++++++++++
 package/musl/Config.in                             |  3 +-
 package/musl/musl.mk                               | 10 +++---
 package/netbsd-queue/Config.in                     |  2 --
 package/netbsd-queue/netbsd-queue.mk               | 24 -------------
 toolchain/toolchain-external/Config.in             |  3 +-
 toolchain/toolchain-external/toolchain-external.mk | 10 +++---
 11 files changed, 88 insertions(+), 37 deletions(-)
 create mode 100644 package/musl-compat-headers/Config.in
 create mode 100644 package/musl-compat-headers/cdefs.h
 rename package/{netbsd-queue/netbsd-queue.hash => musl-compat-headers/musl-compat-headers.hash} (100%)
 create mode 100644 package/musl-compat-headers/musl-compat-headers.mk
 delete mode 100644 package/netbsd-queue/Config.in
 delete mode 100644 package/netbsd-queue/netbsd-queue.mk
package/Config.in +1 -1
index 645fa29..1e51a45 100644
@@ -1324,7 +1324,7 @@ endif
 	source "package/mpfr/Config.in"
 	source "package/msgpack/Config.in"
 	source "package/mtdev2tuio/Config.in"
-	source "package/netbsd-queue/Config.in"
+	source "package/musl-compat-headers/Config.in"
 	source "package/openblas/Config.in"
 	source "package/orc/Config.in"
 	source "package/p11-kit/Config.in"
package/musl-compat-headers/Config.in new file +2 -0
new file mode 100644
index 0000000..c672f9c
@@ -0,0 +1,2 @@
+config BR2_PACKAGE_MUSL_COMPAT_HEADERS
+	bool
package/musl-compat-headers/cdefs.h new file +40 -0
new file mode 100644
index 0000000..0a78b8f
@@ -0,0 +1,40 @@
+/* Copyright (C) 2016 Yann E. MORI <[email protected]>
+ *
+ * This file is in the Public Domain.
+ *
+ * For jurisdictions in which the Public Domain does not exist
+ * or it is not otherwise applicable, this file is licensed CC0
+ * (Creative Commons Zero).
+ */
+
+/* This file contains definitions for non-standard macros defined by
+ * glibc, but quite commonly used in packages.
+ *
+ * Because they are non-standard, musl does not define those macros.
+ * It does not provide cdefs.h either.
+ *
+ * This file is a compatibility header written from scratch, to be
+ * installed when the C library is musl.
+ *
+ * Not all macros from the glibc's cdefs.h are available, only the
+ * most commonly used ones.
+ *
+ * Please refer to the glibc documentation and source code for
+ * explanations about those macros.
+ */
+
+#ifndef BUILDROOT_SYS_CDEFS_H
+#define BUILDROOT_SYS_CDEFS_H
+
+#undef __P
+#define __P(arg) arg
+
+#ifdef __cplusplus
+#define __BEGIN_DECLS extern "C" {
+#define __END_DECLS   }
+#else
+#define __BEGIN_DECLS
+#define __END_DECLS
+#endif
+
+#endif /* ifndef BUILDROOT_SYS_CDEFS_H */
package/musl-compat-headers/musl-compat-headers.hash renamed from package/netbsd-queue/netbsd-queue.hash +0 -0
similarity index 100%
rename from package/netbsd-queue/netbsd-queue.hash
rename to package/musl-compat-headers/musl-compat-headers.hash
package/musl-compat-headers/musl-compat-headers.mk new file +29 -0
new file mode 100644
index 0000000..0758021
@@ -0,0 +1,29 @@
+################################################################################
+#
+# musl-compat-headers
+#
+################################################################################
+
+MUSL_COMPAT_HEADERS_SITE = http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys
+MUSL_COMPAT_HEADERS_VERSION = 1.70
+MUSL_COMPAT_HEADERS_SOURCE = queue.h?rev=$(MUSL_COMPAT_HEADERS_VERSION)
+MUSL_COMPAT_HEADERS_LICENSE = BSD-3c, Public Domain or CC0
+
+MUSL_COMPAT_HEADERS_ADD_TOOLCHAIN_DEPENDENCY = NO
+
+# Only installs headers
+MUSL_COMPAT_HEADERS_INSTALL_TARGET = NO
+MUSL_COMPAT_HEADERS_INSTALL_STAGING = YES
+
+define MUSL_COMPAT_HEADERS_EXTRACT_CMDS
+	cp $(DL_DIR)/$(MUSL_COMPAT_HEADERS_SOURCE) $(@D)/queue.h
+endef
+
+define MUSL_COMPAT_HEADERS_INSTALL_STAGING_CMDS
+	$(INSTALL) -D -m 0644 $(@D)/queue.h \
+		$(STAGING_DIR)/usr/include/sys/queue.h
+	$(INSTALL) -D -m 0644 $(MUSL_COMPAT_HEADERS_PKGDIR)/cdefs.h \
+		$(STAGING_DIR)/usr/include/sys/cdefs.h
+endef
+
+$(eval $(generic-package))
package/musl/Config.in +2 -1
index c263006..18ae69d 100644
@@ -3,5 +3,6 @@ config BR2_PACKAGE_MUSL
 	depends on BR2_TOOLCHAIN_USES_MUSL
 	default y
 	select BR2_PACKAGE_LINUX_HEADERS
-	select BR2_PACKAGE_NETBSD_QUEUE
 	select BR2_TOOLCHAIN_HAS_SSP
+	# Compatibility headers: cdefs.h, queue.h
+	select BR2_PACKAGE_MUSL_COMPAT_HEADERS
package/musl/musl.mk +6 -4
index 920bbbf..f8ea377 100644
@@ -13,10 +13,12 @@ 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 does not provide an implementation for sys/queue.h or sys/cdefs.h. So,
+# add the netbsd-compat-headers package that will install those files, into
+# the staging directory:
+#   sys/queue.h:  header from NetBSD
+#   sys/cdefs.h:  minimalist header bundled in Buildroot
+MUSL_DEPENDENCIES += musl-compat-headers
 
 # musl is part of the toolchain so disable the toolchain dependency
 MUSL_ADD_TOOLCHAIN_DEPENDENCY = NO
package/netbsd-queue/Config.in deleted +0 -2
deleted file mode 100644
index 7837f4c..0000000
@@ -1,2 +0,0 @@
-config BR2_PACKAGE_NETBSD_QUEUE
-	bool
package/netbsd-queue/netbsd-queue.mk deleted +0 -24
deleted file mode 100644
index 5fd926b..0000000
@@ -1,24 +0,0 @@
-################################################################################
-#
-# 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_ADD_TOOLCHAIN_DEPENDENCY = NO
-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))
toolchain/toolchain-external/Config.in +2 -1
index f54fbee..63b7712 100644
@@ -727,7 +727,8 @@ config BR2_TOOLCHAIN_EXTERNAL_UCLIBC
 config BR2_TOOLCHAIN_EXTERNAL_MUSL
 	bool
 	select BR2_TOOLCHAIN_USES_MUSL
-	select BR2_PACKAGE_NETBSD_QUEUE
+	# Compatibility headers: cdefs.h, queue.h
+	select BR2_PACKAGE_MUSL_COMPAT_HEADERS
 
 if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
 
toolchain/toolchain-external/toolchain-external.mk +6 -4
index 29c1f36..967f022 100644
@@ -246,11 +246,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
-# netbsd-queue package that will install a sys/queue.h file in the
-# staging directory based on the NetBSD implementation.
+# musl does not provide an implementation for sys/queue.h or sys/cdefs.h. So,
+# add the netbsd-compat-headers package that will install those files, into
+# the staging directory:
+#   sys/queue.h:  header from NetBSD
+#   sys/cdefs.h:  minimalist header bundled in Buildroot
 ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
-TOOLCHAIN_EXTERNAL_DEPENDENCIES += netbsd-queue
+TOOLCHAIN_EXTERNAL_DEPENDENCIES += musl-compat-headers
 endif
 
 # The Linaro toolchain expects the libraries in
Signature · 1 line
2.7.4
#2 lore raw

PATCH 1/8 package/netbsd-compat-headers: provide compatibility headers not in musl

Quoted 12 lines · Yann E. MORIN

musl provides neither sys/queue.h nor sys/cdefs.h. Those two headers are however quite widely used in a lot of packages (though they should at least not use cdefs,h which is only full of mostly-legacy macros, and which is mostly an internal header of glibc and was never really meant to be exposed to, and used by packages).

But we don;t live in an ideal world, so a lot of packages break when those two headers are missing.

Quoted 8 lines

We already took care of sys/queue.h with the netbsd-queue package. But the need for cdefs.h is getting more and more pressing.

We rename the netbsd-queue package into musl-compat-headers, and we make it install sys/queue.h (from NetBSD) and sys/cdefs.h (a minimalist one we bundle in Buildroot). We can't use the cdefs.h from NetBSD because it includes machine-dependent headers; instead we bundle a very minimalistic one, that covers only what we need.

see here http://git.openembedded.org/openembedded-core/tree/meta/recipes-core/bsd-headers/bsd-headers
you might need some more.

Quoted 235 lines
Cc Thomas Petazzoni <[email protected]>

---

package/Config.in                                  |  2 +-
package/musl-compat-headers/Config.in              |  2 ++
package/musl-compat-headers/cdefs.h                | 40 ++++++++++++++++++++++
.../musl-compat-headers.hash}                      |  0
package/musl-compat-headers/musl-compat-headers.mk | 29 ++++++++++++++++
package/musl/Config.in                             |  3 +-
package/musl/musl.mk                               | 10 +++---
package/netbsd-queue/Config.in                     |  2 --
package/netbsd-queue/netbsd-queue.mk               | 24 -------------
toolchain/toolchain-external/Config.in             |  3 +-
toolchain/toolchain-external/toolchain-external.mk | 10 +++---
11 files changed, 88 insertions(+), 37 deletions(-)

create mode 100644 package/musl-compat-headers/Config.in
create mode 100644 package/musl-compat-headers/cdefs.h
rename package/{netbsd-queue/netbsd-queue.hash => musl-compat-headers/musl-compat-headers.hash} (100%) create mode 100644 package/musl-compat-headers/musl-compat-headers.mk
delete mode 100644 package/netbsd-queue/Config.in
delete mode 100644 package/netbsd-queue/netbsd-queue.mk

package/Config.in +1 -1
index 645fa29..1e51a45 100644
@@ -1324,7 +1324,7 @@ endif
 	source "package/mpfr/Config.in"
 	source "package/msgpack/Config.in"
 	source "package/mtdev2tuio/Config.in"
-	source "package/netbsd-queue/Config.in"
+	source "package/musl-compat-headers/Config.in"
 	source "package/openblas/Config.in"
 	source "package/orc/Config.in"
 	source "package/p11-kit/Config.in"
package/musl-compat-headers/Config.in new file +2 -0
new file mode 100644
index 0000000..c672f9c
@@ -0,0 +1,2 @@
+config BR2_PACKAGE_MUSL_COMPAT_HEADERS
+	bool
package/musl-compat-headers/cdefs.h new file +40 -0
new file mode 100644
index 0000000..0a78b8f
@@ -0,0 +1,40 @@
+/* Copyright (C) 2016 Yann E. MORI <[email protected]>
+ *
+ * This file is in the Public Domain.
+ *
+ * For jurisdictions in which the Public Domain does not exist
+ * or it is not otherwise applicable, this file is licensed CC0
+ * (Creative Commons Zero).
+ */
+
+/* This file contains definitions for non-standard macros defined by
+ * glibc, but quite commonly used in packages.
+ *
+ * Because they are non-standard, musl does not define those macros.
+ * It does not provide cdefs.h either.
+ *
+ * This file is a compatibility header written from scratch, to be
+ * installed when the C library is musl.
+ *
+ * Not all macros from the glibc's cdefs.h are available, only the
+ * most commonly used ones.
+ *
+ * Please refer to the glibc documentation and source code for
+ * explanations about those macros.
+ */
+
+#ifndef BUILDROOT_SYS_CDEFS_H
+#define BUILDROOT_SYS_CDEFS_H
+
+#undef __P
+#define __P(arg) arg
+
+#ifdef __cplusplus
+#define __BEGIN_DECLS extern "C" {
+#define __END_DECLS   }
+#else
+#define __BEGIN_DECLS
+#define __END_DECLS
+#endif
+
+#endif /* ifndef BUILDROOT_SYS_CDEFS_H */
package/musl-compat-headers/musl-compat-headers.hash renamed from package/netbsd-queue/netbsd-queue.hash +0 -0
similarity index 100%
rename from package/netbsd-queue/netbsd-queue.hash
rename to package/musl-compat-headers/musl-compat-headers.hash
package/musl-compat-headers/musl-compat-headers.mk new file +29 -0
new file mode 100644
index 0000000..0758021
@@ -0,0 +1,29 @@
+################################################################################
+#
+# musl-compat-headers
+#
+################################################################################
+
+MUSL_COMPAT_HEADERS_SITE = http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys
+MUSL_COMPAT_HEADERS_VERSION = 1.70
+MUSL_COMPAT_HEADERS_SOURCE = queue.h?rev=$(MUSL_COMPAT_HEADERS_VERSION)
+MUSL_COMPAT_HEADERS_LICENSE = BSD-3c, Public Domain or CC0
+
+MUSL_COMPAT_HEADERS_ADD_TOOLCHAIN_DEPENDENCY = NO
+
+# Only installs headers
+MUSL_COMPAT_HEADERS_INSTALL_TARGET = NO
+MUSL_COMPAT_HEADERS_INSTALL_STAGING = YES
+
+define MUSL_COMPAT_HEADERS_EXTRACT_CMDS
+	cp $(DL_DIR)/$(MUSL_COMPAT_HEADERS_SOURCE) $(@D)/queue.h
+endef
+
+define MUSL_COMPAT_HEADERS_INSTALL_STAGING_CMDS
+	$(INSTALL) -D -m 0644 $(@D)/queue.h \
+		$(STAGING_DIR)/usr/include/sys/queue.h
+	$(INSTALL) -D -m 0644 $(MUSL_COMPAT_HEADERS_PKGDIR)/cdefs.h \
+		$(STAGING_DIR)/usr/include/sys/cdefs.h
+endef
+
+$(eval $(generic-package))
package/musl/Config.in +2 -1
index c263006..18ae69d 100644
@@ -3,5 +3,6 @@ config BR2_PACKAGE_MUSL
 	depends on BR2_TOOLCHAIN_USES_MUSL
 	default y
 	select BR2_PACKAGE_LINUX_HEADERS
-	select BR2_PACKAGE_NETBSD_QUEUE
 	select BR2_TOOLCHAIN_HAS_SSP
+	# Compatibility headers: cdefs.h, queue.h
+	select BR2_PACKAGE_MUSL_COMPAT_HEADERS
package/musl/musl.mk +0 -0
index 920bbbf..f8ea377 100644
@@ -13,10 +13,12 @@ MUSL_LICENSE_FILES = COPYRIGHT
 # cross-compiler and the kernel headers

MUSL_DEPENDENCIES = host-gcc-initial linux-headers

package/musl/musl.mk +6 -4
-# 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 does not provide an implementation for sys/queue.h or sys/cdefs.h. So,
+# add the netbsd-compat-headers package that will install those files, into
+# the staging directory:
+#   sys/queue.h:  header from NetBSD
+#   sys/cdefs.h:  minimalist header bundled in Buildroot
+MUSL_DEPENDENCIES += musl-compat-headers
# musl is part of the toolchain so disable the toolchain dependency
MUSL_ADD_TOOLCHAIN_DEPENDENCY = NO
package/netbsd-queue/Config.in deleted +0 -2
deleted file mode 100644
index 7837f4c..0000000
@@ -1,2 +0,0 @@
-config BR2_PACKAGE_NETBSD_QUEUE
-	bool
package/netbsd-queue/netbsd-queue.mk deleted +0 -24
deleted file mode 100644
index 5fd926b..0000000
@@ -1,24 +0,0 @@
-################################################################################
-#
-# 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_ADD_TOOLCHAIN_DEPENDENCY = NO
-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))
toolchain/toolchain-external/Config.in +0 -0
index f54fbee..63b7712 100644
@@ -727,7 +727,8 @@ config BR2_TOOLCHAIN_EXTERNAL_UCLIBC

config BR2_TOOLCHAIN_EXTERNAL_MUSL
bool
select BR2_TOOLCHAIN_USES_MUSL

toolchain/toolchain-external/Config.in +2 -1
-	select BR2_PACKAGE_NETBSD_QUEUE
+	# Compatibility headers: cdefs.h, queue.h
+	select BR2_PACKAGE_MUSL_COMPAT_HEADERS

if BR2_TOOLCHAIN_EXTERNAL_CUSTOM

toolchain/toolchain-external/toolchain-external.mk +0 -0
index 29c1f36..967f022 100644
@@ -246,11 +246,13 @@ TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float

TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_SOFTFLOAT=1 endif

toolchain/toolchain-external/toolchain-external.mk +5 -3
-# 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 does not provide an implementation for sys/queue.h or sys/cdefs.h. So,
+# add the netbsd-compat-headers package that will install those files, into
+# the staging directory:
+#   sys/queue.h:  header from NetBSD
+#   sys/cdefs.h:  minimalist header bundled in Buildroot

ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)

toolchain/toolchain-external/toolchain-external.mk +1 -1
-TOOLCHAIN_EXTERNAL_DEPENDENCIES += netbsd-queue
+TOOLCHAIN_EXTERNAL_DEPENDENCIES += musl-compat-headers

endif

Quoted 8 lines

# The Linaro toolchain expects the libraries in
--
2.7.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 204 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160812/9338f8f1/attachment.asc>

#3 lore raw

PATCH 1/8 package/netbsd-compat-headers: provide compatibility headers not in musl

Khem, All,

On 2016-08-12 14:30 -0700, Khem Raj spake thusly:

Quoted 15 lines
Quoted 15 lines · Yann E. MORIN

musl provides neither sys/queue.h nor sys/cdefs.h. Those two headers are however quite widely used in a lot of packages (though they should at least not use cdefs,h which is only full of mostly-legacy macros, and which is mostly an internal header of glibc and was never really meant to be exposed to, and used by packages).

But we don;t live in an ideal world, so a lot of packages break when those two headers are missing.

We already took care of sys/queue.h with the netbsd-queue package. But the need for cdefs.h is getting more and more pressing.

Quoted 7 lines
Quoted 5 lines

We rename the netbsd-queue package into musl-compat-headers, and we make it install sys/queue.h (from NetBSD) and sys/cdefs.h (a minimalist one we bundle in Buildroot). We can't use the cdefs.h from NetBSD because it includes machine-dependent headers; instead we bundle a very minimalistic one, that covers only what we need.

see here http://git.openembedded.org/openembedded-core/tree/meta/recipes-core/bsd-headers/bsd-headers

Thanks for the pointer! :-)
But no licensing info in that file, so we can't use it... :-/

Also, we don't want to add a #warning, to avoid having to patch those bad packages that find it smart to add -Werror by default.

Quoted 1 line

you might need some more.

Right now, all the packages in Buildroot that we were patching because of cdefs.h only need those three macros: __BEGIN_DECLS(), __END_DECLS() and __P().

There is no point in adding more than what we strictly require. As I said in the cover letter, we can add the missing macros when we see the issue.

TRhanks for the feedback! :-)

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#4 lore raw

PATCH 1/8 package/netbsd-compat-headers: provide compatibility headers not in musl

Quoted 27 lines · Yann E. MORIN

Khem, All,

On 2016-08-12 14:30 -0700, Khem Raj spake thusly:

Quoted 21 lines
Quoted 20 lines · Yann E. MORIN

musl provides neither sys/queue.h nor sys/cdefs.h. Those two headers are however quite widely used in a lot of packages (though they should at least not use cdefs,h which is only full of mostly-legacy macros, and which is mostly an internal header of glibc and was never really meant to be exposed to, and used by packages).

But we don;t live in an ideal world, so a lot of packages break when those two headers are missing.

We already took care of sys/queue.h with the netbsd-queue package. But the need for cdefs.h is getting more and more pressing.

We rename the netbsd-queue package into musl-compat-headers, and we make it install sys/queue.h (from NetBSD) and sys/cdefs.h (a minimalist one we bundle in Buildroot). We can't use the cdefs.h from NetBSD because it includes machine-dependent headers; instead we bundle a very minimalistic one, that covers only what we need.

Quoted 4 lines
Quoted 1 line

see here http://git.openembedded.org/openembedded-core/tree/meta/recipes-core/bsd-headers/bsd-headers

Thanks for the pointer! :-)
But no licensing info in that file, so we can't use it... :-/

Oh, that can be fixed.

Quoted 3 lines

Also, we don't want to add a #warning, to avoid having to patch those bad packages that find it smart to add -Werror by default.

yet to encounter this case in OE world yet.

Quoted 10 lines
Quoted 2 lines

you might need some more.

Right now, all the packages in Buildroot that we were patching because of cdefs.h only need those three macros: __BEGIN_DECLS(), __END_DECLS() and __P().

There is no point in adding more than what we strictly require. As I said in the cover letter, we can add the missing macros when we see the issue.

Fair enough.

Quoted 6 lines

TRhanks for the feedback! :-)

Regards,
Yann E. MORIN.

Quoted 7 lines

--
.-----------------.--------------------.------------------.--------------------.

|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |

'------------------------------^-------^------------------^--------------------'

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 204 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160812/6261bcbf/attachment.asc>

#5 lore raw

PATCH 1/8 package/netbsd-compat-headers: provide compatibility headers not in musl

In reply to Yann E. MORIN

Hi Yann,

package/musl-compat-headers/cdefs.h line 1

Quoted 7 lines · Yann E. MORIN
package/musl-compat-headers/cdefs.h new file +1 -0
new file mode 100644
index 0000000..0a78b8f
@@ -0,0 +1,40 @@
+/* Copyright (C) 2016 Yann E. MORI <[email protected]>

Your last name is missing 'N'.

package/musl-compat-headers/cdefs.h line 8

Quoted 7 lines
package/musl-compat-headers/cdefs.h new file +7 -0
+ *
+ * This file is in the Public Domain.
+ *
+ * For jurisdictions in which the Public Domain does not exist
+ * or it is not otherwise applicable, this file is licensed CC0
+ * (Creative Commons Zero).
+ */

baruch

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

PATCH 1/8 package/netbsd-compat-headers: provide compatibility headers not in musl

In reply to Yann E. MORIN

Subject line should be musl-compat-headers, not netbsd-...

Quoted 7 lines · Yann E. MORIN

musl provides neither sys/queue.h nor sys/cdefs.h. Those two headers are however quite widely used in a lot of packages (though they should at least not use cdefs,h which is only full of mostly-legacy macros, and which is mostly an internal header of glibc and was never really meant to be exposed to, and used by packages).

But we don;t live in an ideal world, so a lot of packages break when

don't

Quoted 5 lines

those two headers are missing.

We already took care of sys/queue.h with the netbsd-queue package. But the need for cdefs.h is getting more and more pressing.

Quoted 8 lines

We rename the netbsd-queue package into musl-compat-headers, and we make it install sys/queue.h (from NetBSD) and sys/cdefs.h (a minimalist one we bundle in Buildroot). We can't use the cdefs.h from NetBSD because it includes machine-dependent headers; instead we bundle a very minimalistic one, that covers only what we need.

Cc Thomas Petazzoni <[email protected]>

In general I prefer to use an upstream like Khem proposes. However, in this
case, it's really a lot easier if we can add or change the header as needed by breaking packages. So I like the way it's done now.

[snip]

Quoted 6 lines
package/musl-compat-headers/musl-compat-headers.mk new file +0 -0
new file mode 100644
index 0000000..0758021

package/musl-compat-headers/musl-compat-headers.mk line 9

Quoted 9 lines
package/musl-compat-headers/musl-compat-headers.mk new file +9 -0
@@ -0,0 +1,29 @@
+################################################################################
+#
+# musl-compat-headers
+#
+################################################################################
+
+MUSL_COMPAT_HEADERS_SITE = http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys
+MUSL_COMPAT_HEADERS_VERSION = 1.70
+MUSL_COMPAT_HEADERS_SOURCE = queue.h?rev=$(MUSL_COMPAT_HEADERS_VERSION)

We may need additional files in the future (e.g. the tree.h that openembedded
is carrying). Also, the definition of upstream here is not entirely correct, because that's only half the package. So I think it's nicer/cleaner to specify this as:

MUSL_COMPAT_HEADERS_EXTRA_DOWNLOADS = \
	http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/queue.h?rev=1.70

package/musl-compat-headers/musl-compat-headers.mk line 10

Quoted 1 line
package/musl-compat-headers/musl-compat-headers.mk new file +1 -0
+MUSL_COMPAT_HEADERS_LICENSE = BSD-3c, Public Domain or CC0

Shouldn't we specify here

MUSL_COMPAT_HEADERS_LICENSE_FILES = queue.h cdefs.h

?

package/musl-compat-headers/musl-compat-headers.mk line 19

Quoted 9 lines
package/musl-compat-headers/musl-compat-headers.mk new file +9 -0
+
+MUSL_COMPAT_HEADERS_ADD_TOOLCHAIN_DEPENDENCY = NO
+
+# Only installs headers
+MUSL_COMPAT_HEADERS_INSTALL_TARGET = NO
+MUSL_COMPAT_HEADERS_INSTALL_STAGING = YES
+
+define MUSL_COMPAT_HEADERS_EXTRACT_CMDS
+	cp $(DL_DIR)/$(MUSL_COMPAT_HEADERS_SOURCE) $(@D)/queue.h

^^^This would become
$(notdir $(MUSL_COMPAT_HEADERS_EXTRA_DOWNLOADS))

BTW I think it makes sense to use install here as well.

Quoted 27 lines
package/musl-compat-headers/musl-compat-headers.mk new file +10 -0
+endef
+
+define MUSL_COMPAT_HEADERS_INSTALL_STAGING_CMDS
+	$(INSTALL) -D -m 0644 $(@D)/queue.h \
+		$(STAGING_DIR)/usr/include/sys/queue.h
+	$(INSTALL) -D -m 0644 $(MUSL_COMPAT_HEADERS_PKGDIR)/cdefs.h \
+		$(STAGING_DIR)/usr/include/sys/cdefs.h
+endef
+
+$(eval $(generic-package))
package/musl/Config.in +2 -1
index c263006..18ae69d 100644
@@ -3,5 +3,6 @@ config BR2_PACKAGE_MUSL
 	depends on BR2_TOOLCHAIN_USES_MUSL
 	default y
 	select BR2_PACKAGE_LINUX_HEADERS
-	select BR2_PACKAGE_NETBSD_QUEUE
 	select BR2_TOOLCHAIN_HAS_SSP
+	# Compatibility headers: cdefs.h, queue.h
+	select BR2_PACKAGE_MUSL_COMPAT_HEADERS
package/musl/musl.mk +0 -0
index 920bbbf..f8ea377 100644

package/musl/musl.mk MUSL_LICENSE_FILES = COPYRIGHT · line 17

Quoted 9 lines
package/musl/musl.mk +2 -4
@@ -13,10 +13,12 @@ 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 does not provide an implementation for sys/queue.h or sys/cdefs.h. So,
+# add the netbsd-compat-headers package that will install those files, into
             ^^^^^^ musl
Quoted 64 lines
package/musl/musl.mk +4 -0
+# the staging directory:
+#   sys/queue.h:  header from NetBSD
+#   sys/cdefs.h:  minimalist header bundled in Buildroot
+MUSL_DEPENDENCIES += musl-compat-headers
 
 # musl is part of the toolchain so disable the toolchain dependency
 MUSL_ADD_TOOLCHAIN_DEPENDENCY = NO
package/netbsd-queue/Config.in deleted +0 -2
deleted file mode 100644
index 7837f4c..0000000
@@ -1,2 +0,0 @@
-config BR2_PACKAGE_NETBSD_QUEUE
-	bool
package/netbsd-queue/netbsd-queue.mk deleted +0 -24
deleted file mode 100644
index 5fd926b..0000000
@@ -1,24 +0,0 @@
-################################################################################
-#
-# 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_ADD_TOOLCHAIN_DEPENDENCY = NO
-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))
toolchain/toolchain-external/Config.in +2 -1
index f54fbee..63b7712 100644
@@ -727,7 +727,8 @@ config BR2_TOOLCHAIN_EXTERNAL_UCLIBC
 config BR2_TOOLCHAIN_EXTERNAL_MUSL
 	bool
 	select BR2_TOOLCHAIN_USES_MUSL
-	select BR2_PACKAGE_NETBSD_QUEUE
+	# Compatibility headers: cdefs.h, queue.h
+	select BR2_PACKAGE_MUSL_COMPAT_HEADERS
 
 if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
 
toolchain/toolchain-external/toolchain-external.mk +0 -0
index 29c1f36..967f022 100644

toolchain/toolchain-external/toolchain-external.mk TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float · line 250

Quoted 8 lines
toolchain/toolchain-external/toolchain-external.mk +2 -3
@@ -246,11 +246,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
-# netbsd-queue package that will install a sys/queue.h file in the
-# staging directory based on the NetBSD implementation.
+# musl does not provide an implementation for sys/queue.h or sys/cdefs.h. So,
+# add the netbsd-compat-headers package that will install those files, into
             ^^^^^^musl

Regards,
Arnout

Quoted 10 lines
toolchain/toolchain-external/toolchain-external.mk +4 -1
+# the staging directory:
+#   sys/queue.h:  header from NetBSD
+#   sys/cdefs.h:  minimalist header bundled in Buildroot
 ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
-TOOLCHAIN_EXTERNAL_DEPENDENCIES += netbsd-queue
+TOOLCHAIN_EXTERNAL_DEPENDENCIES += musl-compat-headers
 endif
 
 # The Linaro toolchain expects the libraries in
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
#7 lore raw

PATCH 1/8 package/netbsd-compat-headers: provide compatibility headers not in musl

Arnout, All,

On 2016-08-14 23:20 +0200, Arnout Vandecappelle spake thusly:

Quoted 23 lines

Subject line should be musl-compat-headers, not netbsd-...

Quoted 7 lines · Yann E. MORIN

musl provides neither sys/queue.h nor sys/cdefs.h. Those two headers are however quite widely used in a lot of packages (though they should at least not use cdefs,h which is only full of mostly-legacy macros, and which is mostly an internal header of glibc and was never really meant to be exposed to, and used by packages).

But we don;t live in an ideal world, so a lot of packages break when

don't

Quoted 11 lines

those two headers are missing.

We already took care of sys/queue.h with the netbsd-queue package. But the need for cdefs.h is getting more and more pressing.

We rename the netbsd-queue package into musl-compat-headers, and we make it install sys/queue.h (from NetBSD) and sys/cdefs.h (a minimalist one we bundle in Buildroot). We can't use the cdefs.h from NetBSD because it includes machine-dependent headers; instead we bundle a very minimalistic one, that covers only what we need.

Quoted 6 lines
Quoted 2 lines
Cc Thomas Petazzoni <[email protected]>

In general I prefer to use an upstream like Khem proposes. However, in this
case, it's really a lot easier if we can add or change the header as needed by breaking packages. So I like the way it's done now.

What khem ponted to is not an upstream. It is a minimalist header OpenEmbeded crafted.

As you can read in the commit log, we can not use the upstream cdefs.h header, as it includes a machine-dependent header. And we don't really want to go that route of downloadign yet another header, which is moreover different for each target...

Quoted 22 lines

[snip]

Quoted 6 lines
package/musl-compat-headers/musl-compat-headers.mk new file +0 -0
new file mode 100644
index 0000000..0758021

package/musl-compat-headers/musl-compat-headers.mk line 9

Quoted 9 lines
package/musl-compat-headers/musl-compat-headers.mk new file +9 -0
@@ -0,0 +1,29 @@
+################################################################################
+#
+# musl-compat-headers
+#
+################################################################################
+
+MUSL_COMPAT_HEADERS_SITE = http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys
+MUSL_COMPAT_HEADERS_VERSION = 1.70
+MUSL_COMPAT_HEADERS_SOURCE = queue.h?rev=$(MUSL_COMPAT_HEADERS_VERSION)

We may need additional files in the future (e.g. the tree.h that openembedded
is carrying). Also, the definition of upstream here is not entirely correct, because that's only half the package. So I think it's nicer/cleaner to specify this as:

Quoted 2 lines
MUSL_COMPAT_HEADERS_EXTRA_DOWNLOADS = \
	http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/queue.h?rev=1.70

That's what I initially did, as I agree with you.

However, I want it to be minimaly intrusive, as it might be applied to master and we're post -rc1.

Quoted 5 lines

package/musl-compat-headers/musl-compat-headers.mk line 10

Quoted 1 line
package/musl-compat-headers/musl-compat-headers.mk new file +1 -0
+MUSL_COMPAT_HEADERS_LICENSE = BSD-3c, Public Domain or CC0

Shouldn't we specify here

MUSL_COMPAT_HEADERS_LICENSE_FILES = queue.h cdefs.h

Good point. Will do.

Quoted 11 lines

package/musl-compat-headers/musl-compat-headers.mk line 19

Quoted 8 lines
package/musl-compat-headers/musl-compat-headers.mk new file +8 -0
+MUSL_COMPAT_HEADERS_ADD_TOOLCHAIN_DEPENDENCY = NO
+
+# Only installs headers
+MUSL_COMPAT_HEADERS_INSTALL_TARGET = NO
+MUSL_COMPAT_HEADERS_INSTALL_STAGING = YES
+
+define MUSL_COMPAT_HEADERS_EXTRACT_CMDS
+	cp $(DL_DIR)/$(MUSL_COMPAT_HEADERS_SOURCE) $(@D)/queue.h

^^^This would become
$(notdir $(MUSL_COMPAT_HEADERS_EXTRA_DOWNLOADS))

Quoted 1 line

BTW I think it makes sense to use install here as well.

I re-used what was previously in the netbsd-queue package. But yes, install is better. Will do.

[--SNIP--]

Quoted 8 lines
Quoted 8 lines
toolchain/toolchain-external/toolchain-external.mk +0 -0
index 29c1f36..967f022 100644
@@ -246,11 +246,13 @@ TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float
 TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_SOFTFLOAT=1
 endif
 
Quoted 6 lines

toolchain/toolchain-external/toolchain-external.mk TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float · line 250

Quoted 5 lines
toolchain/toolchain-external/toolchain-external.mk +2 -3
-# 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 does not provide an implementation for sys/queue.h or sys/cdefs.h. So,
+# add the netbsd-compat-headers package that will install those files, into
             ^^^^^^musl

Yeah. Remnants of successive renames back-n-forth between musl-compat-headers, netbsd-compat-headers, netbsd-headers and musl-compat...

Will fix.

Thanks! :-)

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#8 lore raw

PATCH 2/8 package/rpcbind: include cdefs.h where needed

In reply to Yann E. MORIN

rpcbind uses a macro defined in sys/cdefs.h but does not included it explicitly, relying on the glibc behaviour to include it from its own headers.

Now that we also have a sys/cdefs.h for musl (which completes the triade glibc/uClibc/musl), sys/cdefs.h is always available.

Fixes:

    http://autobuild.buildroot.org/results/346/346c5b562c244ddb039db2f86f71d670a01ed9ce/
    http://autobuild.buildroot.org/results/d77/d77454265c45539178c008c5d92509c441447675/
    and numerous such autobuild failures
Cc Thomas Petazzoni <[email protected]>
---
 ...003-src-include-cdefs.h-for-the-__P-macro.patch | 126 +++++++++++++++++++++
 1 file changed, 126 insertions(+)
 create mode 100644 package/rpcbind/0003-src-include-cdefs.h-for-the-__P-macro.patch
package/rpcbind/0003-src-include-cdefs.h-for-the-__P-macro.patch new file +126 -0
new file mode 100644
index 0000000..0cae0cf
@@ -0,0 +1,126 @@
+From 50ce1b2e3158f0fd1102b7f56d9264057a1a0c01 Mon Sep 17 00:00:00 2001
+From: "Yann E. MORIN" <[email protected]>
+Date: Fri, 12 Aug 2016 00:06:28 +0200
+Subject: [PATCH] src: include cdefs.h for the __P() macro
+
+The __P() macro is defined in cdefs.h, so we must include it explcitly
+rather than relying on it being included by another header.
+
+cdefs.h is a glibc-ism; glibc includes it almost everywhere form its own
+headers. So it automatically gets included for glibc.
+
+However, cdefs.h is not present in musl, so its headers do not include
+it. We must thus include it when we need __P() (of course, one will have
+to provide his own cdefs.h in this case).
+
+Signed-off-by: "Yann E. MORIN" <[email protected]>
+---
+ src/check_bound.c  | 1 +
+ src/pmap_svc.c     | 1 +
+ src/rpcb_svc.c     | 1 +
+ src/rpcb_svc_4.c   | 1 +
+ src/rpcb_svc_com.c | 1 +
+ src/rpcbind.c      | 1 +
+ src/util.c         | 1 +
+ src/warmstart.c    | 1 +
+ 8 files changed, 8 insertions(+)
+
+diff --git a/src/check_bound.c b/src/check_bound.c
+index c70b845..df14fbc 100644
+--- a/src/check_bound.c
++++ b/src/check_bound.c
+@@ -49,6 +49,7 @@ static	char sccsid[] = "@(#)check_bound.c 1.11 89/04/21 Copyr 1989 Sun Micro";
+ 
+ #include <sys/types.h>
+ #include <sys/socket.h>
++#include <sys/cdefs.h>
+ #include <rpc/rpc.h>
+ #include <stdio.h>
+ #include <netconfig.h>
+diff --git a/src/pmap_svc.c b/src/pmap_svc.c
+index ad28b93..5993c0b 100644
+--- a/src/pmap_svc.c
++++ b/src/pmap_svc.c
+@@ -49,6 +49,7 @@ static	char sccsid[] = "@(#)pmap_svc.c 1.23 89/04/05 Copyr 1984 Sun Micro";
+ #ifdef PORTMAP
+ #include <sys/types.h>
+ #include <sys/socket.h>
++#include <sys/cdefs.h>
+ #include <stdio.h>
+ #include <rpc/rpc.h>
+ #include <rpc/pmap_prot.h>
+diff --git a/src/rpcb_svc.c b/src/rpcb_svc.c
+index bd92201..eb5b49c 100644
+--- a/src/rpcb_svc.c
++++ b/src/rpcb_svc.c
+@@ -42,6 +42,7 @@
+  * version 3 of rpcbind.
+  */
+ #include <sys/types.h>
++#include <sys/cdefs.h>
+ #include <rpc/rpc.h>
+ #include <rpc/rpcb_prot.h>
+ #include <netconfig.h>
+diff --git a/src/rpcb_svc_4.c b/src/rpcb_svc_4.c
+index b673452..69d75e3 100644
+--- a/src/rpcb_svc_4.c
++++ b/src/rpcb_svc_4.c
+@@ -44,6 +44,7 @@
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/cdefs.h>
+ #include <rpc/rpc.h>
+ #include <stdio.h>
+ #include <unistd.h>
+diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c
+index 148fe42..9369e27 100644
+--- a/src/rpcb_svc_com.c
++++ b/src/rpcb_svc_com.c
+@@ -43,6 +43,7 @@
+ #include <sys/stat.h>
+ #include <sys/param.h>
+ #include <sys/poll.h>
++#include <sys/cdefs.h>
+ #include <bits/poll.h>
+ #include <sys/socket.h>
+ #include <rpc/rpc.h>
+diff --git a/src/rpcbind.c b/src/rpcbind.c
+index c4265cd..37fc660 100644
+--- a/src/rpcbind.c
++++ b/src/rpcbind.c
+@@ -50,6 +50,7 @@
+ #include <sys/file.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
++#include <sys/cdefs.h>
+ #include <netinet/in.h>
+ #include <rpc/rpc.h>
+ #include <rpc/rpc_com.h>
+diff --git a/src/util.c b/src/util.c
+index a6c835b..5bbec1d 100644
+--- a/src/util.c
++++ b/src/util.c
+@@ -42,6 +42,7 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/queue.h>
++#include <sys/cdefs.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+ #include <ifaddrs.h>
+diff --git a/src/warmstart.c b/src/warmstart.c
+index b6eb73e..f3a9c29 100644
+--- a/src/warmstart.c
++++ b/src/warmstart.c
+@@ -34,6 +34,7 @@
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/cdefs.h>
+ #include <stdio.h>
+ #include <rpc/rpc.h>
+ #include <rpc/rpcb_prot.h>
+-- 
+2.7.4
+
Signature · 1 line
2.7.4
#9 lore raw

PATCH 2/8 package/rpcbind: include cdefs.h where needed

Quoted 1 line · Yann E. MORIN

rpcbind uses a macro defined in sys/cdefs.h but does not included it

include

Quoted 6 lines

explicitly, relying on the glibc behaviour to include it from its own headers.

Now that we also have a sys/cdefs.h for musl (which completes the triade glibc/uClibc/musl), sys/cdefs.h is always available.

Quoted 7 lines

Fixes:

    http://autobuild.buildroot.org/results/346/346c5b562c244ddb039db2f86f71d670a01ed9ce/
    http://autobuild.buildroot.org/results/d77/d77454265c45539178c008c5d92509c441447675/
    and numerous such autobuild failures
Cc Thomas Petazzoni <[email protected]>

Regards,
Arnout
[snip]

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
#10 lore raw

PATCH 3/8 package/aircrack-ng: drop a musl-compatibility patch

In reply to Yann E. MORIN

We now always have a sys/cdefs.h, so we can drop this patch.

Cc Thomas Petazzoni <[email protected]>
---
 package/aircrack-ng/0004-fix-musl-build.patch | 53 ---------------------------
 1 file changed, 53 deletions(-)
 delete mode 100644 package/aircrack-ng/0004-fix-musl-build.patch
package/aircrack-ng/0004-fix-musl-build.patch deleted +0 -53
deleted file mode 100644
index cc093d3..0000000
@@ -1,53 +0,0 @@
-From da6e87670ad4639371da056f9e36201a9236dfa2 Mon Sep 17 00:00:00 2001
-From: Romain Naour <[email protected]>
-Date: Wed, 29 Jul 2015 19:38:46 +0200
-Subject: [PATCH] fix musl build
-
-aircrack-ng doesn't build with a musl toolchain due to
-cdefs.h internal glibc header being used in internal
-ethernet.h [1].
-
-[1] http://wiki.musl-libc.org/wiki/FAQ
-
-Signed-off-by: Romain Naour <[email protected]>
----
- src/include/ethernet.h | 20 +++++++++++---------
- 1 file changed, 11 insertions(+), 9 deletions(-)
-
-diff --git a/src/include/ethernet.h b/src/include/ethernet.h
-index 72d5e81..e9d9236 100644
---- a/src/include/ethernet.h
-+++ b/src/include/ethernet.h
-@@ -389,18 +389,20 @@ void	ether_vlan_mtap(struct bpf_if *, struct mbuf *,
- 
- #else /* _KERNEL */
- 
--#include <sys/cdefs.h>
--
- /*
-  * Ethernet address conversion/parsing routines.
-  */
--__BEGIN_DECLS
--struct	ether_addr *ether_aton(const char *);
--int	ether_hostton(const char *, struct ether_addr *);
--int	ether_line(const char *, struct ether_addr *, char *);
--char 	*ether_ntoa(const struct ether_addr *);
--int	ether_ntohost(char *, const struct ether_addr *);
--__END_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+	struct	ether_addr *ether_aton(const char *);
-+	int	ether_hostton(const char *, struct ether_addr *);
-+	int	ether_line(const char *, struct ether_addr *, char *);
-+	char 	*ether_ntoa(const struct ether_addr *);
-+	int	ether_ntohost(char *, const struct ether_addr *);
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_KERNEL */
- 
--- 
-2.4.3
-
Signature · 1 line
2.7.4
#11 lore raw

PATCH 3/8 package/aircrack-ng: drop a musl-compatibility patch

Quoted 4 lines · Yann E. MORIN

We now always have a sys/cdefs.h, so we can drop this patch.

Cc Thomas Petazzoni <[email protected]>

Regards,
Arnout

Quoted 65 lines
---
 package/aircrack-ng/0004-fix-musl-build.patch | 53 ---------------------------
 1 file changed, 53 deletions(-)
 delete mode 100644 package/aircrack-ng/0004-fix-musl-build.patch
package/aircrack-ng/0004-fix-musl-build.patch deleted +0 -53
deleted file mode 100644
index cc093d3..0000000
@@ -1,53 +0,0 @@
-From da6e87670ad4639371da056f9e36201a9236dfa2 Mon Sep 17 00:00:00 2001
-From: Romain Naour <[email protected]>
-Date: Wed, 29 Jul 2015 19:38:46 +0200
-Subject: [PATCH] fix musl build
-
-aircrack-ng doesn't build with a musl toolchain due to
-cdefs.h internal glibc header being used in internal
-ethernet.h [1].
-
-[1] http://wiki.musl-libc.org/wiki/FAQ
-
-Signed-off-by: Romain Naour <[email protected]>
----
- src/include/ethernet.h | 20 +++++++++++---------
- 1 file changed, 11 insertions(+), 9 deletions(-)
-
-diff --git a/src/include/ethernet.h b/src/include/ethernet.h
-index 72d5e81..e9d9236 100644
---- a/src/include/ethernet.h
-+++ b/src/include/ethernet.h
-@@ -389,18 +389,20 @@ void	ether_vlan_mtap(struct bpf_if *, struct mbuf *,
- 
- #else /* _KERNEL */
- 
--#include <sys/cdefs.h>
--
- /*
-  * Ethernet address conversion/parsing routines.
-  */
--__BEGIN_DECLS
--struct	ether_addr *ether_aton(const char *);
--int	ether_hostton(const char *, struct ether_addr *);
--int	ether_line(const char *, struct ether_addr *, char *);
--char 	*ether_ntoa(const struct ether_addr *);
--int	ether_ntohost(char *, const struct ether_addr *);
--__END_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+	struct	ether_addr *ether_aton(const char *);
-+	int	ether_hostton(const char *, struct ether_addr *);
-+	int	ether_line(const char *, struct ether_addr *, char *);
-+	char 	*ether_ntoa(const struct ether_addr *);
-+	int	ether_ntohost(char *, const struct ether_addr *);
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_KERNEL */
- 
--- 
-2.4.3
-
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
#12 lore raw

PATCH 4/8 package/android-tools: drop musl-compatibility cdefs patching out

In reply to Yann E. MORIN

We now always have a sys/cdefs.h, so we no longer need to patch it out.

Simplify the patch by removing any hunk removing cdefs.h or the use of __BEGIN_DECLS/__END_DECLS. However, it must be included when macros it defines are being used.

Also, renumber patches to guarantee ordering.

Cc Thomas Petazzoni <[email protected]>
---
 .../0004-Fix-build-issue-with-musl.patch           | 181 +--------------------
 ...build.patch => 0006-fix-big-endian-build.patch} |   0
 .../0007-include-cdefs-h-when-needed.patch         |  41 +++++
 3 files changed, 43 insertions(+), 179 deletions(-)
 rename package/android-tools/{0005-fix-big-endian-build.patch => 0006-fix-big-endian-build.patch} (100%)
 create mode 100644 package/android-tools/0007-include-cdefs-h-when-needed.patch
package/android-tools/0004-Fix-build-issue-with-musl.patch +2 -179
index e5ba0e6..964eb87 100644
@@ -1,9 +1,6 @@
 [PATCH] Fix build issue with musl
 
-cdefs.h header doesn't exist in musl toolchains:
-http://wiki.musl-libc.org/wiki/FAQ
-
-Also arpa/nameser.h doesn't use the same macro name to avoid several
+arpa/nameser.h doesn't use the same macro name to avoid several
 inclusions.
 
 Finally had an issue with framebuffer_service.c since it was missing the
@@ -26,7 +23,7 @@ diff --git a/core/adbd/arpa_nameser.h b/core/adbd/arpa_nameser.h
 index 438dc04..b2a28d6 100644
 --- a/core/adbd/arpa_nameser.h
 +++ b/core/adbd/arpa_nameser.h
-@@ -52,11 +52,12 @@
+@@ -52,6 +52,8 @@
  
  #ifndef _ARPA_NAMESER_H_
  #define _ARPA_NAMESER_H_
@@ -35,51 +32,12 @@ index 438dc04..b2a28d6 100644
  
  #define BIND_4_COMPAT
  
- #include <sys/types.h>
--#include <sys/cdefs.h>
- 
- /*
-  * Revision information.  This is the release date in YYYYMMDD format.
-@@ -505,7 +506,9 @@ typedef enum __ns_cert_types {
- #define	ns_makecanon		__ns_makecanon
- #define	ns_samename		__ns_samename
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- int		ns_msg_getflag(ns_msg, int);
- uint16_t	ns_get16(const u_char *);
- uint32_t	ns_get32(const u_char *);
-@@ -560,7 +563,9 @@ int		ns_samedomain(const char *, const char *);
- int		ns_subdomain(const char *, const char *);
- int		ns_makecanon(const char *, char *, size_t);
- int		ns_samename(const char *, const char *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #ifdef BIND_4_COMPAT
- #include "arpa_nameser_compat.h"
 @@ -574,4 +579,5 @@ __END_DECLS
  #define  XLOG(...)   do {} while (0)
  #endif
  
 +#endif /* !_ARPA_NAMESER_H */
  #endif /* !_ARPA_NAMESER_H_ */
-diff --git a/core/adbd/base64.c b/core/adbd/base64.c
-index 7270703..73725f5 100644
---- a/core/adbd/base64.c
-+++ b/core/adbd/base64.c
-@@ -42,7 +42,6 @@
-  * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
-  */
- 
--#include <sys/cdefs.h>
- #if defined(LIBC_SCCS) && !defined(lint)
- __RCSID("$NetBSD: base64.c,v 1.8 2002/11/11 01:15:17 thorpej Exp $");
- #endif /* LIBC_SCCS and not lint */
 diff --git a/core/adbd/framebuffer_service.c b/core/adbd/framebuffer_service.c
 index 20c08d2..48e0241 100644
 --- a/core/adbd/framebuffer_service.c
@@ -92,140 +50,5 @@ index 20c08d2..48e0241 100644
  #include <linux/fb.h>
  #include <sys/ioctl.h>
  #include <sys/mman.h>
-diff --git a/core/adbd/qemu_pipe.h b/core/adbd/qemu_pipe.h
-index 1a67022..572a242 100644
---- a/core/adbd/qemu_pipe.h
-+++ b/core/adbd/qemu_pipe.h
-@@ -16,7 +16,6 @@
- #ifndef ANDROID_INCLUDE_HARDWARE_QEMU_PIPE_H
- #define ANDROID_INCLUDE_HARDWARE_QEMU_PIPE_H
- 
--#include <sys/cdefs.h>
- #include <unistd.h>
- #include <fcntl.h>
- #include <sys/mman.h>
-diff --git a/core/include/cutils/android_reboot.h b/core/include/cutils/android_reboot.h
-index 0c79be7..2ebe1cf 100644
---- a/core/include/cutils/android_reboot.h
-+++ b/core/include/cutils/android_reboot.h
-@@ -17,7 +17,9 @@
- #ifndef __CUTILS_ANDROID_REBOOT_H__
- #define __CUTILS_ANDROID_REBOOT_H__
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- 
- /* Commands */
- #define ANDROID_RB_RESTART  0xDEAD0001
-@@ -30,6 +32,8 @@ __BEGIN_DECLS
- 
- int android_reboot(int cmd, int flags, char *arg);
- 
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* __CUTILS_ANDROID_REBOOT_H__ */
-diff --git a/core/include/cutils/bitops.h b/core/include/cutils/bitops.h
-index 1b3b762..a7c8cab 100644
---- a/core/include/cutils/bitops.h
-+++ b/core/include/cutils/bitops.h
-@@ -17,9 +17,9 @@
- #ifndef __CUTILS_BITOPS_H
- #define __CUTILS_BITOPS_H
- 
--#include <sys/cdefs.h>
--
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- 
- static inline int popcount(unsigned int x)
- {
-@@ -36,6 +36,8 @@ static inline int popcountll(unsigned long long x)
-     return __builtin_popcountll(x);
- }
- 
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* __CUTILS_BITOPS_H */
-diff --git a/core/include/cutils/partition_utils.h b/core/include/cutils/partition_utils.h
-index 597df92..0da9d5b 100644
---- a/core/include/cutils/partition_utils.h
-+++ b/core/include/cutils/partition_utils.h
-@@ -17,11 +17,15 @@
- #ifndef __CUTILS_PARTITION_WIPED_H__
- #define __CUTILS_PARTITION_WIPED_H__
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- 
- int partition_wiped(char *source);
- void erase_footer(const char *dev_path, long long size);
- 
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* __CUTILS_PARTITION_WIPED_H__ */
-diff --git a/extras/ext4_utils/sha1.c b/extras/ext4_utils/sha1.c
-index 463ec38..e2e29cf 100644
---- a/extras/ext4_utils/sha1.c
-+++ b/extras/ext4_utils/sha1.c
-@@ -17,9 +17,6 @@
- 
- #define SHA1HANDSOFF		/* Copies data before messing with it. */
- 
--#ifndef USE_MINGW
--#include <sys/cdefs.h>
--#endif
- #include <sys/types.h>
- #include <assert.h>
- #include <string.h>
-diff --git a/extras/ext4_utils/sha1.h b/extras/ext4_utils/sha1.h
-index 9a8f7e3..fe3217e 100644
---- a/extras/ext4_utils/sha1.h
-+++ b/extras/ext4_utils/sha1.h
-@@ -17,11 +17,6 @@ typedef unsigned char u_char;
- typedef unsigned int uint32_t;
- typedef unsigned int u_int32_t;
- typedef unsigned int u_int;
--
--#define __BEGIN_DECLS
--#define __END_DECLS
--#else
--#include <sys/cdefs.h>
- #endif
- 
- #define SHA1_DIGEST_LENGTH		20
-@@ -33,11 +28,15 @@ typedef struct {
- 	u_char buffer[64];
- } SHA1_CTX;
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- void	SHA1Transform(uint32_t[5], const u_char[64]);
- void	SHA1Init(SHA1_CTX *);
- void	SHA1Update(SHA1_CTX *, const u_char *, u_int);
- void	SHA1Final(u_char[SHA1_DIGEST_LENGTH], SHA1_CTX *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* _SYS_SHA1_H_ */
 -- 
 2.6.1
-
package/android-tools/0006-fix-big-endian-build.patch renamed from package/android-tools/0005-fix-big-endian-build.patch +0 -0
similarity index 100%
rename from package/android-tools/0005-fix-big-endian-build.patch
rename to package/android-tools/0006-fix-big-endian-build.patch
package/android-tools/0007-include-cdefs-h-when-needed.patch new file +41 -0

41 lines not on this page · raw message

Signature · 1 line
2.7.4
#13 lore raw

PATCH 4/8 package/android-tools: drop musl-compatibility cdefs patching out

Quoted 7 lines · Yann E. MORIN

We now always have a sys/cdefs.h, so we no longer need to patch it out.

Simplify the patch by removing any hunk removing cdefs.h or the use of __BEGIN_DECLS/__END_DECLS. However, it must be included when macros it defines are being used.

Also, renumber patches to guarantee ordering.

You actually changed the ordering...

0005-fix-big-endian-build.patch
0005-fix-static-link-zlib.patch

->

0005-fix-static-link-zlib.patch
0006-fix-big-endian-build.patch

so I guess the order doesn't matter.

But anyway, after careful review of the patch-in-patch changes:

Regards,
Arnout

Quoted 10 lines
Cc Thomas Petazzoni <[email protected]>
---
 .../0004-Fix-build-issue-with-musl.patch           | 181 +--------------------
 ...build.patch => 0006-fix-big-endian-build.patch} |   0
 .../0007-include-cdefs-h-when-needed.patch         |  41 +++++
 3 files changed, 43 insertions(+), 179 deletions(-)
 rename package/android-tools/{0005-fix-big-endian-build.patch => 0006-fix-big-endian-build.patch} (100%)
 create mode 100644 package/android-tools/0007-include-cdefs-h-when-needed.patch

[snip]

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
#14 lore raw

PATCH 4/8 package/android-tools: drop musl-compatibility cdefs patching out

Arnout, All,

On 2016-08-14 23:34 +0200, Arnout Vandecappelle spake thusly:

Quoted 14 lines · Yann E. MORIN
Quoted 7 lines

We now always have a sys/cdefs.h, so we no longer need to patch it out.

Simplify the patch by removing any hunk removing cdefs.h or the use of __BEGIN_DECLS/__END_DECLS. However, it must be included when macros it defines are being used.

Also, renumber patches to guarantee ordering.

You actually changed the ordering...

0005-fix-big-endian-build.patch
0005-fix-static-link-zlib.patch

Quoted 6 lines

->

0005-fix-static-link-zlib.patch
0006-fix-big-endian-build.patch

so I guess the order doesn't matter.

No it does not. But if you git-log the package, you'll see that the static fix was introduced before the big-endian one.

Quoted 3 lines

But anyway, after careful review of the patch-in-patch changes:

Thanks!

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#15 lore raw

PATCH 5/8 package/bcusdk: drop a musl-compatibility patch

In reply to Yann E. MORIN

We now always have a sys/cdefs.h, so we can drop this patch.

Cc Thomas Petazzoni <[email protected]>

---
Note that the patch was sent upstream, but it seems never acted upon.

---
 ...t-use-the-non-standard-sys-cdefs.h-header.patch | 48 ----------------------
 ...d_set-requires-inclusion-of-sys-select.h.patch} |  0
 2 files changed, 48 deletions(-)
 delete mode 100644 package/bcusdk/0001-Do-not-use-the-non-standard-sys-cdefs.h-header.patch
 rename package/bcusdk/{0002-fd_set-requires-inclusion-of-sys-select.h.patch => 0001-fd_set-requires-inclusion-of-sys-select.h.patch} (100%)
package/bcusdk/0001-Do-not-use-the-non-standard-sys-cdefs.h-header.patch deleted +0 -48
deleted file mode 100644
index fc64386..0000000
@@ -1,48 +0,0 @@
-From c36db3f798bf576f42d81a0c51198b17d7112e8c Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <[email protected]>
-Date: Sat, 8 Aug 2015 17:43:28 +0200
-Subject: [PATCH] Do not use the non-standard <sys/cdefs.h> header
-
-<sys/cdefs.h> is glibc-specific, and should be used only internally by
-glibc, not by external libraries/programs. It is not available in all
-standard C libraries.
-
-Submitted upstream: https://sourceforge.net/p/bcusdk/patches/3/
-
-Signed-off-by: Thomas Petazzoni <[email protected]>
----
- eibd/include/eibclient.h | 11 ++++++++---
- 1 file changed, 8 insertions(+), 3 deletions(-)
-
-diff --git a/eibd/include/eibclient.h b/eibd/include/eibclient.h
-index 2781878..b095a1c 100644
---- a/eibd/include/eibclient.h
-+++ b/eibd/include/eibclient.h
-@@ -27,10 +27,11 @@
- #ifndef EIBCLIENT_H
- #define EIBCLIENT_H
- 
--#include <sys/cdefs.h>
- #include <stdint.h>
- 
--__BEGIN_DECLS;
-+#ifdef	__cplusplus
-+extern "C" {
-+#endif
- 
- #include "eibloadresult.h"
- 
-@@ -889,5 +890,9 @@ int EIB_Cache_LastUpdates_async (EIBConnection * con, uint16_t start,
- 				 uint16_t * end);
- 
- 
--__END_DECLS
-+
-+#ifdef	__cplusplus
-+}
-+#endif
-+
- #endif
--- 
-2.5.0
-
package/bcusdk/0001-fd_set-requires-inclusion-of-sys-select.h.patch renamed from package/bcusdk/0002-fd_set-requires-inclusion-of-sys-select.h.patch +0 -0
similarity index 100%
rename from package/bcusdk/0002-fd_set-requires-inclusion-of-sys-select.h.patch
rename to package/bcusdk/0001-fd_set-requires-inclusion-of-sys-select.h.patch
Signature · 1 line
2.7.4
#16 lore raw

PATCH 5/8 package/bcusdk: drop a musl-compatibility patch

Quoted 1 line · Yann E. MORIN

We now always have a sys/cdefs.h, so we can drop this patch.

And renumber the remaining patch.

Regards,
Arnout

Quoted 13 lines
Cc Thomas Petazzoni <[email protected]>

---
Note that the patch was sent upstream, but it seems never acted upon.

---
 ...t-use-the-non-standard-sys-cdefs.h-header.patch | 48 ----------------------
 ...d_set-requires-inclusion-of-sys-select.h.patch} |  0
 2 files changed, 48 deletions(-)
 delete mode 100644 package/bcusdk/0001-Do-not-use-the-non-standard-sys-cdefs.h-header.patch
 rename package/bcusdk/{0002-fd_set-requires-inclusion-of-sys-select.h.patch => 0001-fd_set-requires-inclusion-of-sys-select.h.patch} (100%)

[snip]

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
#17 lore raw

PATCH 6/8 package/libsepol: drop a musl-compatibility patch

In reply to Yann E. MORIN

We now always have a sys/cdefs.h, so we can drop this patch.

Cc Thomas Petazzoni <[email protected]>
---
 package/libsepol/0005-replace-cdefs.patch | 1074 -----------------------------
 1 file changed, 1074 deletions(-)
 delete mode 100644 package/libsepol/0005-replace-cdefs.patch
package/libsepol/0005-replace-cdefs.patch deleted +0 -1074
deleted file mode 100644
index 2f76a74..0000000
@@ -1,1074 +0,0 @@
-Remove usage of <sys/cdefs.h>.
-
-This fixes autobuild issue: http://autobuild.buildroot.org/results/cbb/cbb2bac69aa0708e587ba9fcd1efcead82e42446/build-end.log
-Libsepol uses cdefs.h which is a internal glibc header.
-This header is not intended to be used by any program and will cause
-compiling against musl (and possibly other c libraries) to fail.
-This patch fixed this issue and replaces all references of
-#include <sys/cdefs.h> and __BEGIN/END_DECLS with the appropriate #ifdefs.
-
-This patch has also been submitted upstream to the selinux github repository.
-https://github.com/SELinuxProject/selinux/issues/19
-
-Signed-off-by: Adam Duskett <[email protected]>
-
-
-diff --git a/include/sepol/boolean_record.h b/include/sepol/boolean_record.h
-index 9af16be..09cd01f 100644
---- a/include/sepol/boolean_record.h
-+++ b/include/sepol/boolean_record.h
-@@ -3,9 +3,10 @@
-
- #include <stddef.h>
- #include <sepol/handle.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- struct sepol_bool;
- struct sepol_bool_key;
-@@ -51,5 +52,8 @@ extern int sepol_bool_clone(sepol_handle_t * handle,
-
- extern void sepol_bool_free(sepol_bool_t * boolean);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/booleans.h b/include/sepol/booleans.h
-index 7374dde..02356d1 100644
---- a/include/sepol/booleans.h
-+++ b/include/sepol/booleans.h
-@@ -5,9 +5,10 @@
- #include <sepol/policydb.h>
- #include <sepol/boolean_record.h>
- #include <sepol/handle.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /*--------------compatibility--------------*/
-
-@@ -59,5 +60,8 @@ extern int sepol_bool_iterate(sepol_handle_t * handle,
- 			      int (*fn) (const sepol_bool_t * boolean,
- 					 void *fn_arg), void *arg);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/context.h b/include/sepol/context.h
-index a69e8c9..b3e5497 100644
---- a/include/sepol/context.h
-+++ b/include/sepol/context.h
-@@ -4,9 +4,10 @@
- #include <sepol/context_record.h>
- #include <sepol/policydb.h>
- #include <sepol/handle.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /* -- Deprecated -- */
-
-@@ -26,5 +27,8 @@ extern int sepol_mls_contains(sepol_handle_t * handle,
- extern int sepol_mls_check(sepol_handle_t * handle,
- 			   const sepol_policydb_t * policydb, const char *mls);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/context_record.h b/include/sepol/context_record.h
-index c07da8f..1dcbebb 100644
---- a/include/sepol/context_record.h
-+++ b/include/sepol/context_record.h
-@@ -2,9 +2,10 @@
- #define _SEPOL_CONTEXT_RECORD_H_
-
- #include <sepol/handle.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- struct sepol_context;
- typedef struct sepol_context sepol_context_t;
-@@ -53,5 +54,8 @@ extern int sepol_context_from_string(sepol_handle_t * handle,
- extern int sepol_context_to_string(sepol_handle_t * handle,
- 				   const sepol_context_t * con, char **str_ptr);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/debug.h b/include/sepol/debug.h
-index b852c8d..972a4de 100644
---- a/include/sepol/debug.h
-+++ b/include/sepol/debug.h
-@@ -2,9 +2,10 @@
- #define _SEPOL_DEBUG_H_
-
- #include <sepol/handle.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /* Deprecated */
- extern void sepol_debug(int on);
-@@ -35,5 +36,8 @@ extern void sepol_msg_set_callback(sepol_handle_t * handle,
- 							 const char *fmt, ...),
- 				   void *msg_callback_arg);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/errcodes.h b/include/sepol/errcodes.h
-index eba7088..0136564 100644
---- a/include/sepol/errcodes.h
-+++ b/include/sepol/errcodes.h
-@@ -4,9 +4,10 @@
- #define __sepol_errno_h__
-
- #include <errno.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- #define SEPOL_OK             0
-
-@@ -25,5 +26,8 @@ __BEGIN_DECLS
- #define SEPOL_EEXIST         -EEXIST
- #define SEPOL_ENOENT         -ENOENT
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/handle.h b/include/sepol/handle.h
-index 00ed0ed..27cbd6c 100644
---- a/include/sepol/handle.h
-+++ b/include/sepol/handle.h
-@@ -1,9 +1,9 @@
- #ifndef _SEPOL_HANDLE_H_
- #define _SEPOL_HANDLE_H_
-
--#include <sys/cdefs.h>
--
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- struct sepol_handle;
- typedef struct sepol_handle sepol_handle_t;
-@@ -35,5 +35,8 @@ int sepol_get_preserve_tunables(sepol_handle_t * sh);
-  * 0 is default and discard such branch, 1 preserves them */
- void sepol_set_preserve_tunables(sepol_handle_t * sh, int preserve_tunables);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/iface_record.h b/include/sepol/iface_record.h
-index 81d7027..098bc77 100644
---- a/include/sepol/iface_record.h
-+++ b/include/sepol/iface_record.h
-@@ -3,9 +3,10 @@
-
- #include <sepol/handle.h>
- #include <sepol/context_record.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- struct sepol_iface;
- struct sepol_iface_key;
-@@ -59,5 +60,8 @@ extern int sepol_iface_clone(sepol_handle_t * handle,
-
- extern void sepol_iface_free(sepol_iface_t * iface);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/interfaces.h b/include/sepol/interfaces.h
-index 3cb5043..7ef23ce 100644
---- a/include/sepol/interfaces.h
-+++ b/include/sepol/interfaces.h
-@@ -4,9 +4,10 @@
- #include <sepol/policydb.h>
- #include <sepol/iface_record.h>
- #include <sepol/handle.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /* Return the number of interfaces */
- extern int sepol_iface_count(sepol_handle_t * handle,
-@@ -43,5 +44,8 @@ extern int sepol_iface_iterate(sepol_handle_t * handle,
- 			       int (*fn) (const sepol_iface_t * iface,
- 					  void *fn_arg), void *arg);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/module.h b/include/sepol/module.h
-index ff27f96..77114a1 100644
---- a/include/sepol/module.h
-+++ b/include/sepol/module.h
-@@ -7,9 +7,11 @@
-
- #include <sepol/handle.h>
- #include <sepol/policydb.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- struct sepol_module_package;
- typedef struct sepol_module_package sepol_module_package_t;
-@@ -82,5 +84,8 @@ extern int sepol_expand_module(sepol_handle_t * handle,
- 			       sepol_policydb_t * base,
- 			       sepol_policydb_t * out, int verbose, int check);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/module_to_cil.h b/include/sepol/module_to_cil.h
-index 18bb3bf..fe5eb5b 100644
---- a/include/sepol/module_to_cil.h
-+++ b/include/sepol/module_to_cil.h
-@@ -1,5 +1,4 @@
- #include <stdlib.h>
--
- #include <sepol/module.h>
- #include <sepol/policydb/policydb.h>
-
-diff --git a/include/sepol/node_record.h b/include/sepol/node_record.h
-index e2d3e6d..3873223 100644
---- a/include/sepol/node_record.h
-+++ b/include/sepol/node_record.h
-@@ -4,9 +4,10 @@
- #include <stddef.h>
- #include <sepol/context_record.h>
- #include <sepol/handle.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- struct sepol_node;
- struct sepol_node_key;
-@@ -92,5 +93,8 @@ extern int sepol_node_clone(sepol_handle_t * handle,
-
- extern void sepol_node_free(sepol_node_t * node);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/nodes.h b/include/sepol/nodes.h
-index 6fa534e..3cf99d2 100644
---- a/include/sepol/nodes.h
-+++ b/include/sepol/nodes.h
-@@ -4,9 +4,10 @@
- #include <sepol/handle.h>
- #include <sepol/policydb.h>
- #include <sepol/node_record.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /* Return the number of nodes */
- extern int sepol_node_count(sepol_handle_t * handle,
-@@ -40,5 +41,8 @@ extern int sepol_node_iterate(sepol_handle_t * handle,
- 			      int (*fn) (const sepol_node_t * node,
- 					 void *fn_arg), void *arg);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/policydb.h b/include/sepol/policydb.h
-index c3943e9..6769b91 100644
---- a/include/sepol/policydb.h
-+++ b/include/sepol/policydb.h
-@@ -5,9 +5,10 @@
- #include <stdio.h>
-
- #include <sepol/handle.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- struct sepol_policy_file;
- typedef struct sepol_policy_file sepol_policy_file_t;
-@@ -144,5 +145,8 @@ extern int sepol_policydb_mls_enabled(const sepol_policydb_t * p);
-  */
- extern int sepol_policydb_compat_net(const sepol_policydb_t * p);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/policydb/avrule_block.h b/include/sepol/policydb/avrule_block.h
-index ecd347b..57d6a8a 100644
---- a/include/sepol/policydb/avrule_block.h
-+++ b/include/sepol/policydb/avrule_block.h
-@@ -21,9 +21,11 @@
- #define _SEPOL_AVRULE_BLOCK_H_
-
- #include <sepol/policydb/policydb.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- extern avrule_block_t *avrule_block_create(void);
- extern void avrule_block_destroy(avrule_block_t * x);
-@@ -37,5 +39,7 @@ extern cond_list_t *get_decl_cond_list(policydb_t * p,
- extern int is_id_enabled(char *id, policydb_t * p, int symbol_table);
- extern int is_perm_enabled(char *class_id, char *perm_id, policydb_t * p);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- #endif
-diff --git a/include/sepol/policydb/avtab.h b/include/sepol/policydb/avtab.h
-index d3ea84e..74f97f8 100644
---- a/include/sepol/policydb/avtab.h
-+++ b/include/sepol/policydb/avtab.h
-@@ -40,11 +40,13 @@
- #ifndef _SEPOL_POLICYDB_AVTAB_H_
- #define _SEPOL_POLICYDB_AVTAB_H_
-
--#include <sys/cdefs.h>
-+
- #include <sys/types.h>
- #include <stdint.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- typedef struct avtab_key {
- 	uint16_t source_type;
-@@ -142,7 +144,9 @@ extern avtab_ptr_t avtab_search_node_next(avtab_ptr_t node, int specified);
- /* avtab_alloc uses one bucket per 2-4 elements, so adjust to get maximum buckets */
- #define MAX_AVTAB_SIZE (MAX_AVTAB_HASH_BUCKETS << 1)
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- #endif				/* _AVTAB_H_ */
-
- /* FLASK */
-diff --git a/include/sepol/policydb/conditional.h b/include/sepol/policydb/conditional.h
-index cd2a9a9..52d6b31 100644
---- a/include/sepol/policydb/conditional.h
-+++ b/include/sepol/policydb/conditional.h
-@@ -25,9 +25,11 @@
- #include <sepol/policydb/avtab.h>
- #include <sepol/policydb/symtab.h>
- #include <sepol/policydb/policydb.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- #define COND_EXPR_MAXDEPTH 10
-
-@@ -136,5 +138,7 @@ extern int cond_read_list(policydb_t * p, cond_list_t ** list, void *fp);
- extern void cond_compute_av(avtab_t * ctab, avtab_key_t * key,
- 			    struct sepol_av_decision *avd);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- #endif				/* _CONDITIONAL_H_ */
-diff --git a/include/sepol/policydb/constraint.h b/include/sepol/policydb/constraint.h
-index ae7034d..927bdc0 100644
---- a/include/sepol/policydb/constraint.h
-+++ b/include/sepol/policydb/constraint.h
-@@ -22,7 +22,9 @@
- #include <sepol/policydb/ebitmap.h>
- #include <sepol/policydb/flask_types.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- #define CEXPR_MAXDEPTH 5
-
-@@ -73,7 +75,10 @@ struct policydb;
- extern int constraint_expr_init(constraint_expr_t * expr);
- extern void constraint_expr_destroy(constraint_expr_t * expr);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif				/* _CONSTRAINT_H_ */
-
- /* FLASK */
-diff --git a/include/sepol/policydb/context.h b/include/sepol/policydb/context.h
-index dbb7c3e..aad3647 100644
---- a/include/sepol/policydb/context.h
-+++ b/include/sepol/policydb/context.h
-@@ -22,7 +22,9 @@
- #include <sepol/policydb/ebitmap.h>
- #include <sepol/policydb/mls_types.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /*
-  * A security context consists of an authenticated user
-@@ -95,5 +97,8 @@ static inline int context_cmp(context_struct_t * c1, context_struct_t * c2)
- 		(c1->type == c2->type) && mls_context_cmp(c1, c2));
- }
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/policydb/ebitmap.h b/include/sepol/policydb/ebitmap.h
-index 7b3508d..b883597 100644
---- a/include/sepol/policydb/ebitmap.h
-+++ b/include/sepol/policydb/ebitmap.h
-@@ -19,9 +19,11 @@
-
- #include <stdint.h>
- #include <string.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- #define MAPTYPE uint64_t	/* portion of bitmap in each node */
- #define MAPSIZE (sizeof(MAPTYPE) * 8)	/* number of bits in node bitmap */
-@@ -92,7 +94,9 @@ extern int ebitmap_set_bit(ebitmap_t * e, unsigned int bit, int value);
- extern void ebitmap_destroy(ebitmap_t * e);
- extern int ebitmap_read(ebitmap_t * e, void *fp);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- #endif				/* _EBITMAP_H_ */
-
- /* FLASK */
-diff --git a/include/sepol/policydb/expand.h b/include/sepol/policydb/expand.h
-index a8de41e..59151c1 100644
---- a/include/sepol/policydb/expand.h
-+++ b/include/sepol/policydb/expand.h
-@@ -28,9 +28,11 @@
- #include <stddef.h>
- #include <sepol/handle.h>
- #include <sepol/policydb/conditional.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /*
-  * Expand only the avrules for a module. It is valid for this function
-@@ -79,5 +81,8 @@ extern int expand_avtab(policydb_t * p, avtab_t * a, avtab_t * expa);
- extern int expand_cond_av_list(policydb_t * p, cond_av_list_t * l,
- 			       cond_av_list_t ** newl, avtab_t * expa);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/policydb/flask_types.h b/include/sepol/policydb/flask_types.h
-index 2a59565..c41bd22 100644
---- a/include/sepol/policydb/flask_types.h
-+++ b/include/sepol/policydb/flask_types.h
-@@ -13,9 +13,11 @@
-
- #include <sys/types.h>
- #include <stdint.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /*
-  * A security context is a set of security attributes 
-@@ -61,5 +63,8 @@ struct sepol_av_decision {
- 	uint32_t seqno;
- };
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/policydb/hashtab.h b/include/sepol/policydb/hashtab.h
-index 0afc59c..af72817 100644
---- a/include/sepol/policydb/hashtab.h
-+++ b/include/sepol/policydb/hashtab.h
-@@ -17,9 +17,11 @@
-
- #include <stdint.h>
- #include <stdio.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- typedef char *hashtab_key_t;	/* generic key type */
- typedef void *hashtab_datum_t;	/* generic datum type */
-@@ -136,5 +138,8 @@ extern void hashtab_map_remove_on_error(hashtab_t h,
-
- extern void hashtab_hash_eval(hashtab_t h, char *tag);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/policydb/hierarchy.h b/include/sepol/policydb/hierarchy.h
-index 88bc02e..27d140b 100644
---- a/include/sepol/policydb/hierarchy.h
-+++ b/include/sepol/policydb/hierarchy.h
-@@ -27,9 +27,11 @@
-
- #include <sepol/policydb/avtab.h>
- #include <sepol/policydb/policydb.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- extern int hierarchy_add_bounds(sepol_handle_t *handle, policydb_t *p);
-
-@@ -43,5 +45,8 @@ extern int bounds_check_types(sepol_handle_t *handle, policydb_t *p);
-
- extern int hierarchy_check_constraints(sepol_handle_t * handle, policydb_t * p);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/policydb/link.h b/include/sepol/policydb/link.h
-index 7c7c9be..545331d 100644
---- a/include/sepol/policydb/link.h
-+++ b/include/sepol/policydb/link.h
-@@ -12,13 +12,18 @@
-
-
- #include <stddef.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- extern int link_modules(sepol_handle_t * handle,
- 			policydb_t * b, policydb_t ** mods, int len,
- 			int verbose);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/policydb/mls_types.h b/include/sepol/policydb/mls_types.h
-index 4bf7367..52347a6 100644
---- a/include/sepol/policydb/mls_types.h
-+++ b/include/sepol/policydb/mls_types.h
-@@ -34,9 +34,11 @@
- #include <stdlib.h>
- #include <sepol/policydb/ebitmap.h>
- #include <sepol/policydb/flask_types.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- typedef struct mls_level {
- 	uint32_t sens;		/* sensitivity */
-@@ -152,5 +154,8 @@ extern void mls_semantic_range_init(mls_semantic_range_t *r);
- extern void mls_semantic_range_destroy(mls_semantic_range_t *r);
- extern int mls_semantic_range_cpy(mls_semantic_range_t *dst, mls_semantic_range_t *src);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/policydb/module.h b/include/sepol/policydb/module.h
-index 3fe560c..d0d2c7a 100644
---- a/include/sepol/policydb/module.h
-+++ b/include/sepol/policydb/module.h
-@@ -27,11 +27,12 @@
-
- #include <sepol/policydb/policydb.h>
- #include <sepol/policydb/conditional.h>
--#include <sys/cdefs.h>
-
- #define SEPOL_MODULE_PACKAGE_MAGIC 0xf97cff8f
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- struct sepol_module_package {
- 	sepol_policydb_t *policy;
-@@ -48,5 +49,8 @@ struct sepol_module_package {
-
- extern int sepol_module_package_init(sepol_module_package_t * p);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/policydb/polcaps.h b/include/sepol/policydb/polcaps.h
-index 74b7c9e..53d7994 100644
---- a/include/sepol/policydb/polcaps.h
-+++ b/include/sepol/policydb/polcaps.h
-@@ -1,9 +1,9 @@
- #ifndef _SEPOL_POLICYDB_POLCAPS_H_
- #define _SEPOL_POLICYDB_POLCAPS_H_
-
--#include <sys/cdefs.h>
--
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /* Policy capabilities */
- enum {
-@@ -21,5 +21,8 @@ extern int sepol_polcap_getnum(const char *name);
- /* Convert a capability number to name. */
- extern const char *sepol_polcap_getname(int capnum);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif /* _SEPOL_POLICYDB_POLCAPS_H_ */
-diff --git a/include/sepol/policydb/policydb.h b/include/sepol/policydb/policydb.h
-index 26cec13..0d770bf 100644
---- a/include/sepol/policydb/policydb.h
-+++ b/include/sepol/policydb/policydb.h
-@@ -61,7 +61,6 @@
- #include <sepol/policydb/context.h>
- #include <sepol/policydb/constraint.h>
- #include <sepol/policydb/sidtab.h>
--#include <sys/cdefs.h>
-
- #define ERRMSG_LEN 1024
-
-@@ -69,7 +68,9 @@
- #define POLICYDB_ERROR       -1
- #define POLICYDB_UNSUPPORTED -2
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /*
-  * A datum type is defined for each kind of symbol 
-@@ -768,7 +769,10 @@ extern int policydb_set_target_platform(policydb_t *p, int platform);
- #define POLICYDB_MOD_MAGIC SELINUX_MOD_MAGIC
- #define POLICYDB_MOD_STRING "SE Linux Module"
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif				/* _POLICYDB_H_ */
-
- /* FLASK */
-diff --git a/include/sepol/policydb/services.h b/include/sepol/policydb/services.h
-index 8a5dc9a..29f57cf 100644
---- a/include/sepol/policydb/services.h
-+++ b/include/sepol/policydb/services.h
-@@ -15,9 +15,10 @@
- #include <sepol/policydb/flask_types.h>
- #include <sepol/policydb/policydb.h>
- #include <stddef.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /* Set the policydb and sidtab structures to be used by
-    the service functions.  If not set, then these default
-@@ -230,5 +231,8 @@ extern int sepol_genfs_sid(const char *fstype,	/* IN */
- 			   sepol_security_class_t sclass,	/* IN */
- 			   sepol_security_id_t * sid);	/* OUT  */
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/policydb/sidtab.h b/include/sepol/policydb/sidtab.h
-index 4b93567..2df1a50 100644
---- a/include/sepol/policydb/sidtab.h
-+++ b/include/sepol/policydb/sidtab.h
-@@ -11,9 +11,10 @@
- #define _SEPOL_POLICYDB_SIDTAB_H_
-
- #include <sepol/policydb/context.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- typedef struct sidtab_node {
- 	sepol_security_id_t sid;	/* security identifier */
-@@ -69,7 +70,10 @@ extern void sepol_sidtab_set(sidtab_t * dst, sidtab_t * src);
-
- extern void sepol_sidtab_shutdown(sidtab_t * s);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif				/* _SIDTAB_H_ */
-
- /* FLASK */
-diff --git a/include/sepol/policydb/symtab.h b/include/sepol/policydb/symtab.h
-index e0da337..68b5ad4 100644
---- a/include/sepol/policydb/symtab.h
-+++ b/include/sepol/policydb/symtab.h
-@@ -14,9 +14,10 @@
- #define _SEPOL_POLICYDB_SYMTAB_H_
-
- #include <sepol/policydb/hashtab.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /* The symtab_datum struct stores the common information for
-  * all symtab datums. It should the first element in every
-@@ -37,7 +38,10 @@ typedef struct {
- extern int symtab_init(symtab_t *, unsigned int size);
- extern void symtab_destroy(symtab_t *);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif				/* _SYMTAB_H_ */
-
- /* FLASK */
-diff --git a/include/sepol/policydb/util.h b/include/sepol/policydb/util.h
-index fa12661..ee236a2 100644
---- a/include/sepol/policydb/util.h
-+++ b/include/sepol/policydb/util.h
-@@ -23,9 +23,9 @@
- #ifndef __SEPOL_UTIL_H__
- #define __SEPOL_UTIL_H__
-
--#include <sys/cdefs.h>
--
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- extern int add_i_to_a(uint32_t i, uint32_t * cnt, uint32_t ** a);
-
-@@ -40,5 +40,8 @@ char *sepol_extended_perms_to_string(avtab_extended_perms_t *xperms);
-  */
- extern int tokenize(char *line_buf, char delim, int num_args, ...);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/port_record.h b/include/sepol/port_record.h
-index 697cea4..3bb4039 100644
---- a/include/sepol/port_record.h
-+++ b/include/sepol/port_record.h
-@@ -3,9 +3,10 @@
-
- #include <sepol/context_record.h>
- #include <sepol/handle.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- struct sepol_port;
- struct sepol_port_key;
-@@ -66,5 +67,8 @@ extern int sepol_port_clone(sepol_handle_t * handle,
-
- extern void sepol_port_free(sepol_port_t * port);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/ports.h b/include/sepol/ports.h
-index b4622ba..cda246c 100644
---- a/include/sepol/ports.h
-+++ b/include/sepol/ports.h
-@@ -4,9 +4,10 @@
- #include <sepol/handle.h>
- #include <sepol/policydb.h>
- #include <sepol/port_record.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /* Return the number of ports */
- extern int sepol_port_count(sepol_handle_t * handle,
-@@ -40,5 +41,8 @@ extern int sepol_port_iterate(sepol_handle_t * handle,
- 			      int (*fn) (const sepol_port_t * port,
- 					 void *fn_arg), void *arg);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/roles.h b/include/sepol/roles.h
-index 89b3af2..e750078 100644
---- a/include/sepol/roles.h
-+++ b/include/sepol/roles.h
-@@ -1,9 +1,9 @@
- #ifndef _SEPOL_ROLES_H_
- #define _SEPOL_ROLES_H_
-
--#include <sys/cdefs.h>
--
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- extern int sepol_role_exists(const sepol_policydb_t * policydb,
- 			     const char *role, int *response);
-@@ -11,5 +11,8 @@ extern int sepol_role_exists(const sepol_policydb_t * policydb,
- extern int sepol_role_list(const sepol_policydb_t * policydb,
- 			   char ***roles, unsigned int *nroles);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/sepol.h b/include/sepol/sepol.h
-index 00a2129..513f77d 100644
---- a/include/sepol/sepol.h
-+++ b/include/sepol/sepol.h
-@@ -3,9 +3,10 @@
-
- #include <stddef.h>
- #include <stdio.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- #include <sepol/user_record.h>
- #include <sepol/context_record.h>
-@@ -28,5 +29,8 @@ __BEGIN_DECLS
- /* Set internal policydb from a file for subsequent service calls. */
- extern int sepol_set_policydb_from_file(FILE * fp);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/user_record.h b/include/sepol/user_record.h
-index 9a39526..d17a3db 100644
---- a/include/sepol/user_record.h
-+++ b/include/sepol/user_record.h
-@@ -3,9 +3,10 @@
-
- #include <stddef.h>
- #include <sepol/handle.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- struct sepol_user;
- struct sepol_user_key;
-@@ -76,5 +77,8 @@ extern int sepol_user_clone(sepol_handle_t * handle,
-
- extern void sepol_user_free(sepol_user_t * user);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
-diff --git a/include/sepol/users.h b/include/sepol/users.h
-index 0e0f76e..ad23f89 100644
---- a/include/sepol/users.h
-+++ b/include/sepol/users.h
-@@ -5,9 +5,10 @@
- #include <sepol/user_record.h>
- #include <sepol/handle.h>
- #include <stddef.h>
--#include <sys/cdefs.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /*---------compatibility------------*/
-
-@@ -57,5 +58,8 @@ extern int sepol_user_iterate(sepol_handle_t * handle,
- 			      int (*fn) (const sepol_user_t * user,
- 					 void *fn_arg), void *arg);
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
Signature · 1 line
2.7.4
#18 lore raw

PATCH 6/8 package/libsepol: drop a musl-compatibility patch

Quoted 4 lines · Yann E. MORIN

We now always have a sys/cdefs.h, so we can drop this patch.

Cc Thomas Petazzoni <[email protected]>

After carefully checking that the removed patch doesn't do anything other than
cdefs.h and __BEGIN_DECLS:

Regards,
Arnout

Quoted 5 lines
---
 package/libsepol/0005-replace-cdefs.patch | 1074 -----------------------------
 1 file changed, 1074 deletions(-)
 delete mode 100644 package/libsepol/0005-replace-cdefs.patch

[snip]

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
#19 lore raw

PATCH 7/8 package/linknx: drop a musl-compatibility patch

In reply to Yann E. MORIN

We now always have a sys/cdefs.h, so we can drop this patch.

Cc Thomas Petazzoni <[email protected]>
---
 package/linknx/0002-musl-cdefs.patch | 37 ------------------------------------
 1 file changed, 37 deletions(-)
 delete mode 100644 package/linknx/0002-musl-cdefs.patch
package/linknx/0002-musl-cdefs.patch deleted +0 -37
deleted file mode 100644
index 59e28ca..0000000
@@ -1,37 +0,0 @@
-Do not use the non-standard <sys/cdefs.h> header
-
-<sys/cdefs.h> is glibc-specific, and should be used only internally by
-glibc, not by external libraries/programs. It is not available in all
-standard C libraries.
-
-Signed-off-by: Bernd Kuhls <[email protected]>
-(Patch sent upstream: https://sourceforge.net/p/linknx/patches/21/)
-
-diff -uNr linknx-0.0.1.32.org/include/eibclient.h linknx-0.0.1.32/include/eibclient.h
---- linknx-0.0.1.32.org/include/eibclient.h	2007-10-11 01:55:33.000000000 +0200
-+++ linknx-0.0.1.32/include/eibclient.h	2016-01-23 23:21:17.315006629 +0100
-@@ -27,11 +27,12 @@
- #ifndef EIBCLIENT_H
- #define EIBCLIENT_H
- 
--#include "sys/cdefs.h"
- #include "stdint.h"
- #include <pthsem.h>
- 
--__BEGIN_DECLS;
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- 
- #include "eibloadresult.h"
- 
-@@ -705,5 +706,8 @@
-  */
- int EIB_LoadImage_async (EIBConnection * con, const uint8_t * image, int len);
- 
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
Signature · 1 line
2.7.4
#20 lore raw

PATCH 7/8 package/linknx: drop a musl-compatibility patch

Quoted 4 lines · Yann E. MORIN

We now always have a sys/cdefs.h, so we can drop this patch.

Cc Thomas Petazzoni <[email protected]>

Regards,
Arnout

Quoted 49 lines
---
 package/linknx/0002-musl-cdefs.patch | 37 ------------------------------------
 1 file changed, 37 deletions(-)
 delete mode 100644 package/linknx/0002-musl-cdefs.patch
package/linknx/0002-musl-cdefs.patch deleted +0 -37
deleted file mode 100644
index 59e28ca..0000000
@@ -1,37 +0,0 @@
-Do not use the non-standard <sys/cdefs.h> header
-
-<sys/cdefs.h> is glibc-specific, and should be used only internally by
-glibc, not by external libraries/programs. It is not available in all
-standard C libraries.
-
-Signed-off-by: Bernd Kuhls <[email protected]>
-(Patch sent upstream: https://sourceforge.net/p/linknx/patches/21/)
-
-diff -uNr linknx-0.0.1.32.org/include/eibclient.h linknx-0.0.1.32/include/eibclient.h
---- linknx-0.0.1.32.org/include/eibclient.h	2007-10-11 01:55:33.000000000 +0200
-+++ linknx-0.0.1.32/include/eibclient.h	2016-01-23 23:21:17.315006629 +0100
-@@ -27,11 +27,12 @@
- #ifndef EIBCLIENT_H
- #define EIBCLIENT_H
- 
--#include "sys/cdefs.h"
- #include "stdint.h"
- #include <pthsem.h>
- 
--__BEGIN_DECLS;
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- 
- #include "eibloadresult.h"
- 
-@@ -705,5 +706,8 @@
-  */
- int EIB_LoadImage_async (EIBConnection * con, const uint8_t * image, int len);
- 
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
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
#21 lore raw

PATCH 8/8 package/qlibc: drop a musl-compatibility patch

In reply to Yann E. MORIN

We now always have a sys/cdefs.h, so we can drop this patch.

Cc Thomas Petazzoni <[email protected]>
---
 ...l-build-by-removing-usage-of-internal-gli.patch | 59 ----------------------
 1 file changed, 59 deletions(-)
 delete mode 100644 package/qlibc/0004-md5-fix-musl-build-by-removing-usage-of-internal-gli.patch
package/qlibc/0004-md5-fix-musl-build-by-removing-usage-of-internal-gli.patch deleted +0 -59
deleted file mode 100644
index a48b27f..0000000
@@ -1,59 +0,0 @@
-From fe45b18f777b1414aee908f08f56a5730a00dbb5 Mon Sep 17 00:00:00 2001
-From: Bernd Kuhls <[email protected]>
-Date: Sat, 21 May 2016 09:59:56 +0200
-Subject: [PATCH 1/1] md5: fix musl build by removing usage of internal glibc
- header sys/cdefs.h
-
-As suggested in musl FAQ:
-http://wiki.musl-libc.org/wiki/FAQ#Q:_I.27m_trying_to_compile_something_against_musl_and_I_get_error_messages_about_sys.2Fcdefs.h
-
-Signed-off-by: Bernd Kuhls <[email protected]>
-(Patch for master branch sent upstream:
- https://github.com/wolkykim/qlibc/pull/53)
----
- src/internal/md5/md5.h  | 10 ++++++----
- src/internal/md5/md5c.c |  1 -
- 2 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/src/internal/md5/md5.h b/src/internal/md5/md5.h
-index cbfa7ca..8e726fe 100644
---- a/src/internal/md5/md5.h
-+++ b/src/internal/md5/md5.h
-@@ -35,9 +35,9 @@ typedef struct MD5Context {
-     unsigned char buffer[64]; /* input buffer */
- } MD5_CTX;
- 
--#include <sys/cdefs.h>
--
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- void MD5Init(MD5_CTX *);
- void MD5Update(MD5_CTX *, const unsigned char *, unsigned int);
- void MD5Final(unsigned char[16], MD5_CTX *);
-@@ -45,6 +45,8 @@ char * MD5End(MD5_CTX *, char *);
- char * MD5File(const char *, char *);
- char * MD5FileChunk(const char *, char *, off_t, off_t);
- char * MD5Data(const unsigned char *, unsigned int, char *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* Q_MD5_H */
-diff --git a/src/internal/md5/md5c.c b/src/internal/md5/md5c.c
-index de9e47f..040bf5e 100644
---- a/src/internal/md5/md5c.c
-+++ b/src/internal/md5/md5c.c
-@@ -26,7 +26,6 @@
-  * edited for clarity and style only.
-  */
- 
--#include <sys/cdefs.h>
- #include <sys/types.h>
- #include <string.h>
- #include "md5.h"
--- 
-2.8.1
-
Signature · 1 line
2.7.4
#22 lore raw

PATCH 8/8 package/qlibc: drop a musl-compatibility patch

Quoted 4 lines · Yann E. MORIN

We now always have a sys/cdefs.h, so we can drop this patch.

Cc Thomas Petazzoni <[email protected]>

Regards,
Arnout

Quoted 5 lines
---
 ...l-build-by-removing-usage-of-internal-gli.patch | 59 ----------------------
 1 file changed, 59 deletions(-)
 delete mode 100644 package/qlibc/0004-md5-fix-musl-build-by-removing-usage-of-internal-gli.patch

[snip]

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
#23 lore raw

cover musl: add compatibility cdefs.h header (branch yem/cdefs)

In reply to Yann E. MORIN
Quoted 4 lines · Yann E. MORIN

Hello All!

This series is an ateempt at quiescing, once and for all, all the build failures under musl, due to missing non-standard header cdefs.h.

[snip]

Quoted 7 lines

Fixing all those bodies of code is nigh impossible, so instead we provide a strictly-minimal sys/cdefs.h, that defines only the three strictly-required macros:

- __P() to declare function prototypes;
- __BEGIN_DECLS and __END_DECLS to enclose C declarations.

Quoted 8 lines

When (if!) more are needed, they can be added later.

The basic idea was suggested by Thomas P. on IRC. Thanks! :-)

This then allows us to drop quite a few patches that were removing use of cdefs.h. However, including sys/cdefs.h has been added to two packages that were relying on other glibc headers to include it.

I had some minor comments on the first patch, all others have my Reviewed-by.
However, you missed two patches:

package/atftp/0002-argz.h-fix-musl-compile-add-missing-defines.patch

-> This one shows that __THROW and __attribute_pure__ may be needed as well.

package/attr/0002-avoid-glibc-specific-decls-defines.patch

-> Although it's probably better to keep it as is, otherwise an include cdefs.h would have to be added.

Regards,
Arnout

[snip]

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