From: Bernhard Walle <[email protected]> Darwin 12.2.0 (Mac OS 10.8) defines CIRCLEQ_HEAD but doesn't define CIRCLEQ_HEAD_INITIALIZER. Since mconf.c uses CIRCLEQ_HEAD_INITIALIZER, the build fails.
A simple and safe fix is to always use our own copy of the CIRCLEQ_ macros on every platform. Include "missing.h" and don't include <sys/queue.h>. That works also on Linux, verified on current Arch Linux with glibc 2.17. Signed-off-by: Bernhard Walle <[email protected]> [add patch to scripts/ptx-modifications] Signed-off-by: Andreas Bießmann <[email protected]> --- Even darwin 11.4.2 with latest toolchain does not define CIRCLEQ_HEAD_INITIALIZER. Therefore +1 for this patch, it should also be applied to 2012.12.x stable branch. Michael, your proposed solution does not work. Darwin provides a sys/queue.h, defines CIRCLEQ_HEAD but misses to define CIRCLEQ_HEAD_INITIALIZER. I think it is too much effort to address all the possible cases in autotools. Another solution could be to check for availability of CIRCLEQ_HEAD_INITIALIZER and do not remove sys/queue.h, however, this change fixes another warning for me. scripts/kconfig/expr.h | 1 - .../0008-kconfig-Fix-build-on-Darwin.patch | 34 ++++++++++++++++++++++ scripts/ptx-modifications/series | 1 + 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 scripts/ptx-modifications/0008-kconfig-Fix-build-on-Darwin.patch diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h index 59402a3..041b08e 100644 --- a/scripts/kconfig/expr.h +++ b/scripts/kconfig/expr.h @@ -12,7 +12,6 @@ extern "C" { #include <assert.h> #include <stdio.h> -#include <sys/queue.h> #ifndef __cplusplus #include <stdbool.h> #endif diff --git a/scripts/ptx-modifications/0008-kconfig-Fix-build-on-Darwin.patch b/scripts/ptx-modifications/0008-kconfig-Fix-build-on-Darwin.patch new file mode 100644 index 0000000..3ebcdee --- /dev/null +++ b/scripts/ptx-modifications/0008-kconfig-Fix-build-on-Darwin.patch @@ -0,0 +1,34 @@ +From b55da7043756f75fa53519630d4f783cd6501fda Mon Sep 17 00:00:00 2001 +From: Bernhard Walle <[email protected]> +Date: Sat, 16 Feb 2013 12:33:28 +0100 +Subject: [PATCH] kconfig: Fix build on Darwin + +Darwin 12.2.0 (Mac OS 10.8) defines CIRCLEQ_HEAD but doesn't define +CIRCLEQ_HEAD_INITIALIZER. Since mconf.c uses CIRCLEQ_HEAD_INITIALIZER, +the build fails. + +A simple and safe fix is to always use our own copy of the CIRCLEQ_ +macros on every platform. Include "missing.h" and don't include +<sys/queue.h". That works also on Linux, verified on current Arch Linux +with glibc 2.17. + +Signed-off-by: Bernhard Walle <[email protected]> +--- + scripts/kconfig/expr.h | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h +index 59402a3..041b08e 100644 +--- a/scripts/kconfig/expr.h ++++ b/scripts/kconfig/expr.h +@@ -12,7 +12,6 @@ extern "C" { + + #include <assert.h> + #include <stdio.h> +-#include <sys/queue.h> + #ifndef __cplusplus + #include <stdbool.h> + #endif +-- +1.8.2.2 + diff --git a/scripts/ptx-modifications/series b/scripts/ptx-modifications/series index 621ad86..f89a629 100644 --- a/scripts/ptx-modifications/series +++ b/scripts/ptx-modifications/series @@ -9,3 +9,4 @@ 0005-nconf-remove-special-P_COMMENT-output.patch 0006-mconf-fix-comment-on-exit.patch 0007-kconfig-define-CIRCLEQ_-macros-when-needed.patch +0008-kconfig-Fix-build-on-Darwin.patch -- 1.8.2.2 -- ptxdist mailing list [email protected]
