libgc: fix build under uClibc

fenv.h is used in a workaround for a glibc specific bug. However, uClibc lies
by defining __GLIBC__, but does not provide fenv.h in our default uClibc
configurations.

Fixes:
http://autobuild.buildroot.net/results/b2a/b2a1b1e374764855e701ea62fe9f1385ba77ac0d/

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Baruch Siach 2014-04-23 15:00:03 +03:00 committed by Thomas Petazzoni
parent 73797e7b3c
commit 6bef489317
1 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,32 @@
From 9cbd876ebc6ef8cbe647d4a914d03f527f822424 Mon Sep 17 00:00:00 2001
Message-Id: <9cbd876ebc6ef8cbe647d4a914d03f527f822424.1398253762.git.baruch@tkos.co.il>
From: Baruch Siach <baruch@tkos.co.il>
Date: Wed, 23 Apr 2014 14:42:21 +0300
Subject: [PATCH] Fix build on Linux/x86_64 under uClibc
* include/private/gcconfig.h (GETCONTEXT_FPU_EXCMASK_BUG): don't define for
uClibc, as it may not have fenv.h
Patch status: sent upstream
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
include/private/gcconfig.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h
index de7998be0f54..f866cc4ed8cc 100644
--- a/include/private/gcconfig.h
+++ b/include/private/gcconfig.h
@@ -2235,7 +2235,7 @@
extern int etext[];
# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
# endif
-# if defined(__GLIBC__)
+# if defined(__GLIBC__) && !defined(__UCLIBC__)
/* At present, there's a bug in GLibc getcontext() on */
/* Linux/x64 (it clears FPU exception mask). We define this */
/* macro to workaround it. */
--
1.9.2