Re: [Open64-devel] [open64] validation check errors and core dumps in GNU m4-1.4.7
Brought to you by:
ributzka,
suneeljain
From: shuxin y. <shu...@gm...> - 2006-10-04 09:20:33
|
NOTE to all open64 variant developers: That is caused by out-of-bound access dating back to the "very very early open64 release". See the change bellow: I think you are using -O2 built compiler. shuxin yang Index: lra.cxx =================================================================== --- lra.cxx (revision 591) +++ lra.cxx (working copy) @@ -1373,10 +1373,10 @@ FOR_ALL_ISA_REGISTER_CLASS(cl) { avail_set[cl] = REGISTER_SET_Union(avail_set[cl], Callee_Saved_Regs_Used[cl]); + FOR_ALL_REGISTER_SET_members(Callee_Saved_Regs_Used[cl], reg) { + avail_regs[cl].reg[reg] = TRUE; + } } - FOR_ALL_REGISTER_SET_members(Callee_Saved_Regs_Used[cl], reg) { - avail_regs[cl].reg[reg] = TRUE; - } } else if (BB_entry(bb)) { // // can't allow callee saved registers above stack adjustment in @@ -1385,10 +1385,10 @@ FOR_ALL_ISA_REGISTER_CLASS(cl) { avail_set[cl] = REGISTER_SET_Difference(avail_set[cl], Callee_Saved_Regs_Used[cl]); + FOR_ALL_REGISTER_SET_members(Callee_Saved_Regs_Used[cl], reg) { + avail_regs[cl].reg[reg] = FALSE; + } } - FOR_ALL_REGISTER_SET_members(Callee_Saved_Regs_Used[cl], reg) { - avail_regs[cl].reg[reg] = FALSE; - } } } Nelson H. F. Beebe wrote: > I've recently been involved in extensive validation test of the latest > GNU m4-1.4.7 release from > > ftp://ftp.gnu.org/gnu/m4/m4-1.4.7.tar.bz2* > > My testing has demonstrated correct validations of this release in > more than 100 different compilation environments on 29 different > flavors of Unix, including GNU/Linux on IA-64, and even Minix-3 on > IA-32, and OpenBSD and NetBSD on the SIMH VAX virtual machines. > > On IA-64, I have > > % opencc --version > PathScale EKOPath(TM) Compiler Suite: Version 1.0 > Built on: 2006-09-22 17:04:16 -0400 > ... > > The build of m4 was successful, but some of the tests fail, as > exhibited at the end of this message. > > The test failures appear to be largely confined to the > regular-expression pattern match code, except for the core dump in > test 108.format, which exercises snprintf(). > > I've seen problems with other compilers with the regular-expression > match code in this and other packages many times before, notably in > GNU gawk, which also uses the regular-expression code from the gnulib > project. > > The regular-expression code is nontrivial: 11,602 lines out of the > 31,340 lines in this release of m4. > > Sometimes, it is enough to just recompile regex.c without optimization > to make the errors disappear. Unfortunately, an attempt to do that > with opencc reveals yet another problem: > > /usr/local/bin/opencc -DHAVE_CONFIG_H -I. -I. -I.. -g -c regex.c > Signal: Segmentation fault in Final SP adjustment phase. > Error: Signal Segmentation fault in phase Final SP adjustment -- processing aborted > *** Internal stack backtrace: > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/be.so [0x20000000003e60b0] > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/be.so [0x20000000003e78a0] > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/be.so(ErrMsgLine+0x3a60d0) [0x2000000 > 0003e6680] > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/be.so [0x20000000003e8900] > [0xa0000000000107e0] > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/cg.so(_Z14Gen_Literal_TNxi+0xf5a740) > [0x2000000000f9ad10] > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/cg.so(_Z23EETARG_Fixup_Entry_CodeP2bb > +0xd2f8e0) [0x2000000000d6fec0] > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/cg.so(_Z22Adjust_Entry_Exit_CodeP2ST+ > 0xd8d090) [0x2000000000dcd680] > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/cg.so(CG_Generate_Code+0xdc31e0) [0x2 > 000000000e03270] > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/be [0x400000000000e4b0] > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/be [0x4000000000011080] > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/be(main+0x1ffffffffffd4510) [0x400000 > 0000013980] > /lib/tls/libc.so.6.1(__libc_start_main+0x8b8e30) [0x20000000008f9430] > /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/be(_start+0x1ffffffffffc9730) [0x4000 > 000000009d40] > opencc INTERNAL ERROR: /opt/open64/usr/lib/gcc-lib/ia64-pathscale-linux/1.0/be died due to sig > nal 4 > > Since m4 is a key constituent inside the widely-used GNU autoconf > system, open64 developers may find it profitable to track down and fix > the errors in opencc that this testing reveals. > > Here is how to reproduce the problem: > > % env CC=/usr/local/bin/opencc CXX=/usr/local/bin/openc++ \ > LDFLAGS="-Wl,-rpath,/usr/local/lib" FC=g77 F77=g77 \ > ./configure && make all check > ... > Checking ./097.regexp > @ ../doc/m4.texinfo:3536: Origin of test > ./097.regexp: stdout mismatch > 1,3c1,3 > < 5 > < -1 > < *** Unix *** nix *** > --- > > > > > > > @ ../doc/m4.texinfo:3536: Origin of test > ./097.regexp: stderr mismatch > 0a1,4 > > m4:stdin:1: bad regular expression: `\<[a-z]\w+': Memory exhausted > > m4:stdin:2: bad regular expression: `\<Q\w*': Memory exhausted > > m4:stdin:3: bad regular expression: `\w\(\w+\)$': Memory exhausted > > m4:stdin:4: bad regular expression: `\<Q\w*': Memory exhausted > Checking ./098.regexp > @ ../doc/m4.texinfo:3549: Origin of test > ./098.regexp: stdout mismatch > 1d0 > < \b0a > 3c2,3 > < c > --- > > > > > @ ../doc/m4.texinfo:3549: Origin of test > ./098.regexp: stderr mismatch > 1,5c1,3 > < m4:stdin:2: Warning: sub-expression 1 not present > < m4:stdin:2: Warning: trailing \ ignored in replacement > < m4:stdin:3: Warning: sub-expression 4 not present > < m4:stdin:3: Warning: sub-expression 5 not present > < m4:stdin:3: Warning: sub-expression 6 not present > --- > > m4:stdin:1: bad regular expression: `\(b\)': Memory exhausted > > m4:stdin:2: bad regular expression: `b': Memory exhausted > > m4:stdin:3: bad regular expression: `\(\(d\)?\)\(c\)': Memory exhausted > Checking ./104.patsubst > @ ../doc/m4.texinfo:3695: Origin of test > ./104.patsubst: stdout mismatch > 1,6c1,6 > < OBS: GNUs not Unix > < OBS: GNUs OBS: not OBS: Unix > < (GNUs)() (not)() (Unix)() > < (GNUs) (not) (Unix) > < GN not > < GNUs NOT Unix > --- > > > > > > > > > > > > > @ ../doc/m4.texinfo:3695: Origin of test > ./104.patsubst: stderr mismatch > 1c1,6 > < m4:stdin:6: Warning: trailing \ ignored in replacement > --- > > m4:stdin:1: bad regular expression `^': Memory exhausted > > m4:stdin:2: bad regular expression `\<': Memory exhausted > > m4:stdin:3: bad regular expression `\w*': Memory exhausted > > m4:stdin:4: bad regular expression `\w+': Memory exhausted > > m4:stdin:5: bad regular expression `[A-Z][a-z]+': Memory exhausted > > m4:stdin:6: bad regular expression `not': Memory exhausted > Checking ./105.patsubst > @ ../doc/m4.texinfo:3724: Origin of test > ./105.patsubst: stdout mismatch > 1c1 > < Gnus Not Unix > --- > > > @ ../doc/m4.texinfo:3724: Origin of test > ./105.patsubst: stderr mismatch > 0a1 > > m4:stdin:8: bad regular expression `\w+': Memory exhausted > Checking ./106.patsubst > @ ../doc/m4.texinfo:3740: Origin of test > ./106.patsubst: stdout mismatch > 1,4c1,4 > < bar FOO baz FOO > < FOO > < bab abb 212 > < bab > --- > > > > > > > > > @ ../doc/m4.texinfo:3740: Origin of test > ./106.patsubst: stderr mismatch > 0a1,4 > > m4:stdin:4: bad regular expression `foo\|Foo': Memory exhausted > > m4:stdin:4: bad regular expression: `foo\|Foo': Memory exhausted > > m4:stdin:5: bad regular expression `\(.\)\(.\)\1': Memory exhausted > > m4:stdin:5: bad regular expression: `\(.\)\(.\)\1': Memory exhausted > Checking ./107.patsubst > Checking ./108.format > ./check-them: line 53: 24890 Done sed -e '/^dnl @/d' -e '/^\^D$/q' "$file" > 24891 Segmentation fault | LC_MESSAGES=C m4 -d -I "$examples" - >$out 2>$err > @ ../doc/m4.texinfo:3779: Origin of test > ./108.format: stdout mismatch > 1,4d0 > < > < The string "The brown fox jumped over the lazy dog" uses 38 characters > < 56790 > < 300 > > ... > Failed checks were: > ./097.regexp:out ./097.regexp:err ./098.regexp:out ./098.regexp:err ./104.patsubst:out ./104.patsubst:err ./105.patsubst:out ./105.patsubst:err ./106.patsubst:out ./106.patsubst:err ./108.format:out > > ------------------------------------------------------------------------------- > - Nelson H. F. Beebe Tel: +1 801 581 5254 - > - University of Utah FAX: +1 801 581 4148 - > - Department of Mathematics, 110 LCB Internet e-mail: be...@ma... - > - 155 S 1400 E RM 233 be...@ac... be...@co... - > - Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe/ - > ------------------------------------------------------------------------------- > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Open64-devel mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/open64-devel > > |