From 7f856dadb1fbc320fb29a944bc17a8ae86d501c8 Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 29 Mar 2020 14:11:25 +0200 Subject: [PATCH 01/42] Solaris fixes. Add build.sunos32x86 --- build.sunos32x86/HowToBuild | 119 ++++++++++++++++++ build.sunos32x86/squeak.cog.spur/build/mvm | 39 ++++++ build.sunos32x86/squeak.cog.spur/plugins.ext | 16 +++ build.sunos32x86/squeak.cog.spur/plugins.int | 38 ++++++ platforms/Cross/plugins/IA32ABI/ia32abicc.c | 4 +- platforms/Cross/vm/sqAtomicOps.h | 7 +- platforms/Cross/vm/sqMemoryFence.h | 2 +- .../unix/plugins/SqueakSSL/sqUnixOpenSSL.inc | 9 ++ platforms/unix/vm/include_ucontext.h | 4 + platforms/unix/vm/sqUnixHeartbeat.c | 2 +- scripts/checkSCCSversion | 2 +- 11 files changed, 234 insertions(+), 8 deletions(-) create mode 100644 build.sunos32x86/HowToBuild create mode 100755 build.sunos32x86/squeak.cog.spur/build/mvm create mode 100644 build.sunos32x86/squeak.cog.spur/plugins.ext create mode 100644 build.sunos32x86/squeak.cog.spur/plugins.int diff --git a/build.sunos32x86/HowToBuild b/build.sunos32x86/HowToBuild new file mode 100644 index 0000000000..f628a289e4 --- /dev/null +++ b/build.sunos32x86/HowToBuild @@ -0,0 +1,119 @@ + +How To Build On Solaris +----------------------- + +Contents: + - Overview + - Real-Time + - Swapspace + - C Compiler + - GNU make + +Overview +-------- + +These are some notes on building the OpenSmalltalk VM on Oracle Solaris 11. + +To build, + + cd build.sunos32x86 + cd squeak.cog.spur + cd build + ./mvm or ./mvm INSTALLDIR + +This will build and install into INSTALLDIR. +The default value for INSTALLDIR is products/squeak.cog.spur-sunos32x86. + +To run the vm, consider running the process in the RT (real-time) class. + +For Solaris specific suggestions please contact me David Stes (stes@telenet.be), +or the OpenSmalltalk team for general OpenSmalltalk issues. + +Real-Time +--------- + +When running the squeak vm, after copying a Squeak .image and .change file, +and after copying the Squeak Smalltalk source file (SqueakV50.sources). + +bash-4.4$ bin/squeak Squeak6.0alpha-19547-32bit.image +pthread_setschedparam failed: Not owner + +Note that it is possible to suppress the "pthread_setschedparam" warning, +by running the squeak vm in the RT (real-time) class. + +One way would be to use priocntl -e and execute the squeak in the -c RT class. + +Or perhaps at the "authorization" (auths) level it could perhaps +be possible to have an entry in /etc/security/exec_attr.d for +an authorization that gives "proc_priocntl" to squeak. + +You must do this as "root". + +Another way is to change a "bash" shell to RT class, + +bash-4.4$ priocntl -d $$ +INTERACTIVE CLASS PROCESSES: + PID[/LWP] IAUPRILIM IAUPRI IAMODE + 4026 0 0 1 + +bash-4.4$ sudo priocntl -c RT -p 0 -s $$ + +bash-4.4$ priocntl -d $$ +REAL TIME PROCESSES: + PID[/LWP] RTPRI TQNTM TQSIG + 3966 0 1000 0 + +After changing the "bash" shell to the RT class, you can launch + +bash-4.4$ bin/squeak Squeak6.0alpha-19547-32bit.image + +It will inherit the RT class and the pthread_setschedparam warning is gone. + +Verify as follows the squeak threads (LWP light-weight processes) + +bash-4.4$ ps -eLo pid,pri,lwp,class,comm | grep squeak + 4029 100 1 RT bin/../lib/squeak/5.0-202003240214-solaris/squeak + 4029 101 2 RT bin/../lib/squeak/5.0-202003240214-solaris/squeak + +Note that one thread is running in priority 101 and another in priority 100. + +Swapspace +--------- + +Make sure there is sufficient free space in /tmp, mounted on swap in Solaris. +The C compiler may use a lot of space for temporary files under /tmp. + +For example (the example 8G is what I use) : + +$ df -h /tmp +Filesystem Size Used Available Capacity Mounted on +swap 8.2G 78M 8.1G 1% /tmp + +If required, increase the "volsize" of the rpool/swap volume : + +# zfs get volsize rpool/swap +NAME PROPERTY VALUE SOURCE +rpool/swap volsize 8G local + +The command to increase the size is: + +# zpool list rpool (check FREE space) +# zfs set volsize=8G rpool/swap + +This can be done online, but a reboot is not a bad idea after doing this. + +C Compiler +---------- + +As C compiler we use the Sun C compiler: + +$ /opt/developerstudio12.6/bin/cc -V +cc: Studio 12.6 Sun C 5.15 SunOS_i386 2017/05/30 + +This is the developer/developerstudio-126/cc (solarisstudio) package. + +GNU Make +-------- + +For the Makefiles, pkg:/developer/build/gnu-make must be installed. + diff --git a/build.sunos32x86/squeak.cog.spur/build/mvm b/build.sunos32x86/squeak.cog.spur/build/mvm new file mode 100755 index 0000000000..d889086756 --- /dev/null +++ b/build.sunos32x86/squeak.cog.spur/build/mvm @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -e +case "`uname -m`" in # ensure we see x86 as machine type +i86pc) ;; # we're good +*) if type i386 2>&1 >/dev/null; then + echo "Re-exec as x86" + exec i386 "$0" "$@" +fi ;; +esac +# Spur VM with VM profiler and threaded heartbeat +MAKE=/usr/bin/gmake +#INSTALLDIR=sqcogspursunosht +INSTALLDIR=squeak.cog.spur-sunos32x86 +OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" + +if [ $# -ge 1 ]; then + INSTALLDIR="$1"; shift +fi + +if ../../../scripts/checkSCCSversion ; then exit 1; fi +echo -n "clean? " +read a +case $a in +n|no|N|NO) echo "ok but this isn't safe!!";; +*) test -f Makefile && $MAKE reallyclean +esac +test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .) +test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) +test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak \ + --with-vmversion=5.0 \ + --with-src=spursrc \ + TARGET_ARCH="-m32" \ + ac_cv_cflags_warn_all="" \ + CFLAGS="$OPT -DCOGMTVM=0" +rm -f vm/sqUnixMain.o # nuke version info +rm -rf ../../../products/$INSTALLDIR +# prefer $MAKE install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR` +# but older linux readlinks lack the -f flag +$MAKE install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG diff --git a/build.sunos32x86/squeak.cog.spur/plugins.ext b/build.sunos32x86/squeak.cog.spur/plugins.ext new file mode 100644 index 0000000000..6bbf9953ce --- /dev/null +++ b/build.sunos32x86/squeak.cog.spur/plugins.ext @@ -0,0 +1,16 @@ +# Copied, perhaps edited, from ../../src/examplePlugins.ext +EXTERNAL_PLUGINS = \ +B3DAcceleratorPlugin \ +BochsIA32Plugin \ +BochsX64Plugin \ +GdbARMPlugin \ +FileAttributesPlugin \ +Squeak3D \ +SqueakFFIPrims \ +SqueakSSL \ +LocalePlugin \ +UnicodePlugin \ +UnixOSProcessPlugin \ +UUIDPlugin \ +ImmX11Plugin \ +XDisplayControlPlugin diff --git a/build.sunos32x86/squeak.cog.spur/plugins.int b/build.sunos32x86/squeak.cog.spur/plugins.int new file mode 100644 index 0000000000..cfba6f7474 --- /dev/null +++ b/build.sunos32x86/squeak.cog.spur/plugins.int @@ -0,0 +1,38 @@ +# Copied, perhaps edited, from ../../src/examplePlugins.int +INTERNAL_PLUGINS = \ +ADPCMCodecPlugin \ +AioPlugin \ +AsynchFilePlugin \ +B2DPlugin \ +BitBltPlugin \ +BMPReadWriterPlugin \ +CroquetPlugin \ +HostWindowPlugin \ +ZipPlugin \ +DropPlugin \ +DSAPrims \ +FFTPlugin \ +FileCopyPlugin \ +FilePlugin \ +FloatArrayPlugin \ +FloatMathPlugin \ +IA32ABI \ +JoystickTabletPlugin \ +JPEGReaderPlugin \ +JPEGReadWriter2Plugin \ +Klatt \ +LargeIntegers \ +Matrix2x3Plugin \ +MIDIPlugin \ +MiscPrimitivePlugin \ +Mpeg3Plugin \ +RePlugin \ +SecurityPlugin \ +SerialPlugin \ +SocketPlugin \ +SoundCodecPrims \ +SoundGenerationPlugin \ +SoundPlugin \ +StarSqueakPlugin \ +SurfacePlugin \ +VMProfileLinuxSupportPlugin diff --git a/platforms/Cross/plugins/IA32ABI/ia32abicc.c b/platforms/Cross/plugins/IA32ABI/ia32abicc.c index 166a1a5e4c..c9ca3b281b 100644 --- a/platforms/Cross/plugins/IA32ABI/ia32abicc.c +++ b/platforms/Cross/plugins/IA32ABI/ia32abicc.c @@ -232,7 +232,7 @@ thunkEntry(void *thunkp, sqIntptr_t *stackp) long vhigh = vmcc.rvs.valleint64.high; #if _MSC_VER _asm mov edx, dword ptr vhigh; -#elif __GNUC__ +#elif __GNUC__ || __SUNPRO_C __asm__ ("mov %0,%%edx" : : "m"(vhigh)); #else # error need to load edx with vmcc.rvs.valleint64.high on this compiler @@ -244,7 +244,7 @@ thunkEntry(void *thunkp, sqIntptr_t *stackp) double valflt64 = vmcc.rvs.valflt64; #if _MSC_VER _asm fld qword ptr valflt64; -#elif __GNUC__ +#elif __GNUC__ || __SUNPRO_C __asm__ ("fldl %0" : : "m"(valflt64)); #else # error need to load %f0 with vmcc.rvs.valflt64 on this compiler diff --git a/platforms/Cross/vm/sqAtomicOps.h b/platforms/Cross/vm/sqAtomicOps.h index 4d1c1f433c..b10f852a1d 100644 --- a/platforms/Cross/vm/sqAtomicOps.h +++ b/platforms/Cross/vm/sqAtomicOps.h @@ -106,7 +106,7 @@ AtomicGet(uint64_t *target) # define set64(variable,value) AtomicSet(&(variable),value) /* Currently we provide definitions for x86 and GCC only. But see below. */ -# elif defined(__GNUC__) && (defined(i386) || defined(__i386) || defined(__i386__) || defined(_X86_)) +# elif (defined(__GNUC__) || defined(__SUNPRO_C)) && (defined(i386) || defined(__i386) || defined(__i386__) || defined(_X86_)) /* atomic read & write of 64-bit values using SSE2 movq to/from sse register. * 64-bit reads & writes are only guaranteed to be atomic if aligned on a 64-bit @@ -210,6 +210,7 @@ AtomicGet(__int64 *target) # define set64(variable,value) (variable = value) #else + /* Dear implementor, you have choices. For example consider defining get64 & * set64 thusly * #define get64(var) read64(&(var)) @@ -241,7 +242,7 @@ AtomicGet(__int64 *target) #if TARGET_OS_IS_IPHONE # define sqAtomicAddConst(var,n) (assert(sizeof(var) == 4), OSAtomicAdd32(n,&(var)) -#elif defined(__GNUC__) || defined(__clang__) +#elif defined(__GNUC__) || defined(__clang__) || defined(__SUNPRO_C) /* N.B. I know you want to use the intrinsics; they're pretty; they're official; * they're portable. But they only apply to int, long and long long sizes. * Since we want to use 16-bit variables for signal requests and responses in @@ -307,7 +308,7 @@ AtomicGet(__int64 *target) ? OSAtomicCompareAndSwap64(old, new, &var) \ : OSAtomicCompareAndSwap32(old, new, &var)) -#elif defined(__GNUC__) || defined(__clang__) +#elif defined(__GNUC__) || defined(__clang__) || defined(__SUNPRO_C) # if GCC_HAS_BUILTIN_SYNC || defined(__clang__) # define sqCompareAndSwap(var,old,new) \ __sync_bool_compare_and_swap(&(var), old, new) diff --git a/platforms/Cross/vm/sqMemoryFence.h b/platforms/Cross/vm/sqMemoryFence.h index 971e7039cd..6494b1c2de 100644 --- a/platforms/Cross/vm/sqMemoryFence.h +++ b/platforms/Cross/vm/sqMemoryFence.h @@ -41,7 +41,7 @@ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) #endif -#if defined(__GNUC__) || defined(__clang__) +#if defined(__GNUC__) || defined(__clang__) || defined(__SUNPRO_C) # if GCC_HAS_BUILTIN_SYNC || defined(__clang__) # define sqLowLevelMFence() __sync_synchronize() # elif defined(i386) || defined(__i386) || defined(__i386__) || defined(_X86_) diff --git a/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc b/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc index 3e89d1cff4..d944d283a5 100644 --- a/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc +++ b/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc @@ -11,6 +11,11 @@ #include +#ifdef __SUNPRO_C +/* MIN is not C stdlib - perhaps is defining it on Linux */ +static int MIN(int a,int b) { return (a__ss.__rip #elif __APPLE__ && __MACH__ && __x86_64__ # define _PC_IN_UCONTEXT uc_mcontext->ss.rip +#elif __SUNPRO_C && __i386__ +# define _PC_IN_UCONTEXT uc_mcontext.gregs[EIP] +#elif __SUNPRO && __amd64 +# define _PC_IN_UCONTEXT uc_mcontext.gregs[REG_RIP] #elif __linux__ && __i386__ # define _PC_IN_UCONTEXT uc_mcontext.gregs[REG_EIP] #elif __linux__ && __x86_64__ diff --git a/platforms/unix/vm/sqUnixHeartbeat.c b/platforms/unix/vm/sqUnixHeartbeat.c index 908affd6bf..ac1c7cfbef 100644 --- a/platforms/unix/vm/sqUnixHeartbeat.c +++ b/platforms/unix/vm/sqUnixHeartbeat.c @@ -172,7 +172,7 @@ ioHighResClock(void) /* return the value of the high performance counter */ sqLong value = 0; -#if defined(__GNUC__) && (defined(i386) || defined(__i386) || defined(__i386__)) +#if (defined(__GNUC__) || defined(__SUNPRO_C)) && (defined(i386) || defined(__i386) || defined(__i386__)) __asm__ __volatile__ ("rdtsc" : "=A"(value)); #elif defined(__GNUC__) && (defined(x86_64) || defined(__x86_64) || defined (__x86_64__)) __asm__ __volatile__ ("rdtsc\n\t" // Returns the time in EDX:EAX. diff --git a/scripts/checkSCCSversion b/scripts/checkSCCSversion index f0e246889e..db4c481804 100755 --- a/scripts/checkSCCSversion +++ b/scripts/checkSCCSversion @@ -6,7 +6,7 @@ PWD="`dirname $0`" VERSION_FILE="platforms/Cross/vm/sqSCCSVersion.h" -if fgrep -q '$Rev$' "$PWD/../$VERSION_FILE" ; then +if fgrep '$Rev$' "$PWD/../$VERSION_FILE" ; then echo "$VERSION_FILE not up-to-date." 1>&2 echo "You must run $PWD/updateSCCSVersions" 1>&2 exit 0 # i.e. so that we can say if checkSCCSVersion; then exit 1; fi From 22060579cdb8583ec2296f33e9bc0d81dbb44c46 Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 29 Mar 2020 21:30:18 +0200 Subject: [PATCH 02/42] Add build.sunosamd64 for 64bit on Solaris --- build.sunosamd64/HowToBuild | 119 ++++++++++++++++++ build.sunosamd64/squeak.cog.spur/build/mvm | 45 +++++++ build.sunosamd64/squeak.cog.spur/plugins.ext | 16 +++ build.sunosamd64/squeak.cog.spur/plugins.int | 38 ++++++ .../Cross/plugins/IA32ABI/x64sysvabicc.c | 2 +- platforms/Cross/vm/sqMemoryFence.h | 4 +- platforms/unix/vm/include_ucontext.h | 4 +- platforms/unix/vm/sqUnixHeartbeat.c | 2 +- platforms/unix/vm/sqUnixMain.c | 3 + 9 files changed, 228 insertions(+), 5 deletions(-) create mode 100644 build.sunosamd64/HowToBuild create mode 100755 build.sunosamd64/squeak.cog.spur/build/mvm create mode 100644 build.sunosamd64/squeak.cog.spur/plugins.ext create mode 100644 build.sunosamd64/squeak.cog.spur/plugins.int diff --git a/build.sunosamd64/HowToBuild b/build.sunosamd64/HowToBuild new file mode 100644 index 0000000000..afe8965d5b --- /dev/null +++ b/build.sunosamd64/HowToBuild @@ -0,0 +1,119 @@ + +How To Build On Solaris +----------------------- + +Contents: + - Overview + - Real-Time + - Swapspace + - C Compiler + - GNU make + +Overview +-------- + +These are some notes on building the OpenSmalltalk VM on Oracle Solaris 11. + +To build, + + cd build.sunosamd64 + cd squeak.cog.spur + cd build + ./mvm or ./mvm INSTALLDIR + +This will build and install into INSTALLDIR. +The default value for INSTALLDIR is products/squeak.cog.spur-sunosamd64. + +To run the vm, consider running the process in the RT (real-time) class. + +For Solaris specific suggestions please contact me David Stes (stes@telenet.be), +or the OpenSmalltalk team for general OpenSmalltalk issues. + +Real-Time +--------- + +When running the squeak vm, after copying a Squeak .image and .change file, +and after copying the Squeak Smalltalk source file (SqueakV50.sources). + +bash-4.4$ bin/squeak Squeak6.0alpha-19547-32bit.image +pthread_setschedparam failed: Not owner + +Note that it is possible to suppress the "pthread_setschedparam" warning, +by running the squeak vm in the RT (real-time) class. + +One way would be to use priocntl -e and execute the squeak in the -c RT class. + +Or perhaps at the "authorization" (auths) level it could perhaps +be possible to have an entry in /etc/security/exec_attr.d for +an authorization that gives "proc_priocntl" to squeak. + +You must do this as "root". + +Another way is to change a "bash" shell to RT class, + +bash-4.4$ priocntl -d $$ +INTERACTIVE CLASS PROCESSES: + PID[/LWP] IAUPRILIM IAUPRI IAMODE + 4026 0 0 1 + +bash-4.4$ sudo priocntl -c RT -p 0 -s $$ + +bash-4.4$ priocntl -d $$ +REAL TIME PROCESSES: + PID[/LWP] RTPRI TQNTM TQSIG + 3966 0 1000 0 + +After changing the "bash" shell to the RT class, you can launch + +bash-4.4$ bin/squeak Squeak6.0alpha-19547-32bit.image + +It will inherit the RT class and the pthread_setschedparam warning is gone. + +Verify as follows the squeak threads (LWP light-weight processes) + +bash-4.4$ ps -eLo pid,pri,lwp,class,comm | grep squeak + 4029 100 1 RT bin/../lib/squeak/5.0-202003240214-solaris/squeak + 4029 101 2 RT bin/../lib/squeak/5.0-202003240214-solaris/squeak + +Note that one thread is running in priority 101 and another in priority 100. + +Swapspace +--------- + +Make sure there is sufficient free space in /tmp, mounted on swap in Solaris. +The C compiler may use a lot of space for temporary files under /tmp. + +For example (the example 8G is what I use) : + +$ df -h /tmp +Filesystem Size Used Available Capacity Mounted on +swap 8.2G 78M 8.1G 1% /tmp + +If required, increase the "volsize" of the rpool/swap volume : + +# zfs get volsize rpool/swap +NAME PROPERTY VALUE SOURCE +rpool/swap volsize 8G local + +The command to increase the size is: + +# zpool list rpool (check FREE space) +# zfs set volsize=8G rpool/swap + +This can be done online, but a reboot is not a bad idea after doing this. + +C Compiler +---------- + +As C compiler we use the Sun C compiler: + +$ /opt/developerstudio12.6/bin/cc -V +cc: Studio 12.6 Sun C 5.15 SunOS_i386 2017/05/30 + +This is the developer/developerstudio-126/cc (solarisstudio) package. + +GNU Make +-------- + +For the Makefiles, pkg:/developer/build/gnu-make must be installed. + diff --git a/build.sunosamd64/squeak.cog.spur/build/mvm b/build.sunosamd64/squeak.cog.spur/build/mvm new file mode 100755 index 0000000000..e294219912 --- /dev/null +++ b/build.sunosamd64/squeak.cog.spur/build/mvm @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +set -e +# Spur VM with VM profiler and threaded heartbeat +INSTALLDIR=squeak.cog.spur-sunosamd64 +# Some gcc versions create a broken VM using -O2 +OPT="-O2 -DNDEBUG -DDEBUGVM=0" +MAKE=/usr/bin/gmake + +CFLAGS="$OPT -DCOGMTVM=0" +LIBS="" +LDFLAGS="" +case $(uname -s) in + OpenBSD) + CFLAGS="$CFLAGS -I/usr/local/include" + LIBS="$LIBS -lexecinfo" + LDFLAGS="$LDFLAGS -L/usr/local/lib" + ;; +esac + +if [ $# -ge 1 ]; then + INSTALLDIR="$1"; shift +fi + +if ../../../scripts/checkSCCSversion ; then exit 1; fi +echo -n "clean? " +read a +case $a in +n|no|N|NO) echo "ok but this isn't safe!!";; +*) test -f Makefile && $MAKE reallyclean +esac +test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .) +test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) +test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak \ + --with-vmversion=5.0 \ + --with-src=spur64src \ + TARGET_ARCH="-m64" \ + ac_cv_cflags_warn_all="" \ + CFLAGS="$CFLAGS" \ + LIBS="$LIBS" \ + LDFLAGS="$LDFLAGS" +rm -f vm/sqUnixMain.o # nuke version info +rm -rf ../../../products/$INSTALLDIR +# prefer $MAKE install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR` +# but older linux readlinks lack the -f flag +$MAKE install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG diff --git a/build.sunosamd64/squeak.cog.spur/plugins.ext b/build.sunosamd64/squeak.cog.spur/plugins.ext new file mode 100644 index 0000000000..6bbf9953ce --- /dev/null +++ b/build.sunosamd64/squeak.cog.spur/plugins.ext @@ -0,0 +1,16 @@ +# Copied, perhaps edited, from ../../src/examplePlugins.ext +EXTERNAL_PLUGINS = \ +B3DAcceleratorPlugin \ +BochsIA32Plugin \ +BochsX64Plugin \ +GdbARMPlugin \ +FileAttributesPlugin \ +Squeak3D \ +SqueakFFIPrims \ +SqueakSSL \ +LocalePlugin \ +UnicodePlugin \ +UnixOSProcessPlugin \ +UUIDPlugin \ +ImmX11Plugin \ +XDisplayControlPlugin diff --git a/build.sunosamd64/squeak.cog.spur/plugins.int b/build.sunosamd64/squeak.cog.spur/plugins.int new file mode 100644 index 0000000000..cfba6f7474 --- /dev/null +++ b/build.sunosamd64/squeak.cog.spur/plugins.int @@ -0,0 +1,38 @@ +# Copied, perhaps edited, from ../../src/examplePlugins.int +INTERNAL_PLUGINS = \ +ADPCMCodecPlugin \ +AioPlugin \ +AsynchFilePlugin \ +B2DPlugin \ +BitBltPlugin \ +BMPReadWriterPlugin \ +CroquetPlugin \ +HostWindowPlugin \ +ZipPlugin \ +DropPlugin \ +DSAPrims \ +FFTPlugin \ +FileCopyPlugin \ +FilePlugin \ +FloatArrayPlugin \ +FloatMathPlugin \ +IA32ABI \ +JoystickTabletPlugin \ +JPEGReaderPlugin \ +JPEGReadWriter2Plugin \ +Klatt \ +LargeIntegers \ +Matrix2x3Plugin \ +MIDIPlugin \ +MiscPrimitivePlugin \ +Mpeg3Plugin \ +RePlugin \ +SecurityPlugin \ +SerialPlugin \ +SocketPlugin \ +SoundCodecPrims \ +SoundGenerationPlugin \ +SoundPlugin \ +StarSqueakPlugin \ +SurfacePlugin \ +VMProfileLinuxSupportPlugin diff --git a/platforms/Cross/plugins/IA32ABI/x64sysvabicc.c b/platforms/Cross/plugins/IA32ABI/x64sysvabicc.c index 44f6691ee3..7eda494e26 100644 --- a/platforms/Cross/plugins/IA32ABI/x64sysvabicc.c +++ b/platforms/Cross/plugins/IA32ABI/x64sysvabicc.c @@ -224,7 +224,7 @@ thunkEntry(long a0, long a1, long a2, long a3, long a4, long a5, double valflt64 = vmcc.rvs.valflt64; #if _MSC_VER _asm mov qword ptr valflt64, xmm0; -#elif __GNUC__ +#elif __GNUC__ || __SUNPRO_C __asm__("movq %0, %%xmm0" : : "m"(valflt64)); #else # error need to load %xmm0 with vmcc.rvs.valflt64 on this compiler diff --git a/platforms/Cross/vm/sqMemoryFence.h b/platforms/Cross/vm/sqMemoryFence.h index 6494b1c2de..4ba9cc5747 100644 --- a/platforms/Cross/vm/sqMemoryFence.h +++ b/platforms/Cross/vm/sqMemoryFence.h @@ -41,7 +41,7 @@ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) #endif -#if defined(__GNUC__) || defined(__clang__) || defined(__SUNPRO_C) +#if defined(__GNUC__) || defined(__clang__) # if GCC_HAS_BUILTIN_SYNC || defined(__clang__) # define sqLowLevelMFence() __sync_synchronize() # elif defined(i386) || defined(__i386) || defined(__i386__) || defined(_X86_) @@ -52,6 +52,8 @@ # define sqLowLevelMFence() asm volatile ("mfence") # endif # endif +#elif defined(__SUNPRO_C) +# define sqLowLevelMFence() asm volatile ("mfence") #elif defined(_MSC_VER) /* # define sqLowLevelMFence() _asm { mfence } */ /* could use mfence here but */ \ diff --git a/platforms/unix/vm/include_ucontext.h b/platforms/unix/vm/include_ucontext.h index 6df8186d88..c1666f74b5 100644 --- a/platforms/unix/vm/include_ucontext.h +++ b/platforms/unix/vm/include_ucontext.h @@ -36,10 +36,10 @@ # define _PC_IN_UCONTEXT uc_mcontext->__ss.__rip #elif __APPLE__ && __MACH__ && __x86_64__ # define _PC_IN_UCONTEXT uc_mcontext->ss.rip +#elif __SUNPRO_C && __amd64 +# define _PC_IN_UCONTEXT uc_mcontext.gregs[REG_RIP] #elif __SUNPRO_C && __i386__ # define _PC_IN_UCONTEXT uc_mcontext.gregs[EIP] -#elif __SUNPRO && __amd64 -# define _PC_IN_UCONTEXT uc_mcontext.gregs[REG_RIP] #elif __linux__ && __i386__ # define _PC_IN_UCONTEXT uc_mcontext.gregs[REG_EIP] #elif __linux__ && __x86_64__ diff --git a/platforms/unix/vm/sqUnixHeartbeat.c b/platforms/unix/vm/sqUnixHeartbeat.c index ac1c7cfbef..5ea811b8b0 100644 --- a/platforms/unix/vm/sqUnixHeartbeat.c +++ b/platforms/unix/vm/sqUnixHeartbeat.c @@ -174,7 +174,7 @@ ioHighResClock(void) #if (defined(__GNUC__) || defined(__SUNPRO_C)) && (defined(i386) || defined(__i386) || defined(__i386__)) __asm__ __volatile__ ("rdtsc" : "=A"(value)); -#elif defined(__GNUC__) && (defined(x86_64) || defined(__x86_64) || defined (__x86_64__)) +#elif (defined(__GNUC__) || defined(__SUNPRO_C)) && (defined(x86_64) || defined(__x86_64) || defined (__x86_64__)) __asm__ __volatile__ ("rdtsc\n\t" // Returns the time in EDX:EAX. "shl $32, %%rdx\n\t" // Shift the upper bits left. "or %%rdx, %0" // 'Or' in the lower bits. diff --git a/platforms/unix/vm/sqUnixMain.c b/platforms/unix/vm/sqUnixMain.c index a32edf47f6..fec58feca4 100644 --- a/platforms/unix/vm/sqUnixMain.c +++ b/platforms/unix/vm/sqUnixMain.c @@ -942,6 +942,9 @@ reportStackState(char *msg, char *date, int printAll, ucontext_t *uap) # elif __sun__ && __i386__ void *fp = (void *)(uap ? uap->uc_mcontext.gregs[REG_FP] : 0); void *sp = (void *)(uap ? uap->uc_mcontext.gregs[REG_SP] : 0); +# elif __sun__ && __amd64 + void *fp = (void *)(uap ? uap->uc_mcontext.gregs[REG_FP] : 0); + void *sp = (void *)(uap ? uap->uc_mcontext.gregs[REG_SP] : 0); # elif defined(__arm64__) || defined(__aarch64__) || defined(ARM64) void *fp = (void *)(uap ? uap->uc_mcontext.regs[29] : 0); void *sp = (void *)(uap ? uap->uc_mcontext.sp : 0); From 02bc44de523b04075eb679a36bc5ef0e5f45dca2 Mon Sep 17 00:00:00 2001 From: stes Date: Mon, 30 Mar 2020 18:38:02 +0200 Subject: [PATCH 03/42] Add Solaris IPS manifest. --- build.sunosamd64/HowToBuild | 28 +++++++++++++++++- build.sunosamd64/squeak.cog.spur/build/mvm | 11 ++----- build.sunosamd64/squeak.cog.spur/squeak5.p5m | 29 +++++++++++++++++++ .../squeak.cog.spur/squeak5.p5m.res | 4 +++ platforms/unix/vm/sqUnixExternalPrims.c | 8 +++++ 5 files changed, 70 insertions(+), 10 deletions(-) create mode 100644 build.sunosamd64/squeak.cog.spur/squeak5.p5m create mode 100644 build.sunosamd64/squeak.cog.spur/squeak5.p5m.res diff --git a/build.sunosamd64/HowToBuild b/build.sunosamd64/HowToBuild index afe8965d5b..a4b5ef5d67 100644 --- a/build.sunosamd64/HowToBuild +++ b/build.sunosamd64/HowToBuild @@ -8,6 +8,7 @@ Contents: - Swapspace - C Compiler - GNU make + - IPS package Overview -------- @@ -22,7 +23,7 @@ To build, ./mvm or ./mvm INSTALLDIR This will build and install into INSTALLDIR. -The default value for INSTALLDIR is products/squeak.cog.spur-sunosamd64. +The default value for INSTALLDIR is products/squeak.cog.spur-sunosamd64/usr To run the vm, consider running the process in the RT (real-time) class. @@ -117,3 +118,28 @@ GNU Make For the Makefiles, pkg:/developer/build/gnu-make must be installed. +IPS Package +----------- + +To build an IPS package, the IPS manifest squeak5.p5m can be used + +1. Strip the executable if not already done + +$strip ./usr/lib/squeak/5.0-202003291930-solaris/squeak + +2. Create a repository for publisher 'squeak' + +$pkgrepo create -s myrepo +$pkgrepo -s myrepo set publisher/prefix=squeak + +3. Publish the executable in the repository + +$pkgrepo publish -d squeak.cog.spur-sunosamd64/ -s myrepo squeak5.p5m + +4. Verify and optionally create an archive + +$ pkgrepo -s myrepo list +$ pkgrecv -s myrepo -d squeak5.0.0-solaris11.3-amd64.p5p -a '*' + +The .p5p archive of the IPS package can be used to distribute the binaries. + diff --git a/build.sunosamd64/squeak.cog.spur/build/mvm b/build.sunosamd64/squeak.cog.spur/build/mvm index e294219912..68f3080450 100755 --- a/build.sunosamd64/squeak.cog.spur/build/mvm +++ b/build.sunosamd64/squeak.cog.spur/build/mvm @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e # Spur VM with VM profiler and threaded heartbeat -INSTALLDIR=squeak.cog.spur-sunosamd64 +INSTALLDIR=squeak.cog.spur-sunosamd64/usr # Some gcc versions create a broken VM using -O2 OPT="-O2 -DNDEBUG -DDEBUGVM=0" MAKE=/usr/bin/gmake @@ -9,13 +9,6 @@ MAKE=/usr/bin/gmake CFLAGS="$OPT -DCOGMTVM=0" LIBS="" LDFLAGS="" -case $(uname -s) in - OpenBSD) - CFLAGS="$CFLAGS -I/usr/local/include" - LIBS="$LIBS -lexecinfo" - LDFLAGS="$LDFLAGS -L/usr/local/lib" - ;; -esac if [ $# -ge 1 ]; then INSTALLDIR="$1"; shift @@ -42,4 +35,4 @@ rm -f vm/sqUnixMain.o # nuke version info rm -rf ../../../products/$INSTALLDIR # prefer $MAKE install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR` # but older linux readlinks lack the -f flag -$MAKE install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG +$MAKE install-squeak install-doc install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG diff --git a/build.sunosamd64/squeak.cog.spur/squeak5.p5m b/build.sunosamd64/squeak.cog.spur/squeak5.p5m new file mode 100644 index 0000000000..11265d6c81 --- /dev/null +++ b/build.sunosamd64/squeak.cog.spur/squeak5.p5m @@ -0,0 +1,29 @@ +set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.0 +set name=pkg.description value="Squeak V5" +set name=pkg.summary value="The Squeak V5 Smalltalk System" + +dir group=bin mode=0755 owner=root path=usr/lib/squeak +dir group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris +file usr/lib/squeak/5.0-202003291930-solaris/vm-sound-OSS.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-sound-OSS.so +file usr/lib/squeak/5.0-202003291930-solaris/B3DAcceleratorPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/B3DAcceleratorPlugin.so +file usr/lib/squeak/5.0-202003291930-solaris/XDisplayControlPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/XDisplayControlPlugin.so +file usr/lib/squeak/5.0-202003291930-solaris/FileAttributesPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/FileAttributesPlugin.so +file usr/lib/squeak/5.0-202003291930-solaris/vm-display-X11.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-display-X11.so +file usr/lib/squeak/5.0-202003291930-solaris/Squeak3D.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/Squeak3D.so +file usr/lib/squeak/5.0-202003291930-solaris/UnixOSProcessPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/UnixOSProcessPlugin.so +file usr/lib/squeak/5.0-202003291930-solaris/SqueakSSL.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/SqueakSSL.so +file usr/lib/squeak/5.0-202003291930-solaris/ImmX11Plugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/ImmX11Plugin.so +file usr/lib/squeak/5.0-202003291930-solaris/vm-sound-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-sound-null.so +file usr/lib/squeak/5.0-202003291930-solaris/SqueakFFIPrims.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/SqueakFFIPrims.so +file usr/lib/squeak/5.0-202003291930-solaris/vm-sound-Sun.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-sound-Sun.so +file usr/lib/squeak/5.0-202003291930-solaris/vm-sound-pulse.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-sound-pulse.so +file usr/lib/squeak/5.0-202003291930-solaris/UnicodePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/UnicodePlugin.so +file usr/lib/squeak/5.0-202003291930-solaris/vm-display-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-display-null.so +file usr/lib/squeak/5.0-202003291930-solaris/LocalePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/LocalePlugin.so +file usr/lib/squeak/5.0-202003291930-solaris/squeak group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/squeak +file usr/lib/squeak/5.0-202003291930-solaris/UUIDPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/UUIDPlugin.so +dir group=bin mode=0755 owner=root path=usr/share/man +dir group=bin mode=0755 owner=root path=usr/share/man/man1 +file usr/share/man/man1/squeak.1 group=bin mode=0644 owner=root path=usr/share/man/man1/squeak.1 +hardlink path=usr/share/man/man1/inisqueak.1 target=squeak.1 +file usr/bin/squeak group=bin mode=0755 owner=root path=usr/bin/squeak diff --git a/build.sunosamd64/squeak.cog.spur/squeak5.p5m.res b/build.sunosamd64/squeak.cog.spur/squeak5.p5m.res new file mode 100644 index 0000000000..f1c4894d12 --- /dev/null +++ b/build.sunosamd64/squeak.cog.spur/squeak5.p5m.res @@ -0,0 +1,4 @@ +set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.0 +set name=pkg.description value="Squeak V5" +set name=pkg.summary value="The Squeak V5 Smalltalk System" + diff --git a/platforms/unix/vm/sqUnixExternalPrims.c b/platforms/unix/vm/sqUnixExternalPrims.c index 24623af7a5..21bd0ff440 100644 --- a/platforms/unix/vm/sqUnixExternalPrims.c +++ b/platforms/unix/vm/sqUnixExternalPrims.c @@ -187,7 +187,11 @@ void *ioLoadModule(char *pluginName) if ((0 == pluginName) || ('\0' == pluginName[0])) { /* find module in main program */ handle= dlopen(0, RTLD_NOW | RTLD_GLOBAL); if (handle == 0) { +#ifdef __SUNPRO_C + fprintf(stderr, " %d ioLoadModule dlopen(): %s\n", __LINE__, dlerror()); +#else fprintf(stderr, __FILE__ " %d ioLoadModule dlopen(): %s\n", __LINE__, dlerror()); +#endif fflush(stderr); } else { @@ -323,7 +327,11 @@ ioLoadModule(char *pluginName) if (!pluginName || !*pluginName) { if (!(handle= dlopen(0, RTLD_NOW | RTLD_GLOBAL))) { +#ifdef __SUNPRO_C + fprintf(stderr, " %d ioLoadModule(): %s\n", __LINE__, dlerror()); +#else fprintf(stderr, __FILE__ " %d ioLoadModule(): %s\n", __LINE__, dlerror()); +#endif fflush(stderr); return 0; } From f893880e60ea4c6b809b826094453da387d453c8 Mon Sep 17 00:00:00 2001 From: stes Date: Tue, 31 Mar 2020 15:43:29 +0200 Subject: [PATCH 04/42] Change docdir from /usr/doc to /usr/share/doc. Set version to 5.3.1 --- platforms/Cross/vm/sqVirtualMachine.h | 2 +- platforms/unix/config/make.cfg.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platforms/Cross/vm/sqVirtualMachine.h b/platforms/Cross/vm/sqVirtualMachine.h index 9a1300a912..40815661b5 100755 --- a/platforms/Cross/vm/sqVirtualMachine.h +++ b/platforms/Cross/vm/sqVirtualMachine.h @@ -7,7 +7,7 @@ #include "interp.h" #if SPURVM -# define VM_VERSION "5.0" +# define VM_VERSION "5.3.1" #else # define VM_VERSION "4.5" #endif diff --git a/platforms/unix/config/make.cfg.in b/platforms/unix/config/make.cfg.in index bb4cb3872f..69e9c2c6a8 100644 --- a/platforms/unix/config/make.cfg.in +++ b/platforms/unix/config/make.cfg.in @@ -56,7 +56,7 @@ datadir= @datadir@ mandir= @mandir@ imgdir= @imgdir@ plgdir= @plgdir@ -docdir= $(prefix)/doc/squeak +docdir= @datarootdir@/doc/squeak SHELL= @SHELL@ MKINSTALLDIRS= mkdir -p From 093d7eafac5a8ea6671048a46028e131e8dc02d4 Mon Sep 17 00:00:00 2001 From: stes Date: Tue, 31 Mar 2020 19:06:26 +0200 Subject: [PATCH 05/42] Update IPS manifest for version 5.3.1. Include doc/LICENSE.gz file. --- build.sunosamd64/squeak.cog.spur/squeak5.p5m | 53 ++++++++++--------- .../squeak.cog.spur/squeak5.p5m.res | 2 +- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/build.sunosamd64/squeak.cog.spur/squeak5.p5m b/build.sunosamd64/squeak.cog.spur/squeak5.p5m index 11265d6c81..f0ae8d7d58 100644 --- a/build.sunosamd64/squeak.cog.spur/squeak5.p5m +++ b/build.sunosamd64/squeak.cog.spur/squeak5.p5m @@ -1,29 +1,34 @@ -set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.0 +set name=pkg.fmri value=pkg:/runtime/squeak5@5.3.1 set name=pkg.description value="Squeak V5" set name=pkg.summary value="The Squeak V5 Smalltalk System" +file usr/share/man/man1/inisqueak.1 group=bin mode=0644 owner=root path=usr/share/man/man1/inisqueak.1 +hardlink path=usr/share/man/man1/squeak.1 target=inisqueak.1 +dir group=bin mode=0755 owner=root path=usr/share/doc/squeak +file usr/share/doc/squeak/README.Contributing.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/README.Contributing.gz +file usr/share/doc/squeak/LICENSE.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/LICENSE.gz +file usr/share/doc/squeak/README.Sound.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/README.Sound.gz +file usr/share/doc/squeak/COPYRIGHT.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/COPYRIGHT.gz +file usr/share/doc/squeak/README.Keyboard.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/README.Keyboard.gz +file usr/share/doc/squeak/COPYING.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/COPYING.gz dir group=bin mode=0755 owner=root path=usr/lib/squeak -dir group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris -file usr/lib/squeak/5.0-202003291930-solaris/vm-sound-OSS.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-sound-OSS.so -file usr/lib/squeak/5.0-202003291930-solaris/B3DAcceleratorPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/B3DAcceleratorPlugin.so -file usr/lib/squeak/5.0-202003291930-solaris/XDisplayControlPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/XDisplayControlPlugin.so -file usr/lib/squeak/5.0-202003291930-solaris/FileAttributesPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/FileAttributesPlugin.so -file usr/lib/squeak/5.0-202003291930-solaris/vm-display-X11.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-display-X11.so -file usr/lib/squeak/5.0-202003291930-solaris/Squeak3D.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/Squeak3D.so -file usr/lib/squeak/5.0-202003291930-solaris/UnixOSProcessPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/UnixOSProcessPlugin.so -file usr/lib/squeak/5.0-202003291930-solaris/SqueakSSL.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/SqueakSSL.so -file usr/lib/squeak/5.0-202003291930-solaris/ImmX11Plugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/ImmX11Plugin.so -file usr/lib/squeak/5.0-202003291930-solaris/vm-sound-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-sound-null.so -file usr/lib/squeak/5.0-202003291930-solaris/SqueakFFIPrims.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/SqueakFFIPrims.so -file usr/lib/squeak/5.0-202003291930-solaris/vm-sound-Sun.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-sound-Sun.so -file usr/lib/squeak/5.0-202003291930-solaris/vm-sound-pulse.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-sound-pulse.so -file usr/lib/squeak/5.0-202003291930-solaris/UnicodePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/UnicodePlugin.so -file usr/lib/squeak/5.0-202003291930-solaris/vm-display-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/vm-display-null.so -file usr/lib/squeak/5.0-202003291930-solaris/LocalePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/LocalePlugin.so -file usr/lib/squeak/5.0-202003291930-solaris/squeak group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/squeak -file usr/lib/squeak/5.0-202003291930-solaris/UUIDPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202003291930-solaris/UUIDPlugin.so -dir group=bin mode=0755 owner=root path=usr/share/man -dir group=bin mode=0755 owner=root path=usr/share/man/man1 -file usr/share/man/man1/squeak.1 group=bin mode=0644 owner=root path=usr/share/man/man1/squeak.1 -hardlink path=usr/share/man/man1/inisqueak.1 target=squeak.1 +dir group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris +file usr/lib/squeak/5.3.1-202003301638-solaris/ImmX11Plugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/ImmX11Plugin.so +file usr/lib/squeak/5.3.1-202003301638-solaris/B3DAcceleratorPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/B3DAcceleratorPlugin.so +file usr/lib/squeak/5.3.1-202003301638-solaris/vm-display-X11.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-display-X11.so +file usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-Sun.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-Sun.so +file usr/lib/squeak/5.3.1-202003301638-solaris/LocalePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/LocalePlugin.so +file usr/lib/squeak/5.3.1-202003301638-solaris/UUIDPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/UUIDPlugin.so +file usr/lib/squeak/5.3.1-202003301638-solaris/squeak group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/squeak +file usr/lib/squeak/5.3.1-202003301638-solaris/vm-display-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-display-null.so +file usr/lib/squeak/5.3.1-202003301638-solaris/UnixOSProcessPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/UnixOSProcessPlugin.so +file usr/lib/squeak/5.3.1-202003301638-solaris/FileAttributesPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/FileAttributesPlugin.so +file usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-OSS.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-OSS.so +file usr/lib/squeak/5.3.1-202003301638-solaris/Squeak3D.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/Squeak3D.so +file usr/lib/squeak/5.3.1-202003301638-solaris/XDisplayControlPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/XDisplayControlPlugin.so +file usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-pulse.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-pulse.so +file usr/lib/squeak/5.3.1-202003301638-solaris/SqueakFFIPrims.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/SqueakFFIPrims.so +file usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-null.so +file usr/lib/squeak/5.3.1-202003301638-solaris/SqueakSSL.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/SqueakSSL.so +file usr/lib/squeak/5.3.1-202003301638-solaris/UnicodePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/UnicodePlugin.so file usr/bin/squeak group=bin mode=0755 owner=root path=usr/bin/squeak diff --git a/build.sunosamd64/squeak.cog.spur/squeak5.p5m.res b/build.sunosamd64/squeak.cog.spur/squeak5.p5m.res index f1c4894d12..a5070988dc 100644 --- a/build.sunosamd64/squeak.cog.spur/squeak5.p5m.res +++ b/build.sunosamd64/squeak.cog.spur/squeak5.p5m.res @@ -1,4 +1,4 @@ -set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.0 +set name=pkg.fmri value=pkg:/runtime/squeak5@5.3.1 set name=pkg.description value="Squeak V5" set name=pkg.summary value="The Squeak V5 Smalltalk System" From ba7b21ccf95aa60bf3968bb10236fe5455da7cab Mon Sep 17 00:00:00 2001 From: stes Date: Wed, 1 Apr 2020 16:50:33 +0200 Subject: [PATCH 06/42] Compilation SunPro sqUnixITimerHeartbeat --- .../squeak.cog.spur/build.itimerheartbeat/mvm | 32 +++++++++++++++++++ platforms/unix/vm/sqUnixITimerHeartbeat.c | 4 +-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100755 build.sunosamd64/squeak.cog.spur/build.itimerheartbeat/mvm diff --git a/build.sunosamd64/squeak.cog.spur/build.itimerheartbeat/mvm b/build.sunosamd64/squeak.cog.spur/build.itimerheartbeat/mvm new file mode 100755 index 0000000000..853cc2ffbc --- /dev/null +++ b/build.sunosamd64/squeak.cog.spur/build.itimerheartbeat/mvm @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +set -e +# Spur VM with VM profiler and itimer heartbeat +MAKE=/usr/bin/gmake +INSTALLDIR=squeak.cog.spur-timer-sunosamd64/usr +# Some gcc versions create a broken VM using -O2 +OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" + +if [ $# -ge 1 ]; then + INSTALLDIR="$1"; shift +fi + +if ../../../scripts/checkSCCSversion ; then exit 1; fi +echo -n "clean? " +read a +case $a in +n|no|N|NO) echo "ok but this isn't safe!!";; +*) test -f Makefile && $MAKE reallyclean +esac +test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .) +test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) +test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak \ + --with-vmversion=5.0 \ + --with-src=spur64src \ + TARGET_ARCH="-m64" \ + ac_cv_cflags_warn_all="" \ + CFLAGS="$OPT -m64 -DCOGMTVM=0 -DITIMER_HEARTBEAT=1" +rm -f vm/sqUnixMain.o # nuke version info +rm -rf ../../../products/$INSTALLDIR +# prefer $MAKE install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR` +# but older linux readlinks lack the -f flag +$MAKE install-squeak install-doc install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG diff --git a/platforms/unix/vm/sqUnixITimerHeartbeat.c b/platforms/unix/vm/sqUnixITimerHeartbeat.c index 15984f0b10..27dc2cf6b6 100644 --- a/platforms/unix/vm/sqUnixITimerHeartbeat.c +++ b/platforms/unix/vm/sqUnixITimerHeartbeat.c @@ -161,9 +161,9 @@ ioHighResClock(void) /* return the value of the high performance counter */ sqLong value = 0; -#if defined(__GNUC__) && (defined(i386) || defined(__i386) || defined(__i386__)) +#if (defined(__GNUC__) || defined(__SUNPRO_C)) && (defined(i386) || defined(__i386) || defined(__i386__)) __asm__ __volatile__ ("rdtsc" : "=A"(value)); -#elif defined(__GNUC__) && (defined(x86_64) || defined(__x86_64) || defined (__x86_64__)) +#elif (defined(__GNUC__) || defined(__SUNPRO_C)) && (defined(x86_64) || defined(__x86_64) || defined (__x86_64__)) __asm__ __volatile__ ("rdtsc\n\t" // Returns the time in EDX:EAX. "shl $32, %%rdx\n\t" // Shift the upper bits left. "or %%rdx, %0" // 'Or' in the lower bits. From a2fd354c60c6d467bdf6cd137ec66003e2b4c4d4 Mon Sep 17 00:00:00 2001 From: stes Date: Wed, 1 Apr 2020 17:43:47 +0200 Subject: [PATCH 07/42] Use FASYNC on __sun__ instead of FIOASYNC --- platforms/unix/vm/aio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/platforms/unix/vm/aio.c b/platforms/unix/vm/aio.c index 3a44067092..6d61359bf0 100644 --- a/platforms/unix/vm/aio.c +++ b/platforms/unix/vm/aio.c @@ -81,6 +81,7 @@ # if __sun__ # include + # include /* FASYNC or ioctl FIOASYNC will be issued */ # define signal(a, b) sigset(a, b) # endif From 5db71b5f14b89d79189aad0a5036cc7944d01591 Mon Sep 17 00:00:00 2001 From: stes Date: Wed, 1 Apr 2020 18:04:51 +0200 Subject: [PATCH 08/42] Put back VM_VERSION to 5.0 --- platforms/Cross/vm/sqVirtualMachine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platforms/Cross/vm/sqVirtualMachine.h b/platforms/Cross/vm/sqVirtualMachine.h index 40815661b5..9a1300a912 100755 --- a/platforms/Cross/vm/sqVirtualMachine.h +++ b/platforms/Cross/vm/sqVirtualMachine.h @@ -7,7 +7,7 @@ #include "interp.h" #if SPURVM -# define VM_VERSION "5.3.1" +# define VM_VERSION "5.0" #else # define VM_VERSION "4.5" #endif From c6519641f6dde68b337dca57009fd567b2daaf3d Mon Sep 17 00:00:00 2001 From: stes Date: Wed, 1 Apr 2020 19:02:38 +0200 Subject: [PATCH 09/42] IPS manifest used for squeak5@5.3.1 --- build.sunosamd64/squeak.cog.spur/squeak5.p5m | 48 ++++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/build.sunosamd64/squeak.cog.spur/squeak5.p5m b/build.sunosamd64/squeak.cog.spur/squeak5.p5m index f0ae8d7d58..9c6bb2ed85 100644 --- a/build.sunosamd64/squeak.cog.spur/squeak5.p5m +++ b/build.sunosamd64/squeak.cog.spur/squeak5.p5m @@ -5,30 +5,30 @@ set name=pkg.summary value="The Squeak V5 Smalltalk System" file usr/share/man/man1/inisqueak.1 group=bin mode=0644 owner=root path=usr/share/man/man1/inisqueak.1 hardlink path=usr/share/man/man1/squeak.1 target=inisqueak.1 dir group=bin mode=0755 owner=root path=usr/share/doc/squeak -file usr/share/doc/squeak/README.Contributing.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/README.Contributing.gz -file usr/share/doc/squeak/LICENSE.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/LICENSE.gz file usr/share/doc/squeak/README.Sound.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/README.Sound.gz -file usr/share/doc/squeak/COPYRIGHT.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/COPYRIGHT.gz -file usr/share/doc/squeak/README.Keyboard.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/README.Keyboard.gz file usr/share/doc/squeak/COPYING.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/COPYING.gz -dir group=bin mode=0755 owner=root path=usr/lib/squeak -dir group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris -file usr/lib/squeak/5.3.1-202003301638-solaris/ImmX11Plugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/ImmX11Plugin.so -file usr/lib/squeak/5.3.1-202003301638-solaris/B3DAcceleratorPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/B3DAcceleratorPlugin.so -file usr/lib/squeak/5.3.1-202003301638-solaris/vm-display-X11.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-display-X11.so -file usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-Sun.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-Sun.so -file usr/lib/squeak/5.3.1-202003301638-solaris/LocalePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/LocalePlugin.so -file usr/lib/squeak/5.3.1-202003301638-solaris/UUIDPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/UUIDPlugin.so -file usr/lib/squeak/5.3.1-202003301638-solaris/squeak group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/squeak -file usr/lib/squeak/5.3.1-202003301638-solaris/vm-display-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-display-null.so -file usr/lib/squeak/5.3.1-202003301638-solaris/UnixOSProcessPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/UnixOSProcessPlugin.so -file usr/lib/squeak/5.3.1-202003301638-solaris/FileAttributesPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/FileAttributesPlugin.so -file usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-OSS.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-OSS.so -file usr/lib/squeak/5.3.1-202003301638-solaris/Squeak3D.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/Squeak3D.so -file usr/lib/squeak/5.3.1-202003301638-solaris/XDisplayControlPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/XDisplayControlPlugin.so -file usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-pulse.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-pulse.so -file usr/lib/squeak/5.3.1-202003301638-solaris/SqueakFFIPrims.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/SqueakFFIPrims.so -file usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/vm-sound-null.so -file usr/lib/squeak/5.3.1-202003301638-solaris/SqueakSSL.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/SqueakSSL.so -file usr/lib/squeak/5.3.1-202003301638-solaris/UnicodePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.3.1-202003301638-solaris/UnicodePlugin.so +file usr/share/doc/squeak/README.Keyboard.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/README.Keyboard.gz +file usr/share/doc/squeak/COPYRIGHT.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/COPYRIGHT.gz +file usr/share/doc/squeak/LICENSE.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/LICENSE.gz +file usr/share/doc/squeak/README.Contributing.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/README.Contributing.gz file usr/bin/squeak group=bin mode=0755 owner=root path=usr/bin/squeak +dir group=bin mode=0755 owner=root path=usr/lib/squeak +dir group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris +file usr/lib/squeak/5.0-202004011604-solaris/FileAttributesPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/FileAttributesPlugin.so +file usr/lib/squeak/5.0-202004011604-solaris/XDisplayControlPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/XDisplayControlPlugin.so +file usr/lib/squeak/5.0-202004011604-solaris/vm-sound-OSS.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-sound-OSS.so +file usr/lib/squeak/5.0-202004011604-solaris/vm-display-X11.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-display-X11.so +file usr/lib/squeak/5.0-202004011604-solaris/squeak group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/squeak +file usr/lib/squeak/5.0-202004011604-solaris/vm-display-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-display-null.so +file usr/lib/squeak/5.0-202004011604-solaris/B3DAcceleratorPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/B3DAcceleratorPlugin.so +file usr/lib/squeak/5.0-202004011604-solaris/vm-sound-Sun.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-sound-Sun.so +file usr/lib/squeak/5.0-202004011604-solaris/SqueakSSL.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/SqueakSSL.so +file usr/lib/squeak/5.0-202004011604-solaris/vm-sound-pulse.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-sound-pulse.so +file usr/lib/squeak/5.0-202004011604-solaris/SqueakFFIPrims.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/SqueakFFIPrims.so +file usr/lib/squeak/5.0-202004011604-solaris/ImmX11Plugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/ImmX11Plugin.so +file usr/lib/squeak/5.0-202004011604-solaris/UnicodePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/UnicodePlugin.so +file usr/lib/squeak/5.0-202004011604-solaris/Squeak3D.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/Squeak3D.so +file usr/lib/squeak/5.0-202004011604-solaris/UnixOSProcessPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/UnixOSProcessPlugin.so +file usr/lib/squeak/5.0-202004011604-solaris/UUIDPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/UUIDPlugin.so +file usr/lib/squeak/5.0-202004011604-solaris/vm-sound-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-sound-null.so +file usr/lib/squeak/5.0-202004011604-solaris/LocalePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/LocalePlugin.so From 7fc6091af982593e99c853d0ec27da8a9c8ab28f Mon Sep 17 00:00:00 2001 From: stes Date: Thu, 2 Apr 2020 18:09:09 +0200 Subject: [PATCH 10/42] Define MIX / MAX so that vm-sound-pulse.so loads. --- platforms/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/platforms/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c b/platforms/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c index 5769574cf7..7205f8f7b5 100644 --- a/platforms/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c +++ b/platforms/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c @@ -275,6 +275,13 @@ static double max_delay_frames = 0; /* ================================== UTILS */ + +#ifdef __SUNPRO_C +/* MIN is not C stdlib - perhaps is defining it on Linux */ +static int MIN(int a,int b) { return (a Date: Thu, 2 Apr 2020 19:38:39 +0200 Subject: [PATCH 11/42] make vm-sound-pulse the default --- platforms/unix/vm/sqUnixMain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platforms/unix/vm/sqUnixMain.c b/platforms/unix/vm/sqUnixMain.c index fec58feca4..a64e2296f0 100644 --- a/platforms/unix/vm/sqUnixMain.c +++ b/platforms/unix/vm/sqUnixMain.c @@ -1191,10 +1191,10 @@ static struct moduleDescription moduleDescriptions[]= { &soundModule, "sound", "sndio" }, /*** NO DEFAULT ***/ /* when adding an entry above be sure to change the defaultModules offset below */ { &displayModule, "display", "Quartz" }, /* defaults... */ + { &soundModule, "sound", "pulse" }, { &soundModule, "sound", "OSS" }, { &soundModule, "sound", "MacOSX" }, { &soundModule, "sound", "Sun" }, - { &soundModule, "sound", "pulse" }, { &soundModule, "sound", "ALSA" }, { &soundModule, "sound", "null" }, { 0, 0, 0 } From 46b9764271eb4a284d09ebcee368ccbc2017330e Mon Sep 17 00:00:00 2001 From: stes Date: Fri, 3 Apr 2020 14:45:28 +0200 Subject: [PATCH 12/42] Compile on Solaris with --disable-dynamicopenssl --- build.sunosamd64/squeak.cog.spur/build/mvm | 1 + platforms/unix/plugins/SqueakSSL/openssl_overlay.h | 1 + 2 files changed, 2 insertions(+) diff --git a/build.sunosamd64/squeak.cog.spur/build/mvm b/build.sunosamd64/squeak.cog.spur/build/mvm index 68f3080450..63863d7713 100755 --- a/build.sunosamd64/squeak.cog.spur/build/mvm +++ b/build.sunosamd64/squeak.cog.spur/build/mvm @@ -25,6 +25,7 @@ test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp - test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak \ --with-vmversion=5.0 \ + --disable-dynamicopenssl \ --with-src=spur64src \ TARGET_ARCH="-m64" \ ac_cv_cflags_warn_all="" \ diff --git a/platforms/unix/plugins/SqueakSSL/openssl_overlay.h b/platforms/unix/plugins/SqueakSSL/openssl_overlay.h index d693c26a45..9eab4b407c 100644 --- a/platforms/unix/plugins/SqueakSSL/openssl_overlay.h +++ b/platforms/unix/plugins/SqueakSSL/openssl_overlay.h @@ -68,6 +68,7 @@ #define sqo_ERR_print_errors_fp ERR_print_errors_fp #define sqo_SSL_CTX_new SSL_CTX_new #define sqo_SSL_CTX_free SSL_CTX_free +#define sqo_SSL_CTX_set_options SSL_CTX_set_options #define sqo_SSL_CTX_set_cipher_list SSL_CTX_set_cipher_list #define sqo_SSL_CTX_set_default_verify_paths SSL_CTX_set_default_verify_paths #define sqo_SSL_CTX_ctrl SSL_CTX_ctrl From 1ce3bd7f37dfdb086d2ed1a6b04776663fa6233a Mon Sep 17 00:00:00 2001 From: stes Date: Fri, 3 Apr 2020 14:46:09 +0200 Subject: [PATCH 13/42] Compile on Solaris with --disable-dynamicopenssl --- build.sunos32x86/squeak.cog.spur/build/mvm | 1 + 1 file changed, 1 insertion(+) diff --git a/build.sunos32x86/squeak.cog.spur/build/mvm b/build.sunos32x86/squeak.cog.spur/build/mvm index d889086756..9a8f52fec4 100755 --- a/build.sunos32x86/squeak.cog.spur/build/mvm +++ b/build.sunos32x86/squeak.cog.spur/build/mvm @@ -28,6 +28,7 @@ test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp - test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak \ --with-vmversion=5.0 \ + --disable-dynamicopenssl \ --with-src=spursrc \ TARGET_ARCH="-m32" \ ac_cv_cflags_warn_all="" \ From 498058994987ab62620cbd97938a77c6609d67f8 Mon Sep 17 00:00:00 2001 From: stes Date: Fri, 3 Apr 2020 16:25:04 +0200 Subject: [PATCH 14/42] Include opensslv to define OPENSSL_VERSION_NUMBER --- platforms/unix/plugins/SqueakSSL/openssl_overlay.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/platforms/unix/plugins/SqueakSSL/openssl_overlay.h b/platforms/unix/plugins/SqueakSSL/openssl_overlay.h index 9eab4b407c..7f4ece43ba 100644 --- a/platforms/unix/plugins/SqueakSSL/openssl_overlay.h +++ b/platforms/unix/plugins/SqueakSSL/openssl_overlay.h @@ -34,6 +34,10 @@ #include #include +#ifdef __SUNPRO_C +#include /* define OPENSSL_VERSION_NUMBER */ +#endif + /* @@ -68,7 +72,6 @@ #define sqo_ERR_print_errors_fp ERR_print_errors_fp #define sqo_SSL_CTX_new SSL_CTX_new #define sqo_SSL_CTX_free SSL_CTX_free -#define sqo_SSL_CTX_set_options SSL_CTX_set_options #define sqo_SSL_CTX_set_cipher_list SSL_CTX_set_cipher_list #define sqo_SSL_CTX_set_default_verify_paths SSL_CTX_set_default_verify_paths #define sqo_SSL_CTX_ctrl SSL_CTX_ctrl @@ -103,6 +106,7 @@ #define sqo_sk_GENERAL_NAME_pop_free sk_GENERAL_NAME_pop_free #if OPENSSL_VERSION_NUMBER >= 0x10002000L +#define sqo_SSL_CTX_set_options SSL_CTX_set_options #define sqo_X509_check_ip_asc X509_check_ip_asc #define sqo_X509_check_host X509_check_host #elif OPENSSL_VERSION_NUMBER < 0x10002000L From 25b1a9e511ad873f9b1f427811f88d0b1424cb9b Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 5 Apr 2020 09:12:44 +0200 Subject: [PATCH 15/42] Remove -g debug flag for 32bit build --- build.sunos32x86/squeak.cog.spur/build/mvm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sunos32x86/squeak.cog.spur/build/mvm b/build.sunos32x86/squeak.cog.spur/build/mvm index 9a8f52fec4..db0f8528f1 100755 --- a/build.sunos32x86/squeak.cog.spur/build/mvm +++ b/build.sunos32x86/squeak.cog.spur/build/mvm @@ -11,7 +11,7 @@ esac MAKE=/usr/bin/gmake #INSTALLDIR=sqcogspursunosht INSTALLDIR=squeak.cog.spur-sunos32x86 -OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" +OPT="-O2 -DNDEBUG -DDEBUGVM=0" if [ $# -ge 1 ]; then INSTALLDIR="$1"; shift From d3f112a67a0c56a744bfb75fe865b18fa960af61 Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 5 Apr 2020 12:24:44 +0200 Subject: [PATCH 16/42] Rename build.sunosamd64 to build.sunos64x64 --- {build.sunosamd64 => build.sunos64x64}/HowToBuild | 0 .../squeak.cog.spur/build.itimerheartbeat/mvm | 0 {build.sunosamd64 => build.sunos64x64}/squeak.cog.spur/build/mvm | 0 .../squeak.cog.spur/plugins.ext | 0 .../squeak.cog.spur/plugins.int | 0 .../squeak.cog.spur/squeak5.p5m | 0 .../squeak.cog.spur/squeak5.p5m.res | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename {build.sunosamd64 => build.sunos64x64}/HowToBuild (100%) rename {build.sunosamd64 => build.sunos64x64}/squeak.cog.spur/build.itimerheartbeat/mvm (100%) rename {build.sunosamd64 => build.sunos64x64}/squeak.cog.spur/build/mvm (100%) rename {build.sunosamd64 => build.sunos64x64}/squeak.cog.spur/plugins.ext (100%) rename {build.sunosamd64 => build.sunos64x64}/squeak.cog.spur/plugins.int (100%) rename {build.sunosamd64 => build.sunos64x64}/squeak.cog.spur/squeak5.p5m (100%) rename {build.sunosamd64 => build.sunos64x64}/squeak.cog.spur/squeak5.p5m.res (100%) diff --git a/build.sunosamd64/HowToBuild b/build.sunos64x64/HowToBuild similarity index 100% rename from build.sunosamd64/HowToBuild rename to build.sunos64x64/HowToBuild diff --git a/build.sunosamd64/squeak.cog.spur/build.itimerheartbeat/mvm b/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm similarity index 100% rename from build.sunosamd64/squeak.cog.spur/build.itimerheartbeat/mvm rename to build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm diff --git a/build.sunosamd64/squeak.cog.spur/build/mvm b/build.sunos64x64/squeak.cog.spur/build/mvm similarity index 100% rename from build.sunosamd64/squeak.cog.spur/build/mvm rename to build.sunos64x64/squeak.cog.spur/build/mvm diff --git a/build.sunosamd64/squeak.cog.spur/plugins.ext b/build.sunos64x64/squeak.cog.spur/plugins.ext similarity index 100% rename from build.sunosamd64/squeak.cog.spur/plugins.ext rename to build.sunos64x64/squeak.cog.spur/plugins.ext diff --git a/build.sunosamd64/squeak.cog.spur/plugins.int b/build.sunos64x64/squeak.cog.spur/plugins.int similarity index 100% rename from build.sunosamd64/squeak.cog.spur/plugins.int rename to build.sunos64x64/squeak.cog.spur/plugins.int diff --git a/build.sunosamd64/squeak.cog.spur/squeak5.p5m b/build.sunos64x64/squeak.cog.spur/squeak5.p5m similarity index 100% rename from build.sunosamd64/squeak.cog.spur/squeak5.p5m rename to build.sunos64x64/squeak.cog.spur/squeak5.p5m diff --git a/build.sunosamd64/squeak.cog.spur/squeak5.p5m.res b/build.sunos64x64/squeak.cog.spur/squeak5.p5m.res similarity index 100% rename from build.sunosamd64/squeak.cog.spur/squeak5.p5m.res rename to build.sunos64x64/squeak.cog.spur/squeak5.p5m.res From 542a4129889b388a6adcefd319d3a320797b92a7 Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 5 Apr 2020 13:28:43 +0200 Subject: [PATCH 17/42] Make vm-sound-pulse first plugin in Solaris case. --- platforms/unix/vm/sqUnixMain.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/platforms/unix/vm/sqUnixMain.c b/platforms/unix/vm/sqUnixMain.c index a64e2296f0..8acabeee7a 100644 --- a/platforms/unix/vm/sqUnixMain.c +++ b/platforms/unix/vm/sqUnixMain.c @@ -1191,12 +1191,19 @@ static struct moduleDescription moduleDescriptions[]= { &soundModule, "sound", "sndio" }, /*** NO DEFAULT ***/ /* when adding an entry above be sure to change the defaultModules offset below */ { &displayModule, "display", "Quartz" }, /* defaults... */ +#ifdef __sun__ { &soundModule, "sound", "pulse" }, + { &soundModule, "sound", "OSS" }, + { &soundModule, "sound", "Sun" }, + { &soundModule, "sound", "null" }, +#else { &soundModule, "sound", "OSS" }, { &soundModule, "sound", "MacOSX" }, { &soundModule, "sound", "Sun" }, + { &soundModule, "sound", "pulse" }, { &soundModule, "sound", "ALSA" }, { &soundModule, "sound", "null" }, +#endif { 0, 0, 0 } }; From b0f9f55a2fafaf949e1270b30b95a1c23991c333 Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 5 Apr 2020 13:31:41 +0200 Subject: [PATCH 18/42] Set INSTALLDIR to sqcogspursunosht/usr for Solaris --- build.sunos32x86/squeak.cog.spur/build/mvm | 3 +-- build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm | 2 +- build.sunos64x64/squeak.cog.spur/build/mvm | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/build.sunos32x86/squeak.cog.spur/build/mvm b/build.sunos32x86/squeak.cog.spur/build/mvm index db0f8528f1..b2760ad82b 100755 --- a/build.sunos32x86/squeak.cog.spur/build/mvm +++ b/build.sunos32x86/squeak.cog.spur/build/mvm @@ -9,8 +9,7 @@ fi ;; esac # Spur VM with VM profiler and threaded heartbeat MAKE=/usr/bin/gmake -#INSTALLDIR=sqcogspursunosht -INSTALLDIR=squeak.cog.spur-sunos32x86 +INSTALLDIR=sqcogspursunosht/usr OPT="-O2 -DNDEBUG -DDEBUGVM=0" if [ $# -ge 1 ]; then diff --git a/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm b/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm index 853cc2ffbc..2fd333dca6 100755 --- a/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm +++ b/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm @@ -2,7 +2,7 @@ set -e # Spur VM with VM profiler and itimer heartbeat MAKE=/usr/bin/gmake -INSTALLDIR=squeak.cog.spur-timer-sunosamd64/usr +INSTALLDIR=sqcogspursunosht/usr # Some gcc versions create a broken VM using -O2 OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" diff --git a/build.sunos64x64/squeak.cog.spur/build/mvm b/build.sunos64x64/squeak.cog.spur/build/mvm index 63863d7713..436fbb3e84 100755 --- a/build.sunos64x64/squeak.cog.spur/build/mvm +++ b/build.sunos64x64/squeak.cog.spur/build/mvm @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e # Spur VM with VM profiler and threaded heartbeat -INSTALLDIR=squeak.cog.spur-sunosamd64/usr +INSTALLDIR=sqcogspursunosht/usr # Some gcc versions create a broken VM using -O2 OPT="-O2 -DNDEBUG -DDEBUGVM=0" MAKE=/usr/bin/gmake From 72b398c368c0ebc89df342ce144abd679c25d863 Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 5 Apr 2020 13:32:48 +0200 Subject: [PATCH 19/42] Set INSTALLDIR to sqcogspursunos for itimer build --- build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm b/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm index c2bce36bff..bbad5cfeda 100755 --- a/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm +++ b/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm @@ -1,9 +1,9 @@ #!/usr/bin/env bash set -e # Spur VM with VM profiler and itimer heartbeat -INSTALLDIR=sqcogspur64linux +INSTALLDIR=sqcogspursunos/usr # Some gcc versions create a broken VM using -O2 -OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" +OPT="-O2 -DNDEBUG -DDEBUGVM=0" if [ $# -ge 1 ]; then INSTALLDIR="$1"; shift From c41e56a15ca764197caaccb7113e14fac5c38a65 Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 5 Apr 2020 13:37:06 +0200 Subject: [PATCH 20/42] Add IPS package build info to 32bit build. --- build.sunos32x86/HowToBuild | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/build.sunos32x86/HowToBuild b/build.sunos32x86/HowToBuild index f628a289e4..142b6929e9 100644 --- a/build.sunos32x86/HowToBuild +++ b/build.sunos32x86/HowToBuild @@ -8,6 +8,7 @@ Contents: - Swapspace - C Compiler - GNU make + - IPS package Overview -------- @@ -22,7 +23,7 @@ To build, ./mvm or ./mvm INSTALLDIR This will build and install into INSTALLDIR. -The default value for INSTALLDIR is products/squeak.cog.spur-sunos32x86. +The default value for INSTALLDIR is products/sqcogspursunos[ht]/usr To run the vm, consider running the process in the RT (real-time) class. @@ -117,3 +118,28 @@ GNU Make For the Makefiles, pkg:/developer/build/gnu-make must be installed. +IPS Package +----------- + +To build an IPS package, the IPS manifest squeak5.p5m can be used + +1. Strip the executable if not already done + +$strip ./usr/lib/squeak/5.0-202003291930-solaris/squeak + +2. Create a repository for publisher 'squeak' + +$pkgrepo create -s myrepo +$pkgrepo -s myrepo set publisher/prefix=squeak + +3. Publish the executable in the repository + +$pkgrepo publish -d squeak.cog.spur-sunosamd64/ -s myrepo squeak5.p5m + +4. Verify and optionally create an archive + +$ pkgrepo -s myrepo list +$ pkgrecv -s myrepo -d squeak5.0.0-solaris11.3-amd64.p5p -a '*' + +The .p5p archive of the IPS package can be used to distribute the binaries. + From 7da251709cc2930abea6b2cb22e18df64449891f Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 5 Apr 2020 13:37:31 +0200 Subject: [PATCH 21/42] Fix INSTALLDIR doc --- build.sunos64x64/HowToBuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sunos64x64/HowToBuild b/build.sunos64x64/HowToBuild index a4b5ef5d67..6f1e265bc5 100644 --- a/build.sunos64x64/HowToBuild +++ b/build.sunos64x64/HowToBuild @@ -23,7 +23,7 @@ To build, ./mvm or ./mvm INSTALLDIR This will build and install into INSTALLDIR. -The default value for INSTALLDIR is products/squeak.cog.spur-sunosamd64/usr +The default value for INSTALLDIR is products/sqcogspursunos[ht]/usr To run the vm, consider running the process in the RT (real-time) class. From c52f271d673892507a3233ac102cefdcb12d13d5 Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 5 Apr 2020 14:06:53 +0200 Subject: [PATCH 22/42] Set INSTALLDIR to sqcogspur64sunos[ht] in 64 solaris --- build.sunos64x64/HowToBuild | 2 +- build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm | 2 +- build.sunos64x64/squeak.cog.spur/build/mvm | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build.sunos64x64/HowToBuild b/build.sunos64x64/HowToBuild index 6f1e265bc5..83c520e28e 100644 --- a/build.sunos64x64/HowToBuild +++ b/build.sunos64x64/HowToBuild @@ -23,7 +23,7 @@ To build, ./mvm or ./mvm INSTALLDIR This will build and install into INSTALLDIR. -The default value for INSTALLDIR is products/sqcogspursunos[ht]/usr +The default value for INSTALLDIR is products/sqcogspur64sunos[ht]/usr To run the vm, consider running the process in the RT (real-time) class. diff --git a/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm b/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm index 2fd333dca6..6bdff69cab 100755 --- a/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm +++ b/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm @@ -2,7 +2,7 @@ set -e # Spur VM with VM profiler and itimer heartbeat MAKE=/usr/bin/gmake -INSTALLDIR=sqcogspursunosht/usr +INSTALLDIR=sqcogspur64sunosht/usr # Some gcc versions create a broken VM using -O2 OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" diff --git a/build.sunos64x64/squeak.cog.spur/build/mvm b/build.sunos64x64/squeak.cog.spur/build/mvm index 436fbb3e84..04387d5719 100755 --- a/build.sunos64x64/squeak.cog.spur/build/mvm +++ b/build.sunos64x64/squeak.cog.spur/build/mvm @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e # Spur VM with VM profiler and threaded heartbeat -INSTALLDIR=sqcogspursunosht/usr +INSTALLDIR=sqcogspur64sunosht/usr # Some gcc versions create a broken VM using -O2 OPT="-O2 -DNDEBUG -DDEBUGVM=0" MAKE=/usr/bin/gmake @@ -26,6 +26,7 @@ test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp - test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak \ --with-vmversion=5.0 \ --disable-dynamicopenssl \ + --libdir=$INSTALLDIR/lib/amd64 --with-src=spur64src \ TARGET_ARCH="-m64" \ ac_cv_cflags_warn_all="" \ From eb11cadf4a88f4d2b8e9892dc48f76d4f7eb9d18 Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 5 Apr 2020 14:54:22 +0200 Subject: [PATCH 23/42] Remove --libdir option --- build.sunos64x64/squeak.cog.spur/build/mvm | 1 - 1 file changed, 1 deletion(-) diff --git a/build.sunos64x64/squeak.cog.spur/build/mvm b/build.sunos64x64/squeak.cog.spur/build/mvm index 04387d5719..e072a988ed 100755 --- a/build.sunos64x64/squeak.cog.spur/build/mvm +++ b/build.sunos64x64/squeak.cog.spur/build/mvm @@ -26,7 +26,6 @@ test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp - test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak \ --with-vmversion=5.0 \ --disable-dynamicopenssl \ - --libdir=$INSTALLDIR/lib/amd64 --with-src=spur64src \ TARGET_ARCH="-m64" \ ac_cv_cflags_warn_all="" \ From e6b4a74b29b9c3223acd2ba92af7a7f6ca845ec1 Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 5 Apr 2020 15:22:46 +0200 Subject: [PATCH 24/42] Refer to HowToBuild in 64bit instead of duplicating everything. --- build.sunos32x86/HowToBuild | 120 ++---------------------------------- 1 file changed, 4 insertions(+), 116 deletions(-) diff --git a/build.sunos32x86/HowToBuild b/build.sunos32x86/HowToBuild index 142b6929e9..9bf51b3163 100644 --- a/build.sunos32x86/HowToBuild +++ b/build.sunos32x86/HowToBuild @@ -4,11 +4,7 @@ How To Build On Solaris Contents: - Overview - - Real-Time - - Swapspace - - C Compiler - - GNU make - - IPS package + - 64 bit version Overview -------- @@ -30,116 +26,8 @@ To run the vm, consider running the process in the RT (real-time) class. For Solaris specific suggestions please contact me David Stes (stes@telenet.be), or the OpenSmalltalk team for general OpenSmalltalk issues. -Real-Time ---------- +64 bit version +-------------- -When running the squeak vm, after copying a Squeak .image and .change file, -and after copying the Squeak Smalltalk source file (SqueakV50.sources). - -bash-4.4$ bin/squeak Squeak6.0alpha-19547-32bit.image -pthread_setschedparam failed: Not owner - -Note that it is possible to suppress the "pthread_setschedparam" warning, -by running the squeak vm in the RT (real-time) class. - -One way would be to use priocntl -e and execute the squeak in the -c RT class. - -Or perhaps at the "authorization" (auths) level it could perhaps -be possible to have an entry in /etc/security/exec_attr.d for -an authorization that gives "proc_priocntl" to squeak. - -You must do this as "root". - -Another way is to change a "bash" shell to RT class, - -bash-4.4$ priocntl -d $$ -INTERACTIVE CLASS PROCESSES: - PID[/LWP] IAUPRILIM IAUPRI IAMODE - 4026 0 0 1 - -bash-4.4$ sudo priocntl -c RT -p 0 -s $$ - -bash-4.4$ priocntl -d $$ -REAL TIME PROCESSES: - PID[/LWP] RTPRI TQNTM TQSIG - 3966 0 1000 0 - -After changing the "bash" shell to the RT class, you can launch - -bash-4.4$ bin/squeak Squeak6.0alpha-19547-32bit.image - -It will inherit the RT class and the pthread_setschedparam warning is gone. - -Verify as follows the squeak threads (LWP light-weight processes) - -bash-4.4$ ps -eLo pid,pri,lwp,class,comm | grep squeak - 4029 100 1 RT bin/../lib/squeak/5.0-202003240214-solaris/squeak - 4029 101 2 RT bin/../lib/squeak/5.0-202003240214-solaris/squeak - -Note that one thread is running in priority 101 and another in priority 100. - -Swapspace ---------- - -Make sure there is sufficient free space in /tmp, mounted on swap in Solaris. -The C compiler may use a lot of space for temporary files under /tmp. - -For example (the example 8G is what I use) : - -$ df -h /tmp -Filesystem Size Used Available Capacity Mounted on -swap 8.2G 78M 8.1G 1% /tmp - -If required, increase the "volsize" of the rpool/swap volume : - -# zfs get volsize rpool/swap -NAME PROPERTY VALUE SOURCE -rpool/swap volsize 8G local - -The command to increase the size is: - -# zpool list rpool (check FREE space) -# zfs set volsize=8G rpool/swap - -This can be done online, but a reboot is not a bad idea after doing this. - -C Compiler ----------- - -As C compiler we use the Sun C compiler: - -$ /opt/developerstudio12.6/bin/cc -V -cc: Studio 12.6 Sun C 5.15 SunOS_i386 2017/05/30 - -This is the developer/developerstudio-126/cc (solarisstudio) package. - -GNU Make --------- - -For the Makefiles, pkg:/developer/build/gnu-make must be installed. - -IPS Package ------------ - -To build an IPS package, the IPS manifest squeak5.p5m can be used - -1. Strip the executable if not already done - -$strip ./usr/lib/squeak/5.0-202003291930-solaris/squeak - -2. Create a repository for publisher 'squeak' - -$pkgrepo create -s myrepo -$pkgrepo -s myrepo set publisher/prefix=squeak - -3. Publish the executable in the repository - -$pkgrepo publish -d squeak.cog.spur-sunosamd64/ -s myrepo squeak5.p5m - -4. Verify and optionally create an archive - -$ pkgrepo -s myrepo list -$ pkgrecv -s myrepo -d squeak5.0.0-solaris11.3-amd64.p5p -a '*' - -The .p5p archive of the IPS package can be used to distribute the binaries. +Also please see the "HowToBuild" document in the build.sunos64x64 directory. From 0cb64e768c940a93294a19734ececcd4781d2209 Mon Sep 17 00:00:00 2001 From: stes Date: Sun, 5 Apr 2020 18:52:37 +0200 Subject: [PATCH 25/42] Add script to build IPS package --- build.sunos64x64/HowToBuild | 20 ++- .../squeak.cog.spur/make-ips-pkg.sh | 84 +++++++++ build.sunos64x64/squeak.cog.spur/squeak.ips | 38 ++++ build.sunos64x64/squeak.cog.spur/squeak5.p5m | 162 ++++++++++++++---- .../{squeak5.p5m.res => squeak5.p5m.mog} | 2 +- 5 files changed, 269 insertions(+), 37 deletions(-) create mode 100755 build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh create mode 100755 build.sunos64x64/squeak.cog.spur/squeak.ips rename build.sunos64x64/squeak.cog.spur/{squeak5.p5m.res => squeak5.p5m.mog} (67%) diff --git a/build.sunos64x64/HowToBuild b/build.sunos64x64/HowToBuild index 83c520e28e..93feceae78 100644 --- a/build.sunos64x64/HowToBuild +++ b/build.sunos64x64/HowToBuild @@ -123,23 +123,35 @@ IPS Package To build an IPS package, the IPS manifest squeak5.p5m can be used -1. Strip the executable if not already done +1. We use 5.0 as the version number and append a IPS specific third digit. -$strip ./usr/lib/squeak/5.0-202003291930-solaris/squeak +So the number of the IPS packages is squeak5.0.0, squeak5.0.1 and so on. +The last digit is Solaris specific, for our IPS package. + +Also note that the Squeak V4 branch has its own package, squeak4. 2. Create a repository for publisher 'squeak' +The script 'make-ips-pkg.sh' can be used, or manually make a repo: + $pkgrepo create -s myrepo $pkgrepo -s myrepo set publisher/prefix=squeak 3. Publish the executable in the repository -$pkgrepo publish -d squeak.cog.spur-sunosamd64/ -s myrepo squeak5.p5m +It is possible to create a 64bit or 32bit specific package, +but we prefer to copy the 32bit and 64bit into one package : + +$pkgrepo publish -d reloc/ -s myrepo squeak5.p5m + +The script 'make-ips-pkg.sh' can be copied to the products/ directory for doing this. 4. Verify and optionally create an archive $ pkgrepo -s myrepo list -$ pkgrecv -s myrepo -d squeak5.0.0-solaris11.3-amd64.p5p -a '*' +$ pkgrecv -s myrepo -d squeak5.0.0-solaris11.3.p5p -a '*' +This is also done by the make-ips-pkg.sh script. +Note that this script bundles the 32bit and 64bit binaries into 1 (one) package. The .p5p archive of the IPS package can be used to distribute the binaries. diff --git a/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh b/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh new file mode 100755 index 0000000000..782770d82d --- /dev/null +++ b/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh @@ -0,0 +1,84 @@ +#!/bin/sh + +TARGET=squeak5.0.1-solaris11.3.p5p + +if [ -f $TARGET ] +then + echo "Please remove $TARGET." + exit 0 +fi + +if [ ! -f squeak.ips ] +then + echo "Please copy the squeak.ips script to this directory." + exit 0 +fi + +if [ ! -f squeak5.p5m.mog ] +then + echo "Please copy the squeak5.p5m.mog script to this directory." + exit 0 +fi + +# create a reloc directory with +if [ ! -d sqcogspursunosht ] +then + echo "Please run this script in the 'products' directory." + echo "Please build the 32bit binaries." + exit 0 +fi + +if [ ! -d sqcogspur64sunosht ] +then + echo "Please run this script in the 'products' directory." + echo "Please build the 64bit binaries." + exit 0 +fi + +if [ -d reloc ] +then + echo "Please remove the reloc directory." + exit 0 +fi + +if [ -d myrepo ] +then + echo "Please remove the myrepo directory." + exit 0 +fi + +mkdir reloc + +(cd sqcogspursunosht; find . | cpio -mdvp ../reloc) +(cd sqcogspur64sunosht; find . | cpio -mdvp ../reloc) + +# remove .a files (archives) from the build +# I don't understand why they are built +find reloc -name '*.a' -exec rm -f {} \; + +# remove squeak script +rm -f reloc/usr/squeak + +# now install our own IPS script for /usr/bin/squeak +# this script selects the 32bit or the 64bit vm +cp squeak.ips reloc/usr/bin/squeak + +# the following p5m manifest should be edited +pkgsend generate reloc > squeak5.p5m.1 + +# remove all directories - except those that are specific to squeak +# if we don't do this, our IPS package will conflict with other IPS pkgs +sed -e '/path=usr$/d' -e '/path=usr\/bin$/d' -e '/path=usr\/lib$/d' -e '/path=usr\/share$/d' -e '/path=usr\/share\/doc$/d' -e '/path=usr\/share\/man$/d' -e '/path=usr\/share\/man\/man1$/d' < squeak5.p5m.1 > squeak5.p5m.2 + +# "mogrify" the package +cat squeak5.p5m.mog squeak5.p5m.2 | pkgfmt > squeak5.p5m + +# publish +rm -rf myrepo +pkgrepo create -s myrepo +pkgrepo -s myrepo set publisher/prefix=squeak +pkgsend publish -s myrepo -d reloc squeak5.p5m + +# make a P5P archive file +pkgrecv -a -s myrepo -d $TARGET '*' + diff --git a/build.sunos64x64/squeak.cog.spur/squeak.ips b/build.sunos64x64/squeak.cog.spur/squeak.ips new file mode 100755 index 0000000000..972ca60411 --- /dev/null +++ b/build.sunos64x64/squeak.cog.spur/squeak.ips @@ -0,0 +1,38 @@ +#!/bin/sh + +# Every release of the IPS package will have its own /usr/lib/squeak dirs +# as the date (and time) of the compile is in the Squeak5 builds. +# +# Revision history +# 5.0.1 - initial version + +DBX= +TOP= +#TOP=./reloc +LIB32=$TOP/usr/lib/squeak/5.0-202004051137-solaris +LIB64=$TOP/usr/lib/squeak/5.0-202004051206-solaris + +if [ "${SQUEAK_PLUGINS-unset}" = unset ]; then + export SQUEAK_PLUGINS="$LIB32" +fi + +# +# the following code will be replaced by something +# that checks the Smalltalk image (perhaps via 'ckformat') +# and then exec the appropriate vm +# + +case $1 in + -dbx) + shift + DBX='dbx -C' + ;; + -64) + shift; + export SQUEAK_PLUGINS="$LIB64" + ;; + *) ;; +esac + +LD_LIBRARY_PATH="${SQUEAK_PLUGINS}:${LD_LIBRARY_PATH}" exec $DBX "$SQUEAK_PLUGINS/squeak" "$@" + diff --git a/build.sunos64x64/squeak.cog.spur/squeak5.p5m b/build.sunos64x64/squeak.cog.spur/squeak5.p5m index 9c6bb2ed85..917eac2c89 100644 --- a/build.sunos64x64/squeak.cog.spur/squeak5.p5m +++ b/build.sunos64x64/squeak.cog.spur/squeak5.p5m @@ -1,34 +1,132 @@ -set name=pkg.fmri value=pkg:/runtime/squeak5@5.3.1 -set name=pkg.description value="Squeak V5" +set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.1 set name=pkg.summary value="The Squeak V5 Smalltalk System" - -file usr/share/man/man1/inisqueak.1 group=bin mode=0644 owner=root path=usr/share/man/man1/inisqueak.1 +set name=pkg.description value="Squeak V5" +file usr/bin/squeak path=usr/bin/squeak owner=root group=bin mode=0755 +dir path=usr/lib/squeak owner=root group=bin mode=0755 +dir path=usr/lib/squeak/5.0-202004051137-solaris owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/B3DAcceleratorPlugin.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/B3DAcceleratorPlugin.so \ + owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/FileAttributesPlugin.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/FileAttributesPlugin.so \ + owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/ImmX11Plugin.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/ImmX11Plugin.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/LocalePlugin.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/LocalePlugin.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/Squeak3D.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/Squeak3D.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/SqueakFFIPrims.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/SqueakFFIPrims.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/SqueakSSL.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/SqueakSSL.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/UUIDPlugin.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/UUIDPlugin.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/UnicodePlugin.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/UnicodePlugin.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/UnixOSProcessPlugin.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/UnixOSProcessPlugin.so \ + owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/XDisplayControlPlugin.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/XDisplayControlPlugin.so \ + owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/squeak \ + path=usr/lib/squeak/5.0-202004051137-solaris/squeak owner=root group=bin \ + mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/vm-display-X11.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/vm-display-X11.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/vm-display-null.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/vm-display-null.so \ + owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/vm-sound-OSS.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/vm-sound-OSS.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/vm-sound-Sun.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/vm-sound-Sun.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/vm-sound-null.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/vm-sound-null.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051137-solaris/vm-sound-pulse.so \ + path=usr/lib/squeak/5.0-202004051137-solaris/vm-sound-pulse.so owner=root \ + group=bin mode=0755 +dir path=usr/lib/squeak/5.0-202004051206-solaris owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/B3DAcceleratorPlugin.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/B3DAcceleratorPlugin.so \ + owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/FileAttributesPlugin.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/FileAttributesPlugin.so \ + owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/ImmX11Plugin.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/ImmX11Plugin.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/LocalePlugin.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/LocalePlugin.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/Squeak3D.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/Squeak3D.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/SqueakFFIPrims.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/SqueakFFIPrims.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/SqueakSSL.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/SqueakSSL.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/UUIDPlugin.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/UUIDPlugin.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/UnicodePlugin.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/UnicodePlugin.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/UnixOSProcessPlugin.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/UnixOSProcessPlugin.so \ + owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/XDisplayControlPlugin.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/XDisplayControlPlugin.so \ + owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/squeak \ + path=usr/lib/squeak/5.0-202004051206-solaris/squeak owner=root group=bin \ + mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/vm-display-X11.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/vm-display-X11.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/vm-display-null.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/vm-display-null.so \ + owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/vm-sound-OSS.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/vm-sound-OSS.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/vm-sound-Sun.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/vm-sound-Sun.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/vm-sound-null.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/vm-sound-null.so owner=root \ + group=bin mode=0755 +file usr/lib/squeak/5.0-202004051206-solaris/vm-sound-pulse.so \ + path=usr/lib/squeak/5.0-202004051206-solaris/vm-sound-pulse.so owner=root \ + group=bin mode=0755 +dir path=usr/share/doc/squeak owner=root group=bin mode=0755 +file usr/share/doc/squeak/COPYING.gz path=usr/share/doc/squeak/COPYING.gz \ + owner=root group=bin mode=0644 +file usr/share/doc/squeak/COPYRIGHT.gz path=usr/share/doc/squeak/COPYRIGHT.gz \ + owner=root group=bin mode=0644 +file usr/share/doc/squeak/LICENSE.gz path=usr/share/doc/squeak/LICENSE.gz \ + owner=root group=bin mode=0644 +file usr/share/doc/squeak/README.Contributing.gz \ + path=usr/share/doc/squeak/README.Contributing.gz owner=root group=bin \ + mode=0644 +file usr/share/doc/squeak/README.Keyboard.gz \ + path=usr/share/doc/squeak/README.Keyboard.gz owner=root group=bin mode=0644 +file usr/share/doc/squeak/README.Sound.gz \ + path=usr/share/doc/squeak/README.Sound.gz owner=root group=bin mode=0644 +file usr/share/man/man1/inisqueak.1 path=usr/share/man/man1/inisqueak.1 \ + owner=root group=bin mode=0644 hardlink path=usr/share/man/man1/squeak.1 target=inisqueak.1 -dir group=bin mode=0755 owner=root path=usr/share/doc/squeak -file usr/share/doc/squeak/README.Sound.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/README.Sound.gz -file usr/share/doc/squeak/COPYING.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/COPYING.gz -file usr/share/doc/squeak/README.Keyboard.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/README.Keyboard.gz -file usr/share/doc/squeak/COPYRIGHT.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/COPYRIGHT.gz -file usr/share/doc/squeak/LICENSE.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/LICENSE.gz -file usr/share/doc/squeak/README.Contributing.gz group=bin mode=0644 owner=root path=usr/share/doc/squeak/README.Contributing.gz -file usr/bin/squeak group=bin mode=0755 owner=root path=usr/bin/squeak -dir group=bin mode=0755 owner=root path=usr/lib/squeak -dir group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris -file usr/lib/squeak/5.0-202004011604-solaris/FileAttributesPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/FileAttributesPlugin.so -file usr/lib/squeak/5.0-202004011604-solaris/XDisplayControlPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/XDisplayControlPlugin.so -file usr/lib/squeak/5.0-202004011604-solaris/vm-sound-OSS.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-sound-OSS.so -file usr/lib/squeak/5.0-202004011604-solaris/vm-display-X11.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-display-X11.so -file usr/lib/squeak/5.0-202004011604-solaris/squeak group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/squeak -file usr/lib/squeak/5.0-202004011604-solaris/vm-display-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-display-null.so -file usr/lib/squeak/5.0-202004011604-solaris/B3DAcceleratorPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/B3DAcceleratorPlugin.so -file usr/lib/squeak/5.0-202004011604-solaris/vm-sound-Sun.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-sound-Sun.so -file usr/lib/squeak/5.0-202004011604-solaris/SqueakSSL.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/SqueakSSL.so -file usr/lib/squeak/5.0-202004011604-solaris/vm-sound-pulse.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-sound-pulse.so -file usr/lib/squeak/5.0-202004011604-solaris/SqueakFFIPrims.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/SqueakFFIPrims.so -file usr/lib/squeak/5.0-202004011604-solaris/ImmX11Plugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/ImmX11Plugin.so -file usr/lib/squeak/5.0-202004011604-solaris/UnicodePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/UnicodePlugin.so -file usr/lib/squeak/5.0-202004011604-solaris/Squeak3D.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/Squeak3D.so -file usr/lib/squeak/5.0-202004011604-solaris/UnixOSProcessPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/UnixOSProcessPlugin.so -file usr/lib/squeak/5.0-202004011604-solaris/UUIDPlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/UUIDPlugin.so -file usr/lib/squeak/5.0-202004011604-solaris/vm-sound-null.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/vm-sound-null.so -file usr/lib/squeak/5.0-202004011604-solaris/LocalePlugin.so group=bin mode=0755 owner=root path=usr/lib/squeak/5.0-202004011604-solaris/LocalePlugin.so diff --git a/build.sunos64x64/squeak.cog.spur/squeak5.p5m.res b/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog similarity index 67% rename from build.sunos64x64/squeak.cog.spur/squeak5.p5m.res rename to build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog index a5070988dc..8f5ef3b874 100644 --- a/build.sunos64x64/squeak.cog.spur/squeak5.p5m.res +++ b/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog @@ -1,4 +1,4 @@ -set name=pkg.fmri value=pkg:/runtime/squeak5@5.3.1 +set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.1 set name=pkg.description value="Squeak V5" set name=pkg.summary value="The Squeak V5 Smalltalk System" From eb0cc51a7d82c32fc5d05ee4a4085d61832a3e7c Mon Sep 17 00:00:00 2001 From: stes Date: Thu, 9 Apr 2020 17:29:25 +0200 Subject: [PATCH 26/42] Set ac_cv_cflags_warn_all="-v" instead of "" --- build.sunos32x86/squeak.cog.spur/build/mvm | 2 +- build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm | 2 +- build.sunos64x64/squeak.cog.spur/build/mvm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sunos32x86/squeak.cog.spur/build/mvm b/build.sunos32x86/squeak.cog.spur/build/mvm index b2760ad82b..077e626124 100755 --- a/build.sunos32x86/squeak.cog.spur/build/mvm +++ b/build.sunos32x86/squeak.cog.spur/build/mvm @@ -30,7 +30,7 @@ test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak --disable-dynamicopenssl \ --with-src=spursrc \ TARGET_ARCH="-m32" \ - ac_cv_cflags_warn_all="" \ + ac_cv_cflags_warn_all="-v" \ CFLAGS="$OPT -DCOGMTVM=0" rm -f vm/sqUnixMain.o # nuke version info rm -rf ../../../products/$INSTALLDIR diff --git a/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm b/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm index 6bdff69cab..776885fe93 100755 --- a/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm +++ b/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm @@ -23,7 +23,7 @@ test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak --with-vmversion=5.0 \ --with-src=spur64src \ TARGET_ARCH="-m64" \ - ac_cv_cflags_warn_all="" \ + ac_cv_cflags_warn_all="-v" \ CFLAGS="$OPT -m64 -DCOGMTVM=0 -DITIMER_HEARTBEAT=1" rm -f vm/sqUnixMain.o # nuke version info rm -rf ../../../products/$INSTALLDIR diff --git a/build.sunos64x64/squeak.cog.spur/build/mvm b/build.sunos64x64/squeak.cog.spur/build/mvm index e072a988ed..d55bc679ce 100755 --- a/build.sunos64x64/squeak.cog.spur/build/mvm +++ b/build.sunos64x64/squeak.cog.spur/build/mvm @@ -28,7 +28,7 @@ test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak --disable-dynamicopenssl \ --with-src=spur64src \ TARGET_ARCH="-m64" \ - ac_cv_cflags_warn_all="" \ + ac_cv_cflags_warn_all="-v" \ CFLAGS="$CFLAGS" \ LIBS="$LIBS" \ LDFLAGS="$LDFLAGS" From 176f3359642922ef24876d5725a7e726ab8d2b0e Mon Sep 17 00:00:00 2001 From: stes Date: Fri, 10 Apr 2020 13:41:41 +0200 Subject: [PATCH 27/42] Copy 'ckformat' into Solaris IPS package so that VM32 can be used for 6521 image and VM64 can be used for 68021 images --- build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh b/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh index 782770d82d..ca26bdffaf 100755 --- a/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh +++ b/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh @@ -8,12 +8,18 @@ then exit 0 fi -if [ ! -f squeak.ips ] +if [ ! -x squeak.ips ] then echo "Please copy the squeak.ips script to this directory." exit 0 fi +if [ ! -x ckformat ] +then + echo "Please copy the ckformat executable to this directory." + exit 0 +fi + if [ ! -f squeak5.p5m.mog ] then echo "Please copy the squeak5.p5m.mog script to this directory." @@ -61,6 +67,7 @@ rm -f reloc/usr/squeak # now install our own IPS script for /usr/bin/squeak # this script selects the 32bit or the 64bit vm +cp ckformat reloc/usr/bin/ckformat cp squeak.ips reloc/usr/bin/squeak # the following p5m manifest should be edited From 1084d517c2ad5dd21993c62a18ac413668b3ddd8 Mon Sep 17 00:00:00 2001 From: stes Date: Fri, 10 Apr 2020 13:55:07 +0200 Subject: [PATCH 28/42] Add ckformat program to IPS manifest --- .../squeak.cog.spur/make-ips-pkg.sh | 2 +- build.sunos64x64/squeak.cog.spur/squeak.ips | 57 +++++-- build.sunos64x64/squeak.cog.spur/squeak5.p5m | 157 +++++++++--------- .../squeak.cog.spur/squeak5.p5m.mog | 2 +- 4 files changed, 127 insertions(+), 91 deletions(-) diff --git a/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh b/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh index ca26bdffaf..73e7b94478 100755 --- a/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh +++ b/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh @@ -1,6 +1,6 @@ #!/bin/sh -TARGET=squeak5.0.1-solaris11.3.p5p +TARGET=squeak5.0.2-solaris11.3.p5p if [ -f $TARGET ] then diff --git a/build.sunos64x64/squeak.cog.spur/squeak.ips b/build.sunos64x64/squeak.cog.spur/squeak.ips index 972ca60411..c3636ef6e1 100755 --- a/build.sunos64x64/squeak.cog.spur/squeak.ips +++ b/build.sunos64x64/squeak.cog.spur/squeak.ips @@ -1,19 +1,33 @@ #!/bin/sh - -# Every release of the IPS package will have its own /usr/lib/squeak dirs +# +# Loosely based on Ian Piumarta's SqueakV4 wrapper script +# this script also uses the 'ckformat' binary to check the Squeak image +# and then launches a 32bit or 64bit vm (based on ckformat) +# +# the ckformat program is generated by the Squeak class +# ImageFormat createCkFormatProgram (gen. in Squeak5.3-19431 currently) +# This class is available on SqueakMap or Monticello source.squeak.org +# maintained by David T. Lewis +# +# Every release of the Solaris IPS package (every build on Solaris) +# will have its own "/usr/lib/squeak" plugin directories # as the date (and time) of the compile is in the Squeak5 builds. +# The following revision history is therefore Solaris IPS specific # # Revision history # 5.0.1 - initial version +# 5.0.2 - add ckformat DBX= -TOP= -#TOP=./reloc -LIB32=$TOP/usr/lib/squeak/5.0-202004051137-solaris -LIB64=$TOP/usr/lib/squeak/5.0-202004051206-solaris +ROOT=/ +#ROOT=./reloc/ +LIB32=${ROOT}usr/lib/squeak/5.0-202004091529-solaris +LIB64=${ROOT}usr/lib/squeak/5.0-202004101141-solaris +CK=${ROOT}usr/bin/ckformat if [ "${SQUEAK_PLUGINS-unset}" = unset ]; then - export SQUEAK_PLUGINS="$LIB32" + SQUEAK_PLUGINS="$LIB32" + export SQUEAK_PLUGINS fi # @@ -22,17 +36,38 @@ fi # and then exec the appropriate vm # +while test "$#" -gt "0"; do case $1 in -dbx) - shift DBX='dbx -C' ;; -64) - shift; export SQUEAK_PLUGINS="$LIB64" ;; - *) ;; + --) break;; # pass to VM + *) if test ! "$image" -a \( -f "$1.image" -o -f "$1" \); then image="$1"; fi;; esac +shift +done + +# set the image + +if test -z "${image}"; then image="${SQUEAK_IMAGE}"; fi +if test -z "${image}"; then image="squeak"; fi +if test -f "${image}.image"; then image="${image}.image"; fi + +if test -x "${CK}" -a -f "${image}"; then + format=`"${CK}" "${image}"` + case "${format}" in + 6521) + export SQUEAK_PLUGINS="$LIB32";; + 68021) + export SQUEAK_PLUGINS="$LIB64";; + *) echo "Unknown Squeak image format ${format}";exit 0;; + esac +else + echo "No image found, run default VM with args" +fi -LD_LIBRARY_PATH="${SQUEAK_PLUGINS}:${LD_LIBRARY_PATH}" exec $DBX "$SQUEAK_PLUGINS/squeak" "$@" +LD_LIBRARY_PATH="${SQUEAK_PLUGINS}:${LD_LIBRARY_PATH}" exec $DBX "$SQUEAK_PLUGINS/squeak" $image diff --git a/build.sunos64x64/squeak.cog.spur/squeak5.p5m b/build.sunos64x64/squeak.cog.spur/squeak5.p5m index 917eac2c89..e2eb9e75bb 100644 --- a/build.sunos64x64/squeak.cog.spur/squeak5.p5m +++ b/build.sunos64x64/squeak.cog.spur/squeak5.p5m @@ -1,117 +1,118 @@ -set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.1 +set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.2 set name=pkg.summary value="The Squeak V5 Smalltalk System" set name=pkg.description value="Squeak V5" +file usr/bin/ckformat path=usr/bin/ckformat owner=root group=bin mode=0755 file usr/bin/squeak path=usr/bin/squeak owner=root group=bin mode=0755 dir path=usr/lib/squeak owner=root group=bin mode=0755 -dir path=usr/lib/squeak/5.0-202004051137-solaris owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/B3DAcceleratorPlugin.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/B3DAcceleratorPlugin.so \ +dir path=usr/lib/squeak/5.0-202004091529-solaris owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004091529-solaris/B3DAcceleratorPlugin.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/B3DAcceleratorPlugin.so \ owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/FileAttributesPlugin.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/FileAttributesPlugin.so \ +file usr/lib/squeak/5.0-202004091529-solaris/FileAttributesPlugin.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/FileAttributesPlugin.so \ owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/ImmX11Plugin.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/ImmX11Plugin.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/ImmX11Plugin.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/ImmX11Plugin.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/LocalePlugin.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/LocalePlugin.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/LocalePlugin.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/LocalePlugin.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/Squeak3D.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/Squeak3D.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/Squeak3D.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/Squeak3D.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/SqueakFFIPrims.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/SqueakFFIPrims.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/SqueakFFIPrims.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/SqueakFFIPrims.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/SqueakSSL.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/SqueakSSL.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/SqueakSSL.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/SqueakSSL.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/UUIDPlugin.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/UUIDPlugin.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/UUIDPlugin.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/UUIDPlugin.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/UnicodePlugin.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/UnicodePlugin.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/UnicodePlugin.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/UnicodePlugin.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/UnixOSProcessPlugin.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/UnixOSProcessPlugin.so \ +file usr/lib/squeak/5.0-202004091529-solaris/UnixOSProcessPlugin.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/UnixOSProcessPlugin.so \ owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/XDisplayControlPlugin.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/XDisplayControlPlugin.so \ +file usr/lib/squeak/5.0-202004091529-solaris/XDisplayControlPlugin.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/XDisplayControlPlugin.so \ owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/squeak \ - path=usr/lib/squeak/5.0-202004051137-solaris/squeak owner=root group=bin \ +file usr/lib/squeak/5.0-202004091529-solaris/squeak \ + path=usr/lib/squeak/5.0-202004091529-solaris/squeak owner=root group=bin \ mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/vm-display-X11.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/vm-display-X11.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/vm-display-X11.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/vm-display-X11.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/vm-display-null.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/vm-display-null.so \ +file usr/lib/squeak/5.0-202004091529-solaris/vm-display-null.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/vm-display-null.so \ owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/vm-sound-OSS.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/vm-sound-OSS.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/vm-sound-OSS.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/vm-sound-OSS.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/vm-sound-Sun.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/vm-sound-Sun.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/vm-sound-Sun.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/vm-sound-Sun.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/vm-sound-null.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/vm-sound-null.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/vm-sound-null.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/vm-sound-null.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051137-solaris/vm-sound-pulse.so \ - path=usr/lib/squeak/5.0-202004051137-solaris/vm-sound-pulse.so owner=root \ +file usr/lib/squeak/5.0-202004091529-solaris/vm-sound-pulse.so \ + path=usr/lib/squeak/5.0-202004091529-solaris/vm-sound-pulse.so owner=root \ group=bin mode=0755 -dir path=usr/lib/squeak/5.0-202004051206-solaris owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/B3DAcceleratorPlugin.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/B3DAcceleratorPlugin.so \ +dir path=usr/lib/squeak/5.0-202004101141-solaris owner=root group=bin mode=0755 +file usr/lib/squeak/5.0-202004101141-solaris/B3DAcceleratorPlugin.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/B3DAcceleratorPlugin.so \ owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/FileAttributesPlugin.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/FileAttributesPlugin.so \ +file usr/lib/squeak/5.0-202004101141-solaris/FileAttributesPlugin.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/FileAttributesPlugin.so \ owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/ImmX11Plugin.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/ImmX11Plugin.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/ImmX11Plugin.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/ImmX11Plugin.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/LocalePlugin.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/LocalePlugin.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/LocalePlugin.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/LocalePlugin.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/Squeak3D.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/Squeak3D.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/Squeak3D.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/Squeak3D.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/SqueakFFIPrims.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/SqueakFFIPrims.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/SqueakFFIPrims.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/SqueakFFIPrims.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/SqueakSSL.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/SqueakSSL.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/SqueakSSL.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/SqueakSSL.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/UUIDPlugin.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/UUIDPlugin.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/UUIDPlugin.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/UUIDPlugin.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/UnicodePlugin.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/UnicodePlugin.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/UnicodePlugin.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/UnicodePlugin.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/UnixOSProcessPlugin.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/UnixOSProcessPlugin.so \ +file usr/lib/squeak/5.0-202004101141-solaris/UnixOSProcessPlugin.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/UnixOSProcessPlugin.so \ owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/XDisplayControlPlugin.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/XDisplayControlPlugin.so \ +file usr/lib/squeak/5.0-202004101141-solaris/XDisplayControlPlugin.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/XDisplayControlPlugin.so \ owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/squeak \ - path=usr/lib/squeak/5.0-202004051206-solaris/squeak owner=root group=bin \ +file usr/lib/squeak/5.0-202004101141-solaris/squeak \ + path=usr/lib/squeak/5.0-202004101141-solaris/squeak owner=root group=bin \ mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/vm-display-X11.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/vm-display-X11.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/vm-display-X11.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/vm-display-X11.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/vm-display-null.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/vm-display-null.so \ +file usr/lib/squeak/5.0-202004101141-solaris/vm-display-null.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/vm-display-null.so \ owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/vm-sound-OSS.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/vm-sound-OSS.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/vm-sound-OSS.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/vm-sound-OSS.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/vm-sound-Sun.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/vm-sound-Sun.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/vm-sound-Sun.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/vm-sound-Sun.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/vm-sound-null.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/vm-sound-null.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/vm-sound-null.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/vm-sound-null.so owner=root \ group=bin mode=0755 -file usr/lib/squeak/5.0-202004051206-solaris/vm-sound-pulse.so \ - path=usr/lib/squeak/5.0-202004051206-solaris/vm-sound-pulse.so owner=root \ +file usr/lib/squeak/5.0-202004101141-solaris/vm-sound-pulse.so \ + path=usr/lib/squeak/5.0-202004101141-solaris/vm-sound-pulse.so owner=root \ group=bin mode=0755 dir path=usr/share/doc/squeak owner=root group=bin mode=0755 file usr/share/doc/squeak/COPYING.gz path=usr/share/doc/squeak/COPYING.gz \ @@ -127,6 +128,6 @@ file usr/share/doc/squeak/README.Keyboard.gz \ path=usr/share/doc/squeak/README.Keyboard.gz owner=root group=bin mode=0644 file usr/share/doc/squeak/README.Sound.gz \ path=usr/share/doc/squeak/README.Sound.gz owner=root group=bin mode=0644 -file usr/share/man/man1/inisqueak.1 path=usr/share/man/man1/inisqueak.1 \ - owner=root group=bin mode=0644 -hardlink path=usr/share/man/man1/squeak.1 target=inisqueak.1 +hardlink path=usr/share/man/man1/inisqueak.1 target=squeak.1 +file usr/share/man/man1/squeak.1 path=usr/share/man/man1/squeak.1 owner=root \ + group=bin mode=0644 diff --git a/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog b/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog index 8f5ef3b874..2214e711c1 100644 --- a/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog +++ b/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog @@ -1,4 +1,4 @@ -set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.1 +set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.2 set name=pkg.description value="Squeak V5" set name=pkg.summary value="The Squeak V5 Smalltalk System" From c21dac0c82e9ea4d3f30013aaa52a46d898d7f3c Mon Sep 17 00:00:00 2001 From: David Stes Date: Mon, 13 Apr 2020 11:33:00 +0200 Subject: [PATCH 29/42] Add reminder in HowToBuild on running scripts/updateSCCSVersions --- build.sunos32x86/HowToBuild | 1 + build.sunos64x64/HowToBuild | 1 + 2 files changed, 2 insertions(+) diff --git a/build.sunos32x86/HowToBuild b/build.sunos32x86/HowToBuild index 9bf51b3163..2cdbdc28bd 100644 --- a/build.sunos32x86/HowToBuild +++ b/build.sunos32x86/HowToBuild @@ -13,6 +13,7 @@ These are some notes on building the OpenSmalltalk VM on Oracle Solaris 11. To build, + scripts/updateSCCSVersions cd build.sunos32x86 cd squeak.cog.spur cd build diff --git a/build.sunos64x64/HowToBuild b/build.sunos64x64/HowToBuild index 93feceae78..120970b56f 100644 --- a/build.sunos64x64/HowToBuild +++ b/build.sunos64x64/HowToBuild @@ -17,6 +17,7 @@ These are some notes on building the OpenSmalltalk VM on Oracle Solaris 11. To build, + scripts/updateSCCSVersions cd build.sunosamd64 cd squeak.cog.spur cd build From 37aa3b65e6e3054a5cdb0ac4da7a137a7d894688 Mon Sep 17 00:00:00 2001 From: David Stes Date: Mon, 13 Apr 2020 12:16:57 +0200 Subject: [PATCH 30/42] Change __SUNPRO_C to __sun so compile also works with GCC --- platforms/unix/vm/include_ucontext.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platforms/unix/vm/include_ucontext.h b/platforms/unix/vm/include_ucontext.h index c1666f74b5..1c5449b602 100644 --- a/platforms/unix/vm/include_ucontext.h +++ b/platforms/unix/vm/include_ucontext.h @@ -36,9 +36,9 @@ # define _PC_IN_UCONTEXT uc_mcontext->__ss.__rip #elif __APPLE__ && __MACH__ && __x86_64__ # define _PC_IN_UCONTEXT uc_mcontext->ss.rip -#elif __SUNPRO_C && __amd64 +#elif __sun && __amd64 # define _PC_IN_UCONTEXT uc_mcontext.gregs[REG_RIP] -#elif __SUNPRO_C && __i386__ +#elif __sun && __i386__ # define _PC_IN_UCONTEXT uc_mcontext.gregs[EIP] #elif __linux__ && __i386__ # define _PC_IN_UCONTEXT uc_mcontext.gregs[REG_EIP] From 71696bc0814457609f2df63b7ab3bbad195e1fc8 Mon Sep 17 00:00:00 2001 From: David Stes Date: Mon, 13 Apr 2020 12:32:55 +0200 Subject: [PATCH 31/42] Replace __SUNPRO_C by __sun so that compile also works with GCC for Solaris --- build.sunos64x64/HowToBuild | 3 ++- platforms/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build.sunos64x64/HowToBuild b/build.sunos64x64/HowToBuild index 120970b56f..f7eea9a487 100644 --- a/build.sunos64x64/HowToBuild +++ b/build.sunos64x64/HowToBuild @@ -107,13 +107,14 @@ This can be done online, but a reboot is not a bad idea after doing this. C Compiler ---------- -As C compiler we use the Sun C compiler: +As C compiler we have used both the Sun C compiler and GCC for Solaris : $ /opt/developerstudio12.6/bin/cc -V cc: Studio 12.6 Sun C 5.15 SunOS_i386 2017/05/30 This is the developer/developerstudio-126/cc (solarisstudio) package. +Alternatively also works is GCC : the developer/gcc package. GNU Make -------- diff --git a/platforms/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c b/platforms/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c index 7205f8f7b5..c7320a6742 100644 --- a/platforms/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c +++ b/platforms/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c @@ -276,8 +276,8 @@ static double max_delay_frames = 0; /* ================================== UTILS */ -#ifdef __SUNPRO_C -/* MIN is not C stdlib - perhaps is defining it on Linux */ +#ifdef __sun +/* no MIN/MAX in C stdlib - perhaps is defining it on Linux */ static int MIN(int a,int b) { return (a Date: Mon, 13 Apr 2020 18:24:19 +0200 Subject: [PATCH 32/42] Change __SUNPRO_C to __sun for succesful build with gcc 7.3 and gcc 9.2 --- build.sunos64x64/HowToBuild | 5 ++++- platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build.sunos64x64/HowToBuild b/build.sunos64x64/HowToBuild index f7eea9a487..fb630612f6 100644 --- a/build.sunos64x64/HowToBuild +++ b/build.sunos64x64/HowToBuild @@ -114,7 +114,10 @@ cc: Studio 12.6 Sun C 5.15 SunOS_i386 2017/05/30 This is the developer/developerstudio-126/cc (solarisstudio) package. -Alternatively also works is GCC : the developer/gcc package. +You can also compile with GCC : install the developer/gcc package. +Currently we have succesfully built the VM with gcc 7.3 and gcc 9.2. + + GNU Make -------- diff --git a/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc b/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc index d944d283a5..d026e7bf78 100644 --- a/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc +++ b/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc @@ -11,7 +11,7 @@ #include -#ifdef __SUNPRO_C +#ifdef __sun /* MIN is not C stdlib - perhaps is defining it on Linux */ static int MIN(int a,int b) { return (a Date: Wed, 15 Apr 2020 15:41:09 +0200 Subject: [PATCH 33/42] Build Squeak Stack Spur in addition to Cog Spur on Solaris --- build.sunos32x86/squeak.stack.spur/build/mvm | 39 +++++++++++++++++++ .../squeak.stack.spur/plugins.ext | 13 +++++++ .../squeak.stack.spur/plugins.int | 38 ++++++++++++++++++ build.sunos64x64/HowToBuild | 2 +- .../squeak.cog.spur/make-ips-pkg.sh | 10 ++--- build.sunos64x64/squeak.cog.spur/squeak.ips | 3 +- .../squeak.cog.spur/squeak5.p5m.mog | 2 +- build.sunos64x64/squeak.stack.spur/build/mvm | 31 +++++++++++++++ .../squeak.stack.spur/plugins.ext | 13 +++++++ .../squeak.stack.spur/plugins.int | 38 ++++++++++++++++++ 10 files changed, 181 insertions(+), 8 deletions(-) create mode 100755 build.sunos32x86/squeak.stack.spur/build/mvm create mode 100644 build.sunos32x86/squeak.stack.spur/plugins.ext create mode 100644 build.sunos32x86/squeak.stack.spur/plugins.int create mode 100755 build.sunos64x64/squeak.stack.spur/build/mvm create mode 100644 build.sunos64x64/squeak.stack.spur/plugins.ext create mode 100644 build.sunos64x64/squeak.stack.spur/plugins.int diff --git a/build.sunos32x86/squeak.stack.spur/build/mvm b/build.sunos32x86/squeak.stack.spur/build/mvm new file mode 100755 index 0000000000..c0ba9afc3c --- /dev/null +++ b/build.sunos32x86/squeak.stack.spur/build/mvm @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -e +case "`uname -m`" in # ensure we see x86 as machine type +i86pc) ;; # we're good +*) if type i386 2>&1 >/dev/null; then + echo "Re-exec as x86" + exec i386 "$0" "$@" +fi ;; +esac +# Stack Spur VM with VM profiler and threaded heartbeat +INSTALLDIR=sqstkspursunosht +# Some gcc versions create a broken VM using -O2 +OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" + +if [ $# -ge 1 ]; then + INSTALLDIR="$1"; shift +fi +if ../../../scripts/checkSCCSversion ; then exit 1; fi +echo -n "clean? " +read a +case $a in +n|no|N|NO) echo "ok but this isn't safe!!";; +*) rm -f config.h; test -f Makefile && gmake reallyclean +esac +test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .) +test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) +test -f config.h || ../../../platforms/unix/config/configure \ + --with-vmversion=5.0 \ + --disable-dynamicopenssl \ + --with-src=spurstacksrc --disable-cogit \ + --without-vm-display-fbdev --without-npsqueak \ + TARGET_ARCH="-m32" \ + ac_cv_cflags_warn_all="-v" \ + CFLAGS="$OPT" +rm -f vm/sqUnixMain.o # nuke version info +rm -rf ../../../products/$INSTALLDIR +# prefer gmake install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR` +# but older linux readlinks lack the -f flag +gmake install-squeak install-doc install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG diff --git a/build.sunos32x86/squeak.stack.spur/plugins.ext b/build.sunos32x86/squeak.stack.spur/plugins.ext new file mode 100644 index 0000000000..2c80ce6a9f --- /dev/null +++ b/build.sunos32x86/squeak.stack.spur/plugins.ext @@ -0,0 +1,13 @@ +# Copied, perhaps edited, from ../../src/examplePlugins.ext +EXTERNAL_PLUGINS = \ +B3DAcceleratorPlugin \ +FileAttributesPlugin \ +Squeak3D \ +SqueakFFIPrims \ +SqueakSSL \ +LocalePlugin \ +UnicodePlugin \ +UnixOSProcessPlugin \ +UUIDPlugin \ +ImmX11Plugin \ +XDisplayControlPlugin diff --git a/build.sunos32x86/squeak.stack.spur/plugins.int b/build.sunos32x86/squeak.stack.spur/plugins.int new file mode 100644 index 0000000000..cfba6f7474 --- /dev/null +++ b/build.sunos32x86/squeak.stack.spur/plugins.int @@ -0,0 +1,38 @@ +# Copied, perhaps edited, from ../../src/examplePlugins.int +INTERNAL_PLUGINS = \ +ADPCMCodecPlugin \ +AioPlugin \ +AsynchFilePlugin \ +B2DPlugin \ +BitBltPlugin \ +BMPReadWriterPlugin \ +CroquetPlugin \ +HostWindowPlugin \ +ZipPlugin \ +DropPlugin \ +DSAPrims \ +FFTPlugin \ +FileCopyPlugin \ +FilePlugin \ +FloatArrayPlugin \ +FloatMathPlugin \ +IA32ABI \ +JoystickTabletPlugin \ +JPEGReaderPlugin \ +JPEGReadWriter2Plugin \ +Klatt \ +LargeIntegers \ +Matrix2x3Plugin \ +MIDIPlugin \ +MiscPrimitivePlugin \ +Mpeg3Plugin \ +RePlugin \ +SecurityPlugin \ +SerialPlugin \ +SocketPlugin \ +SoundCodecPrims \ +SoundGenerationPlugin \ +SoundPlugin \ +StarSqueakPlugin \ +SurfacePlugin \ +VMProfileLinuxSupportPlugin diff --git a/build.sunos64x64/HowToBuild b/build.sunos64x64/HowToBuild index fb630612f6..ea691a00e5 100644 --- a/build.sunos64x64/HowToBuild +++ b/build.sunos64x64/HowToBuild @@ -28,7 +28,7 @@ The default value for INSTALLDIR is products/sqcogspur64sunos[ht]/usr To run the vm, consider running the process in the RT (real-time) class. -For Solaris specific suggestions please contact me David Stes (stes@telenet.be), +For Solaris specific suggestions please contact me (David Stes) or the OpenSmalltalk team for general OpenSmalltalk issues. Real-Time diff --git a/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh b/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh index 73e7b94478..446c071bd6 100755 --- a/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh +++ b/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh @@ -1,6 +1,6 @@ #!/bin/sh -TARGET=squeak5.0.2-solaris11.3.p5p +TARGET=squeak5.0.3-solaris11.3.p5p if [ -f $TARGET ] then @@ -27,14 +27,14 @@ then fi # create a reloc directory with -if [ ! -d sqcogspursunosht ] +if [ ! -d sqstkspursunosht ] then echo "Please run this script in the 'products' directory." echo "Please build the 32bit binaries." exit 0 fi -if [ ! -d sqcogspur64sunosht ] +if [ ! -d sqstkspur64sunosht ] then echo "Please run this script in the 'products' directory." echo "Please build the 64bit binaries." @@ -55,8 +55,8 @@ fi mkdir reloc -(cd sqcogspursunosht; find . | cpio -mdvp ../reloc) -(cd sqcogspur64sunosht; find . | cpio -mdvp ../reloc) +(cd sqstkspursunosht; find . | cpio -mdvp ../reloc) +(cd sqstkspur64sunosht; find . | cpio -mdvp ../reloc) # remove .a files (archives) from the build # I don't understand why they are built diff --git a/build.sunos64x64/squeak.cog.spur/squeak.ips b/build.sunos64x64/squeak.cog.spur/squeak.ips index c3636ef6e1..032f5ae2c0 100755 --- a/build.sunos64x64/squeak.cog.spur/squeak.ips +++ b/build.sunos64x64/squeak.cog.spur/squeak.ips @@ -17,11 +17,12 @@ # Revision history # 5.0.1 - initial version # 5.0.2 - add ckformat +# 5.0.3 - build vm based on "Stack Spur" VM instead of "Cog Spur" DBX= ROOT=/ #ROOT=./reloc/ -LIB32=${ROOT}usr/lib/squeak/5.0-202004091529-solaris +LIB32=${ROOT}usr/lib/squeak/5.0-202004131624-solaris LIB64=${ROOT}usr/lib/squeak/5.0-202004101141-solaris CK=${ROOT}usr/bin/ckformat diff --git a/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog b/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog index 2214e711c1..05bcb82601 100644 --- a/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog +++ b/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog @@ -1,4 +1,4 @@ -set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.2 +set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.3 set name=pkg.description value="Squeak V5" set name=pkg.summary value="The Squeak V5 Smalltalk System" diff --git a/build.sunos64x64/squeak.stack.spur/build/mvm b/build.sunos64x64/squeak.stack.spur/build/mvm new file mode 100755 index 0000000000..d9166e0e8d --- /dev/null +++ b/build.sunos64x64/squeak.stack.spur/build/mvm @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +set -e +# Stack Spur VM with VM profiler and threaded heartbeat +INSTALLDIR=sqstkspur64sunosht/usr +OPT="-O2 -DNDEBUG -DDEBUGVM=0" + +if [ $# -ge 1 ]; then + INSTALLDIR="$1"; shift +fi +if ../../../scripts/checkSCCSversion ; then exit 1; fi +echo -n "clean? " +read a +case $a in +n|no|N|NO) echo "ok but this isn't safe!!";; +*) rm -f config.h; test -f Makefile && gmake reallyclean +esac +test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .) +test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) +test -f config.h || ../../../platforms/unix/config/configure \ + --with-vmversion=5.0 \ + --disable-dynamicopenssl \ + --with-src=spurstack64src --disable-cogit \ + --without-vm-display-fbdev --without-npsqueak \ + TARGET_ARCH="-m64" \ + ac_cv_cflags_warn_all="-v" \ + CFLAGS="$OPT" +rm -f vm/sqUnixMain.o # nuke version info +rm -rf ../../../products/$INSTALLDIR +# prefer gmake install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR` +# but older linux readlinks lack the -f flag +gmake install-squeak install-doc install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG diff --git a/build.sunos64x64/squeak.stack.spur/plugins.ext b/build.sunos64x64/squeak.stack.spur/plugins.ext new file mode 100644 index 0000000000..2c80ce6a9f --- /dev/null +++ b/build.sunos64x64/squeak.stack.spur/plugins.ext @@ -0,0 +1,13 @@ +# Copied, perhaps edited, from ../../src/examplePlugins.ext +EXTERNAL_PLUGINS = \ +B3DAcceleratorPlugin \ +FileAttributesPlugin \ +Squeak3D \ +SqueakFFIPrims \ +SqueakSSL \ +LocalePlugin \ +UnicodePlugin \ +UnixOSProcessPlugin \ +UUIDPlugin \ +ImmX11Plugin \ +XDisplayControlPlugin diff --git a/build.sunos64x64/squeak.stack.spur/plugins.int b/build.sunos64x64/squeak.stack.spur/plugins.int new file mode 100644 index 0000000000..cfba6f7474 --- /dev/null +++ b/build.sunos64x64/squeak.stack.spur/plugins.int @@ -0,0 +1,38 @@ +# Copied, perhaps edited, from ../../src/examplePlugins.int +INTERNAL_PLUGINS = \ +ADPCMCodecPlugin \ +AioPlugin \ +AsynchFilePlugin \ +B2DPlugin \ +BitBltPlugin \ +BMPReadWriterPlugin \ +CroquetPlugin \ +HostWindowPlugin \ +ZipPlugin \ +DropPlugin \ +DSAPrims \ +FFTPlugin \ +FileCopyPlugin \ +FilePlugin \ +FloatArrayPlugin \ +FloatMathPlugin \ +IA32ABI \ +JoystickTabletPlugin \ +JPEGReaderPlugin \ +JPEGReadWriter2Plugin \ +Klatt \ +LargeIntegers \ +Matrix2x3Plugin \ +MIDIPlugin \ +MiscPrimitivePlugin \ +Mpeg3Plugin \ +RePlugin \ +SecurityPlugin \ +SerialPlugin \ +SocketPlugin \ +SoundCodecPrims \ +SoundGenerationPlugin \ +SoundPlugin \ +StarSqueakPlugin \ +SurfacePlugin \ +VMProfileLinuxSupportPlugin From 375c5561b7bc862a96b06715338a523bc643e75f Mon Sep 17 00:00:00 2001 From: David Stes Date: Wed, 15 Apr 2020 16:03:57 +0200 Subject: [PATCH 34/42] set INSTALLDIR to sqstkspursunosht/usr --- build.sunos32x86/squeak.stack.spur/build/mvm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sunos32x86/squeak.stack.spur/build/mvm b/build.sunos32x86/squeak.stack.spur/build/mvm index c0ba9afc3c..183ecb34c0 100755 --- a/build.sunos32x86/squeak.stack.spur/build/mvm +++ b/build.sunos32x86/squeak.stack.spur/build/mvm @@ -8,7 +8,7 @@ i86pc) ;; # we're good fi ;; esac # Stack Spur VM with VM profiler and threaded heartbeat -INSTALLDIR=sqstkspursunosht +INSTALLDIR=sqstkspursunosht/usr # Some gcc versions create a broken VM using -O2 OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" From e41c324952e0199a2bffdec0ea4882d7f5552dd2 Mon Sep 17 00:00:00 2001 From: David Stes Date: Wed, 22 Apr 2020 15:01:31 +0200 Subject: [PATCH 35/42] Remove ac_cv_cflags_warn_all from mvm files for gcc build --- build.sunos32x86/squeak.cog.spur/build/mvm | 3 +-- build.sunos32x86/squeak.stack.spur/build/mvm | 3 +-- build.sunos64x64/HowToBuild | 11 +++-------- .../squeak.cog.spur/build.itimerheartbeat/mvm | 3 +-- build.sunos64x64/squeak.cog.spur/build/mvm | 3 +-- build.sunos64x64/squeak.stack.spur/build/mvm | 3 +-- 6 files changed, 8 insertions(+), 18 deletions(-) diff --git a/build.sunos32x86/squeak.cog.spur/build/mvm b/build.sunos32x86/squeak.cog.spur/build/mvm index 077e626124..ff8d36f663 100755 --- a/build.sunos32x86/squeak.cog.spur/build/mvm +++ b/build.sunos32x86/squeak.cog.spur/build/mvm @@ -10,7 +10,7 @@ esac # Spur VM with VM profiler and threaded heartbeat MAKE=/usr/bin/gmake INSTALLDIR=sqcogspursunosht/usr -OPT="-O2 -DNDEBUG -DDEBUGVM=0" +OPT="-DNDEBUG -DDEBUGVM=0" if [ $# -ge 1 ]; then INSTALLDIR="$1"; shift @@ -30,7 +30,6 @@ test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak --disable-dynamicopenssl \ --with-src=spursrc \ TARGET_ARCH="-m32" \ - ac_cv_cflags_warn_all="-v" \ CFLAGS="$OPT -DCOGMTVM=0" rm -f vm/sqUnixMain.o # nuke version info rm -rf ../../../products/$INSTALLDIR diff --git a/build.sunos32x86/squeak.stack.spur/build/mvm b/build.sunos32x86/squeak.stack.spur/build/mvm index 183ecb34c0..1515ed5aa0 100755 --- a/build.sunos32x86/squeak.stack.spur/build/mvm +++ b/build.sunos32x86/squeak.stack.spur/build/mvm @@ -10,7 +10,7 @@ esac # Stack Spur VM with VM profiler and threaded heartbeat INSTALLDIR=sqstkspursunosht/usr # Some gcc versions create a broken VM using -O2 -OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" +OPT="-DNDEBUG -DDEBUGVM=0" if [ $# -ge 1 ]; then INSTALLDIR="$1"; shift @@ -30,7 +30,6 @@ test -f config.h || ../../../platforms/unix/config/configure \ --with-src=spurstacksrc --disable-cogit \ --without-vm-display-fbdev --without-npsqueak \ TARGET_ARCH="-m32" \ - ac_cv_cflags_warn_all="-v" \ CFLAGS="$OPT" rm -f vm/sqUnixMain.o # nuke version info rm -rf ../../../products/$INSTALLDIR diff --git a/build.sunos64x64/HowToBuild b/build.sunos64x64/HowToBuild index ea691a00e5..41390dcfa1 100644 --- a/build.sunos64x64/HowToBuild +++ b/build.sunos64x64/HowToBuild @@ -107,17 +107,12 @@ This can be done online, but a reboot is not a bad idea after doing this. C Compiler ---------- -As C compiler we have used both the Sun C compiler and GCC for Solaris : +As C compiler we have used both the Sun C compiler and GCC for Solaris. -$ /opt/developerstudio12.6/bin/cc -V -cc: Studio 12.6 Sun C 5.15 SunOS_i386 2017/05/30 - -This is the developer/developerstudio-126/cc (solarisstudio) package. - -You can also compile with GCC : install the developer/gcc package. +Currently due to some GCC/Clang dependencies in the code, +it's best to compile with GCC : install the developer/gcc package. Currently we have succesfully built the VM with gcc 7.3 and gcc 9.2. - GNU Make -------- diff --git a/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm b/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm index 776885fe93..3a2b6c61e7 100755 --- a/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm +++ b/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm @@ -4,7 +4,7 @@ set -e MAKE=/usr/bin/gmake INSTALLDIR=sqcogspur64sunosht/usr # Some gcc versions create a broken VM using -O2 -OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" +OPT="-DNDEBUG -DDEBUGVM=0" if [ $# -ge 1 ]; then INSTALLDIR="$1"; shift @@ -23,7 +23,6 @@ test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak --with-vmversion=5.0 \ --with-src=spur64src \ TARGET_ARCH="-m64" \ - ac_cv_cflags_warn_all="-v" \ CFLAGS="$OPT -m64 -DCOGMTVM=0 -DITIMER_HEARTBEAT=1" rm -f vm/sqUnixMain.o # nuke version info rm -rf ../../../products/$INSTALLDIR diff --git a/build.sunos64x64/squeak.cog.spur/build/mvm b/build.sunos64x64/squeak.cog.spur/build/mvm index d55bc679ce..651181d370 100755 --- a/build.sunos64x64/squeak.cog.spur/build/mvm +++ b/build.sunos64x64/squeak.cog.spur/build/mvm @@ -3,7 +3,7 @@ set -e # Spur VM with VM profiler and threaded heartbeat INSTALLDIR=sqcogspur64sunosht/usr # Some gcc versions create a broken VM using -O2 -OPT="-O2 -DNDEBUG -DDEBUGVM=0" +OPT="-DNDEBUG -DDEBUGVM=0" MAKE=/usr/bin/gmake CFLAGS="$OPT -DCOGMTVM=0" @@ -28,7 +28,6 @@ test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak --disable-dynamicopenssl \ --with-src=spur64src \ TARGET_ARCH="-m64" \ - ac_cv_cflags_warn_all="-v" \ CFLAGS="$CFLAGS" \ LIBS="$LIBS" \ LDFLAGS="$LDFLAGS" diff --git a/build.sunos64x64/squeak.stack.spur/build/mvm b/build.sunos64x64/squeak.stack.spur/build/mvm index d9166e0e8d..d978a9ea14 100755 --- a/build.sunos64x64/squeak.stack.spur/build/mvm +++ b/build.sunos64x64/squeak.stack.spur/build/mvm @@ -2,7 +2,7 @@ set -e # Stack Spur VM with VM profiler and threaded heartbeat INSTALLDIR=sqstkspur64sunosht/usr -OPT="-O2 -DNDEBUG -DDEBUGVM=0" +OPT="-DNDEBUG -DDEBUGVM=0" if [ $# -ge 1 ]; then INSTALLDIR="$1"; shift @@ -22,7 +22,6 @@ test -f config.h || ../../../platforms/unix/config/configure \ --with-src=spurstack64src --disable-cogit \ --without-vm-display-fbdev --without-npsqueak \ TARGET_ARCH="-m64" \ - ac_cv_cflags_warn_all="-v" \ CFLAGS="$OPT" rm -f vm/sqUnixMain.o # nuke version info rm -rf ../../../products/$INSTALLDIR From 9c17b266db6bab1fd093137cfcda6f3ad8670547 Mon Sep 17 00:00:00 2001 From: David Stes Date: Wed, 22 Apr 2020 16:36:45 +0200 Subject: [PATCH 36/42] Add -g option for gcc build --- build.sunos32x86/squeak.cog.spur/build/mvm | 2 +- build.sunos32x86/squeak.stack.spur/build/mvm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sunos32x86/squeak.cog.spur/build/mvm b/build.sunos32x86/squeak.cog.spur/build/mvm index ff8d36f663..baa5774ab2 100755 --- a/build.sunos32x86/squeak.cog.spur/build/mvm +++ b/build.sunos32x86/squeak.cog.spur/build/mvm @@ -10,7 +10,7 @@ esac # Spur VM with VM profiler and threaded heartbeat MAKE=/usr/bin/gmake INSTALLDIR=sqcogspursunosht/usr -OPT="-DNDEBUG -DDEBUGVM=0" +OPT="-g -DNDEBUG -DDEBUGVM=0" if [ $# -ge 1 ]; then INSTALLDIR="$1"; shift diff --git a/build.sunos32x86/squeak.stack.spur/build/mvm b/build.sunos32x86/squeak.stack.spur/build/mvm index 1515ed5aa0..f5d4f6ce84 100755 --- a/build.sunos32x86/squeak.stack.spur/build/mvm +++ b/build.sunos32x86/squeak.stack.spur/build/mvm @@ -10,7 +10,7 @@ esac # Stack Spur VM with VM profiler and threaded heartbeat INSTALLDIR=sqstkspursunosht/usr # Some gcc versions create a broken VM using -O2 -OPT="-DNDEBUG -DDEBUGVM=0" +OPT="-g -DNDEBUG -DDEBUGVM=0" if [ $# -ge 1 ]; then INSTALLDIR="$1"; shift From 6d895c164282d503ae5699c8ea7a54aed03d3a82 Mon Sep 17 00:00:00 2001 From: David Stes Date: Wed, 22 Apr 2020 16:45:46 +0200 Subject: [PATCH 37/42] Update IPS package for 5.0.4 --- build.sunos64x64/squeak.cog.spur/build/mvm | 2 +- build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh | 2 +- build.sunos64x64/squeak.cog.spur/squeak.ips | 5 +++-- build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog | 2 +- build.sunos64x64/squeak.stack.spur/build/mvm | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/build.sunos64x64/squeak.cog.spur/build/mvm b/build.sunos64x64/squeak.cog.spur/build/mvm index 651181d370..7ca44b4886 100755 --- a/build.sunos64x64/squeak.cog.spur/build/mvm +++ b/build.sunos64x64/squeak.cog.spur/build/mvm @@ -3,7 +3,7 @@ set -e # Spur VM with VM profiler and threaded heartbeat INSTALLDIR=sqcogspur64sunosht/usr # Some gcc versions create a broken VM using -O2 -OPT="-DNDEBUG -DDEBUGVM=0" +OPT="-g -DNDEBUG -DDEBUGVM=0" MAKE=/usr/bin/gmake CFLAGS="$OPT -DCOGMTVM=0" diff --git a/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh b/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh index 446c071bd6..415777990b 100755 --- a/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh +++ b/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh @@ -1,6 +1,6 @@ #!/bin/sh -TARGET=squeak5.0.3-solaris11.3.p5p +TARGET=squeak5.0.4-solaris11.3.p5p if [ -f $TARGET ] then diff --git a/build.sunos64x64/squeak.cog.spur/squeak.ips b/build.sunos64x64/squeak.cog.spur/squeak.ips index 032f5ae2c0..3aeeca9629 100755 --- a/build.sunos64x64/squeak.cog.spur/squeak.ips +++ b/build.sunos64x64/squeak.cog.spur/squeak.ips @@ -18,12 +18,13 @@ # 5.0.1 - initial version # 5.0.2 - add ckformat # 5.0.3 - build vm based on "Stack Spur" VM instead of "Cog Spur" +# 5.0.4 - merge Cog master changes into Solaris version DBX= ROOT=/ #ROOT=./reloc/ -LIB32=${ROOT}usr/lib/squeak/5.0-202004131624-solaris -LIB64=${ROOT}usr/lib/squeak/5.0-202004101141-solaris +LIB32=${ROOT}usr/lib/squeak/5.0-202004221436-sunos +LIB64=${ROOT}usr/lib/squeak/ CK=${ROOT}usr/bin/ckformat if [ "${SQUEAK_PLUGINS-unset}" = unset ]; then diff --git a/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog b/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog index 05bcb82601..3b852df51b 100644 --- a/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog +++ b/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog @@ -1,4 +1,4 @@ -set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.3 +set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.4 set name=pkg.description value="Squeak V5" set name=pkg.summary value="The Squeak V5 Smalltalk System" diff --git a/build.sunos64x64/squeak.stack.spur/build/mvm b/build.sunos64x64/squeak.stack.spur/build/mvm index d978a9ea14..712ee4bf55 100755 --- a/build.sunos64x64/squeak.stack.spur/build/mvm +++ b/build.sunos64x64/squeak.stack.spur/build/mvm @@ -2,7 +2,7 @@ set -e # Stack Spur VM with VM profiler and threaded heartbeat INSTALLDIR=sqstkspur64sunosht/usr -OPT="-DNDEBUG -DDEBUGVM=0" +OPT="-g -DNDEBUG -DDEBUGVM=0" if [ $# -ge 1 ]; then INSTALLDIR="$1"; shift From 2eb0678b9cf622701521490a5799c2ca7162358a Mon Sep 17 00:00:00 2001 From: David Stes Date: Wed, 22 Apr 2020 16:53:22 +0200 Subject: [PATCH 38/42] Add build version 5.0-202004221445-sunos --- build.sunos64x64/squeak.cog.spur/squeak.ips | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sunos64x64/squeak.cog.spur/squeak.ips b/build.sunos64x64/squeak.cog.spur/squeak.ips index 3aeeca9629..f6a83dc6ee 100755 --- a/build.sunos64x64/squeak.cog.spur/squeak.ips +++ b/build.sunos64x64/squeak.cog.spur/squeak.ips @@ -24,7 +24,7 @@ DBX= ROOT=/ #ROOT=./reloc/ LIB32=${ROOT}usr/lib/squeak/5.0-202004221436-sunos -LIB64=${ROOT}usr/lib/squeak/ +LIB64=${ROOT}usr/lib/squeak/5.0-202004221445-sunos CK=${ROOT}usr/bin/ckformat if [ "${SQUEAK_PLUGINS-unset}" = unset ]; then From 8fc062aae77951036c2efecbd54a15bc087d3066 Mon Sep 17 00:00:00 2001 From: David Stes Date: Fri, 24 Apr 2020 09:32:52 +0200 Subject: [PATCH 39/42] Move build dirs for sunos to external solaris-squeak package --- build.sunos32x86/HowToBuild | 34 ---- build.sunos32x86/squeak.cog.spur/build/mvm | 38 ----- build.sunos32x86/squeak.cog.spur/plugins.ext | 16 -- build.sunos32x86/squeak.cog.spur/plugins.int | 38 ----- build.sunos32x86/squeak.stack.spur/build/mvm | 38 ----- .../squeak.stack.spur/plugins.ext | 13 -- .../squeak.stack.spur/plugins.int | 38 ----- build.sunos64x64/HowToBuild | 157 ------------------ .../squeak.cog.spur/build.itimerheartbeat/mvm | 31 ---- build.sunos64x64/squeak.cog.spur/build/mvm | 38 ----- .../squeak.cog.spur/make-ips-pkg.sh | 91 ---------- build.sunos64x64/squeak.cog.spur/plugins.ext | 16 -- build.sunos64x64/squeak.cog.spur/plugins.int | 38 ----- build.sunos64x64/squeak.cog.spur/squeak.ips | 75 --------- build.sunos64x64/squeak.cog.spur/squeak5.p5m | 133 --------------- .../squeak.cog.spur/squeak5.p5m.mog | 4 - build.sunos64x64/squeak.stack.spur/build/mvm | 30 ---- .../squeak.stack.spur/plugins.ext | 13 -- .../squeak.stack.spur/plugins.int | 38 ----- 19 files changed, 879 deletions(-) delete mode 100644 build.sunos32x86/HowToBuild delete mode 100755 build.sunos32x86/squeak.cog.spur/build/mvm delete mode 100644 build.sunos32x86/squeak.cog.spur/plugins.ext delete mode 100644 build.sunos32x86/squeak.cog.spur/plugins.int delete mode 100755 build.sunos32x86/squeak.stack.spur/build/mvm delete mode 100644 build.sunos32x86/squeak.stack.spur/plugins.ext delete mode 100644 build.sunos32x86/squeak.stack.spur/plugins.int delete mode 100644 build.sunos64x64/HowToBuild delete mode 100755 build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm delete mode 100755 build.sunos64x64/squeak.cog.spur/build/mvm delete mode 100755 build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh delete mode 100644 build.sunos64x64/squeak.cog.spur/plugins.ext delete mode 100644 build.sunos64x64/squeak.cog.spur/plugins.int delete mode 100755 build.sunos64x64/squeak.cog.spur/squeak.ips delete mode 100644 build.sunos64x64/squeak.cog.spur/squeak5.p5m delete mode 100644 build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog delete mode 100755 build.sunos64x64/squeak.stack.spur/build/mvm delete mode 100644 build.sunos64x64/squeak.stack.spur/plugins.ext delete mode 100644 build.sunos64x64/squeak.stack.spur/plugins.int diff --git a/build.sunos32x86/HowToBuild b/build.sunos32x86/HowToBuild deleted file mode 100644 index 2cdbdc28bd..0000000000 --- a/build.sunos32x86/HowToBuild +++ /dev/null @@ -1,34 +0,0 @@ - -How To Build On Solaris ------------------------ - -Contents: - - Overview - - 64 bit version - -Overview --------- - -These are some notes on building the OpenSmalltalk VM on Oracle Solaris 11. - -To build, - - scripts/updateSCCSVersions - cd build.sunos32x86 - cd squeak.cog.spur - cd build - ./mvm or ./mvm INSTALLDIR - -This will build and install into INSTALLDIR. -The default value for INSTALLDIR is products/sqcogspursunos[ht]/usr - -To run the vm, consider running the process in the RT (real-time) class. - -For Solaris specific suggestions please contact me David Stes (stes@telenet.be), -or the OpenSmalltalk team for general OpenSmalltalk issues. - -64 bit version --------------- - -Also please see the "HowToBuild" document in the build.sunos64x64 directory. - diff --git a/build.sunos32x86/squeak.cog.spur/build/mvm b/build.sunos32x86/squeak.cog.spur/build/mvm deleted file mode 100755 index baa5774ab2..0000000000 --- a/build.sunos32x86/squeak.cog.spur/build/mvm +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -set -e -case "`uname -m`" in # ensure we see x86 as machine type -i86pc) ;; # we're good -*) if type i386 2>&1 >/dev/null; then - echo "Re-exec as x86" - exec i386 "$0" "$@" -fi ;; -esac -# Spur VM with VM profiler and threaded heartbeat -MAKE=/usr/bin/gmake -INSTALLDIR=sqcogspursunosht/usr -OPT="-g -DNDEBUG -DDEBUGVM=0" - -if [ $# -ge 1 ]; then - INSTALLDIR="$1"; shift -fi - -if ../../../scripts/checkSCCSversion ; then exit 1; fi -echo -n "clean? " -read a -case $a in -n|no|N|NO) echo "ok but this isn't safe!!";; -*) test -f Makefile && $MAKE reallyclean -esac -test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .) -test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) -test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak \ - --with-vmversion=5.0 \ - --disable-dynamicopenssl \ - --with-src=spursrc \ - TARGET_ARCH="-m32" \ - CFLAGS="$OPT -DCOGMTVM=0" -rm -f vm/sqUnixMain.o # nuke version info -rm -rf ../../../products/$INSTALLDIR -# prefer $MAKE install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR` -# but older linux readlinks lack the -f flag -$MAKE install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG diff --git a/build.sunos32x86/squeak.cog.spur/plugins.ext b/build.sunos32x86/squeak.cog.spur/plugins.ext deleted file mode 100644 index 6bbf9953ce..0000000000 --- a/build.sunos32x86/squeak.cog.spur/plugins.ext +++ /dev/null @@ -1,16 +0,0 @@ -# Copied, perhaps edited, from ../../src/examplePlugins.ext -EXTERNAL_PLUGINS = \ -B3DAcceleratorPlugin \ -BochsIA32Plugin \ -BochsX64Plugin \ -GdbARMPlugin \ -FileAttributesPlugin \ -Squeak3D \ -SqueakFFIPrims \ -SqueakSSL \ -LocalePlugin \ -UnicodePlugin \ -UnixOSProcessPlugin \ -UUIDPlugin \ -ImmX11Plugin \ -XDisplayControlPlugin diff --git a/build.sunos32x86/squeak.cog.spur/plugins.int b/build.sunos32x86/squeak.cog.spur/plugins.int deleted file mode 100644 index cfba6f7474..0000000000 --- a/build.sunos32x86/squeak.cog.spur/plugins.int +++ /dev/null @@ -1,38 +0,0 @@ -# Copied, perhaps edited, from ../../src/examplePlugins.int -INTERNAL_PLUGINS = \ -ADPCMCodecPlugin \ -AioPlugin \ -AsynchFilePlugin \ -B2DPlugin \ -BitBltPlugin \ -BMPReadWriterPlugin \ -CroquetPlugin \ -HostWindowPlugin \ -ZipPlugin \ -DropPlugin \ -DSAPrims \ -FFTPlugin \ -FileCopyPlugin \ -FilePlugin \ -FloatArrayPlugin \ -FloatMathPlugin \ -IA32ABI \ -JoystickTabletPlugin \ -JPEGReaderPlugin \ -JPEGReadWriter2Plugin \ -Klatt \ -LargeIntegers \ -Matrix2x3Plugin \ -MIDIPlugin \ -MiscPrimitivePlugin \ -Mpeg3Plugin \ -RePlugin \ -SecurityPlugin \ -SerialPlugin \ -SocketPlugin \ -SoundCodecPrims \ -SoundGenerationPlugin \ -SoundPlugin \ -StarSqueakPlugin \ -SurfacePlugin \ -VMProfileLinuxSupportPlugin diff --git a/build.sunos32x86/squeak.stack.spur/build/mvm b/build.sunos32x86/squeak.stack.spur/build/mvm deleted file mode 100755 index f5d4f6ce84..0000000000 --- a/build.sunos32x86/squeak.stack.spur/build/mvm +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -set -e -case "`uname -m`" in # ensure we see x86 as machine type -i86pc) ;; # we're good -*) if type i386 2>&1 >/dev/null; then - echo "Re-exec as x86" - exec i386 "$0" "$@" -fi ;; -esac -# Stack Spur VM with VM profiler and threaded heartbeat -INSTALLDIR=sqstkspursunosht/usr -# Some gcc versions create a broken VM using -O2 -OPT="-g -DNDEBUG -DDEBUGVM=0" - -if [ $# -ge 1 ]; then - INSTALLDIR="$1"; shift -fi -if ../../../scripts/checkSCCSversion ; then exit 1; fi -echo -n "clean? " -read a -case $a in -n|no|N|NO) echo "ok but this isn't safe!!";; -*) rm -f config.h; test -f Makefile && gmake reallyclean -esac -test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .) -test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) -test -f config.h || ../../../platforms/unix/config/configure \ - --with-vmversion=5.0 \ - --disable-dynamicopenssl \ - --with-src=spurstacksrc --disable-cogit \ - --without-vm-display-fbdev --without-npsqueak \ - TARGET_ARCH="-m32" \ - CFLAGS="$OPT" -rm -f vm/sqUnixMain.o # nuke version info -rm -rf ../../../products/$INSTALLDIR -# prefer gmake install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR` -# but older linux readlinks lack the -f flag -gmake install-squeak install-doc install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG diff --git a/build.sunos32x86/squeak.stack.spur/plugins.ext b/build.sunos32x86/squeak.stack.spur/plugins.ext deleted file mode 100644 index 2c80ce6a9f..0000000000 --- a/build.sunos32x86/squeak.stack.spur/plugins.ext +++ /dev/null @@ -1,13 +0,0 @@ -# Copied, perhaps edited, from ../../src/examplePlugins.ext -EXTERNAL_PLUGINS = \ -B3DAcceleratorPlugin \ -FileAttributesPlugin \ -Squeak3D \ -SqueakFFIPrims \ -SqueakSSL \ -LocalePlugin \ -UnicodePlugin \ -UnixOSProcessPlugin \ -UUIDPlugin \ -ImmX11Plugin \ -XDisplayControlPlugin diff --git a/build.sunos32x86/squeak.stack.spur/plugins.int b/build.sunos32x86/squeak.stack.spur/plugins.int deleted file mode 100644 index cfba6f7474..0000000000 --- a/build.sunos32x86/squeak.stack.spur/plugins.int +++ /dev/null @@ -1,38 +0,0 @@ -# Copied, perhaps edited, from ../../src/examplePlugins.int -INTERNAL_PLUGINS = \ -ADPCMCodecPlugin \ -AioPlugin \ -AsynchFilePlugin \ -B2DPlugin \ -BitBltPlugin \ -BMPReadWriterPlugin \ -CroquetPlugin \ -HostWindowPlugin \ -ZipPlugin \ -DropPlugin \ -DSAPrims \ -FFTPlugin \ -FileCopyPlugin \ -FilePlugin \ -FloatArrayPlugin \ -FloatMathPlugin \ -IA32ABI \ -JoystickTabletPlugin \ -JPEGReaderPlugin \ -JPEGReadWriter2Plugin \ -Klatt \ -LargeIntegers \ -Matrix2x3Plugin \ -MIDIPlugin \ -MiscPrimitivePlugin \ -Mpeg3Plugin \ -RePlugin \ -SecurityPlugin \ -SerialPlugin \ -SocketPlugin \ -SoundCodecPrims \ -SoundGenerationPlugin \ -SoundPlugin \ -StarSqueakPlugin \ -SurfacePlugin \ -VMProfileLinuxSupportPlugin diff --git a/build.sunos64x64/HowToBuild b/build.sunos64x64/HowToBuild deleted file mode 100644 index 41390dcfa1..0000000000 --- a/build.sunos64x64/HowToBuild +++ /dev/null @@ -1,157 +0,0 @@ - -How To Build On Solaris ------------------------ - -Contents: - - Overview - - Real-Time - - Swapspace - - C Compiler - - GNU make - - IPS package - -Overview --------- - -These are some notes on building the OpenSmalltalk VM on Oracle Solaris 11. - -To build, - - scripts/updateSCCSVersions - cd build.sunosamd64 - cd squeak.cog.spur - cd build - ./mvm or ./mvm INSTALLDIR - -This will build and install into INSTALLDIR. -The default value for INSTALLDIR is products/sqcogspur64sunos[ht]/usr - -To run the vm, consider running the process in the RT (real-time) class. - -For Solaris specific suggestions please contact me (David Stes) -or the OpenSmalltalk team for general OpenSmalltalk issues. - -Real-Time ---------- - -When running the squeak vm, after copying a Squeak .image and .change file, -and after copying the Squeak Smalltalk source file (SqueakV50.sources). - -bash-4.4$ bin/squeak Squeak6.0alpha-19547-32bit.image -pthread_setschedparam failed: Not owner - -Note that it is possible to suppress the "pthread_setschedparam" warning, -by running the squeak vm in the RT (real-time) class. - -One way would be to use priocntl -e and execute the squeak in the -c RT class. - -Or perhaps at the "authorization" (auths) level it could perhaps -be possible to have an entry in /etc/security/exec_attr.d for -an authorization that gives "proc_priocntl" to squeak. - -You must do this as "root". - -Another way is to change a "bash" shell to RT class, - -bash-4.4$ priocntl -d $$ -INTERACTIVE CLASS PROCESSES: - PID[/LWP] IAUPRILIM IAUPRI IAMODE - 4026 0 0 1 - -bash-4.4$ sudo priocntl -c RT -p 0 -s $$ - -bash-4.4$ priocntl -d $$ -REAL TIME PROCESSES: - PID[/LWP] RTPRI TQNTM TQSIG - 3966 0 1000 0 - -After changing the "bash" shell to the RT class, you can launch - -bash-4.4$ bin/squeak Squeak6.0alpha-19547-32bit.image - -It will inherit the RT class and the pthread_setschedparam warning is gone. - -Verify as follows the squeak threads (LWP light-weight processes) - -bash-4.4$ ps -eLo pid,pri,lwp,class,comm | grep squeak - 4029 100 1 RT bin/../lib/squeak/5.0-202003240214-solaris/squeak - 4029 101 2 RT bin/../lib/squeak/5.0-202003240214-solaris/squeak - -Note that one thread is running in priority 101 and another in priority 100. - -Swapspace ---------- - -Make sure there is sufficient free space in /tmp, mounted on swap in Solaris. -The C compiler may use a lot of space for temporary files under /tmp. - -For example (the example 8G is what I use) : - -$ df -h /tmp -Filesystem Size Used Available Capacity Mounted on -swap 8.2G 78M 8.1G 1% /tmp - -If required, increase the "volsize" of the rpool/swap volume : - -# zfs get volsize rpool/swap -NAME PROPERTY VALUE SOURCE -rpool/swap volsize 8G local - -The command to increase the size is: - -# zpool list rpool (check FREE space) -# zfs set volsize=8G rpool/swap - -This can be done online, but a reboot is not a bad idea after doing this. - -C Compiler ----------- - -As C compiler we have used both the Sun C compiler and GCC for Solaris. - -Currently due to some GCC/Clang dependencies in the code, -it's best to compile with GCC : install the developer/gcc package. -Currently we have succesfully built the VM with gcc 7.3 and gcc 9.2. - -GNU Make --------- - -For the Makefiles, pkg:/developer/build/gnu-make must be installed. - -IPS Package ------------ - -To build an IPS package, the IPS manifest squeak5.p5m can be used - -1. We use 5.0 as the version number and append a IPS specific third digit. - -So the number of the IPS packages is squeak5.0.0, squeak5.0.1 and so on. -The last digit is Solaris specific, for our IPS package. - -Also note that the Squeak V4 branch has its own package, squeak4. - -2. Create a repository for publisher 'squeak' - -The script 'make-ips-pkg.sh' can be used, or manually make a repo: - -$pkgrepo create -s myrepo -$pkgrepo -s myrepo set publisher/prefix=squeak - -3. Publish the executable in the repository - -It is possible to create a 64bit or 32bit specific package, -but we prefer to copy the 32bit and 64bit into one package : - -$pkgrepo publish -d reloc/ -s myrepo squeak5.p5m - -The script 'make-ips-pkg.sh' can be copied to the products/ directory for doing this. - -4. Verify and optionally create an archive - -$ pkgrepo -s myrepo list -$ pkgrecv -s myrepo -d squeak5.0.0-solaris11.3.p5p -a '*' - -This is also done by the make-ips-pkg.sh script. -Note that this script bundles the 32bit and 64bit binaries into 1 (one) package. -The .p5p archive of the IPS package can be used to distribute the binaries. - diff --git a/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm b/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm deleted file mode 100755 index 3a2b6c61e7..0000000000 --- a/build.sunos64x64/squeak.cog.spur/build.itimerheartbeat/mvm +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash -set -e -# Spur VM with VM profiler and itimer heartbeat -MAKE=/usr/bin/gmake -INSTALLDIR=sqcogspur64sunosht/usr -# Some gcc versions create a broken VM using -O2 -OPT="-DNDEBUG -DDEBUGVM=0" - -if [ $# -ge 1 ]; then - INSTALLDIR="$1"; shift -fi - -if ../../../scripts/checkSCCSversion ; then exit 1; fi -echo -n "clean? " -read a -case $a in -n|no|N|NO) echo "ok but this isn't safe!!";; -*) test -f Makefile && $MAKE reallyclean -esac -test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .) -test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) -test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak \ - --with-vmversion=5.0 \ - --with-src=spur64src \ - TARGET_ARCH="-m64" \ - CFLAGS="$OPT -m64 -DCOGMTVM=0 -DITIMER_HEARTBEAT=1" -rm -f vm/sqUnixMain.o # nuke version info -rm -rf ../../../products/$INSTALLDIR -# prefer $MAKE install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR` -# but older linux readlinks lack the -f flag -$MAKE install-squeak install-doc install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG diff --git a/build.sunos64x64/squeak.cog.spur/build/mvm b/build.sunos64x64/squeak.cog.spur/build/mvm deleted file mode 100755 index 7ca44b4886..0000000000 --- a/build.sunos64x64/squeak.cog.spur/build/mvm +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -set -e -# Spur VM with VM profiler and threaded heartbeat -INSTALLDIR=sqcogspur64sunosht/usr -# Some gcc versions create a broken VM using -O2 -OPT="-g -DNDEBUG -DDEBUGVM=0" -MAKE=/usr/bin/gmake - -CFLAGS="$OPT -DCOGMTVM=0" -LIBS="" -LDFLAGS="" - -if [ $# -ge 1 ]; then - INSTALLDIR="$1"; shift -fi - -if ../../../scripts/checkSCCSversion ; then exit 1; fi -echo -n "clean? " -read a -case $a in -n|no|N|NO) echo "ok but this isn't safe!!";; -*) test -f Makefile && $MAKE reallyclean -esac -test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .) -test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) -test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak \ - --with-vmversion=5.0 \ - --disable-dynamicopenssl \ - --with-src=spur64src \ - TARGET_ARCH="-m64" \ - CFLAGS="$CFLAGS" \ - LIBS="$LIBS" \ - LDFLAGS="$LDFLAGS" -rm -f vm/sqUnixMain.o # nuke version info -rm -rf ../../../products/$INSTALLDIR -# prefer $MAKE install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR` -# but older linux readlinks lack the -f flag -$MAKE install-squeak install-doc install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG diff --git a/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh b/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh deleted file mode 100755 index 415777990b..0000000000 --- a/build.sunos64x64/squeak.cog.spur/make-ips-pkg.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/sh - -TARGET=squeak5.0.4-solaris11.3.p5p - -if [ -f $TARGET ] -then - echo "Please remove $TARGET." - exit 0 -fi - -if [ ! -x squeak.ips ] -then - echo "Please copy the squeak.ips script to this directory." - exit 0 -fi - -if [ ! -x ckformat ] -then - echo "Please copy the ckformat executable to this directory." - exit 0 -fi - -if [ ! -f squeak5.p5m.mog ] -then - echo "Please copy the squeak5.p5m.mog script to this directory." - exit 0 -fi - -# create a reloc directory with -if [ ! -d sqstkspursunosht ] -then - echo "Please run this script in the 'products' directory." - echo "Please build the 32bit binaries." - exit 0 -fi - -if [ ! -d sqstkspur64sunosht ] -then - echo "Please run this script in the 'products' directory." - echo "Please build the 64bit binaries." - exit 0 -fi - -if [ -d reloc ] -then - echo "Please remove the reloc directory." - exit 0 -fi - -if [ -d myrepo ] -then - echo "Please remove the myrepo directory." - exit 0 -fi - -mkdir reloc - -(cd sqstkspursunosht; find . | cpio -mdvp ../reloc) -(cd sqstkspur64sunosht; find . | cpio -mdvp ../reloc) - -# remove .a files (archives) from the build -# I don't understand why they are built -find reloc -name '*.a' -exec rm -f {} \; - -# remove squeak script -rm -f reloc/usr/squeak - -# now install our own IPS script for /usr/bin/squeak -# this script selects the 32bit or the 64bit vm -cp ckformat reloc/usr/bin/ckformat -cp squeak.ips reloc/usr/bin/squeak - -# the following p5m manifest should be edited -pkgsend generate reloc > squeak5.p5m.1 - -# remove all directories - except those that are specific to squeak -# if we don't do this, our IPS package will conflict with other IPS pkgs -sed -e '/path=usr$/d' -e '/path=usr\/bin$/d' -e '/path=usr\/lib$/d' -e '/path=usr\/share$/d' -e '/path=usr\/share\/doc$/d' -e '/path=usr\/share\/man$/d' -e '/path=usr\/share\/man\/man1$/d' < squeak5.p5m.1 > squeak5.p5m.2 - -# "mogrify" the package -cat squeak5.p5m.mog squeak5.p5m.2 | pkgfmt > squeak5.p5m - -# publish -rm -rf myrepo -pkgrepo create -s myrepo -pkgrepo -s myrepo set publisher/prefix=squeak -pkgsend publish -s myrepo -d reloc squeak5.p5m - -# make a P5P archive file -pkgrecv -a -s myrepo -d $TARGET '*' - diff --git a/build.sunos64x64/squeak.cog.spur/plugins.ext b/build.sunos64x64/squeak.cog.spur/plugins.ext deleted file mode 100644 index 6bbf9953ce..0000000000 --- a/build.sunos64x64/squeak.cog.spur/plugins.ext +++ /dev/null @@ -1,16 +0,0 @@ -# Copied, perhaps edited, from ../../src/examplePlugins.ext -EXTERNAL_PLUGINS = \ -B3DAcceleratorPlugin \ -BochsIA32Plugin \ -BochsX64Plugin \ -GdbARMPlugin \ -FileAttributesPlugin \ -Squeak3D \ -SqueakFFIPrims \ -SqueakSSL \ -LocalePlugin \ -UnicodePlugin \ -UnixOSProcessPlugin \ -UUIDPlugin \ -ImmX11Plugin \ -XDisplayControlPlugin diff --git a/build.sunos64x64/squeak.cog.spur/plugins.int b/build.sunos64x64/squeak.cog.spur/plugins.int deleted file mode 100644 index cfba6f7474..0000000000 --- a/build.sunos64x64/squeak.cog.spur/plugins.int +++ /dev/null @@ -1,38 +0,0 @@ -# Copied, perhaps edited, from ../../src/examplePlugins.int -INTERNAL_PLUGINS = \ -ADPCMCodecPlugin \ -AioPlugin \ -AsynchFilePlugin \ -B2DPlugin \ -BitBltPlugin \ -BMPReadWriterPlugin \ -CroquetPlugin \ -HostWindowPlugin \ -ZipPlugin \ -DropPlugin \ -DSAPrims \ -FFTPlugin \ -FileCopyPlugin \ -FilePlugin \ -FloatArrayPlugin \ -FloatMathPlugin \ -IA32ABI \ -JoystickTabletPlugin \ -JPEGReaderPlugin \ -JPEGReadWriter2Plugin \ -Klatt \ -LargeIntegers \ -Matrix2x3Plugin \ -MIDIPlugin \ -MiscPrimitivePlugin \ -Mpeg3Plugin \ -RePlugin \ -SecurityPlugin \ -SerialPlugin \ -SocketPlugin \ -SoundCodecPrims \ -SoundGenerationPlugin \ -SoundPlugin \ -StarSqueakPlugin \ -SurfacePlugin \ -VMProfileLinuxSupportPlugin diff --git a/build.sunos64x64/squeak.cog.spur/squeak.ips b/build.sunos64x64/squeak.cog.spur/squeak.ips deleted file mode 100755 index f6a83dc6ee..0000000000 --- a/build.sunos64x64/squeak.cog.spur/squeak.ips +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -# -# Loosely based on Ian Piumarta's SqueakV4 wrapper script -# this script also uses the 'ckformat' binary to check the Squeak image -# and then launches a 32bit or 64bit vm (based on ckformat) -# -# the ckformat program is generated by the Squeak class -# ImageFormat createCkFormatProgram (gen. in Squeak5.3-19431 currently) -# This class is available on SqueakMap or Monticello source.squeak.org -# maintained by David T. Lewis -# -# Every release of the Solaris IPS package (every build on Solaris) -# will have its own "/usr/lib/squeak" plugin directories -# as the date (and time) of the compile is in the Squeak5 builds. -# The following revision history is therefore Solaris IPS specific -# -# Revision history -# 5.0.1 - initial version -# 5.0.2 - add ckformat -# 5.0.3 - build vm based on "Stack Spur" VM instead of "Cog Spur" -# 5.0.4 - merge Cog master changes into Solaris version - -DBX= -ROOT=/ -#ROOT=./reloc/ -LIB32=${ROOT}usr/lib/squeak/5.0-202004221436-sunos -LIB64=${ROOT}usr/lib/squeak/5.0-202004221445-sunos -CK=${ROOT}usr/bin/ckformat - -if [ "${SQUEAK_PLUGINS-unset}" = unset ]; then - SQUEAK_PLUGINS="$LIB32" - export SQUEAK_PLUGINS -fi - -# -# the following code will be replaced by something -# that checks the Smalltalk image (perhaps via 'ckformat') -# and then exec the appropriate vm -# - -while test "$#" -gt "0"; do -case $1 in - -dbx) - DBX='dbx -C' - ;; - -64) - export SQUEAK_PLUGINS="$LIB64" - ;; - --) break;; # pass to VM - *) if test ! "$image" -a \( -f "$1.image" -o -f "$1" \); then image="$1"; fi;; -esac -shift -done - -# set the image - -if test -z "${image}"; then image="${SQUEAK_IMAGE}"; fi -if test -z "${image}"; then image="squeak"; fi -if test -f "${image}.image"; then image="${image}.image"; fi - -if test -x "${CK}" -a -f "${image}"; then - format=`"${CK}" "${image}"` - case "${format}" in - 6521) - export SQUEAK_PLUGINS="$LIB32";; - 68021) - export SQUEAK_PLUGINS="$LIB64";; - *) echo "Unknown Squeak image format ${format}";exit 0;; - esac -else - echo "No image found, run default VM with args" -fi - -LD_LIBRARY_PATH="${SQUEAK_PLUGINS}:${LD_LIBRARY_PATH}" exec $DBX "$SQUEAK_PLUGINS/squeak" $image - diff --git a/build.sunos64x64/squeak.cog.spur/squeak5.p5m b/build.sunos64x64/squeak.cog.spur/squeak5.p5m deleted file mode 100644 index e2eb9e75bb..0000000000 --- a/build.sunos64x64/squeak.cog.spur/squeak5.p5m +++ /dev/null @@ -1,133 +0,0 @@ -set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.2 -set name=pkg.summary value="The Squeak V5 Smalltalk System" -set name=pkg.description value="Squeak V5" -file usr/bin/ckformat path=usr/bin/ckformat owner=root group=bin mode=0755 -file usr/bin/squeak path=usr/bin/squeak owner=root group=bin mode=0755 -dir path=usr/lib/squeak owner=root group=bin mode=0755 -dir path=usr/lib/squeak/5.0-202004091529-solaris owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/B3DAcceleratorPlugin.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/B3DAcceleratorPlugin.so \ - owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/FileAttributesPlugin.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/FileAttributesPlugin.so \ - owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/ImmX11Plugin.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/ImmX11Plugin.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/LocalePlugin.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/LocalePlugin.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/Squeak3D.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/Squeak3D.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/SqueakFFIPrims.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/SqueakFFIPrims.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/SqueakSSL.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/SqueakSSL.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/UUIDPlugin.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/UUIDPlugin.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/UnicodePlugin.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/UnicodePlugin.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/UnixOSProcessPlugin.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/UnixOSProcessPlugin.so \ - owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/XDisplayControlPlugin.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/XDisplayControlPlugin.so \ - owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/squeak \ - path=usr/lib/squeak/5.0-202004091529-solaris/squeak owner=root group=bin \ - mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/vm-display-X11.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/vm-display-X11.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/vm-display-null.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/vm-display-null.so \ - owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/vm-sound-OSS.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/vm-sound-OSS.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/vm-sound-Sun.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/vm-sound-Sun.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/vm-sound-null.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/vm-sound-null.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004091529-solaris/vm-sound-pulse.so \ - path=usr/lib/squeak/5.0-202004091529-solaris/vm-sound-pulse.so owner=root \ - group=bin mode=0755 -dir path=usr/lib/squeak/5.0-202004101141-solaris owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/B3DAcceleratorPlugin.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/B3DAcceleratorPlugin.so \ - owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/FileAttributesPlugin.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/FileAttributesPlugin.so \ - owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/ImmX11Plugin.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/ImmX11Plugin.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/LocalePlugin.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/LocalePlugin.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/Squeak3D.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/Squeak3D.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/SqueakFFIPrims.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/SqueakFFIPrims.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/SqueakSSL.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/SqueakSSL.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/UUIDPlugin.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/UUIDPlugin.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/UnicodePlugin.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/UnicodePlugin.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/UnixOSProcessPlugin.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/UnixOSProcessPlugin.so \ - owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/XDisplayControlPlugin.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/XDisplayControlPlugin.so \ - owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/squeak \ - path=usr/lib/squeak/5.0-202004101141-solaris/squeak owner=root group=bin \ - mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/vm-display-X11.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/vm-display-X11.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/vm-display-null.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/vm-display-null.so \ - owner=root group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/vm-sound-OSS.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/vm-sound-OSS.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/vm-sound-Sun.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/vm-sound-Sun.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/vm-sound-null.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/vm-sound-null.so owner=root \ - group=bin mode=0755 -file usr/lib/squeak/5.0-202004101141-solaris/vm-sound-pulse.so \ - path=usr/lib/squeak/5.0-202004101141-solaris/vm-sound-pulse.so owner=root \ - group=bin mode=0755 -dir path=usr/share/doc/squeak owner=root group=bin mode=0755 -file usr/share/doc/squeak/COPYING.gz path=usr/share/doc/squeak/COPYING.gz \ - owner=root group=bin mode=0644 -file usr/share/doc/squeak/COPYRIGHT.gz path=usr/share/doc/squeak/COPYRIGHT.gz \ - owner=root group=bin mode=0644 -file usr/share/doc/squeak/LICENSE.gz path=usr/share/doc/squeak/LICENSE.gz \ - owner=root group=bin mode=0644 -file usr/share/doc/squeak/README.Contributing.gz \ - path=usr/share/doc/squeak/README.Contributing.gz owner=root group=bin \ - mode=0644 -file usr/share/doc/squeak/README.Keyboard.gz \ - path=usr/share/doc/squeak/README.Keyboard.gz owner=root group=bin mode=0644 -file usr/share/doc/squeak/README.Sound.gz \ - path=usr/share/doc/squeak/README.Sound.gz owner=root group=bin mode=0644 -hardlink path=usr/share/man/man1/inisqueak.1 target=squeak.1 -file usr/share/man/man1/squeak.1 path=usr/share/man/man1/squeak.1 owner=root \ - group=bin mode=0644 diff --git a/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog b/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog deleted file mode 100644 index 3b852df51b..0000000000 --- a/build.sunos64x64/squeak.cog.spur/squeak5.p5m.mog +++ /dev/null @@ -1,4 +0,0 @@ -set name=pkg.fmri value=pkg:/runtime/squeak5@5.0.4 -set name=pkg.description value="Squeak V5" -set name=pkg.summary value="The Squeak V5 Smalltalk System" - diff --git a/build.sunos64x64/squeak.stack.spur/build/mvm b/build.sunos64x64/squeak.stack.spur/build/mvm deleted file mode 100755 index 712ee4bf55..0000000000 --- a/build.sunos64x64/squeak.stack.spur/build/mvm +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash -set -e -# Stack Spur VM with VM profiler and threaded heartbeat -INSTALLDIR=sqstkspur64sunosht/usr -OPT="-g -DNDEBUG -DDEBUGVM=0" - -if [ $# -ge 1 ]; then - INSTALLDIR="$1"; shift -fi -if ../../../scripts/checkSCCSversion ; then exit 1; fi -echo -n "clean? " -read a -case $a in -n|no|N|NO) echo "ok but this isn't safe!!";; -*) rm -f config.h; test -f Makefile && gmake reallyclean -esac -test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .) -test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .) -test -f config.h || ../../../platforms/unix/config/configure \ - --with-vmversion=5.0 \ - --disable-dynamicopenssl \ - --with-src=spurstack64src --disable-cogit \ - --without-vm-display-fbdev --without-npsqueak \ - TARGET_ARCH="-m64" \ - CFLAGS="$OPT" -rm -f vm/sqUnixMain.o # nuke version info -rm -rf ../../../products/$INSTALLDIR -# prefer gmake install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR` -# but older linux readlinks lack the -f flag -gmake install-squeak install-doc install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG diff --git a/build.sunos64x64/squeak.stack.spur/plugins.ext b/build.sunos64x64/squeak.stack.spur/plugins.ext deleted file mode 100644 index 2c80ce6a9f..0000000000 --- a/build.sunos64x64/squeak.stack.spur/plugins.ext +++ /dev/null @@ -1,13 +0,0 @@ -# Copied, perhaps edited, from ../../src/examplePlugins.ext -EXTERNAL_PLUGINS = \ -B3DAcceleratorPlugin \ -FileAttributesPlugin \ -Squeak3D \ -SqueakFFIPrims \ -SqueakSSL \ -LocalePlugin \ -UnicodePlugin \ -UnixOSProcessPlugin \ -UUIDPlugin \ -ImmX11Plugin \ -XDisplayControlPlugin diff --git a/build.sunos64x64/squeak.stack.spur/plugins.int b/build.sunos64x64/squeak.stack.spur/plugins.int deleted file mode 100644 index cfba6f7474..0000000000 --- a/build.sunos64x64/squeak.stack.spur/plugins.int +++ /dev/null @@ -1,38 +0,0 @@ -# Copied, perhaps edited, from ../../src/examplePlugins.int -INTERNAL_PLUGINS = \ -ADPCMCodecPlugin \ -AioPlugin \ -AsynchFilePlugin \ -B2DPlugin \ -BitBltPlugin \ -BMPReadWriterPlugin \ -CroquetPlugin \ -HostWindowPlugin \ -ZipPlugin \ -DropPlugin \ -DSAPrims \ -FFTPlugin \ -FileCopyPlugin \ -FilePlugin \ -FloatArrayPlugin \ -FloatMathPlugin \ -IA32ABI \ -JoystickTabletPlugin \ -JPEGReaderPlugin \ -JPEGReadWriter2Plugin \ -Klatt \ -LargeIntegers \ -Matrix2x3Plugin \ -MIDIPlugin \ -MiscPrimitivePlugin \ -Mpeg3Plugin \ -RePlugin \ -SecurityPlugin \ -SerialPlugin \ -SocketPlugin \ -SoundCodecPrims \ -SoundGenerationPlugin \ -SoundPlugin \ -StarSqueakPlugin \ -SurfacePlugin \ -VMProfileLinuxSupportPlugin From 56905bf2b4cb194786d042f372353bfa93dbc8d8 Mon Sep 17 00:00:00 2001 From: David Stes Date: Sat, 25 Apr 2020 12:30:22 +0200 Subject: [PATCH 40/42] include in __sun case --- platforms/unix/vm/include_ucontext.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/platforms/unix/vm/include_ucontext.h b/platforms/unix/vm/include_ucontext.h index 1c5449b602..09e52ac4d6 100644 --- a/platforms/unix/vm/include_ucontext.h +++ b/platforms/unix/vm/include_ucontext.h @@ -19,6 +19,9 @@ #endif #ifdef __OpenBSD__ # include +#elif __sun +/* Single UNIX Specification (SUS), Version 2 specifies */ +# include #else # include #endif From b1481020ddc29d1519ae4a5715c0d04c7c877142 Mon Sep 17 00:00:00 2001 From: Eliot Miranda Date: Sat, 25 Apr 2020 13:42:40 -0700 Subject: [PATCH 41/42] Update mvm --- build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm b/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm index bbad5cfeda..a15f2cda56 100755 --- a/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm +++ b/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e # Spur VM with VM profiler and itimer heartbeat -INSTALLDIR=sqcogspursunos/usr +INSTALLDIR=sqcogspur64linux # Some gcc versions create a broken VM using -O2 OPT="-O2 -DNDEBUG -DDEBUGVM=0" From 39f043439b66bc35bfcc8e184cc7c67eb60966a3 Mon Sep 17 00:00:00 2001 From: Eliot Miranda Date: Sat, 25 Apr 2020 13:44:14 -0700 Subject: [PATCH 42/42] Update mvm --- build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm b/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm index a15f2cda56..c2bce36bff 100755 --- a/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm +++ b/build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm @@ -3,7 +3,7 @@ set -e # Spur VM with VM profiler and itimer heartbeat INSTALLDIR=sqcogspur64linux # Some gcc versions create a broken VM using -O2 -OPT="-O2 -DNDEBUG -DDEBUGVM=0" +OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" if [ $# -ge 1 ]; then INSTALLDIR="$1"; shift