help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-smalltalk] [2.0.7] on sparc


From: Nicolas Pelletier
Subject: [Help-smalltalk] [2.0.7] on sparc
Date: 23 Oct 2002 14:32:23 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Hello,

I am  having trouble with  'make check' on  sparc with gst  2.0.7.

uname -m = sun4u
uname -r = 5.6
uname -s = SunOS
uname -v = Generic_105181-23

I am using gcc 2.95.2. I applied the following patch to gst sources:

http://mail.gnu.org/pipermail/help-smalltalk/2002-September/000408.html

and edited the Makefiles to switch optimization to -O. I am building a
traditional interpreter (no jit). During make check, 1 test fails (all
other are ok :-) ):

IntegerANSITest>>testXasFloatQ ..
Program received signal SIGSEGV, Segmentation fault.
0xef51d168 in .stret8 () from /usr/lib/libc.so.1

The backtrace is:

(gdb) where
#0  0xef51d168 in .stret8 () from /usr/lib/libc.so.1
#1  0xef526500 in _Q_mul () from /usr/lib/libc.so.1
#2  0x00051b98 in _gst_mpz_get_ld (mpz=0xefff9bf0) at mpz.c:949
#3  0x000220f8 in VMpr_LargeInteger_asFloatQ (id=0, numArgs=0, 
    methodOOP=0x200baa68) at prims.inl:1502
#4  0x0002ec68 in _gst_execute_primitive_operation (primitive=44, numArgs=0, 
    methodOOP=0x200baa68) at prims.inl:5817
#5  0x0002ee00 in _gst_send_message_internal (sendSelector=0x200ae7d8, 
    sendArgs=0, receiver=0x20114928, method_class=0x200aa8c0)
    at interp-bc.inl:304
#6  0x00034ee8 in _gst_interpret () at interp-bc.inl:2695
#7  0x00039528 in _gst_execute_statements (temporaries=0x201197c0, 
    statements=0x284d36f, quiet=true) at comp.c:681
#8  0x0001bbe0 in _gst_yyparse () at gst.y:151
#9  0x0001e3d4 in _gst_parse_stream () at lex.c:1063
#10 0x0001b010 in process_file (fileName=0xefffb725 "./AnsiRun.st", quiet=false)
    at lib.c:788
#11 0x0001aa7c in gst_top_level_loop () at lib.c:594
#12 0x0001a5e0 in main (argc=6, argv=0xefffb0b4) at main.c:51

up... up

#2  0x00051b98 in _gst_mpz_get_ld (mpz=0xefff9bf0) at mpz.c:949
(gdb) print *mpz
$1 = {alloc = 1, size = 1, d = 0x1ac898}
(gdb) print mpz->d
$2 = (mp_limb_t *) 0x1ac898
(gdb) print *mpz->d
$3 = 2000000000

Stripping   IntegerANSITest>>testXasFloatQ  down   to   the  following
triggers the  error. The  lines testing  2, -2 and  0 in  the original
version of the test pass without problems.

testXasFloatQ
        " <number>#asFloatQ "
        #'Numeric'.
        self value: [-2000000000 asFloatQ] should: [:r | r = -2000000000.0]
                conformTo: #'number' selector: #'asFloatQ'.!

The libc I  am using does not have ldexpl and  friends: they come from
gst. What causes this problem ? Thanks in advance for any help.

-- 
Nicolas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]