Pastey sunos.patch

--- ~/open_euphoria/euphoria/docs/e2c.txt	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/docs/e2c.txt	Wed Sep 27 00:23:45 2017
@@ -269,6 +269,7 @@
 * FREEBSD
 * LINUX
 * OSX
+* SUN
 * WINDOWS
 * NETBSD
 * OPENBSD
--- ~/open_euphoria/euphoria/docs/platform.txt	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/docs/platform.txt	Wed Sep 27 00:23:45 2017
@@ -21,6 +21,9 @@
 operating system. It is very popular on  Internet server machines. It's
 also open source.
 
+**SunOS**. SunOS is a Unix-branded operating system.
+Free and open-source versions based on OpenSolaris are available.
+
 Apple's **OS X**. OS X is also based on the UNIX
 operating system. While it is closed source, it is gaining a wide
 following due to it's ease of use and power.
@@ -79,6 +82,8 @@
        -- Windows code
     case LINUX then
        -- LINUX code
+    case SUN then
+       -- SUN code
     case FREEBSD,NETBSD then
        -- BSD code
        ... etc
@@ -94,6 +99,8 @@
   -- Windows code
 elsifdef LINUX then
   -- LINUX code
+elsifdef SUN then
+  -- SUN code
 elsifdef FREEBSD or NETBSD then
   -- BSD code
 elsedef
--- ~/open_euphoria/euphoria/docs/refman_2.txt	Wed Sep 27 00:22:46 2017
+++ ~/open_euphoria_sun/euphoria/docs/refman_2.txt	Wed Sep 27 00:23:45 2017
@@ -2813,6 +2813,7 @@
 * **WINDOWS** - Platform is Windows (GUI or Console)
 * **LINUX** - Platform is Linux
 * **OSX** - Platform is Mac OS X
+* **SUN** - Platform is SunOS
 * **FREEBSD** - Platform is FreeBSD
 * **OPENBSD** - Platform is OpenBSD
 * **NETBSD** - Platform is NetBSD
@@ -4130,6 +4131,7 @@
 * UNIX:     platform is any kind of Unix style system
 * LINUX:    platform is Linux
 * FREEBSD:  platform is FreeBSD
+* SUN:      platform is SunOS
 * OSX:      platform is OS X for Macintosh
 * SAFE:     turns on a slower debugging version of ##memory.e## called
             ##safe.e## when defined. Switching mode by renaming files **//no longer works//**.
--- ~/open_euphoria/euphoria/docs/using_euphoria.txt	Wed Sep 27 00:22:46 2017
+++ ~/open_euphoria_sun/euphoria/docs/using_euphoria.txt	Wed Sep 27 00:23:45 2017
@@ -532,7 +532,7 @@
 ; ##-PLAT word## (translator)
 : Specify the target platform for translation.  This allows euphoria code to
   be translated for any supported platform from any other supported platform.
-  Supported platforms: FREEBSD, LINUX, NETBSD, OPENBSD, OSX, WINDOWS
+  Supported platforms: FREEBSD, LINUX, NETBSD, OPENBSD, OSX, SUN, WINDOWS
 
 ; ##-STRICT## (all)
 : This turns on all warnings, overriding any with/without warning statement
--- ~/open_euphoria/euphoria/docs/man/euc.1	Wed Sep 27 00:22:46 2017
+++ ~/open_euphoria_sun/euphoria/docs/man/euc.1	Wed Sep 27 00:23:45 2017
@@ -234,7 +234,7 @@
 Set the output filename
 .TP
 .B \-plat platform
-Set the platform for the translated code.  Valid options are: WINDOWS, LINUX, FREEBSD, OSX, OPENBSD, NETBSD
+Set the platform for the translated code.  Valid options are: WINDOWS, LINUX, FREEBSD, OSX, OPENBSD, NETBSD, SUN
 .TP
 .B \-silent 
 Do not Display status messages
--- ~/open_euphoria/euphoria/include/euphoria/info.e	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/include/euphoria/info.e	Wed Sep 27 00:23:45 2017
@@ -51,6 +51,8 @@
 		return "Linux"
 	elsifdef OSX then
 		return "OS X"
+	elsifdef SUN then
+		return "SunOS"
 	elsifdef FREEBSD then
 		return "FreeBSD"
 	elsifdef OPENBSD then
--- ~/open_euphoria/euphoria/include/std/filesys.e	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/include/std/filesys.e	Wed Sep 27 00:23:45 2017
@@ -2300,6 +2300,18 @@
 					SIZEOF_STAT     = 144,
 					$
 			end ifdef
+		elsifdef SUN then
+			ifdef BITS32 then
+				constant
+					STAT_ST_BLKSIZE = 80,
+					SIZEOF_STAT     = 136,
+					$
+			elsedef
+				constant
+					STAT_ST_BLKSIZE = 96,
+					SIZEOF_STAT     = 128,
+					$
+			end ifdef
 		elsifdef FREEBSD then
 			ifdef BITS32 then
 				constant
@@ -2322,8 +2334,8 @@
 				STAT_ST_BLKSIZE = 80,
 				SIZEOF_STAT     = 100,
 				$
-			stat_t_offset = 80
-			stat_buf_size = 100
+			--stat_t_offset = 80
+			--stat_buf_size = 100
 		end ifdef
 end ifdef
 
--- ~/open_euphoria/euphoria/include/std/machine.e	Wed Sep 27 00:22:46 2017
+++ ~/open_euphoria_sun/euphoria/include/std/machine.e	Wed Sep 27 00:23:45 2017
@@ -186,7 +186,11 @@
     ifdef OSX or BSD then
         --**
         -- @nodoc@
+        ifdef SUN then
+            export constant MAP_ANONYMOUS = 0x100
+        elsedef
         export constant MAP_ANONYMOUS = 0x1000
+        end ifdef
     elsedef
         export constant MAP_ANONYMOUS = 32
     end ifdef
--- ~/open_euphoria/euphoria/include/std/os.e	Wed Sep 27 00:22:46 2017
+++ ~/open_euphoria_sun/euphoria/include/std/os.e	Wed Sep 27 00:23:45 2017
@@ -36,6 +36,7 @@
 	WINDOWS = WIN32,
 	LINUX,
 	OSX,
+	SUN,
 	OPENBSD = 6,
 	NETBSD,
 	FREEBSD
@@ -47,6 +48,7 @@
 -- * ##LINUX##   ~-- Host operating system is Linux
 -- * ##FREEBSD## ~-- Host operating system is FreeBSD
 -- * ##OSX##     ~-- Host operating system is Mac OS X
+-- * ##SUN##     ~-- Host operating system is SunOS
 -- * ##OPENBSD## ~-- Host operating system is OpenBSD
 -- * ##NETBSD##  ~-- Host operating system is NetBSD
 --
@@ -327,8 +329,8 @@
 -- public constant
 --     WIN32 = WINDOWS,
 --     LINUX,
---     FREEBSD,
 --     OSX,
+--     SUN,
 --	   OPENBSD,
 --     NETBSD,
 --     FREEBSD
--- ~/open_euphoria/euphoria/packaging/source/Makefile	Wed Sep 27 00:22:46 2017
+++ ~/open_euphoria_sun/euphoria/packaging/source/Makefile	Wed Sep 27 00:23:45 2017
@@ -1,7 +1,7 @@
 include Makefile.eu
 
 
-all : linux windows osx freebsd openbsd netbsd
+all : linux windows osx freebsd openbsd netbsd sun
 
 linux : 
 	$(MAKE) source-tarball PLATFORM=LINUX ARCH=x86
@@ -27,6 +27,10 @@
 	$(MAKE) source-tarball PLATFORM=NETBSD ARCH=x86
 	$(MAKE) source-tarball PLATFORM=NETBSD ARCH=x86_64
 
+sun :
+	$(MAKE) source-tarball PLATFORM=SUN ARCH=x86
+	$(MAKE) source-tarball PLATFORM=SUN ARCH=x86_64
+
 clean :
 	-rm -r LINUX-x86
 	-rm -r WINDOWS
@@ -34,6 +38,7 @@
 	-rm -r FREEBSD
 	-rm -r OPENBSD
 	-rm -r NETBSD
+	-rm -r SUN
 	-rm -r LINUX-x86_64
 	-rm -r WINDOWS-x86_64
 	-rm -r OSX-x86_64
@@ -40,6 +45,7 @@
 	-rm -r FREEBSD-x86_64
 	-rm -r OPENBSD-x86_64
 	-rm -r NETBSD-x86_64
+	-rm -r SUN-x86_64
 
 $(PLATFORM)-$(ARCH) :
 	mkdir $(PLATFORM)-$(ARCH)
@@ -50,4 +56,4 @@
 	make -C $(PLATFORM)-$(ARCH) clean
 	make -C $(PLATFORM)-$(ARCH) source-tarball -j2 VERSION=$(VERSION)
 
-.PHONY : linux windows osx freebsd openbsd netbsds all clean
+.PHONY : linux windows osx freebsd openbsd netbsd sun all clean
--- ~/open_euphoria/euphoria/packaging/unix/Makefile	Wed Sep 27 00:22:46 2017
+++ ~/open_euphoria_sun/euphoria/packaging/unix/Makefile	Wed Sep 27 00:23:45 2017
@@ -16,6 +16,8 @@
 OS=Linux
 else ifeq "$(EOSX)" "1"
 OS=OSX
+else ifeq "$(ESUN)" "1"
+OS=SunOS
 else ifeq "$(EOPENBSD)" "1"
 OS=OpenBSD
 else ifeq "$(ENETBSD)" "1"
--- ~/open_euphoria/euphoria/source/Makefile.gnu	Wed Sep 27 00:22:46 2017
+++ ~/open_euphoria_sun/euphoria/source/Makefile.gnu	Wed Sep 27 00:23:45 2017
@@ -83,6 +83,10 @@
     LDLFLAG=-lresolv
     EBSDFLAG=-DEBSD -DEBSD62 -DEOSX
   endif
+  ifeq "$(ESUN)" "1"
+    LDLFLAG=-lresolv -lnsl -lsocket
+    EBSDFLAG=-DESUN
+  endif
   ifeq "$(EOPENBSD)" "1"
     EBSDFLAG=-DEBSD -DEBSD62 -DEOPENBSD
   endif
@@ -241,6 +245,8 @@
     PLAT=FREEBSD
 else ifeq "$(EOSX)" "1"
     PLAT=OSX
+else ifeq "$(ESUN)" "1"
+    PLAT=SUN
 else ifeq "$(EMINGW)" "1"
     PLAT=WINDOWS
 endif
@@ -428,21 +434,14 @@
 
 
 BUILD_DIRS=\
-	$(BUILDDIR)/intobj/back/ \
-	$(BUILDDIR)/transobj/back/ \
-	$(BUILDDIR)/libobj/back/ \
-	$(BUILDDIR)/libobjdbg \
-	$(BUILDDIR)/libobjdbg/back/ \
-	$(BUILDDIR)/backobj/back/ \
-	$(BUILDDIR)/intobj/ \
-	$(BUILDDIR)/transobj/ \
-	$(BUILDDIR)/libobj/ \
-	$(BUILDDIR)/backobj/ \
-	$(BUILDDIR)/include/ \
-	$(BUILDDIR)/libobj-fPIC/ \
+	$(BUILDDIR)/backobj/back \
+	$(BUILDDIR)/include \
+	$(BUILDDIR)/intobj/back \
 	$(BUILDDIR)/libobj-fPIC/back \
-	$(BUILDDIR)/libobjdbg-fPIC \
-	$(BUILDDIR)/libobjdbg-fPIC/back
+	$(BUILDDIR)/libobj/back \
+	$(BUILDDIR)/libobjdbg-fPIC/back \
+	$(BUILDDIR)/libobjdbg/back \
+	$(BUILDDIR)/transobj/back
 
 
 clean : 	
--- ~/open_euphoria/euphoria/source/be_execute.c	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/source/be_execute.c	Wed Sep 27 00:23:45 2017
@@ -5018,6 +5018,9 @@
 #ifdef EOSX
 				top = 4;  // OSX
 #endif
+#ifdef ESUN
+				top = 5;  // SunOS
+#endif
 #ifdef EOPENBSD
 				top = 6; // OpenBSD
 #endif
--- ~/open_euphoria/euphoria/source/be_machine.c	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/source/be_machine.c	Wed Sep 27 00:23:45 2017
@@ -66,6 +66,12 @@
 #endif 
 #endif
 
+// Same workaround for SUN
+#ifdef ESUN
+#ifndef INFINITY
+#define INFINITY (1.0/0.0)
+#endif 
+#endif
 
 #include 
 
@@ -3127,6 +3133,9 @@
 #ifdef EOSX
 				return 4;
 #else
+#ifdef ESUN
+				return 5;
+#else
 #ifdef EBSD // FreeBSD by this point
 				return 8;
 #else
@@ -3140,6 +3149,7 @@
 #endif // EWINDOWS
 #endif // ELINUX
 #endif // EBSD
+#endif // ESUN
 #endif // EOSX
 #endif // EOPENBSD
 #endif // ENETBSD
--- ~/open_euphoria/euphoria/source/be_main.c	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/source/be_main.c	Wed Sep 27 00:23:45 2017
@@ -25,8 +25,12 @@
 #  ifdef EBSD
 #    include 
 #  else
+#    ifdef ESUN
+#      include 
+#    else
 #    include 
 #  endif
+#  endif
 #  include 
 #  include 
 #else
--- ~/open_euphoria/euphoria/source/be_rterror.c	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/source/be_rterror.c	Wed Sep 27 00:23:45 2017
@@ -33,6 +33,10 @@
 #include 
 #endif
 
+#ifdef ESUN
+#include 
+#endif
+
 #include 
 #include 
 #ifdef EWINDOWS
--- ~/open_euphoria/euphoria/source/be_socket.c	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/source/be_socket.c	Wed Sep 27 00:23:45 2017
@@ -9,6 +9,7 @@
 #endif
 #include 
 #include 
+#include 
 
 #ifdef EUNIX
 #ifndef timeval
--- ~/open_euphoria/euphoria/source/buildsys.e	Wed Sep 27 00:22:46 2017
+++ ~/open_euphoria_sun/euphoria/source/buildsys.e	Wed Sep 27 00:23:45 2017
@@ -517,6 +517,8 @@
 
 			if TLINUX then
 				l_flags &= " -ldl -lm -lpthread"
+			elsif TSUN then
+				l_flags &= " -lm -lpthread -lresolv -lnsl -lsocket"
 			elsif TBSD then
 				l_flags &= " -lm -lpthread"
 			elsif TOSX then
--- ~/open_euphoria/euphoria/source/configure	Wed Sep 27 00:22:46 2017
+++ ~/open_euphoria_sun/euphoria/source/configure	Wed Sep 27 00:23:45 2017
@@ -70,6 +70,10 @@
 	HOST_ARCH=ix86
 	MFLAG=-m32
 	
+elif echo "$UNAME_MACHINE" | grep "i86pc" > /dev/null; then
+	HOST_ARCH=ix86
+	MFLAG=-m32
+	
 elif echo "$UNAME_MACHINE" | egrep "x86_64|amd64" > /dev/null; then
 	HOST_ARCH=ix86_64
 	MFLAG=-m64
@@ -98,6 +102,10 @@
 	EHOST=FREEBSD
 	TARGET=EFREEBSD
 	EBSD=1
+elif test $UNAME_SYSTEM = "SunOS"; then
+	EHOST=ESUN
+	TARGET=ESUN
+	EBSD=1
 # OS X > 10.4 (Darwin version 8 and up) supports 64-bit applications.
 elif test $UNAME_SYSTEM = "Darwin"; then
 	EHOST=EOSX
@@ -381,7 +389,7 @@
 		echo "   --target value or --plat value"
 		echo "                       Set the OS that we will translate to."
 		echo "                       Values can be: WINDOWS, OSX, LINUX,"
-		echo "                       FREEBSD, OPENBSD or NETBSD."
+		echo "                       SUN, FREEBSD, OPENBSD or NETBSD."
 		echo "   --watcom            The translator will create C code"
 		echo "                       for the Watcom compiler."
 		echo "   --cc-prefix         Prefix to use with the compiler and"
@@ -445,6 +453,8 @@
 	EFREEBSD=1
 elif [ "$TARGET" = "EOSX" ]; then
 	EOSX=1
+elif [ "$TARGET" = "ESUN" ]; then
+	ESUN=1
 elif [ "$TARGET" = "ELINUX" ]; then
 	ELINUX=1
 elif [ "$TARGET" = "EWINDOWS" ]; then
@@ -474,6 +484,7 @@
 [ -n "$EOPENBSD" ] && echo EOPENBSD="$EOPENBSD" >> "$PREFIX"${CONFIG_FILE}
 [ -n "$ENETBSD" ]  && echo ENETBSD="$ENETBSD" >> "$PREFIX"${CONFIG_FILE}
 [ -n "$EOSX" ] && echo EOSX="$EOSX" >> "$PREFIX"${CONFIG_FILE}
+[ -n "$ESUN" ] && echo ESUN="$ESUN" >> "$PREFIX"${CONFIG_FILE}
 [ -n "$ELINUX" ] && echo ELINUX="$ELINUX" >> "$PREFIX"${CONFIG_FILE}
 [ -n "$EMINGW" ] && echo EMINGW="$EMINGW" >> "$PREFIX"${CONFIG_FILE}
 
--- ~/open_euphoria/euphoria/source/execute.h	Wed Sep 27 00:22:46 2017
+++ ~/open_euphoria_sun/euphoria/source/execute.h	Wed Sep 27 00:23:45 2017
@@ -258,7 +258,11 @@
 #ifdef EBSD
 #include 
 #else
-#include 
+#  ifdef ESUN
+#    include 
+#  else
+#    include 
+#  endif
 #endif
 #else
 #include 
--- ~/open_euphoria/euphoria/source/global.e	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/source/global.e	Wed Sep 27 00:23:45 2017
@@ -48,6 +48,8 @@
 	version_name = "NetBSD"
 elsifdef OSX then
 	version_name = "Mac OS X"
+elsifdef SUN then
+	version_name = "SunOS"
 elsifdef FREEBSD then
 	version_name = "FreeBSD"
 elsifdef UNIX then  --should never happen
--- ~/open_euphoria/euphoria/source/platform.e	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/source/platform.e	Wed Sep 27 00:23:45 2017
@@ -21,6 +21,7 @@
 	ULINUX = LINUX,
 	UFREEBSD = FREEBSD,
 	UOSX = OSX,
+	USUN = SUN,
 	UOPENBSD = OPENBSD,
 	UNETBSD = NETBSD,
 	DEFAULT_EXTS = { ".ex", ".exw", "", ".ex" }
@@ -32,6 +33,7 @@
 	IUNIX    = 0, TUNIX    = 0,
 	IBSD     = 0, TBSD     = 0,
 	IOSX     = 0, TOSX     = 0,
+	ISUN     = 0, TSUN     = 0,
 	IOPENBSD = 0, TOPENBSD = 0,
 	INETBSD  = 0, TNETBSD  = 0,
 	IX86     = 0, TX86     = 0,
@@ -48,6 +50,10 @@
 	IOSX = 1
 	TOSX = 1
 
+elsifdef SUN then
+	ISUN = 1
+	TSUN = 1
+
 elsifdef FREEBSD then
 	IBSD = 1
 	TBSD = 1
@@ -66,7 +72,7 @@
 
 end ifdef
 
-ifdef OSX or FREEBSD or OPENBSD or NETBSD then
+ifdef OSX or FREEBSD or OPENBSD or NETBSD or SUN then
 	IBSD = 1
 	TBSD = 1
 end ifdef
@@ -113,7 +119,7 @@
 	return ihost_platform
 end function
 
-sequence unices = { ULINUX, UFREEBSD, UOSX, UOPENBSD, UNETBSD }
+sequence unices = { ULINUX, UFREEBSD, UOSX, UOPENBSD, UNETBSD, USUN }
 
 public procedure set_host_platform(atom plat)
 	ihost_platform = floor(plat)
@@ -122,6 +128,7 @@
 	TWINDOWS = (ihost_platform = WIN32)
 	TBSD     = (ihost_platform = UFREEBSD)
 	TOSX     = (ihost_platform = UOSX)
+	TSUN     = (ihost_platform = USUN)
 	TLINUX   = (ihost_platform = ULINUX)
 	TOPENBSD = (ihost_platform = UOPENBSD)
 	TNETBSD  = (ihost_platform = UNETBSD)
@@ -129,6 +136,7 @@
 	IWINDOWS = TWINDOWS
 	IBSD     = TBSD
 	IOSX     = TOSX
+	ISUN     = TSUN
 	ILINUX   = TLINUX
 	IOPENBSD = TOPENBSD
 	INETBSD  = TNETBSD
@@ -231,6 +239,8 @@
 			local_defines &= {"UNIX", "LINUX"}
 		elsif (IOSX and not for_translator) or (TOSX and for_translator) then
 			local_defines &= {"UNIX", "BSD", "OSX"}
+		elsif (ISUN and not for_translator) or (TSUN and for_translator) then
+			local_defines &= {"UNIX", "BSD", "SUN"}
 		elsif (IOPENBSD and not for_translator) or (TOPENBSD and for_translator) then
 			local_defines &= { "UNIX", "BSD", "OPENBSD"}
 		elsif (INETBSD and not for_translator) or (TNETBSD and for_translator) then
--- ~/open_euphoria/euphoria/source/traninit.e	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/source/traninit.e	Wed Sep 27 00:23:45 2017
@@ -187,6 +187,9 @@
 					case "OSX" then
 						set_host_platform( UOSX )
 
+					case "SUN" then
+						set_host_platform( USUN )
+
 					case "OPENBSD" then
 						set_host_platform( UOPENBSD )
 
@@ -194,7 +197,7 @@
 						set_host_platform( UNETBSD )
 
 					case else
-						ShowMsg(2, UNKNOWN_PLATFORM_1__SUPPORTED_PLATFORMS_ARE_2, { val, "WINDOWS, LINUX, FREEBSD, OSX, OPENBSD, NETBSD" })
+						ShowMsg(2, UNKNOWN_PLATFORM_1__SUPPORTED_PLATFORMS_ARE_2, { val, "WINDOWS, LINUX, FREEBSD, OSX, SUN, OPENBSD, NETBSD" })
 						abort(1)
 				end switch
 
--- ~/open_euphoria/euphoria/tests/check_diffs.sh	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/tests/check_diffs.sh	Wed Sep 27 00:23:45 2017
@@ -6,8 +6,8 @@
 # will implement SAFE behavior for std/machine.e if not memory.e will implement faster behavior
 # for std/machine.e.
 #
-egrep 'export ' ../include/std/safe.e | sort | awk -F '(' '{ print $1; }' | awk -F '=' '{ print $1;}' > exported_from_safe.txt 
-egrep 'export ' ../include/std/memory.e | sort | awk -F '(' '{ print $1; }' | awk -F '=' '{ print $1;}' > exported_from_memory.txt
+egrep 'export ' ../include/std/safe.e | sort | /usr/xpg4/bin/awk -F '(' '{ print $1; }' | /usr/xpg4/bin/awk -F '=' '{ print $1;}' > exported_from_safe.txt 
+egrep 'export ' ../include/std/memory.e | sort | /usr/xpg4/bin/awk -F '(' '{ print $1; }' | /usr/xpg4/bin/awk -F '=' '{ print $1;}' > exported_from_memory.txt
 if diff exported_from_safe.txt exported_from_memory.txt; then
 	echo "Both std/memory.e and std/safe.e provide the same interface to std/machine.e....good." 
 else
@@ -14,8 +14,8 @@
 	echo "Error: std/memory.e and std/safe.e export different symbols to std/machine.e....bad."
 	exit 1
 fi
-egrep 'public ' ../include/std/safe.e | sort | awk -F '(' '{ print $1; }' | awk -F '=' '{ print $1;}' > publicized_from_safe.txt 
-egrep 'public ' ../include/std/memory.e | sort | awk -F '(' '{ print $1; }' | awk -F '=' '{ print $1;}' > publicized_from_memory.txt
+egrep 'public ' ../include/std/safe.e | sort | /usr/xpg4/bin/awk -F '(' '{ print $1; }' | /usr/xpg4/bin/awk -F '=' '{ print $1;}' > publicized_from_safe.txt 
+egrep 'public ' ../include/std/memory.e | sort | /usr/xpg4/bin/awk -F '(' '{ print $1; }' | /usr/xpg4/bin/awk -F '=' '{ print $1;}' > publicized_from_memory.txt
 if diff publicized_from_safe.txt publicized_from_memory.txt | grep '>'; then
 	echo "Error: std/memory.e symbols not in std/safe.e to all files        ...bad."
 	exit 1
--- ~/open_euphoria/euphoria/tests/t_abadcase.e	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/tests/t_abadcase.e	Wed Sep 27 00:23:45 2017
@@ -13,6 +13,11 @@
 include std/regex.e 
 include std/unittest.e
  
+ifdef SUN then
+	puts(1, "Platform does not use debian packaging system.")
+	abort(0)
+end ifdef
+
 constant version_pattern = regex:new("(\\d+\\.)*\\d+") 
 constant library_link_pattern = regex:new("=> +(/|\\()?", NO_AUTO_CAPTURE) 
  
--- ~/open_euphoria/euphoria/tests/t_io.e	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/tests/t_io.e	Wed Sep 27 00:23:45 2017
@@ -192,7 +192,7 @@
 
 
 -- OpenBSD allows seeking on STDIN, STDOUT and STDERR
-ifdef not OPENBSD and not NETBSD and not FREEBSD then
+ifdef not OPENBSD and not NETBSD and not FREEBSD and not SUN then
 	test_equal( "Seek STDIN",  1, seek(0, 0))
 	test_equal( "Seek STDOUT", 1, seek(1, 0))
 	test_equal( "Seek STDERR", 1, seek(2, 0))
--- ~/open_euphoria/euphoria/tests/t_map.e	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/tests/t_map.e	Wed Sep 27 00:23:45 2017
@@ -51,7 +51,7 @@
 test_equal("map m1 get 1000",           "1000", map:get(m1, 1000, 999) )
 
 -- add 2000 floats
-o2 = map:threshold(o1)
+o2 = map:threshold(size(o1))
 for i = 1 to 1000 do
 	map:put(m1, -i*1.333333, i)
 end for
--- ~/open_euphoria/euphoria/tests/t_net_http.e	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/tests/t_net_http.e	Wed Sep 27 00:23:45 2017
@@ -18,7 +18,7 @@
 	assert("content readable http_get no path", length(content) > 1)
 	test_not_equal("content non-empty with http_get no path", length(content[2]), 0)
 	
-	content = http_get("http://www.iana.org/domains/example/")
+	content = http_get("http://openeuphoria.org/docs/")
 	if atom(content) then
 		test_fail(sprintf("content readable from http_get with a path %d", {content}))
 	else
@@ -26,7 +26,7 @@
 		test_true("content correct form from http_get with a path", match("", "" & content[2]))
 	end if
 
-	content = http_get("http://www.iana.org:80/domains/example/")
+	content = http_get("http://openeuphoria.org:80/docs/")
 	if atom(content) then
 		test_fail("content readable from http_get with port and path")
 	else
--- ~/open_euphoria/euphoria/tests/t_platform.e	Wed Sep 27 00:22:47 2017
+++ ~/open_euphoria_sun/euphoria/tests/t_platform.e	Wed Sep 27 00:23:45 2017
@@ -30,10 +30,14 @@
 	platform_defines &= "OSX "
 end ifdef
 
+ifdef SUN then
+	platform_defines &= "SUN "
+end ifdef
+
 ifdef WIN32 or WINDOWS then
     ifdef not WIN32 or not WINDOWS then
 		test_fail("One of the accompanying defines is not defined. Defines: " & platform_defines)
-	elsifdef UNIX or LINUX or OPENBSD or NETBSD or FREEBSD or OSX then
+	elsifdef UNIX or LINUX or OPENBSD or NETBSD or FREEBSD or OSX or SUN then
 		test_fail("OS Name Conflict: Both Windows and non-Windows OS def-symbol defined. Defines: " & platform_defines)	
 	end ifdef
 	test_equal("WIN32=platform()", WIN32, platform() )
@@ -51,6 +55,8 @@
 	    test_equal("FREEBSD=platform()", FREEBSD, platform())
 	elsifdef OSX then
 	    test_equal("OSX=platform()", OSX, platform())
+	elsifdef SUN then
+	    test_equal("SUN=platform()", SUN, platform())
 	elsedef
 		test_fail("UNIX def-symbol is set but no supported UNIX def-symbol is set. Defines: " & platform_defines)
 	end ifdef
</pre></div>

<a name="comments"></a>			</div>

		</div>

		<div id="secondaryContent_2columns">

			<div id="columnC_2columns">

				<h4><span>Search</span></h4>

				<form method="get" action="/search/results.wc">
					<div>
						<input type="text" name="s" value="" style="width:100%"/><br />
						<input type="submit" class="button" value="Go" />
						<input type="button" class="button" value="Opts" onclick="Effect.BlindDown('search_options');"/>
						<br class="clear" />
					</div>
					<div id="search_options"
						style="display: none;"
						>
						<h5 style="margin-bottom:0px;padding-bottom:0px;">Include:</h5>
						    <input type="checkbox" name="news" value="1" checked="checked" /> News<br />
						    <input type="checkbox" name="ticket" value="1" checked="checked" /> Tickets<br />
						    <input type="checkbox" name="forum" value="1" checked="checked" /> Forum<br />
						    <input type="checkbox" name="wiki" value="1" checked="checked" /> Wiki<br />
						    <input type="checkbox" name="manual" value="1" checked="checked" /> Manual<br />
					</div>
				</form>

				<h4><span>Quick</span> Links</h4>
				<ul class="links">
													<li class="first"> <a href="/pastey/359.wc">translation code from 25 years ago<br/><i><a href="/user/profile/katsmeow.wc">katsmeow</a></i></a></li>
										<li class="normal"> <a href="/pastey/358.wc">bass.e - bass library header translated from C/Cpp to euphoria - buggy<br/><i><a href="/user/profile/ron77.wc">ron77</a></i></a></li>
										<li class="normal"> <a href="/pastey/357.wc">"dumping" a map demo<br/><i><a href="/user/profile/ghaberek.wc">ghaberek</a></i></a></li>
										<li class="normal"> <a href="/pastey/356.wc">Phix.xml<br/><i><a href="/user/profile/petelomax.wc">petelomax</a></i></a></li>
										<li class="normal"> <a href="/pastey/355.wc">Phix.xml<br/><i><a href="/user/profile/petelomax.wc">petelomax</a></i></a></li>
										<li class="normal"> <a href="/pastey/354.wc">IUP directory<br/><i><a href="/user/profile/ChrisB.wc">ChrisB</a></i></a></li>
										<li class="normal"> <a href="/pastey/353.wc">Euphoria MVC SQLite3 Example<br/><i><a href="/user/profile/ghaberek.wc">ghaberek</a></i></a></li>
										<li class="normal"> <a href="/pastey/352.wc">longhand version<br/><i><a href="/user/profile/petelomax.wc">petelomax</a></i></a></li>
										<li class="normal"> <a href="/pastey/351.wc">terse version<br/><i><a href="/user/profile/petelomax.wc">petelomax</a></i></a></li>
										<li class="normal"> <a href="/pastey/350.wc">pGUIC.e<br/><i><a href="/user/profile/petelomax.wc">petelomax</a></i></a></li>
													</ul>

				
					<h4><span>User</span> menu</h4>
                                        Not signed in.
					<ul class="links">
 					  	<li class="first"><a href="/user/login.wc">Login</a></li>
						<li><a href="/user/signup.wc">Sign-up</a></li>
					</ul>

				
								<h4>Help Fund <span>OpenEuphoria</span></h4>
				<div style="text-align: center;">
					<a href="/general/donate.wc"><img src="/images/paypal_donate.gif"/></a>
				</div>
				
				<h4><span>Misc</span> Menu</h4>
				<ul class="links">
					<li class="first"><a href="/docs">Manual</a></li>
					<li><a href="/category/cloud.wc">Category Cloud</a></li>
					<li><a href="/pastey/index.wc">Pastey</a></li>
					<li><a href="https://github.com/OpenEuphoria">GitHub</a></li>
					<li><a href="http://rapideuphoria.com/archive.htm">The Archive</a></li>
					<li><a href="https://sourceforge.net/projects/rapideuphoria/">SourceForge</a></li>
					<li><a href="/recently_deleted.wc">Deleted Posts</a></li>
					<li><a href="/recently_awaitingmoderation.wc">Posts Awaiting Moderation</a></li>
					<li><a href="/wiki/view/Contact%20Administrators.wc">Contact Admin</a></li>
				</ul>

							</div>

		</div>

		<br class="clear" />

	</div>

</div>

<div id="footer" class="fluid">
	Copyright © 2009,2016 by The OpenEuphoria Group. All rights reserved.
	<br />
	<a href="/wiki/view/AboutWebsite.wc">About Website</a> |
	<a href="/general/donate.wc">Help Fund OpenEuphoria</a>
	<br />
        <a href="/rss.wc"><img style="vertical-align: middle;" src="/images/famfam/rss.png"></a>
 	<a href="https://openeuphoria.org/"><img style="vertical-align: middle;" src="/images/poweredby-euphoria.png" alt="Powered By Euphoria" /></a>
	<a href="https://github.com/OpenEuphoria/">GitHub</a>
    <!--
	<a href="http://validator.w3.org/check?uri=referer"><img
        src="http://www.w3.org/Icons/valid-xhtml10" style="vertical-align: middle;"
        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
	-->
	</div>

</body>
</html>