From: SourceForge.net <no...@so...> - 2007-11-25 19:49:04
|
Bugs item #1836142, was opened at 2007-11-22 01:19 Message generated for change (Comment added) made by evilcart You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101355&aid=1836142&group_id=1355 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: clisp Group: build problems Status: Open Resolution: None Priority: 5 Private: No Submitted By: ismail dönmez (evilcart) Assigned to: Bruno Haible (haible) Summary: Clisp build problems , possibly related to gcc 4.2 Initial Comment: Toolchain Info : gcc 4.2.2 ( gcc 4.3 trunk tested with similar results) glibc 2.6 ( glibc 2.7 tested with similar results) Linux 2.6.18.6 , 32bit binutils 2.18.50.0.3 I am trying to build Clisp with : ./configure \ --prefix=/usr \ --with-dynamic-ffi \ --with-module=wildcard \ --with-module=rawsock \ --with-module=clx/new-clx \ --with-module=pcre \ --with-module=zlib \ --build This results in a weird build error : gcc -mtune=native -march=i686 -O2 -pipe -fomit-frame-pointer -Igllib -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -O2 -fexpensive-optimizations -falign-functions=4 -DUNICODE -DDYNAMIC_FFI -I. -c spvw.c In file included from lispbibl.d:321, from spvw.d:24: floatparam.h:18:2: error: #error "Unknown rounding mode for type double!" If I run the same configure line again it doesn't give that error but now clisp crashes when compiling some file : gcc -mtune=native -march=i686 -O2 -pipe -fomit-frame-pointer -Igllib -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -O2 -fexpensive-optimizations -falign-functions=4 -DUNICODE -DDYNAMIC_FFI -I. -x none spvw.o spvwtabf.o spvwtabs.o spvwtabo.o eval.o control.o encoding.o pathname.o stream.o socket.o io.o array.o hashtabl.o list.o package.o record.o weak.o sequence.o charstrg.o debug.o error.o misc.o time.o predtype.o symbol.o lisparit.o i18n.o foreign.o unixaux.o built.o ari80386.o gllib/uniwidth/width.o gllib/uniname/uniname.o gllib/localcharset.o modules.o libavcall.a libcallback.a /usr/lib/libreadline.so -lncurses -ldl -L/usr/lib -lsigsegv -L/usr/lib -lc -o lisp.run ./lisp.run -B . -N locale -E 1:1 -Efile UTF-8 -Eterminal UTF-8 -norc -m 1800KW -x "(and (load \"init.lisp\") (sys::%saveinitmem) (ext::exit)) (ext::exit t)" i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I \ `+' / I 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.43 (2007-11-18) <http://clisp.cons.org/> Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2007 Type :h and hit Enter for context help. *** - EXPORT: argument should be a symbol or a list of symbols, not *** - Internal error: statement in file "io.d", line 7009 has been reached!! Please see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions. *** - EVAL: undefined function EXT::EXIT Bye. ---------------------------------------------------------------------- >Comment By: ismail dönmez (evilcart) Date: 2007-11-25 21:49 Message: Logged In: YES user_id=557782 Originator: YES I can't really read ASM, I hope Bruno can create a small testcase. ---------------------------------------------------------------------- Comment By: Sam Steingold (sds) Date: 2007-11-25 18:18 Message: Logged In: YES user_id=5735 Originator: NO the file list is too long. at any rate, the next step is to file a gcc bug report. I think they will need a small code fragment with the resulting assembly and an explanation of why this is a gcc bug. unless you can read assembly well, this is a task for Bruno. ---------------------------------------------------------------------- Comment By: ismail dönmez (evilcart) Date: 2007-11-25 08:46 Message: Logged In: YES user_id=557782 Originator: YES Ok after lots more testing here is an incomplete list of miscompiled at -O2 files : src/control.c src/error.c src/eval.c src/io.c src/misc.c src/predtype.c src/record.c src/symbol.c src/weak.c Unless you compile all of this without -O2 clisp won't build. After you recompile this test failures goes up to 17. Looks like all of clisp is miscompiled. ---------------------------------------------------------------------- Comment By: ismail dönmez (evilcart) Date: 2007-11-25 02:29 Message: Logged In: YES user_id=557782 Originator: YES Following files are miscompiled with -O2 but works fine without it : src/control.c src/record.c src/misc.c src/predtype.c If I build these files without -O2 compilation succeeds but 4 tests fail : Form: (LET ((F (WITH-FOREIGN-STRING (FV E B "ABC") FV))) (VALIDP F)) CORRECT: NIL CLISP : T Form: (VALIDP FM) CORRECT: NIL CLISP : T Form: (VALIDP FM) CORRECT: NIL CLISP : T Form: (PROGN (SETF (VALIDP FM) NIL) (VALIDP FM)) CORRECT: NIL CLISP : T What shall we do now? Thanks, ismail ---------------------------------------------------------------------- Comment By: Sam Steingold (sds) Date: 2007-11-22 17:13 Message: Logged In: YES user_id=5735 Originator: NO please take a look at clisp/src/floatparam.c which actually generates the message ---------------------------------------------------------------------- Comment By: ismail dönmez (evilcart) Date: 2007-11-22 08:44 Message: Logged In: YES user_id=557782 Originator: YES Is there a small testcase that I can compile and test rounding mode? there is a m4 file for this check but I have no idea about m4 language. ---------------------------------------------------------------------- Comment By: ismail dönmez (evilcart) Date: 2007-11-22 08:42 Message: Logged In: YES user_id=557782 Originator: YES Ok I will do a binary search, but I don't still understand rounding error, the machine has a Intel (Conroe) cpu which is a i686. ---------------------------------------------------------------------- Comment By: Sam Steingold (sds) Date: 2007-11-22 08:37 Message: Logged In: YES user_id=5735 Originator: NO it would be nice to figure out which file(s) is miscompiled. you need to do a binary search, adding -O2 to some files' rules and seeing if CLISP builds. the rounding may be related to the -mtune and -march parameters, especially if they do not specify your hardware correctly. ---------------------------------------------------------------------- Comment By: ismail dönmez (evilcart) Date: 2007-11-22 08:20 Message: Logged In: YES user_id=557782 Originator: YES Removing -O2 fixes the interpreter crash, this might either be a gcc bug or a clisp bug, need help to debug further :(. First error about double rounding mode looks random, doesn't happen after trying twice, but happened at third try. Now the question is why there is a double rounding error, because this is just 32bit Linux 2.6 platform, nothing fancy. Thank you. ---------------------------------------------------------------------- Comment By: Sam Steingold (sds) Date: 2007-11-22 07:52 Message: Logged In: YES user_id=5735 Originator: NO 1. what happens when you remove "-mtune=native" and "-march=i686"? 2. what about "-fexpensive-optimizations"? 3. what about "-O2"? please see "Hints for porting to new platforms:" in clisp/unix/PLATFORMS. thanks. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101355&aid=1836142&group_id=1355 |