forked from pool/mingw64-winpthreads
OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win64/mingw64-winpthreads?expand=0&rev=22
This commit is contained in:
parent
412d8aa607
commit
efb26f182a
42
gcc7.patch
Normal file
42
gcc7.patch
Normal file
@ -0,0 +1,42 @@
|
||||
--- winpthreads/src/libgcc/dll_math.c 2013-04-10 20:11:34.000000000 +0200
|
||||
+++ winpthreads/src/libgcc/dll_math.c 2017-05-31 13:02:25.869883546 +0200
|
||||
@@ -120,6 +120,7 @@
|
||||
u_quad_t __udivdi3(u_quad_t a, u_quad_t b);
|
||||
u_quad_t __umoddi3(u_quad_t a, u_quad_t b);
|
||||
int __ucmpdi2(u_quad_t a, u_quad_t b);
|
||||
+quad_t __divmoddi4(quad_t a, quad_t b, quad_t *rem);
|
||||
|
||||
#endif /* !_LIBKERN_QUAD_H_ */
|
||||
|
||||
@@ -546,6 +547,31 @@
|
||||
(void)__qdivrem(a, b, &r);
|
||||
return (r);
|
||||
}
|
||||
+
|
||||
+/*
|
||||
+ * Divide two signed quads.
|
||||
+ * This function is new in GCC 7.
|
||||
+ */
|
||||
+quad_t
|
||||
+__divmoddi4(a, b, rem)
|
||||
+ quad_t a, b, *rem;
|
||||
+{
|
||||
+ u_quad_t ua, ub, uq, ur;
|
||||
+ int negq, negr;
|
||||
+
|
||||
+ if (a < 0)
|
||||
+ ua = -(u_quad_t)a, negq = 1, negr = 1;
|
||||
+ else
|
||||
+ ua = a, negq = 0, negr = 0;
|
||||
+ if (b < 0)
|
||||
+ ub = -(u_quad_t)b, negq ^= 1;
|
||||
+ else
|
||||
+ ub = b;
|
||||
+ uq = __qdivrem(ua, ub, &ur);
|
||||
+ if (rem)
|
||||
+ *rem = (negr ? -ur : ur);
|
||||
+ return (negq ? -uq : uq);
|
||||
+}
|
||||
#else
|
||||
static int __attribute__((unused)) dummy;
|
||||
#endif /*deined (_X86_) && !defined (__x86_64__)*/
|
Loading…
Reference in New Issue
Block a user