0006-remove-glibc-__isleap-assumption.patch 1.93 KB
From 7f811d9c4ebc9444e613e251c31d6bf537a24dc1 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 13 Apr 2015 16:35:30 -0700
Subject: [PATCH] remove glibc assumption

glibc time.h header has an undocumented __isleap macro
that we are using anf musl is missing it.
Since it is undocumented & does not appear
on any other libc, stop using it and just define the macro in
locally  instead.

Upstream-Status: Pending

Signed-off-by: Khem Raj <raj.khem@gmail.com>
[patch from: http://patchwork.openembedded.org/patch/91893/ ]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
 parsetime.y | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/parsetime.y b/parsetime.y
index 7005e88..324e6d3 100644
--- a/parsetime.y
+++ b/parsetime.y
@@ -8,6 +8,9 @@
 
 #define YYDEBUG 1
 
+#define is_leap_year(y) \
+    ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0))
+
 struct tm exectm;
 static int isgmt;
 static int yearspec;
@@ -217,8 +220,8 @@ date            : month_name day_number
 				 mnum == 12) && dnum > 31)
 			    || ((mnum ==  4 || mnum ==  6 || mnum ==  9 ||
 			         mnum == 11) && dnum > 30)
-			    || (mnum ==  2 && dnum > 29 &&  __isleap(ynum+1900))
-			    || (mnum ==  2 && dnum > 28 && !__isleap(ynum+1900))
+			    || (mnum ==  2 && dnum > 29 &&  is_leap_year(ynum+1900))
+			    || (mnum ==  2 && dnum > 28 && !is_leap_year(ynum+1900))
 			   )
 			{
 			    yyerror("Error in day of month");
@@ -261,8 +264,8 @@ date            : month_name day_number
 				 mnum == 12) && dnum > 31)
 			    || ((mnum ==  4 || mnum ==  6 || mnum ==  9 ||
 			         mnum == 11) && dnum > 30)
-			    || (mnum ==  2 && dnum > 29 &&  __isleap(ynum+1900))
-			    || (mnum ==  2 && dnum > 28 && !__isleap(ynum+1900))
+			    || (mnum ==  2 && dnum > 29 &&  is_leap_year(ynum+1900))
+			    || (mnum ==  2 && dnum > 28 && !is_leap_year(ynum+1900))
 			   )
 			{
 			    yyerror("Error in day of month");
-- 
2.1.4