Hi Jakub, > On Thu, Nov 21, 2019 at 01:41:47AM +0100, Rainer Orth wrote: >> Same on sparc-sun-solaris2.11 and i386-pc-solaris2.11. >> >> There where quite a number of non-Go regressions all over the place. >> Many are like this: >> >> FAIL: gcc.c-torture/execute/complex-6.c -O0 (test for excess errors) >> >> ld: warning: symbol 'err' has differing types: >> (file /var/tmp//ccWQCyMc.o type=OBJT; file /lib/libc.so type=FUNC); >> /var/tmp//ccWQCyMc.o definition taken > > On i686-linux, I see just: > +FAIL: gcc.target/i386/memcpy-strategy-1.c scan-assembler-times movdqa 4 > +FAIL: gcc.target/i386/memcpy-strategy-2.c scan-assembler-times movdqa 4 > +FAIL: gcc.target/i386/memcpy-vector_loop-1.c scan-assembler-times movdqa 4 > +FAIL: gcc.target/i386/pr69052.c scan-assembler-not leal[ > \\t]ind@GOTOFF\\\\(%[^,]*\\\\), % > +FAIL: gfortran.dg/global_vars_f90_init.f90 -O0 (test for excess errors) > +UNRESOLVED: gfortran.dg/global_vars_f90_init.f90 -O0 compilation failed to > produce executable > +FAIL: gfortran.dg/global_vars_f90_init.f90 -O1 (test for excess errors) > +UNRESOLVED: gfortran.dg/global_vars_f90_init.f90 -O1 compilation failed to > produce executable > +FAIL: gfortran.dg/global_vars_f90_init.f90 -O2 (test for excess errors) > +UNRESOLVED: gfortran.dg/global_vars_f90_init.f90 -O2 compilation failed to > produce executable > +FAIL: gfortran.dg/global_vars_f90_init.f90 -O3 -fomit-frame-pointer > -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess > errors) > +UNRESOLVED: gfortran.dg/global_vars_f90_init.f90 -O3 -fomit-frame-pointer > -funroll-loops -fpeel-loops -ftracer -finline-functions compilation failed > to produce executable > +FAIL: gfortran.dg/global_vars_f90_init.f90 -O3 -g (test for excess errors) > +UNRESOLVED: gfortran.dg/global_vars_f90_init.f90 -O3 -g compilation failed > to produce executable > +FAIL: gfortran.dg/global_vars_f90_init.f90 -Os (test for excess errors) > +UNRESOLVED: gfortran.dg/global_vars_f90_init.f90 -Os compilation failed to > produce executable
I'm seeing those, too, plus the following that are apparently only diagnosed by Solaris ld: +FAIL: gcc.c-torture/execute/20030913-1.c -O0 (test for excess errors) +FAIL: gcc.c-torture/execute/20030913-1.c -O1 (test for excess errors) +FAIL: gcc.c-torture/execute/20030913-1.c -O2 (test for excess errors) +FAIL: gcc.c-torture/execute/20030913-1.c -O2 -flto (test for excess errors) +FAIL: gcc.c-torture/execute/20030913-1.c -O2 -flto -flto-partition=none (test for excess errors) +FAIL: gcc.c-torture/execute/20030913-1.c -O3 -g (test for excess errors) +FAIL: gcc.c-torture/execute/20030913-1.c -Os (test for excess errors) Excess errors: ld: warning: symbol 'glob' has differing types: (file /var/tmp//ccdl_86b.o type=OBJT; file /lib/libc.so type=FUNC); /var/tmp//ccdl_86b.o definition taken +FAIL: gcc.c-torture/execute/960218-1.c -O0 (test for excess errors) +FAIL: gcc.c-torture/execute/960218-1.c -O1 (test for excess errors) +FAIL: gcc.c-torture/execute/960218-1.c -O2 (test for excess errors) +FAIL: gcc.c-torture/execute/960218-1.c -O2 -flto (test for excess errors) +FAIL: gcc.c-torture/execute/960218-1.c -O2 -flto -flto-partition=none (test for excess errors) +FAIL: gcc.c-torture/execute/960218-1.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) +FAIL: gcc.c-torture/execute/960218-1.c -O3 -g (test for excess errors) +FAIL: gcc.c-torture/execute/960218-1.c -Os (test for excess errors) Excess errors: ld: warning: symbol 'glob' has differing types: (file /var/tmp//cc0ib2Zb.o type=OBJT; file /lib/libc.so type=FUNC); /var/tmp//cc0ib2Zb.o definition taken +FAIL: gcc.c-torture/execute/complex-6.c -O0 (test for excess errors) +FAIL: gcc.c-torture/execute/complex-6.c -O1 (test for excess errors) +FAIL: gcc.c-torture/execute/complex-6.c -O2 (test for excess errors) +FAIL: gcc.c-torture/execute/complex-6.c -O2 -flto (test for excess errors) +FAIL: gcc.c-torture/execute/complex-6.c -O2 -flto -flto-partition=none (test for excess errors) +FAIL: gcc.c-torture/execute/complex-6.c -O3 -g (test for excess errors) +FAIL: gcc.c-torture/execute/complex-6.c -Os (test for excess errors) Excess errors: ld: warning: symbol 'err' has differing types: (file /var/tmp//ccz5Kj5d.o type=OBJT; file /lib/sparcv9/libc.so type=FUNC); /var/tmp//ccz5Kj5d.o definition taken +FAIL: gcc.dg/torture/ssa-pta-fn-1.c -O1 (test for excess errors) +FAIL: gcc.dg/torture/ssa-pta-fn-1.c -O2 (test for excess errors) +FAIL: gcc.dg/torture/ssa-pta-fn-1.c -O2 -flto (test for excess errors) +FAIL: gcc.dg/torture/ssa-pta-fn-1.c -O2 -flto -flto-partition=none (test for excess errors) +FAIL: gcc.dg/torture/ssa-pta-fn-1.c -O3 -g (test for excess errors) +FAIL: gcc.dg/torture/ssa-pta-fn-1.c -Os (test for excess errors) Excess errors: ld: warning: symbol 'glob' has differing types: (file /var/tmp//ccn1WXac.o type=OBJT; file /lib/sparcv9/libc.so type=FUNC); /var/tmp//ccn1WXac.o definition taken +FAIL: libgomp.c/pr39591-1.c (test for excess errors) Excess errors: ld: warning: symbol 'err' has differing types: (file /var/tmp//cc_ExIUc.o type=OBJT; file /lib/libc.so type=FUNC); /var/tmp//cc_ExIUc.o definition taken +FAIL: libgomp.c/pr39591-2.c (test for excess errors) Excess errors: ld: warning: symbol 'err' has differing types: (file /var/tmp//cc4vqObc.o type=OBJT; file /lib/libc.so type=FUNC); /var/tmp//cc4vqObc.o definition taken +FAIL: libgomp.c/pr39591-3.c (test for excess errors) Excess errors: ld: warning: symbol 'err' has differing types: (file /var/tmp//ccivrjXd.o type=OBJT; file /lib/libc.so type=FUNC); /var/tmp//ccivrjXd.o definition taken +FAIL: libgomp.c/private-1.c (test for excess errors) Excess errors: ld: warning: symbol 'err' has differing types: (file /var/tmp//cch58Hvd.o type=OBJT; file /lib/libc.so type=FUNC); /var/tmp//cch58Hvd.o definition taken +FAIL: libgomp.c/task-1.c (test for excess errors) Excess errors: ld: warning: symbol 'err' has differing types: (file /var/tmp//ccBb4fsb.o type=OBJT; file /lib/libc.so type=FUNC); /var/tmp//ccBb4fsb.o definition taken +FAIL: libgomp.c/task-5.c (test for excess errors) Excess errors: ld: warning: symbol 'err' has differing types: (file /var/tmp//ccvQhrHd.o type=OBJT; file /lib/libc.so type=FUNC); /var/tmp//ccvQhrHd.o definition taken Fixed as follows, tested on i386-pc-solaris2.11 and sparc-sun-solaris2.11. Ok for mainline? Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University 2019-11-21 Rainer Orth <r...@cebitec.uni-bielefeld.de> gcc/testsuite: * gcc.c-torture/execute/20030913-1.c: Rename glob to g. * gcc.c-torture/execute/960218-1.c: Rename glob to gl. * gcc.c-torture/execute/complex-6.c: Rename err to e. * gcc.dg/torture/ssa-pta-fn-1.c: Rename glob to g. libgomp: * testsuite/libgomp.c/pr39591-1.c: Rename err to e. * testsuite/libgomp.c/pr39591-2.c: Likewise. * testsuite/libgomp.c/pr39591-3.c: Likewise. * testsuite/libgomp.c/private-1.c: Likewise. * testsuite/libgomp.c/task-1.c: Likewise. * testsuite/libgomp.c/task-5.c: Renamed err to serr.
# HG changeset patch # Parent 4f046c682e63b85a4e432f7f7cd0d7210bca06e4 Fix failures on Solaris with -fno-common default diff --git a/gcc/testsuite/gcc.c-torture/execute/20030913-1.c b/gcc/testsuite/gcc.c-torture/execute/20030913-1.c --- a/gcc/testsuite/gcc.c-torture/execute/20030913-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/20030913-1.c @@ -1,12 +1,12 @@ /* Assignments via pointers pointing to global variables were being killed by SSA-DCE. Test contributed by Paul Brook <p...@nowt.org> */ -int glob; +int g; void fn2(int ** q) { - *q = &glob; + *q = &g; } void test() @@ -21,6 +21,6 @@ void test() int main() { test(); - if (glob != 42) abort(); + if (g != 42) abort(); exit (0); } diff --git a/gcc/testsuite/gcc.c-torture/execute/960218-1.c b/gcc/testsuite/gcc.c-torture/execute/960218-1.c --- a/gcc/testsuite/gcc.c-torture/execute/960218-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/960218-1.c @@ -1,8 +1,8 @@ -int glob; +int gl; g (x) { - glob = x; + gl = x; return 0; } @@ -16,7 +16,7 @@ f (x) main () { f (3); - if (glob != -4) + if (gl != -4) abort (); exit (0); } diff --git a/gcc/testsuite/gcc.c-torture/execute/complex-6.c b/gcc/testsuite/gcc.c-torture/execute/complex-6.c --- a/gcc/testsuite/gcc.c-torture/execute/complex-6.c +++ b/gcc/testsuite/gcc.c-torture/execute/complex-6.c @@ -6,7 +6,7 @@ #include <stdlib.h> #include <stdio.h> -int err; +int e; #define TEST(TYPE, FUNC) \ __complex__ TYPE \ @@ -31,7 +31,7 @@ test_ ## FUNC (void) \ if (res != 1.0 - 2.0i) \ { \ printf ("test_" #FUNC " failed\n"); \ - ++err; \ + ++e; \ } \ } @@ -46,7 +46,7 @@ int main (void) { - err = 0; + e = 0; test_float (); test_double (); @@ -54,7 +54,7 @@ main (void) test_int (); test_long_int (); - if (err != 0) + if (e != 0) abort (); return 0; diff --git a/gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c b/gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c --- a/gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c +++ b/gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c @@ -3,7 +3,7 @@ /* { dg-skip-if "" { *-*-* } { "-O0" "-fno-fat-lto-objects" } { "" } } */ extern void abort (void); -int *glob; +int *g; int dummy; int * __attribute__((noinline,const)) @@ -13,7 +13,7 @@ int * __attribute__((noinline,pure)) foo_pure(int *p) { return p + dummy; } int * __attribute__((noinline)) -foo_normal(int *p) { glob = p; return p; } +foo_normal(int *p) { g = p; return p; } void test_const(void) { diff --git a/libgomp/testsuite/libgomp.c/pr39591-1.c b/libgomp/testsuite/libgomp.c/pr39591-1.c --- a/libgomp/testsuite/libgomp.c/pr39591-1.c +++ b/libgomp/testsuite/libgomp.c/pr39591-1.c @@ -3,7 +3,7 @@ extern void abort (void); -int err; +int e; int main (void) @@ -23,10 +23,10 @@ main (void) for (j = 0; j < sizeof array / sizeof array[0]; j++) if (array[j] != 0x55555555) #pragma omp atomic - err++; + e++; } } - if (err) + if (e) abort (); return 0; } diff --git a/libgomp/testsuite/libgomp.c/pr39591-2.c b/libgomp/testsuite/libgomp.c/pr39591-2.c --- a/libgomp/testsuite/libgomp.c/pr39591-2.c +++ b/libgomp/testsuite/libgomp.c/pr39591-2.c @@ -3,7 +3,7 @@ extern void abort (void); -int err; +int e; void __attribute__((noinline)) foo (int *array) @@ -14,7 +14,7 @@ foo (int *array) for (j = 0; j < 40; j++) if (array[j] != 0x55555555) #pragma omp atomic - err++; + e++; } } @@ -32,7 +32,7 @@ main (void) for (i = 0; i < 50; i++) foo (array); } - if (err) + if (e) abort (); return 0; } diff --git a/libgomp/testsuite/libgomp.c/pr39591-3.c b/libgomp/testsuite/libgomp.c/pr39591-3.c --- a/libgomp/testsuite/libgomp.c/pr39591-3.c +++ b/libgomp/testsuite/libgomp.c/pr39591-3.c @@ -3,7 +3,7 @@ extern void abort (void); -int err, a[40]; +int e, a[40]; void __attribute__((noinline)) foo (int *array) @@ -14,7 +14,7 @@ foo (int *array) for (j = 0; j < 40; j++) if (array[j] != 0x55555555) #pragma omp atomic - err++; + e++; } } @@ -33,7 +33,7 @@ main (void) for (i = 0; i < 50; i++) foo (a); } - if (err) + if (e) abort (); return 0; } diff --git a/libgomp/testsuite/libgomp.c/private-1.c b/libgomp/testsuite/libgomp.c/private-1.c --- a/libgomp/testsuite/libgomp.c/private-1.c +++ b/libgomp/testsuite/libgomp.c/private-1.c @@ -20,7 +20,7 @@ f1 (int i, int j, int k) } int v1 = 1, v2 = 2, v5 = 5; -int err; +int e; void f2 (void) @@ -35,11 +35,11 @@ f2 (void) #pragma omp parallel num_threads(1) firstprivate(v1, v2, v3, v4) { if (++v1 != 8 || ++v2 != 3 || ++v3 != 4 || ++v4 != 5 || ++v5 != 6) - err = 1; + e = 1; } if (v1 != 7 || v2 != 2 || v3 != 3 || v4 != 4 || v5 != 6) abort (); - if (err) + if (e) abort (); } } diff --git a/libgomp/testsuite/libgomp.c/task-1.c b/libgomp/testsuite/libgomp.c/task-1.c --- a/libgomp/testsuite/libgomp.c/task-1.c +++ b/libgomp/testsuite/libgomp.c/task-1.c @@ -20,7 +20,7 @@ f1 (int i, int j, int k) } int v1 = 1, v2 = 2, v5 = 5; -int err; +int e; void f2 (void) @@ -35,12 +35,12 @@ f2 (void) #pragma omp task { if (++v1 != 8 || ++v2 != 3 || ++v3 != 4 || ++v4 != 5 || ++v5 != 6) - err = 1; + e = 1; } #pragma omp taskwait if (v1 != 7 || v2 != 2 || v3 != 3 || v4 != 4 || v5 != 6) abort (); - if (err) + if (e) abort (); } } diff --git a/libgomp/testsuite/libgomp.c/task-5.c b/libgomp/testsuite/libgomp.c/task-5.c --- a/libgomp/testsuite/libgomp.c/task-5.c +++ b/libgomp/testsuite/libgomp.c/task-5.c @@ -3,42 +3,42 @@ #include <omp.h> #include <stdlib.h> -int err; +int serr; int main () { int e; -#pragma omp parallel shared(err) +#pragma omp parallel shared(serr) { if (omp_in_final ()) #pragma omp atomic write - err = 1; - #pragma omp task if (0) shared(err) + serr = 1; + #pragma omp task if (0) shared(serr) { if (omp_in_final ()) #pragma omp atomic write - err = 1; - #pragma omp task if (0) shared(err) + serr = 1; + #pragma omp task if (0) shared(serr) if (omp_in_final ()) #pragma omp atomic write - err = 1; + serr = 1; } - #pragma omp task final (1) shared(err) + #pragma omp task final (1) shared(serr) { if (!omp_in_final ()) #pragma omp atomic write - err = 1; + serr = 1; #pragma omp taskyield #pragma omp taskwait - #pragma omp task shared(err) + #pragma omp task shared(serr) if (!omp_in_final ()) #pragma omp atomic write - err = 1; + serr = 1; } } #pragma omp atomic read - e = err; + e = serr; if (e) abort (); return 0;