Günther Brammer
2005-04-27 20:22:29 UTC
Hallo.
In Ermangelung einer dedizierten Newsgroup nutze ich einfach mal diese, um
zu fragen, ob irgendjemand erfolgreich dieses Stück Software auf einem
modernen Linuxsystem zum Laufen gebracht hat.
Um es überhaupt mit meiner Debian Sarge Installation kompilieren und
linken zu können, musste ich folgende Änderungen vornehmen:
diff -ur spice3f4/conf/linux spice3f4-/conf/linux
--- spice3f4/conf/linux 1994-12-01 00:46:56.000000000 +0100
+++ spice3f4-/conf/linux 2005-04-27 21:48:45.466533495 +0200
@@ -5,4 +5,4 @@
CC = gcc
CC_OPT = -O2
CC_OPT_SAFE = -O2
-LDFLAGS = -lm
+LDFLAGS = -lm -L/usr/X11R6/lib
diff -ur spice3f4/src/include/cpstd.h spice3f4-/src/include/cpstd.h
--- spice3f4/src/include/cpstd.h 1993-06-17 23:34:57.000000000 +0200
+++ spice3f4-/src/include/cpstd.h 2005-04-27 19:05:33.000000000 +0200
@@ -50,7 +50,8 @@
extern char *printnum();
extern int cp_numdgt;
extern void fatal();
-extern void setenv();
+// setenv is apparantly not used and conficts with stdlib.h
+//extern void setenv();
extern void cp_printword();
/* Externs from wlist.c */
diff -ur spice3f4/src/include/os_linux.h spice3f4-/src/include/os_linux.h
--- spice3f4/src/include/os_linux.h 1994-12-01 01:10:57.000000000 +0100
+++ spice3f4-/src/include/os_linux.h 2005-04-27 18:54:05.000000000 +0200
@@ -5,3 +5,6 @@
#define HAS_BCOPY
#define HAS_POW10
#define HAS_NO_IEEE_LOGB
+
+// linux has a working <stdlib.h>
+#define HAS_STDLIB
Das erzeugte spice3 verursacht dann aber in baseaddr() in resource.c
einen Segmentation fault. Angesichts der Beschreibung der
Funktion ("baseaddr( ) returns the base address of the data segment on
most Unix systems. It's an ugly hack for info that should be provided by
the OS.") erscheint das zwar nicht weiter verwunderlich, aber eine
offensichtliche Lösung springt nicht ins Auge. Wobei ich mich frage, was
ein harmloses Simulationsprogramm mit der Basisaddresse des
Datensegments anfangen will?! Und hat jemand eine Ideem wie ich es
trotzdem zum Funktionieren überreden könnte?
Günther
In Ermangelung einer dedizierten Newsgroup nutze ich einfach mal diese, um
zu fragen, ob irgendjemand erfolgreich dieses Stück Software auf einem
modernen Linuxsystem zum Laufen gebracht hat.
Um es überhaupt mit meiner Debian Sarge Installation kompilieren und
linken zu können, musste ich folgende Änderungen vornehmen:
diff -ur spice3f4/conf/linux spice3f4-/conf/linux
--- spice3f4/conf/linux 1994-12-01 00:46:56.000000000 +0100
+++ spice3f4-/conf/linux 2005-04-27 21:48:45.466533495 +0200
@@ -5,4 +5,4 @@
CC = gcc
CC_OPT = -O2
CC_OPT_SAFE = -O2
-LDFLAGS = -lm
+LDFLAGS = -lm -L/usr/X11R6/lib
diff -ur spice3f4/src/include/cpstd.h spice3f4-/src/include/cpstd.h
--- spice3f4/src/include/cpstd.h 1993-06-17 23:34:57.000000000 +0200
+++ spice3f4-/src/include/cpstd.h 2005-04-27 19:05:33.000000000 +0200
@@ -50,7 +50,8 @@
extern char *printnum();
extern int cp_numdgt;
extern void fatal();
-extern void setenv();
+// setenv is apparantly not used and conficts with stdlib.h
+//extern void setenv();
extern void cp_printword();
/* Externs from wlist.c */
diff -ur spice3f4/src/include/os_linux.h spice3f4-/src/include/os_linux.h
--- spice3f4/src/include/os_linux.h 1994-12-01 01:10:57.000000000 +0100
+++ spice3f4-/src/include/os_linux.h 2005-04-27 18:54:05.000000000 +0200
@@ -5,3 +5,6 @@
#define HAS_BCOPY
#define HAS_POW10
#define HAS_NO_IEEE_LOGB
+
+// linux has a working <stdlib.h>
+#define HAS_STDLIB
Das erzeugte spice3 verursacht dann aber in baseaddr() in resource.c
einen Segmentation fault. Angesichts der Beschreibung der
Funktion ("baseaddr( ) returns the base address of the data segment on
most Unix systems. It's an ugly hack for info that should be provided by
the OS.") erscheint das zwar nicht weiter verwunderlich, aber eine
offensichtliche Lösung springt nicht ins Auge. Wobei ich mich frage, was
ein harmloses Simulationsprogramm mit der Basisaddresse des
Datensegments anfangen will?! Und hat jemand eine Ideem wie ich es
trotzdem zum Funktionieren überreden könnte?
Günther