am 86229aa6: Merge "libbcc: Fix build with gcc 4.8+"

* commit '86229aa68095a84aaab1ed53188e377d4df89b50':
  libbcc: Fix build with gcc 4.8+
diff --git a/runtime/lib/ashldi3.c b/runtime/lib/ashldi3.c
index 993f71c..cb2af08 100644
--- a/runtime/lib/ashldi3.c
+++ b/runtime/lib/ashldi3.c
@@ -12,6 +12,7 @@
  * ===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 
 /* Returns: a << b */
@@ -39,3 +40,4 @@
     }
     return result.all;
 }
+#endif
diff --git a/runtime/lib/divsi3.c b/runtime/lib/divsi3.c
index 0eff6ef..de1700a 100644
--- a/runtime/lib/divsi3.c
+++ b/runtime/lib/divsi3.c
@@ -12,6 +12,7 @@
  * ===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 
 su_int __udivsi3(su_int n, su_int d);
@@ -29,3 +30,4 @@
     s_a ^= s_b;                                  /* sign of quotient */
     return (__udivsi3(a, b) ^ s_a) - s_a;        /* negate if s_a == -1 */
 }
+#endif
diff --git a/runtime/lib/fixdfdi.c b/runtime/lib/fixdfdi.c
index 3d3116c..16b4afd 100644
--- a/runtime/lib/fixdfdi.c
+++ b/runtime/lib/fixdfdi.c
@@ -12,6 +12,7 @@
  * ===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 
 /* Returns: convert a to a signed long long, rounding toward zero. */
@@ -41,3 +42,4 @@
         r.all >>= (52 - e);
     return (r.all ^ s) - s;
 } 
+#endif
diff --git a/runtime/lib/fixsfdi.c b/runtime/lib/fixsfdi.c
index 08f1524..3e9b12e 100644
--- a/runtime/lib/fixsfdi.c
+++ b/runtime/lib/fixsfdi.c
@@ -12,6 +12,7 @@
  * ===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 
 /* Returns: convert a to a signed long long, rounding toward zero. */
@@ -39,3 +40,4 @@
         r >>= (23 - e);
     return (r ^ s) - s;
 }
+#endif
diff --git a/runtime/lib/fixunsdfdi.c b/runtime/lib/fixunsdfdi.c
index bdcee13..51040e8 100644
--- a/runtime/lib/fixunsdfdi.c
+++ b/runtime/lib/fixunsdfdi.c
@@ -12,6 +12,7 @@
  * ===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 
 /* Returns: convert a to a unsigned long long, rounding toward zero.
@@ -43,3 +44,4 @@
         r.all >>= (52 - e);
     return r.all;
 }
+#endif
diff --git a/runtime/lib/fixunsdfsi.c b/runtime/lib/fixunsdfsi.c
index a0cba79..513dbeb 100644
--- a/runtime/lib/fixunsdfsi.c
+++ b/runtime/lib/fixunsdfsi.c
@@ -12,6 +12,7 @@
  * ===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 
 /* Returns: convert a to a unsigned int, rounding toward zero.
@@ -40,3 +41,4 @@
                 (fb.u.s.low >> 21)
            ) >> (31 - e);
 }
+#endif
diff --git a/runtime/lib/fixunssfdi.c b/runtime/lib/fixunssfdi.c
index 3837bd8..3dd195c 100644
--- a/runtime/lib/fixunssfdi.c
+++ b/runtime/lib/fixunssfdi.c
@@ -12,6 +12,7 @@
  * ===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 
 /* Returns: convert a to a unsigned long long, rounding toward zero.
@@ -41,3 +42,4 @@
         r >>= (23 - e);
     return r;
 }
+#endif
diff --git a/runtime/lib/floatdidf.c b/runtime/lib/floatdidf.c
index a0f501b..94606aa 100644
--- a/runtime/lib/floatdidf.c
+++ b/runtime/lib/floatdidf.c
@@ -12,6 +12,7 @@
  *===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 #include <float.h>
 
@@ -105,3 +106,4 @@
     return fb.f;
 }
 #endif
+#endif
diff --git a/runtime/lib/floatdisf.c b/runtime/lib/floatdisf.c
index 1925f15..0f1923b 100644
--- a/runtime/lib/floatdisf.c
+++ b/runtime/lib/floatdisf.c
@@ -12,6 +12,7 @@
  *===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 #include <float.h>
 
@@ -77,3 +78,4 @@
            ((su_int)a & 0x007FFFFF);   /* mantissa */
     return fb.f;
 }
+#endif
diff --git a/runtime/lib/floatundidf.c b/runtime/lib/floatundidf.c
index 1f304c5..9dc73af 100644
--- a/runtime/lib/floatundidf.c
+++ b/runtime/lib/floatundidf.c
@@ -12,6 +12,7 @@
  * ===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 #include <float.h>
 
@@ -105,3 +106,4 @@
     return fb.f;
 }
 #endif
+#endif
diff --git a/runtime/lib/floatundisf.c b/runtime/lib/floatundisf.c
index 79b4b82..d5d3599 100644
--- a/runtime/lib/floatundisf.c
+++ b/runtime/lib/floatundisf.c
@@ -12,6 +12,7 @@
  *===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 #include <float.h>
 
@@ -74,3 +75,4 @@
            ((su_int)a & 0x007FFFFF);  /* mantissa */
     return fb.f;
 }
+#endif
diff --git a/runtime/lib/lshrdi3.c b/runtime/lib/lshrdi3.c
index 57484ee..29836bf 100644
--- a/runtime/lib/lshrdi3.c
+++ b/runtime/lib/lshrdi3.c
@@ -12,6 +12,7 @@
  * ===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 
 /* Returns: logical a >> b */
@@ -39,3 +40,4 @@
     }
     return result.all;
 }
+#endif
diff --git a/runtime/lib/muldi3.c b/runtime/lib/muldi3.c
index 38963b7..b2dd80f 100644
--- a/runtime/lib/muldi3.c
+++ b/runtime/lib/muldi3.c
@@ -12,6 +12,7 @@
  * ===----------------------------------------------------------------------===
  */ 
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 
 /* Returns: a * b */
@@ -52,3 +53,4 @@
     r.s.high += x.s.high * y.s.low + x.s.low * y.s.high;
     return r.all;
 }
+#endif
diff --git a/runtime/lib/udivsi3.c b/runtime/lib/udivsi3.c
index 70528b6..fa0bb7c 100644
--- a/runtime/lib/udivsi3.c
+++ b/runtime/lib/udivsi3.c
@@ -12,6 +12,7 @@
  * ===----------------------------------------------------------------------===
  */
 
+#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
 #include "int_lib.h"
 
 /* Returns: a / b */
@@ -61,3 +62,4 @@
     q = (q << 1) | carry;
     return q;
 }
+#endif