[Openmcl-cvs-notifications] r7909 - in /trunk/ccl/lisp-kernel: lisp-debug.c pmcl-kernel.c

gb at clozure.com gb at clozure.com
Thu Dec 13 16:30:29 MST 2007


Author: gb
Date: Thu Dec 13 18:30:28 2007
New Revision: 7909

Log:
Save major OS version on startup, use it to determine where _sigtramp
keeps its contenxt argument (which differs between 10.4 and 10.5.)

Modified:
    trunk/ccl/lisp-kernel/lisp-debug.c
    trunk/ccl/lisp-kernel/pmcl-kernel.c

Modified: trunk/ccl/lisp-kernel/lisp-debug.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/ccl/lisp-kernel/lisp-debug.c (original)
+++ trunk/ccl/lisp-kernel/lisp-debug.c Thu Dec 13 18:30:28 2007
@@ -872,10 +872,11 @@
 #ifdef X8664
   if (xp) {
     extern void *_sigtramp();
-    =

+    extern int os_major_version;
+
     if (xpPC(xp) =3D=3D (natural)_sigtramp) {
-      xp =3D (ExceptionInformation *) xpGPR(xp,REG_RCX);
-      fprintf(stderr, "Exception raised at _sigtramp; using context passed=
 to _sigtramp.  Raw register values (R) may be more interesting then lisp v=
alues or lisp backtrace");
+      xp =3D (ExceptionInformation *) xpGPR(xp,os_major_version < 9 ? REG_=
RSI :REG_RCX);
+      fprintf(stderr, "Exception raised at _sigtramp; using context passed=
 to _sigtramp.  Raw register values (R) may be more interesting then lisp v=
alues or lisp backtrace\n");
     }
   }
 #endif

Modified: trunk/ccl/lisp-kernel/pmcl-kernel.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/ccl/lisp-kernel/pmcl-kernel.c (original)
+++ trunk/ccl/lisp-kernel/pmcl-kernel.c Thu Dec 13 18:30:28 2007
@@ -1283,6 +1283,9 @@
 }
 #endif
 =

+int
+os_major_version =3D 0;
+
 void
 check_os_version(char *progname)
 {
@@ -1293,6 +1296,8 @@
     fprintf(stderr, "\n%s requires %s version %s or later; the current ver=
sion is %s.\n", progname, uts.sysname, min_os_version, uts.release);
     exit(1);
   }
+  sscanf(uts.release,"%d",&os_major_version);
+
 #ifdef PPC
 #ifdef DARWIN
   {




More information about the Openmcl-cvs-notifications mailing list