[Top][All Lists]
[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
- [Help-smalltalk] [2.0.7] on sparc,
Nicolas Pelletier <=