kumquat-buildroot/package/nodejs/0.10.40/0005-fix-musl-USE-MISC-build-issue.patch
Jörg Krause aab10cedec package/nodejs/0.10.x: add patch to fix musl build error
The musl C library does not understand the feature test macro __USE_MISC and so
libuv (built-in dependency of nodejs) does not use the correct struct stat
definition for musl:
	error: ‘uv_statbuf_t’ has no member named ‘st_ctimensec’
	error: ‘uv_statbuf_t’ has no member named ‘st_mtimensec’

The macro __USE_MISC is defined by glibc if _BSD_SOURCE or _SVID_SOURCE is
defined.

The libuv build system enables the feature test macro _GNU_SOURCE for linux
builds.

Since glibc 2.19, defining _GNU_SOURCE also has the effect of implicitly
defining _DEFAULT_SOURCE - the replacement for _BSD_SOURCE and _SVID_SOURCE.

In glibc versions before 2.20, defining _GNU_SOURCE also had the effect of
implicitly defining _BSD_SOURCE and _SVID_SOURCE. This is also true for uClibc.

Alltogether, we can safely replace __USE_MISC by _GNU_SOURCE to support building
nodejs 0.10.x with the musl C library.

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-08-06 09:00:09 +02:00

48 lines
1.8 KiB
Diff

From 0bc482abeb814573251ecafb5a1e045c885b13a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
Date: Mon, 25 May 2015 16:22:57 +0200
Subject: [PATCH 1/1] Fix musl __USE_MISC issue
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The musl C library does not define __USE_MISC and so libuv (built-in dependency)
does not use the correct struct stat definition for musl.
The feature test macro __USE_MISC is defined by glibc if _BSD_SOURCE or
_SVID_SOURCE is defined.
The libuv build system enables the feature test macro _GNU_SOURCE for linux
builds.
Since glibc 2.19, defining _GNU_SOURCE also has the effect of implicitly
defining _DEFAULT_SOURCE - the replacement for _BSD_SOURCE and _SVID_SOURCE.
In glibc versions before 2.20, defining _GNU_SOURCE also had the effect of
implicitly defining _BSD_SOURCE and _SVID_SOURCE. This is also true for uClibc.
Alltogether, we can safely replace __USE_MISC by _GNU_SOURCE to support building
nodejs 0.10.x with the musl C library.
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
---
deps/uv/src/fs-poll.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/deps/uv/src/fs-poll.c b/deps/uv/src/fs-poll.c
index ad27f18..094447e 100644
--- a/deps/uv/src/fs-poll.c
+++ b/deps/uv/src/fs-poll.c
@@ -198,7 +198,7 @@ static int statbuf_eq(const uv_statbuf_t* a, const uv_statbuf_t* b) {
/* Jump through a few hoops to get sub-second granularity on Linux. */
# if defined(__linux__)
-# if defined(__USE_MISC) /* _BSD_SOURCE || _SVID_SOURCE */
+# if defined(_GNU_SOURCE) /* _BSD_SOURCE || _SVID_SOURCE */
if (a->st_ctim.tv_nsec != b->st_ctim.tv_nsec) return 0;
if (a->st_mtim.tv_nsec != b->st_mtim.tv_nsec) return 0;
# else
--
2.4.1