[Feature][task-view-306]merge P56U08(patch6) version

Only Configure: No
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No

Change-Id: I8e809511ac30c97228dd110c304b4a08f4af36d7
diff --git a/ap/libc/glibc/glibc-2.23/bits/typesizes.h b/ap/libc/glibc/glibc-2.23/bits/typesizes.h
old mode 100644
new mode 100755
index 53047b8..a8c4904
--- a/ap/libc/glibc/glibc-2.23/bits/typesizes.h
+++ b/ap/libc/glibc/glibc-2.23/bits/typesizes.h
@@ -47,7 +47,7 @@
 #define	__FSWORD_T_TYPE		__SWORD_TYPE
 #define	__ID_T_TYPE		__U32_TYPE
 #define __CLOCK_T_TYPE		__SLONGWORD_TYPE
-#define __TIME_T_TYPE		__SLONGWORD_TYPE
+#define __TIME_T_TYPE		__ULONGWORD_TYPE
 #define __USECONDS_T_TYPE	__U32_TYPE
 #define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE
 #define __DADDR_T_TYPE		__S32_TYPE
diff --git a/ap/libc/glibc/glibc-2.23/sysdeps/unix/sysv/linux/adjtime.c b/ap/libc/glibc/glibc-2.23/sysdeps/unix/sysv/linux/adjtime.c
old mode 100644
new mode 100755
index 555d82f..d37cfa1
--- a/ap/libc/glibc/glibc-2.23/sysdeps/unix/sysv/linux/adjtime.c
+++ b/ap/libc/glibc/glibc-2.23/sysdeps/unix/sysv/linux/adjtime.c
@@ -58,11 +58,11 @@
       struct TIMEVAL tmp;
 
       /* We will do some check here. */
-      tmp.tv_sec = itv->tv_sec + itv->tv_usec / 1000000L;
+      tmp.tv_sec = (signed long)itv->tv_sec + itv->tv_usec / 1000000L;
       tmp.tv_usec = itv->tv_usec % 1000000L;
-      if (tmp.tv_sec > MAX_SEC || tmp.tv_sec < MIN_SEC)
+      if ((signed long)tmp.tv_sec > (signed long)MAX_SEC || (signed long)tmp.tv_sec < (signed long)MIN_SEC)
 	return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
-      tntx.offset = tmp.tv_usec + tmp.tv_sec * 1000000L;
+      tntx.offset = tmp.tv_usec + (signed long)tmp.tv_sec * 1000000L;
       tntx.modes = ADJ_OFFSET_SINGLESHOT;
     }
   else
diff --git a/ap/libc/glibc/glibc-2.23/sysdeps/unix/sysv/linux/generic/bits/typesizes.h b/ap/libc/glibc/glibc-2.23/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
old mode 100644
new mode 100755
index c31bba2..9b7265f
--- a/ap/libc/glibc/glibc-2.23/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
+++ b/ap/libc/glibc/glibc-2.23/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
@@ -48,7 +48,7 @@
 #define	__FSWORD_T_TYPE		__SWORD_TYPE
 #define	__ID_T_TYPE		__U32_TYPE
 #define __CLOCK_T_TYPE		__SLONGWORD_TYPE
-#define __TIME_T_TYPE		__SLONGWORD_TYPE
+#define __TIME_T_TYPE		__ULONGWORD_TYPE
 #define __USECONDS_T_TYPE	__U32_TYPE
 #define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE
 #define __DADDR_T_TYPE		__S32_TYPE
diff --git a/ap/libc/glibc/glibc-2.23/time/tzfile.c b/ap/libc/glibc/glibc-2.23/time/tzfile.c
old mode 100644
new mode 100755
index 9049878..d38e5a3
--- a/ap/libc/glibc/glibc-2.23/time/tzfile.c
+++ b/ap/libc/glibc/glibc-2.23/time/tzfile.c
@@ -648,7 +648,7 @@
       __tzname[0] = NULL;
       __tzname[1] = NULL;
 
-      if (__glibc_unlikely (num_transitions == 0 || timer < transitions[0]))
+      if (__glibc_unlikely (num_transitions == 0))
 	{
 	  /* TIMER is before any transition (or there are no transitions).
 	     Choose the first non-DST type