diff --git a/bug432146.patch b/bug432146.patch new file mode 100644 index 0000000..fd95088 --- /dev/null +++ b/bug432146.patch @@ -0,0 +1,130 @@ +Index: mozilla/security/nss/lib/freebl/mpi/mp_comba.c +=================================================================== +RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/mp_comba.c,v +retrieving revision 1.2 +diff -u -u -8 -p -r1.2 mp_comba.c +--- mozilla/security/nss/lib/freebl/mpi/mp_comba.c 16 Aug 2005 19:25:48 -0000 1.2 ++++ mozilla/security/nss/lib/freebl/mpi/mp_comba.c 14 Feb 2008 22:36:54 -0000 +@@ -87,22 +87,22 @@ __asm__ ( + "adcq $0,%2 \n\t" \ + "addq %%rax,%0 \n\t" \ + "adcq %%rdx,%1 \n\t" \ + "adcq $0,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) :"%rax","%rdx","%cc"); + + #define SQRADDSC(i, j) \ + __asm__ ( \ +- "movq %6,%%rax \n\t" \ +- "mulq %7 \n\t" \ ++ "movq %3,%%rax \n\t" \ ++ "mulq %4 \n\t" \ + "movq %%rax,%0 \n\t" \ + "movq %%rdx,%1 \n\t" \ + "xorq %2,%2 \n\t" \ +- :"=r"(sc0), "=r"(sc1), "=r"(sc2): "0"(sc0), "1"(sc1), "2"(sc2), "g"(i), "g"(j) :"%rax","%rdx","%cc"); ++ :"=r"(sc0), "=r"(sc1), "=r"(sc2): "g"(i), "g"(j) :"%rax","%rdx","%cc"); + + #define SQRADDAC(i, j) \ + __asm__ ( \ + "movq %6,%%rax \n\t" \ + "mulq %7 \n\t" \ + "addq %%rax,%0 \n\t" \ + "adcq %%rdx,%1 \n\t" \ + "adcq $0,%2 \n\t" \ +@@ -111,17 +111,17 @@ __asm__ ( + #define SQRADDDB \ + __asm__ ( \ + "addq %3,%0 \n\t" \ + "adcq %4,%1 \n\t" \ + "adcq %5,%2 \n\t" \ + "addq %3,%0 \n\t" \ + "adcq %4,%1 \n\t" \ + "adcq %5,%2 \n\t" \ +- :"=r"(c0), "=r"(c1), "=r"(c2), "=r"(sc0), "=r"(sc1), "=r"(sc2) : "0"(c0), "1"(c1), "2"(c2), "3"(sc0), "4"(sc1), "5"(sc2) : "%cc"); ++ :"=&r"(c0), "=&r"(c1), "=&r"(c2) : "r"(sc0), "r"(sc1), "r"(sc2), "0"(c0), "1"(c1), "2"(c2) : "%cc"); + + + + + + void s_mp_mul_comba_4(const mp_int *A, const mp_int *B, mp_int *C) + { + mp_digit c0, c1, c2, at[8]; +@@ -645,19 +645,17 @@ void s_mp_mul_comba_32(const mp_int *A, + mp_clamp(C); + COMBA_FINI; + } + + + + void s_mp_sqr_comba_4(const mp_int *A, mp_int *B) + { +- mp_digit *a, b[8], c0, c1, c2, sc0, sc1, sc2; +- /* get rid of some compiler warnings */ +- sc0 = 0; sc1 = 0; sc2 = 0; ++ mp_digit *a, b[8], c0, c1, c2; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ +@@ -700,18 +698,16 @@ void s_mp_sqr_comba_4(const mp_int *A, m + B->sign = ZPOS; + memcpy(B->dp, b, 8 * sizeof(mp_digit)); + mp_clamp(B); + } + + void s_mp_sqr_comba_8(const mp_int *A, mp_int *B) + { + mp_digit *a, b[16], c0, c1, c2, sc0, sc1, sc2; +- /* get rid of some compiler warnings */ +- sc0 = 0; sc1 = 0; sc2 = 0; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ +@@ -794,18 +790,16 @@ void s_mp_sqr_comba_8(const mp_int *A, m + B->sign = ZPOS; + memcpy(B->dp, b, 16 * sizeof(mp_digit)); + mp_clamp(B); + } + + void s_mp_sqr_comba_16(const mp_int *A, mp_int *B) + { + mp_digit *a, b[32], c0, c1, c2, sc0, sc1, sc2; +- /* get rid of some compiler warnings */ +- sc0 = 0; sc1 = 0; sc2 = 0; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ +@@ -969,18 +963,16 @@ void s_mp_sqr_comba_16(const mp_int *A, + memcpy(B->dp, b, 32 * sizeof(mp_digit)); + mp_clamp(B); + } + + + void s_mp_sqr_comba_32(const mp_int *A, mp_int *B) + { + mp_digit *a, b[64], c0, c1, c2, sc0, sc1, sc2; +- /* get rid of some compiler warnings */ +- sc0 = 0; sc1 = 0; sc2 = 0; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ diff --git a/nss.spec b/nss.spec index 75e3ab2..0a3088a 100644 --- a/nss.spec +++ b/nss.spec @@ -4,7 +4,7 @@ Summary: Network Security Services Name: nss Version: 3.11.99.3 -Release: 1%{?dist} +Release: 2%{?dist} License: MPLv1.1 or GPLv2+ or LGPLv2+ URL: http://www.mozilla.org/projects/security/pki/nss/ Group: System Environment/Libraries @@ -15,6 +15,7 @@ BuildRequires: nspr-devel >= %{nspr_version} BuildRequires: sqlite-devel BuildRequires: pkgconfig BuildRequires: gawk +BuildRequires: psmisc Provides: mozilla-nss Obsoletes: mozilla-nss @@ -31,6 +32,7 @@ Source12: %{name}-pem-20080124.tar.bz2 Patch1: nss-no-rpath.patch Patch2: nss-nolocalsql.patch Patch6: nss-enable-pem.patch +Patch7: bug432146.patch %description @@ -86,6 +88,7 @@ low level services. %patch1 -p0 %patch2 -p0 %patch6 -p0 -b .libpem +%patch7 -p0 %build @@ -155,6 +158,28 @@ export NSS_VPATCH chmod 755 $RPM_BUILD_ROOT/%{_bindir}/nss-config +# enable the following line to force a test failure +# find ./mozilla -name \*.chk | xargs rm -f + +# run test suite +killall selfserv || : +rm -rf ./mozilla/tests_results +cd ./mozilla/security/nss/tests/ +%ifarch x86_64 s390x ppc64 +TEST_BIND_PORT=8564 +%else +TEST_BIND_PORT=8532 +%endif +HOST=localhost DOMSUF=localdomain PORT=$TEST_BIND_PORT ./all.sh +cd ../../../../ + +TEST_FAILURES=`grep -c FAILED ./mozilla/tests_results/security/localhost.1/output.log` || : +if [ $TEST_FAILURES -ne 0 ]; then + echo "error: test suite returned failure(s)" + exit 1 +fi +echo "test suite completed" + %install @@ -375,6 +400,10 @@ done %changelog +* Thu Feb 14 2008 Kai Engert - 3.11.99.3-2 +- Build against gcc 4.3.0, use workaround for bug 432146 +- Run the test suite after the build and abort on failures. + * Thu Jan 24 2008 Kai Engert - 3.11.99.3-1 * NSS 3.12 Beta 1