diff options
Diffstat (limited to 'config/solaris')
-rw-r--r-- | config/solaris/Makedefs | 4 | ||||
-rw-r--r-- | config/solaris/define.h | 4 | ||||
-rw-r--r-- | config/solaris/i386.c | 71 | ||||
-rw-r--r-- | config/solaris/sparc.c | 39 | ||||
-rw-r--r-- | config/solaris/status | 10 |
5 files changed, 6 insertions, 122 deletions
diff --git a/config/solaris/Makedefs b/config/solaris/Makedefs index 3f6bd24..7fa50b7 100644 --- a/config/solaris/Makedefs +++ b/config/solaris/Makedefs @@ -9,11 +9,11 @@ # GDIR directory of graphics helper library CC = gcc -CFLAGS = -I/usr/openwin/include +CFLAGS = CFDYN = -fPIC RLINK = RLIBS = -lm -ldl TLIBS = -lposix4 -lpthread -XLIBS = -L /usr/openwin/lib -Xlinker -R/usr/openwin/lib -lX11 +XLIBS = -Xlinker -lX11 XPMDEFS = -DZPIPE -DSYSV GDIR = xpm diff --git a/config/solaris/define.h b/config/solaris/define.h index 12b5119..9a19b3d 100644 --- a/config/solaris/define.h +++ b/config/solaris/define.h @@ -4,7 +4,3 @@ #define UNIX 1 #define LoadFunc - -/* use gcc to compile generated code */ -#define CComp "gcc" -#define COpts "-I/usr/openwin/include -ldl" diff --git a/config/solaris/i386.c b/config/solaris/i386.c deleted file mode 100644 index fa88c93..0000000 --- a/config/solaris/i386.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Coswitch for Windows using Visual C++. - * - * Written by Frank J. Lhota, based on an assembly version - * authored by Robert Goldberg and modified for OS/2 2.0 by Mark - * Emmer. - */ - -#include <sys/asm_linkage.h> -#include <sys/trap.h> - -/* - * The Windows co-expression context consists of 5 words. The - * following constants define the byte offsets for each of the - * registers stored in the context. - */ - -#define SP_OFF "0" -#define BP_OFF "4" -#define SI_OFF "8" -#define DI_OFF "12" -#define BX_OFF "16" - -int coswitch(old, new, first) -int *old; -int *new; -int first; -{ - - /* Save current context to *old */ - __asm__ __volatile__ ( - "movl %%esp," SP_OFF "(%0)\n\t" - "movl %%ebp," BP_OFF "(%0)\n\t" - "movl %%esi," SI_OFF "(%0)\n\t" - "movl %%edi," DI_OFF "(%0)\n\t" - "movl %%ebx," BX_OFF "(%0)" - : : "a"( old ) - ); - - if ( first ) - { - /* first != 0 => restore context in *new. */ - __asm__ __volatile__ ( - "movl " SP_OFF "(%0),%%esp\n\t" - "movl " BP_OFF "(%0),%%ebp\n\t" - "movl " SI_OFF "(%0),%%esi\n\t" - "movl " DI_OFF "(%0),%%edi\n\t" - "movl " BX_OFF "(%0),%%ebx" - : : "a"( new ) - ); - } - else - { - /* - * first == 0 => Set things up for first activation of this - * coexpression. Load stack pointer from first - * word of *new and call new_context, which - * should never return. - */ - __asm__ __volatile__ ( - "movl " SP_OFF "(%0),%%esp\n\t" - "movl %%esp,%%ebp" - : : "a"( new ) - ); - new_context( 0, NULL ); - syserr( "interp() returned in coswitch" ); - } - - return 0; -} - diff --git a/config/solaris/sparc.c b/config/solaris/sparc.c deleted file mode 100644 index 6c57a94..0000000 --- a/config/solaris/sparc.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * coswitch for Sun-4 Sparc. - * - * Compile this with 'gcc -c rswitch.c'. Do not use gcc -O. - */ - -#include <sys/asm_linkage.h> -#include <sys/trap.h> - -int coswitch(old_cs, new_cs, first) -int *old_cs, *new_cs; -int first; -{ - asm("ta 0x03"); /* ST_FLUSH_WINDOWS in trap.h */ - asm("ld [%fp+0x44], %o0"); /* load old_cs into %o0 */ - asm("st %sp,[%o0]"); /* Save user stack pointer */ - asm("st %fp,[%o0+0x4]"); /* Save frame pointer */ - asm("st %i7,[%o0+0x8]"); /* Save return address */ - - if (first == 0) { /* this is the first activation */ - asm("ld [%fp+0x48], %o0"); /* load new_cs into %o0 */ - asm("ld [%o0], %o1"); /* load %o1 from cstate[0] */ - - /* Decrement new stack pointer value before loading it into sp. */ - /* The top 64 bytes of the stack are reserved for the kernel, to */ - /* save the 8 local and 8 in registers into, on context switches, */ - /* interrupts, traps, etc. */ - - asm("save %o1,-96, %sp"); /* load %sp from %o1 */ - new_context(0,0); - syserr("new_context() returned in coswitch"); - - } else { - asm("ld [%fp+0x48], %o0"); /* load new_cs into %o0 */ - asm("ld [%o0+0x4],%fp"); /* Load frame pointer */ - asm("ld [%o0+0x8],%i7"); /* Load return address */ - asm("ld [%o0],%sp"); /* Load user stack pointer */ - } -} diff --git a/config/solaris/status b/config/solaris/status index a2a7a35..b7d0c2a 100644 --- a/config/solaris/status +++ b/config/solaris/status @@ -4,14 +4,13 @@ System configuration: Latest Icon version: - Version 9.4.3 + Version 9.5.0 Installer: Gregg Townsend Icon Project The University of Arizona - (with thanks to Andreas Almroth) Missing features: @@ -23,10 +22,9 @@ Known bugs: Comments: - Tested on SPARC Solaris 2.6 (SunOS 5.6) with gcc version 2.95.3. - Tested on SPARC Solaris 9 (SunOS 5.9) with gcc version 3.4.1. - Tested on x86 Schillix 0.2.1 with gcc version 3.4.3. + Tested on SPARC Solaris 10 (SunOS 5.10) with gcc version 4.2.2, + and on x86 OpenSolaris 2009.6 (5.11) with gcc version 3.4.3. Date: - November 10, 2005 + March 26, 2010 |