Subject: [clisp-list] SPARC/Linux problems

From: Ben Collins <[email-masked]>
Date: Sun, 19 Mar 2000 13:05:58 -0500

I've been beating my head over this problem. I've compiled three versions
of clisp, with gcc 2.95.2 and gcc 2.7.2.3, and every one has this problem.
Basically lisp.run segfaults. I ran it through some debuging and here is
where gdb picks up the problem:

(gdb) file ./lisp.run
Reading symbols from ./lisp.run...done.
(gdb) run
Starting program: /home/bcollins/clisp-1999-07-22/src/./lisp.run

Program received signal SIGSEGV, Segmentation fault.
0x13764 in gc_mark_stack (objptr=0x2e2ffffc) at spvw_garcol.d:384
384           { until (eq(*objptr,nullobj)) # bis STACK zu Ende ist:
(gdb) bt
#0  0x13764 in gc_mark_stack (objptr=0x2e2ffffc) at spvw_garcol.d:384
#1  0x137c8 in gc_markphase () at spvw_garcol.d:411
#2  0x13e1c in gar_col_normal () at spvw_garcol.d:1594
#3  0x14b44 in do_gar_col_simple () at spvw_garcol.d:2369
#4  0x8cb5c in with_gc_statistics (fun=0x14b38 <do_gar_col_simple>) at predtype.d:2571
#5  0x14b70 in gar_col_simple () at spvw_garcol.d:2397
#6  0x14ce0 in make_space_gc_TRUE (need=40, heapptr=0x13a25c) at spvw_allocate.d:225
#7  0x150d4 in allocate_vector (len=7) at spvw_typealloc.d:94
#8  0x18744 in init_subr_tab_2 () at spvw.d:1161
#9  0x19ec8 in initmem () at spvw.d:1549
#10 0x1b174 in main (argc=1, argv=0xeffffaa4) at spvw.d:2661
(gdb) print *objptr
Cannot access memory at address 0x2e2ffffc.

Any one know what's going on?

Ben

(please Cc me, I am not sub'd to the list)

-- 
 -----------=======-=-======-=========-----------=====------------=-=------
/  Ben Collins  --  ...on that fantastic voyage...  --  Debian GNU/Linux   \
`     [email-masked]  --  [email-masked]  --  [email-masked]     '
 `---=========------=======-------------=-=-----=-===-======-------=--=---'

---

From: Bruno Haible <[email-masked]>
Date: Mon, 20 Mar 2000 14:14:26 +0100 (MET)

> #10 0x1b174 in main (argc=1, argv=0xeffffaa4) at spvw.d:2661

The GC crashed already during the very first memory allocation. I guess the
address space layout is different on your Sparc than on mine. What is the
output of "grep cl_cv_address_ config.cache" on yours?

Bruno

---

From: Bruno Haible <[email-masked]>
Date: Mon, 20 Mar 2000 15:33:21 +0100 (MET)

On my machine I get

$ grep cl_cv_address_ config.cache
cl_cv_address_code=${cl_cv_address_code='0x00000000'}
cl_cv_address_malloc=${cl_cv_address_malloc='0x00000000'}
cl_cv_address_shlib=${cl_cv_address_shlib='0xE0000000'}
cl_cv_address_stack=${cl_cv_address_stack='0xEF000000'}

And on yours?

---

From: Ben Collins <[email-masked]>
Date: Mon, 20 Mar 2000 09:54:57 -0500

> output of "grep cl_cv_address_ config.cache" on yours?

cl_cv_address_code=${cl_cv_address_code=0x00000000}
cl_cv_address_malloc=${cl_cv_address_malloc=0x00000000}
cl_cv_address_shlib=${cl_cv_address_shlib=0x70000000}
cl_cv_address_stack=${cl_cv_address_stack=0xEF000000}

Note, I've tried this on two machines. Setup as follows:

UltraSPARC, 128 megs
SPARCStation LX, 72 megs

Both had the problem. Note, I compiled it on the ultrasparc every time, but
I made sure that it was in a sparc32 environement (wrapper to change the
persoanlity to sparc32, to fool autoconf, etc..).

I can try compiling on the sun4m a little later.

---

From: Ben Collins <[email-masked]>
Date: Mon, 20 Mar 2000 10:57:37 -0500

> cl_cv_address_stack=${cl_cv_address_stack='0xEF000000'}

I tried hand editing to have this same setup (only the shlib one was
different). Yet it still didn't work. Seems the problem is in the stack
address anyway, which showed as the same on both yours and mine.

Extra info, these systems are 2.2.14, 2.2.15 (and even tried 2.3.99-pre2)
and use glibc 2.1.3 (problem has been present since glibc 2.1.1, for me
atleast, so I doubt that has anything to do with it).

---

From: Ben Collins <[email-masked]>
Date: Wed, 22 Mar 2000 00:04:01 -0500

Ok, I recompiled this on a sun4m (Sparc LX) and still have the same
problem with segfault I reported a couple of days ago. Anyone else have
any suggestions/soltuions?