[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CLISP on Sparc Linux
- To: clisp-list@ma2s2.mathematik.uni-karlsruhe.de
- Subject: CLISP on Sparc Linux
- From: Alexey Goldin <goldin@spot.uchicago.edu>
- Date: Sun, 9 Mar 1997 13:22:52 -0600
- Reply-to: alexey@oddjob.uchicago.edu
I managed to get CLISP running on Sparc Linux (clisp-1996-07-22). Kind
of. I still have the following problem: (socket-server [port])
segfaults in io.d in line 5896:
[... start of io.d fragment ...]
# UP: Beendet einen Block mit erhöhtem SYS::*PRIN-LEVEL*.
# level_end(&stream);
# > stream: Stream
# < stream: Stream
# verändert STACK
local void level_end (object* stream_);
local void level_end(stream_)
var object* stream_;
{ dynamic_unbind(); } <========== HERE =================
# Length
# ------
[... End of io.d fragment ...]
Any hints?
Thanks.
Here is a summary of changes:
put
#if (defined(unix) && defined(linux) && defined(sparc))
#define SPARC
#endif
in lispbibl.d
(src directory)
in unix/sigsegv.c
add
#if defined(linux) && defined(sparc)
#define FAULT_HANDLER_ARGLIST sig, code, scp, addr
#define FAULT_HANDLER_ARGDECL int sig; int code; void* scp; char* addr;
#define FAULT_ADDRESS addr
#define WP_SIGNAL FAULT_HANDLER(SIGSEGV)
#define CAN_HANDLE_WP_FAULT
#endif
add -mno-app-regs to CFLAGS (important!!)
graph.d, graph.c SHOULD NOT be compiled (found no clean way to disable it)
Change the following line in src/lispbibl.d:
# Ob Graphik-Operationen unterstützt werden.
#if (defined(EMUNIX) && !defined(WINDOWS)) || defined(UNIX_LINUX)
#define GRAPHICS
#define GRAPHICS_SWITCH # Umschalten zwischen Text-Modus und Grafik-Modus
#endif
# Bei Erweiterung: GRAPH erweitern.
to
# Ob Graphik-Operationen unterstützt werden.
#if (defined(EMUNIX) && !defined(WINDOWS)) || (defined(UNIX_LINUX) && defined(i386))
#define GRAPHICS
#define GRAPHICS_SWITCH # Umschalten zwischen Text-Modus und Grafik-Modus
#endif
# Bei Erweiterung: GRAPH erweitern.
----------------------------------------------------------------------------
----------------------------------------------------------------------------
Here is an attempt of a diff:
diff -c -r clisp-sparc-linux/src/lispbibl.d clisp-1996-07-22/src/lispbibl.d
*** clisp-sparc-linux/src/lispbibl.d Mon Feb 3 11:59:15 1997
--- clisp-1996-07-22/src/lispbibl.d Sun Jul 21 13:17:42 1996
***************
*** 83,91 ****
#if (defined(unix) && defined(linux) && defined(i386))
#define PC386
#endif
- #if (defined(unix) && defined(linux) && defined(sparc))
- #define SPARC
- #endif
#if (defined(sun) && defined(unix) && defined(mc68020))
#define SUN3
#endif
--- 83,88 ----
***************
*** 1616,1622 ****
# Bei Erweiterung: REXX erweitern.
# Ob Graphik-Operationen unterstützt werden.
! #if (defined(EMUNIX) && !defined(WINDOWS)) || (defined(UNIX_LINUX) && defined(i386))
#define GRAPHICS
#define GRAPHICS_SWITCH # Umschalten zwischen Text-Modus und Grafik-Modus
#endif
--- 1613,1619 ----
# Bei Erweiterung: REXX erweitern.
# Ob Graphik-Operationen unterstützt werden.
! #if (defined(EMUNIX) && !defined(WINDOWS)) || defined(UNIX_LINUX)
#define GRAPHICS
#define GRAPHICS_SWITCH # Umschalten zwischen Text-Modus und Grafik-Modus
#endif
diff -c -r clisp-sparc-linux/unix/sigsegv.c clisp-1996-07-22/unix/sigsegv.c
*** clisp-sparc-linux/unix/sigsegv.c Mon Feb 3 10:56:43 1997
--- clisp-1996-07-22/unix/sigsegv.c Sat Jan 28 07:11:00 1995
***************
*** 97,112 ****
#define CAN_HANDLE_WP_FAULT
#endif
-
- #if defined(linux) && defined(sparc)
- #define FAULT_HANDLER_ARGLIST sig, code, scp, addr
- #define FAULT_HANDLER_ARGDECL int sig; int code; void* scp; char* addr;
- #define FAULT_ADDRESS addr
- #define WP_SIGNAL FAULT_HANDLER(SIGSEGV)
- #define CAN_HANDLE_WP_FAULT
- #endif
-
-
#if defined(sun) && defined(sparc) && 0 /* Sun4, SunOS 4.1 */
#define FAULT_HANDLER_ARGLIST sig, code, scp, addr
#define FAULT_HANDLER_ARGDECL int sig; int code; void* scp; char* addr;
--- 97,102 ----