diff --git a/kdelibs-4.2.0-kjs-gcc44-crash.patch b/kdelibs-4.2.0-kjs-gcc44-crash.patch index f099333..dbb04d4 100644 --- a/kdelibs-4.2.0-kjs-gcc44-crash.patch +++ b/kdelibs-4.2.0-kjs-gcc44-crash.patch @@ -1,12 +1,453 @@ -diff -ur kdelibs-4.2.0/kjs/CMakeLists.txt kdelibs-4.2.0-kjs-gcc44-crash/kjs/CMakeLists.txt ---- kdelibs-4.2.0/kjs/CMakeLists.txt 2008-11-19 11:20:10.000000000 +0100 -+++ kdelibs-4.2.0-kjs-gcc44-crash/kjs/CMakeLists.txt 2009-02-18 19:43:20.000000000 +0100 -@@ -183,6 +183,8 @@ - CompileState.cpp - ) +--- kdelibs/kjs/dtoa.cpp 2009/04/28 10:20:35 960320 ++++ kdelibs/kjs/dtoa.cpp 2009/04/28 10:28:50 960321 +@@ -203,11 +203,7 @@ + #endif -+set_source_files_properties(dtoa.cpp PROPERTIES COMPILE_FLAGS -fno-strict-aliasing) -+ - if (NOT DEFINED QT_ONLY) - set(KJSLIBNAME kjs) - else (NOT DEFINED QT_ONLY) + #ifdef MALLOC +-#ifdef KR_headers +-extern char *MALLOC(); +-#else + extern void *MALLOC(size_t); +-#endif + #else + #define MALLOC malloc + #endif +@@ -277,12 +273,8 @@ + #endif + + #ifndef CONST +-#ifdef KR_headers +-#define CONST /* blank */ +-#else + #define CONST const + #endif +-#endif + + #if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1 + Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined. +@@ -290,37 +282,19 @@ + + typedef union { double d; ULong L[2]; } U; + +-#ifdef YES_ALIAS +-#define dval(x) x ++#define dval(x) (x).d + #ifdef IEEE_8087 +-#define word0(x) ((ULong *)&x)[1] +-#define word1(x) ((ULong *)&x)[0] ++#define word0(x) (x).L[1] ++#define word1(x) (x).L[0] + #else +-#define word0(x) ((ULong *)&x)[0] +-#define word1(x) ((ULong *)&x)[1] +-#endif +-#else +-#ifdef IEEE_8087 +-#define word0(x) ((U*)&x)->L[1] +-#define word1(x) ((U*)&x)->L[0] +-#else +-#define word0(x) ((U*)&x)->L[0] +-#define word1(x) ((U*)&x)->L[1] +-#endif +-#define dval(x) ((U*)&x)->d ++#define word0(x) (x).L[0] ++#define word1(x) (x).L[1] + #endif + + /* The following definition of Storeinc is appropriate for MIPS processors. + * An alternative that might be better on some machines is +- * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff) + */ +-#if defined(IEEE_8087) + defined(VAX) +-#define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \ +-((unsigned short *)a)[0] = (unsigned short)c, a++) +-#else +-#define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \ +-((unsigned short *)a)[1] = (unsigned short)c, a++) +-#endif ++#define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff) + + /* #define P DBL_MANT_DIG */ + /* Ten_pmax = floor(P*log(2)/log(5)) */ +@@ -444,11 +418,7 @@ + #ifdef RND_PRODQUOT + #define rounded_product(a,b) a = rnd_prod(a, b) + #define rounded_quotient(a,b) a = rnd_quot(a, b) +-#ifdef KR_headers +-extern double rnd_prod(), rnd_quot(); +-#else + extern double rnd_prod(double, double), rnd_quot(double, double); +-#endif + #else + #define rounded_product(a,b) a *= b + #define rounded_quotient(a,b) a /= b +@@ -461,11 +431,7 @@ + #define Pack_32 + #endif + +-#ifdef KR_headers +-#define FFFFFFFF ((((unsigned long)0xffff)<<16)|(unsigned long)0xffff) +-#else + #define FFFFFFFF 0xffffffffUL +-#endif + + #ifdef NO_LONG_LONG + #undef ULLong +@@ -506,11 +472,7 @@ + + static Bigint * + Balloc +-#ifdef KR_headers +- (k) int k; +-#else + (int k) +-#endif + { + int x; + Bigint *rv; +@@ -546,11 +508,7 @@ + + static void + Bfree +-#ifdef KR_headers +- (v) Bigint *v; +-#else + (Bigint *v) +-#endif + { + if (v) { + ACQUIRE_DTOA_LOCK(0); +@@ -565,11 +523,7 @@ + + static Bigint * + multadd +-#ifdef KR_headers +- (b, m, a) Bigint *b; int m, a; +-#else + (Bigint *b, int m, int a) /* multiply by m and add a */ +-#endif + { + int i, wds; + #ifdef ULLong +@@ -622,11 +576,7 @@ + + static Bigint * + s2b +-#ifdef KR_headers +- (s, nd0, nd, y9) CONST char *s; int nd0, nd; ULong y9; +-#else + (CONST char *s, int nd0, int nd, ULong y9) +-#endif + { + Bigint *b; + int i, k; +@@ -660,11 +610,7 @@ + + static int + hi0bits +-#ifdef KR_headers +- (x) register ULong x; +-#else + (register ULong x) +-#endif + { + register int k = 0; + +@@ -694,11 +640,7 @@ + + static int + lo0bits +-#ifdef KR_headers +- (y) ULong *y; +-#else + (ULong *y) +-#endif + { + register int k; + register ULong x = *y; +@@ -742,11 +684,7 @@ + + static Bigint * + i2b +-#ifdef KR_headers +- (i) int i; +-#else + (int i) +-#endif + { + Bigint *b; + +@@ -758,11 +696,7 @@ + + static Bigint * + mult +-#ifdef KR_headers +- (a, b) Bigint *a, *b; +-#else + (Bigint *a, Bigint *b) +-#endif + { + Bigint *c; + int k, wa, wb, wc; +@@ -870,11 +804,7 @@ + + static Bigint * + pow5mult +-#ifdef KR_headers +- (b, k) Bigint *b; int k; +-#else + (Bigint *b, int k) +-#endif + { + Bigint *b1, *p5, *p51; + int i; +@@ -927,11 +857,7 @@ + + static Bigint * + lshift +-#ifdef KR_headers +- (b, k) Bigint *b; int k; +-#else + (Bigint *b, int k) +-#endif + { + int i, k1, n, n1; + Bigint *b1; +@@ -987,11 +913,7 @@ + + static int + cmp +-#ifdef KR_headers +- (a, b) Bigint *a, *b; +-#else + (Bigint *a, Bigint *b) +-#endif + { + ULong *xa, *xa0, *xb, *xb0; + int i, j; +@@ -1021,11 +943,7 @@ + + static Bigint * + diff +-#ifdef KR_headers +- (a, b) Bigint *a, *b; +-#else + (Bigint *a, Bigint *b) +-#endif + { + Bigint *c; + int i, wa, wb; +@@ -1115,15 +1033,12 @@ + + static double + ulp +-#ifdef KR_headers +- (x) double x; +-#else +- (double x) +-#endif ++ (double dx) + { + register Long L; +- double a; ++ U x, a; + ++ dval(x) = dx; + L = (word0(x) & Exp_mask) - (P-1)*Exp_msk1; + #ifndef Avoid_Underflow + #ifndef Sudden_Underflow +@@ -1157,15 +1072,11 @@ + + static double + b2d +-#ifdef KR_headers +- (a, e) Bigint *a; int *e; +-#else + (Bigint *a, int *e) +-#endif + { + ULong *xa, *xa0, w, y, z; + int k; +- double d; ++ U d; + #ifdef VAX + ULong d0, d1; + #else +@@ -1227,12 +1138,9 @@ + + static Bigint * + d2b +-#ifdef KR_headers +- (d, e, bits) double d; int *e, *bits; +-#else +- (double d, int *e, int *bits) +-#endif ++ (double dd, int *e, int *bits) + { ++ U d; + Bigint *b; + int de, k; + ULong *x, y, z; +@@ -1241,6 +1149,9 @@ + #endif + #ifdef VAX + ULong d0, d1; ++#endif ++ dval(d) = dd; ++#ifdef VAX + d0 = word0(d) >> 16 | word0(d) << 16; + d1 = word1(d) >> 16 | word1(d) << 16; + #else +@@ -1365,13 +1276,9 @@ + + static double + ratio +-#ifdef KR_headers +- (a, b) Bigint *a, *b; +-#else + (Bigint *a, Bigint *b) +-#endif + { +- double da, db; ++ U da, db; + int k, ka, kb; + + dval(da) = b2d(a, &ka); +@@ -1457,11 +1364,7 @@ + + static int + match +-#ifdef KR_headers +- (sp, t) char **sp, *t; +-#else + (CONST char **sp, CONST char *t) +-#endif + { + int c, d; + CONST char *s = *sp; +@@ -1479,11 +1382,7 @@ + #ifndef No_Hex_NaN + static void + hexnan +-#ifdef KR_headers +- (rvp, sp) double *rvp; CONST char **sp; +-#else +- (double *rvp, CONST char **sp) +-#endif ++ (U *rvp, CONST char **sp) + { + ULong c, x[2]; + CONST char *s; +@@ -1533,11 +1432,7 @@ + + double + strtod +-#ifdef KR_headers +- (s00, se) CONST char *s00; char **se; +-#else + (CONST char *s00, char **se) +-#endif + { + #ifdef Avoid_Underflow + int scale; +@@ -1545,7 +1440,8 @@ + int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, dsign, + e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign; + CONST char *s, *s0, *s1; +- double aadj, aadj1, adj, rv, rv0; ++ double aadj, aadj1, adj; ++ U aadj2, rv, rv0; + Long L; + ULong y, z; + Bigint *bb = NULL, *bb1 = NULL, *bd = NULL, *bd0 = NULL, *bs = NULL, *delta = NULL; +@@ -2306,7 +2202,9 @@ + aadj = z; + aadj1 = dsign ? aadj : -aadj; + } +- word0(aadj1) += (2*P+1)*Exp_msk1 - y; ++ dval(aadj2) = aadj1; ++ word0(aadj2) += (2*P+1)*Exp_msk1 - y; ++ aadj1 = dval(aadj2); + } + adj = aadj1 * ulp(dval(rv)); + dval(rv) += adj; +@@ -2423,11 +2321,7 @@ + + static int + quorem +-#ifdef KR_headers +- (b, S) Bigint *b, *S; +-#else + (Bigint *b, Bigint *S) +-#endif + { + int n; + ULong *bx, *bxe, q, *sx, *sxe; +@@ -2544,11 +2438,7 @@ + #endif + + static char * +-#ifdef KR_headers +-rv_alloc(i) int i; +-#else + rv_alloc(int i) +-#endif + { + int j, k, *r; + +@@ -2567,11 +2457,7 @@ + } + + static char * +-#ifdef KR_headers +-nrv_alloc(s, rve, n) char *s, **rve; int n; +-#else + nrv_alloc(CONST char *s, char **rve, int n) +-#endif + { + char *rv, *t; + +@@ -2589,11 +2475,7 @@ + */ + + void +-#ifdef KR_headers +-freedtoa(s) char *s; +-#else + freedtoa(char *s) +-#endif + { + Bigint *b = (Bigint *)((int *)s - 1); + b->maxwds = 1 << (b->k = *(int*)b); +@@ -2640,12 +2522,7 @@ + + char * + dtoa +-#ifdef KR_headers +- (d, mode, ndigits, decpt, sign, rve) +- double d; int mode, ndigits, *decpt, *sign; char **rve; +-#else +- (double d, int mode, int ndigits, int *decpt, int *sign, char **rve) +-#endif ++ (double dd, int mode, int ndigits, int *decpt, int *sign, char **rve) + { + /* Arguments ndigits, decpt, sign are similar to those + of ecvt and fcvt; trailing zeros are suppressed from +@@ -2690,7 +2567,8 @@ + ULong x; + #endif + Bigint *b, *b1, *delta, *mlo = NULL, *mhi, *S; +- double d2, ds, eps; ++ U d, d2, eps; ++ double ds; + char *s, *s0; + #ifdef Honor_FLT_ROUNDS + int rounding; +@@ -2706,6 +2584,7 @@ + } + #endif + ++ dval(d) = dd; + if (word0(d) & Sign_bit) { + /* set sign for everything, including 0's and NaNs */ + *sign = 1; diff --git a/kdelibs.spec b/kdelibs.spec index 7040d59..bbdd972 100644 --- a/kdelibs.spec +++ b/kdelibs.spec @@ -1,6 +1,6 @@ Summary: K Desktop Environment 4 - Libraries Version: 4.2.2 -Release: 12%{?dist} +Release: 13%{?dist} %if 0%{?fedora} > 8 Name: kdelibs @@ -422,6 +422,10 @@ rm -rf %{buildroot} %changelog +* Tue Apr 28 2009 Lukáš Tinkl - 4.2.2-13 +- upstream patch to fix GCC4.4 crashes in kjs + (kdebug:189809) + * Fri Apr 24 2009 Kevin Kofler - 4.2.2-12 - drop the PopupApplet configuration backports (#495998) for now, kconf_update does not work as expected for Plasma