This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Warning stats for all targets (was: Re: illegally shared subreg)
Here are some statistics on just how hard -Werror is really going to
be. I ran my target cross-compile farm on last night's CVS of the
trunk and the 3.4-BIB. This chart will indicate warning fluctuations
stemming from target definition differences. The host platform was
sparc-sun-solaris2.7 in all cases. Switching host platform brings in
another set of intricate problems that I won't be speaking to in this
email. But keep that in mind and factor it in when trying to
understand the scope of the problem.
Some notes:
1. The first column represents the number of warnings from the trunk,
the second is warnings from BIB. (Third column is obviously the
cross-target.)
2. To conserve disk and to minimize compilation time, I used -O -s.
Real builds would normally use -O2 -g but that's too expensive.
(Different flags might however lead to different warning results!)
3. The make command targets were: cc1 xgcc g++ g77 gcov gcj cc1plus
cc1obj jc1 f771 collect2 fix-header protoize unprotoize.
4. Not all targets finished even cc1 to completion, (let alone the
whole list.) Those that failed compiling cc1 were:
fr30-unknown-elf frv-unknown-elf i386-unknown-sysv
i386-unknown-vsta powerpc-unknown-gnu-gnualtivec
rs6000-unknown-lynxos rs6000-unknown-mach sparc-tti-bsd
sparc-unknown-bsd sparc-unknown-openbsd sparc64-unknown-openbsd
sparclite-unknown-coff.
5. Also vax-unknown-vms is removed in the 3.4-BIB.
Now consider adding -Werror (to just one .o file) and having to ensure
none of these targets have a warning in that file. Did you try all of
these combinations? Well that's not enough, because you also have to
try all combinations of --enable-/--disable-/--with-/--without- of
configure flags because they conditionally change GCC's source and may
introduce or hide warnings.
If you missed anything, someone's bootstrap breaks even if the warning
is spurious or innocuous.
I hope its clear we just can't maintain this. We can however
e.g. start with just one target like x86-linux-gnu and ensure no
warning regressions appear in the native bootstrap stage3. Aside from
helping that target, it'll help overall to ensure machine-independent
warnings aren't introduced. That at least would be a major
improvement over the current situation.
--Kaveh
17 18 alpha-dec-osf4.0a
17 18 alpha-dec-osf4.0b
17 18 alpha-dec-osf4.1
17 18 alpha-dec-osf5
35 35 alpha-dec-vms
32 33 alpha-unknown-freebsd5
34 34 alpha-unknown-interix
36 37 alpha-unknown-linux-gnu
36 37 alpha-unknown-linux-gnulibc1
36 37 alpha-unknown-netbsd
36 37 alpha-unknown-openbsd
37 37 alpha-unknown-unicosmk
18 18 alpha-unknown-vxworks
26 26 alpha64-dec-vms
90 90 arc-unknown-elf
39 39 arm-semi-aof
40 38 arm-semi-aout
58 56 arm-unknown-aout
59 57 arm-unknown-coff
62 57 arm-unknown-conix
62 57 arm-unknown-elf
57 52 arm-unknown-freebsd5
63 58 arm-unknown-linux-gnu
57 56 arm-unknown-netbsd
62 57 arm-unknown-oabi
59 57 arm-unknown-pe
62 57 arm-unknown-rtems
63 58 arm-unknown-uclinux
55 53 arm-unknown-vxworks
458 460 avr-unknown-elf
51 51 c4x-unknown-elf
51 51 c4x-unknown-rtems
44 43 cris-unknown-aout
44 43 cris-unknown-elf
43 42 cris-unknown-linux-gnu
53 55 d30v-unknown-elf
133 48 dsp16xx-unknown-elf
14 14 fr30-unknown-elf
358 360 frv-unknown-elf
97 96 h8300-unknown-aout
94 93 h8300-unknown-elf
97 96 h8300-unknown-rtems
43 44 hppa1.0-hp-hpux
43 44 hppa1.0-hp-hpux10
43 44 hppa1.0-hp-hpux11
43 44 hppa1.0-hp-hpux7
43 44 hppa1.0-hp-hpux8.02
43 44 hppa1.0-hp-hpux8
25 26 hppa1.0-unknown-bsd
43 44 hppa1.0-unknown-hiux
42 44 hppa1.0-unknown-linux-gnu
24 26 hppa1.0-unknown-lites
25 26 hppa1.0-unknown-osf
43 44 hppa1.1-hp-hpux
43 44 hppa1.1-hp-hpux10
43 44 hppa1.1-hp-hpux11
43 44 hppa1.1-hp-hpux8.02
43 44 hppa1.1-hp-hpux8
25 26 hppa1.1-unknown-bsd
43 44 hppa1.1-unknown-hiux
25 26 hppa1.1-unknown-osf
42 44 hppa1.1-unknown-proelf
42 44 hppa1.1-unknown-rtems
42 42 hppa64-hp-hpux11
41 42 hppa64-unknown-linux-gnu
128 129 i370-unknown-linux-gnu
114 115 i370-unknown-mvs
114 115 i370-unknown-opened
43 44 i386-apple-darwin
19 21 i386-moss-msdos
19 21 i386-ncr-sysv4
39 41 i386-pc-msdosdjgpp
19 21 i386-sequent-ptx4
37 39 i386-sun-solaris2.7
40 41 i386-unknown-aout
38 40 i386-unknown-beoself
41 42 i386-unknown-coff
37 39 i386-unknown-elf
39 40 i386-unknown-freebsd2
33 35 i386-unknown-freebsd4
37 39 i386-unknown-gnu
41 42 i386-unknown-interix
41 42 i386-unknown-interix3
37 39 i386-unknown-linux-gnu
40 41 i386-unknown-linux-gnuaout
37 39 i386-unknown-linux-gnulibc1
49 50 i386-unknown-lynxos
40 41 i386-unknown-mach
21 22 i386-unknown-mingw32
38 40 i386-unknown-netbsd
37 39 i386-unknown-netbsdelf
37 39 i386-unknown-netware
20 22 i386-unknown-openbsd
27 28 i386-unknown-pe
37 39 i386-unknown-rtems
37 39 i386-unknown-sco3.2v5
21 20 i386-unknown-sysv
19 21 i386-unknown-sysv4
37 39 i386-unknown-sysv5
37 39 i386-unknown-udk
21 22 i386-unknown-uwin
35 26 i386-unknown-vsta
40 41 i386-wrs-vxworks
65 70 i960-unknown-aout
65 70 i960-unknown-coff
65 70 i960-unknown-rtems
65 70 i960-wrs-vxworks4
65 70 i960-wrs-vxworks5.0
65 70 i960-wrs-vxworks5.1
39 41 ia64-unknown-aix
39 41 ia64-unknown-elf
35 37 ia64-unknown-freebsd6
40 42 ia64-unknown-hpux
39 41 ia64-unknown-linux-gnu
2215 2217 ip2k-unknown-elf
61 61 m32r-unknown-elf
50 623 m68000-att-sysv
49 50 m68000-hp-bsd
50 51 m68000-hp-hpux
49 50 m68000-sun-sunos3
49 50 m68000-sun-sunos4
51 53 m68010-unknown-netbsdelf
49 51 m68020-unknown-elf
49 51 m68k-apollo-elf
34 36 m68k-atari-sysv4
33 35 m68k-cbm-sysv4
49 50 m68k-ccur-rtu
49 50 m68k-crds-unos
49 50 m68k-hp-bsd
49 50 m68k-hp-bsd4.4
50 51 m68k-hp-hpux
50 51 m68k-hp-hpux7
52 53 m68k-motorola-sysv
50 51 m68k-ncr-sysv
50 51 m68k-plexus-sysv
48 49 m68k-sun-mach
48 49 m68k-sun-sunos3
48 49 m68k-sun-sunos4
49 50 m68k-tti-elf
51 52 m68k-unknown-aout
50 51 m68k-unknown-coff
47 49 m68k-unknown-linux-gnu
49 50 m68k-unknown-linux-gnuaout
47 49 m68k-unknown-linux-gnulibc1
52 54 m68k-unknown-netbsd
52 54 m68k-unknown-openbsd
50 52 m68k-unknown-psos
49 51 m68k-unknown-rtemself
34 36 m68k-unknown-sysv4
51 52 m68k-wrs-vxworks
172 172 m88k-unknown-aout
178 176 m88k-unknown-openbsd
714 716 m88k-unknown-sysv4
70 67 mcore-unknown-elf
72 68 mcore-unknown-pe
45 49 mips-sgi-irix5
46 50 mips-sgi-irix6.5
45 49 mips-sgi-irix6.5o32
28 31 mips-sni-sysv4
47 50 mips-unknown-ecoff
46 50 mips-unknown-elf
47 51 mips-unknown-linux-gnu
46 50 mips-unknown-openbsd
46 50 mips-unknown-rtems
46 50 mips-wrs-vxworks
45 49 mips64-unknown-elf
45 49 mips64el-unknown-elf
45 49 mips64orion-unknown-elf
45 49 mips64orion-unknown-rtems
45 49 mips64orionel-unknown-elf
45 49 mips64vr-unknown-elf
47 50 mipsel-unknown-ecoff
46 50 mipsel-unknown-elf
46 50 mipsel-unknown-netbsd
46 50 mipsel-unknown-openbsd
46 50 mipsisa32-unknown-elf
46 50 mipsisa64-unknown-elf
46 50 mipsisa64sb1-unknown-elf
50 54 mipsisa64sr71k-unknown-elf
1756 1766 mipstx39-unknown-elf
1756 1766 mipstx39el-unknown-elf
33 34 mmix-knuth-mmixware
95 96 mn10200-unknown-elf
55 55 mn10300-unknown-elf
48 49 ns32k-unknown-netbsd
75 76 pdp11-unknown-bsd
75 76 pdp11-unknown-elf
59 58 powerpc-apple-darwin
47 49 powerpc-chorusos
44 45 powerpc-unknown-beos
34 36 powerpc-unknown-eabi
34 36 powerpc-unknown-eabiaix
34 36 powerpc-unknown-eabialtivec
34 36 powerpc-unknown-eabisim
34 36 powerpc-unknown-eabisimaltivec
34 36 powerpc-unknown-eabispe
47 49 powerpc-unknown-elf
47 49 powerpc-unknown-freebsd3
47 49 powerpc-unknown-gnu
47 49 powerpc-unknown-linux-gnu
47 49 powerpc-unknown-linux-gnualtivec
47 49 powerpc-unknown-linux-gnulibc1
47 49 powerpc-unknown-netbsd
33 35 powerpc-unknown-rtems
47 49 powerpc-unknown-sysv
47 49 powerpc-wrs-vxworks
47 49 powerpc-wrs-windiss
46 49 powerpc64-unknown-gnu
46 49 powerpc64-unknown-linux-gnu
34 36 powerpcle-unknown-eabi
34 36 powerpcle-unknown-eabisim
47 49 powerpcle-unknown-elf
47 49 powerpcle-unknown-sysv
47 49 powerpcle-wrs-vxworks
40 41 rs6000-bull-bosx
40 41 rs6000-ibm-aix
40 41 rs6000-ibm-aix3.0
40 41 rs6000-ibm-aix3.2.4
40 41 rs6000-ibm-aix4.1
40 41 rs6000-ibm-aix4.3
39 41 rs6000-ibm-aix5.0
105 101 rs6000-unknown-lynxos
73 69 rs6000-unknown-mach
46 48 s390-unknown-linux-gnu
46 48 s390x-unknown-linux-gnu
103 103 sh-unknown-aout
100 101 sh-unknown-elf
100 101 sh-unknown-linux-gnu
100 101 sh-unknown-netbsdelf
103 103 sh-unknown-rtems
100 101 sh-unknown-rtemself
100 101 sh2-unknown-elf
100 101 sh64-unknown-elf
100 101 sh64eb-unknown-linux-gnu
100 101 shl-unknown-elf
31 33 sparc-chorusos
31 33 sparc-hal-solaris2.4
31 33 sparc-sun-solaris2.0
28 30 sparc-sun-solaris2.7
32 33 sparc-sun-sunos3
32 33 sparc-sun-sunos4.0
32 33 sparc-sun-sunos4.1
12 11 sparc-tti-bsd
32 33 sparc-unknown-aout
12 11 sparc-unknown-bsd
31 33 sparc-unknown-elf
31 33 sparc-unknown-linux-gnu
32 33 sparc-unknown-linux-gnuaout
31 33 sparc-unknown-linux-gnulibc1
41 42 sparc-unknown-lynxos
35 37 sparc-unknown-netbsd
36 38 sparc-unknown-netbsdelf
11 11 sparc-unknown-openbsd
31 33 sparc-unknown-rtems
17 19 sparc-unknown-sysv4
31 33 sparc-unknown-vxsim
32 33 sparc-wrs-vxworks
30 31 sparc64-unknown-aout
29 31 sparc64-unknown-elf
34 37 sparc64-unknown-freebsd6
30 35 sparc64-unknown-linux-gnu
34 36 sparc64-unknown-netbsd
15 15 sparc64-unknown-openbsd
40 42 sparc64-wrs-vxworks
36 37 sparc86x-unknown-aout
35 37 sparc86x-unknown-elf
32 33 sparclet-unknown-aout
32 33 sparclite-unknown-aout
15 14 sparclite-unknown-coff
35 37 sparclite-unknown-elf
29 31 sparcv9-sun-solaris2.8
59 57 strongarm-unknown-coff
62 57 strongarm-unknown-elf
59 57 strongarm-unknown-pe
46 45 v850-unknown-elf
46 45 v850-unknown-rtems
46 45 v850e-unknown-elf
46 44 vax-unknown-bsd
46 44 vax-unknown-elf
45 44 vax-unknown-netbsd
45 44 vax-unknown-openbsd
47 45 vax-unknown-sysv
46 44 vax-unknown-ultrix
49 XXX vax-unknown-vms
32 34 x86_64-unknown-freebsd6
36 38 x86_64-unknown-linux-gnu
36 38 x86_64-unknown-netbsd
59 57 xscale-unknown-coff
62 57 xscale-unknown-elf
40 39 xstormy16-unknown-elf
38 39 xtensa-unknown-elf
39 40 xtensa-unknown-linux-gnu