From 1e8b54356ef61b3d0d6c0f6ed7b6a30593946bd9 Mon Sep 17 00:00:00 2001 From: pbella Date: Fri, 20 Aug 2021 21:53:48 -0400 Subject: [PATCH 1/3] Add build.linux32generic and build.linux64generic to support stack VM builds on non-x86/ARM architectures. The intent is to support architectures such as https://wiki.debian.org/SupportedArchitectures --- .../squeak.stack.spur/build/mvm | 31 +++++++++++++++ .../squeak.stack.spur/makeallclean | 15 ++++++++ .../squeak.stack.spur/makealldirty | 15 ++++++++ .../squeak.stack.spur/plugins.ext | 18 +++++++++ .../squeak.stack.spur/plugins.int | 38 +++++++++++++++++++ .../squeak.stack.spur/build/mvm | 31 +++++++++++++++ .../squeak.stack.spur/makeallclean | 15 ++++++++ .../squeak.stack.spur/makealldirty | 15 ++++++++ .../squeak.stack.spur/plugins.ext | 18 +++++++++ .../squeak.stack.spur/plugins.int | 38 +++++++++++++++++++ 10 files changed, 234 insertions(+) create mode 100755 build.linux32generic/squeak.stack.spur/build/mvm create mode 100755 build.linux32generic/squeak.stack.spur/makeallclean create mode 100755 build.linux32generic/squeak.stack.spur/makealldirty create mode 100644 build.linux32generic/squeak.stack.spur/plugins.ext create mode 100644 build.linux32generic/squeak.stack.spur/plugins.int create mode 100755 build.linux64generic/squeak.stack.spur/build/mvm create mode 100755 build.linux64generic/squeak.stack.spur/makeallclean create mode 100755 build.linux64generic/squeak.stack.spur/makealldirty create mode 100644 build.linux64generic/squeak.stack.spur/plugins.ext create mode 100644 build.linux64generic/squeak.stack.spur/plugins.int diff --git a/build.linux32generic/squeak.stack.spur/build/mvm b/build.linux32generic/squeak.stack.spur/build/mvm new file mode 100755 index 0000000000..660ea2607f --- /dev/null +++ b/build.linux32generic/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=sqstkspurlinuxht +# 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 && 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 \ + --with-vmversion=5.0 \ + --with-src=spurstacksrc --disable-cogit \ + --without-vm-display-fbdev --without-npsqueak \ + TARGET_ARCH="-m32" \ + CFLAGS="$OPT" \ + vm_variant=spur32 +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 ; test ${PIPESTATUS[0]} -eq 0 diff --git a/build.linux32generic/squeak.stack.spur/makeallclean b/build.linux32generic/squeak.stack.spur/makeallclean new file mode 100755 index 0000000000..a7cac6bd4e --- /dev/null +++ b/build.linux32generic/squeak.stack.spur/makeallclean @@ -0,0 +1,15 @@ +#!/bin/sh -e +trap 'exit 2' HUP INT PIPE TERM +if [ "$1" = -fork ]; then + shift + for d in `dirname $0`/build*; do + (cd ./$d + echo y | ./mvm "$@") & + done + wait +else + for d in `dirname $0`/build*; do + (cd ./$d + echo y | ./mvm "$@") + done +fi diff --git a/build.linux32generic/squeak.stack.spur/makealldirty b/build.linux32generic/squeak.stack.spur/makealldirty new file mode 100755 index 0000000000..11f39e8808 --- /dev/null +++ b/build.linux32generic/squeak.stack.spur/makealldirty @@ -0,0 +1,15 @@ +#!/bin/sh -e +trap 'exit 2' HUP INT PIPE TERM +if [ "$1" = -fork ]; then + shift + for d in `dirname $0`/build*; do + (cd ./$d + echo n | ./mvm "$@") & + done + wait +else + for d in `dirname $0`/build*; do + (cd ./$d + echo n | ./mvm "$@") + done +fi diff --git a/build.linux32generic/squeak.stack.spur/plugins.ext b/build.linux32generic/squeak.stack.spur/plugins.ext new file mode 100644 index 0000000000..ed34a89ac0 --- /dev/null +++ b/build.linux32generic/squeak.stack.spur/plugins.ext @@ -0,0 +1,18 @@ +# Copied, perhaps edited, from ../../src/examplePlugins.ext +EXTERNAL_PLUGINS = \ +MIDIPlugin \ +B3DAcceleratorPlugin \ +FileAttributesPlugin \ +Squeak3D \ +SqueakFFIPrims \ +SqueakSSL \ +LocalePlugin \ +UnicodePlugin \ +UnixOSProcessPlugin \ +UUIDPlugin \ +ImmX11Plugin \ +XDisplayControlPlugin \ +DESPlugin \ +MD5Plugin \ +SHA2Plugin \ +VectorEnginePlugin \ diff --git a/build.linux32generic/squeak.stack.spur/plugins.int b/build.linux32generic/squeak.stack.spur/plugins.int new file mode 100644 index 0000000000..d5fb9f6b77 --- /dev/null +++ b/build.linux32generic/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 \ +Float64ArrayPlugin \ +FloatArrayPlugin \ +FloatMathPlugin \ +IA32ABI \ +JoystickTabletPlugin \ +JPEGReaderPlugin \ +JPEGReadWriter2Plugin \ +Klatt \ +LargeIntegers \ +Matrix2x3Plugin \ +MiscPrimitivePlugin \ +Mpeg3Plugin \ +RePlugin \ +SecurityPlugin \ +SerialPlugin \ +SocketPlugin \ +SoundCodecPrims \ +SoundGenerationPlugin \ +SoundPlugin \ +StarSqueakPlugin \ +SurfacePlugin \ +VMProfileLinuxSupportPlugin diff --git a/build.linux64generic/squeak.stack.spur/build/mvm b/build.linux64generic/squeak.stack.spur/build/mvm new file mode 100755 index 0000000000..be06e4679e --- /dev/null +++ b/build.linux64generic/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=sqstkspur64linuxht +# Some gcc versions create a broken VM using -O2 +OPT="-g -O1 -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 && 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 \ + --with-vmversion=5.0 \ + --with-src=spurstack64src --disable-cogit \ + --without-vm-display-fbdev --without-npsqueak \ + TARGET_ARCH="-m64" \ + CFLAGS="$OPT" \ + vm_variant=spur64 +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 ; test ${PIPESTATUS[0]} -eq 0 diff --git a/build.linux64generic/squeak.stack.spur/makeallclean b/build.linux64generic/squeak.stack.spur/makeallclean new file mode 100755 index 0000000000..a7cac6bd4e --- /dev/null +++ b/build.linux64generic/squeak.stack.spur/makeallclean @@ -0,0 +1,15 @@ +#!/bin/sh -e +trap 'exit 2' HUP INT PIPE TERM +if [ "$1" = -fork ]; then + shift + for d in `dirname $0`/build*; do + (cd ./$d + echo y | ./mvm "$@") & + done + wait +else + for d in `dirname $0`/build*; do + (cd ./$d + echo y | ./mvm "$@") + done +fi diff --git a/build.linux64generic/squeak.stack.spur/makealldirty b/build.linux64generic/squeak.stack.spur/makealldirty new file mode 100755 index 0000000000..11f39e8808 --- /dev/null +++ b/build.linux64generic/squeak.stack.spur/makealldirty @@ -0,0 +1,15 @@ +#!/bin/sh -e +trap 'exit 2' HUP INT PIPE TERM +if [ "$1" = -fork ]; then + shift + for d in `dirname $0`/build*; do + (cd ./$d + echo n | ./mvm "$@") & + done + wait +else + for d in `dirname $0`/build*; do + (cd ./$d + echo n | ./mvm "$@") + done +fi diff --git a/build.linux64generic/squeak.stack.spur/plugins.ext b/build.linux64generic/squeak.stack.spur/plugins.ext new file mode 100644 index 0000000000..ed34a89ac0 --- /dev/null +++ b/build.linux64generic/squeak.stack.spur/plugins.ext @@ -0,0 +1,18 @@ +# Copied, perhaps edited, from ../../src/examplePlugins.ext +EXTERNAL_PLUGINS = \ +MIDIPlugin \ +B3DAcceleratorPlugin \ +FileAttributesPlugin \ +Squeak3D \ +SqueakFFIPrims \ +SqueakSSL \ +LocalePlugin \ +UnicodePlugin \ +UnixOSProcessPlugin \ +UUIDPlugin \ +ImmX11Plugin \ +XDisplayControlPlugin \ +DESPlugin \ +MD5Plugin \ +SHA2Plugin \ +VectorEnginePlugin \ diff --git a/build.linux64generic/squeak.stack.spur/plugins.int b/build.linux64generic/squeak.stack.spur/plugins.int new file mode 100644 index 0000000000..d5fb9f6b77 --- /dev/null +++ b/build.linux64generic/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 \ +Float64ArrayPlugin \ +FloatArrayPlugin \ +FloatMathPlugin \ +IA32ABI \ +JoystickTabletPlugin \ +JPEGReaderPlugin \ +JPEGReadWriter2Plugin \ +Klatt \ +LargeIntegers \ +Matrix2x3Plugin \ +MiscPrimitivePlugin \ +Mpeg3Plugin \ +RePlugin \ +SecurityPlugin \ +SerialPlugin \ +SocketPlugin \ +SoundCodecPrims \ +SoundGenerationPlugin \ +SoundPlugin \ +StarSqueakPlugin \ +SurfacePlugin \ +VMProfileLinuxSupportPlugin From 9b842da3925e631f821d160858e8c4dd6370f927 Mon Sep 17 00:00:00 2001 From: pbella Date: Fri, 27 Aug 2021 23:45:56 -0400 Subject: [PATCH 2/3] Revert "Add build.linux32generic and build.linux64generic to support stack VM builds on non-x86/ARM architectures." This reverts commit 1e8b54356ef61b3d0d6c0f6ed7b6a30593946bd9. --- .../squeak.stack.spur/build/mvm | 31 --------------- .../squeak.stack.spur/makeallclean | 15 -------- .../squeak.stack.spur/makealldirty | 15 -------- .../squeak.stack.spur/plugins.ext | 18 --------- .../squeak.stack.spur/plugins.int | 38 ------------------- .../squeak.stack.spur/build/mvm | 31 --------------- .../squeak.stack.spur/makeallclean | 15 -------- .../squeak.stack.spur/makealldirty | 15 -------- .../squeak.stack.spur/plugins.ext | 18 --------- .../squeak.stack.spur/plugins.int | 38 ------------------- 10 files changed, 234 deletions(-) delete mode 100755 build.linux32generic/squeak.stack.spur/build/mvm delete mode 100755 build.linux32generic/squeak.stack.spur/makeallclean delete mode 100755 build.linux32generic/squeak.stack.spur/makealldirty delete mode 100644 build.linux32generic/squeak.stack.spur/plugins.ext delete mode 100644 build.linux32generic/squeak.stack.spur/plugins.int delete mode 100755 build.linux64generic/squeak.stack.spur/build/mvm delete mode 100755 build.linux64generic/squeak.stack.spur/makeallclean delete mode 100755 build.linux64generic/squeak.stack.spur/makealldirty delete mode 100644 build.linux64generic/squeak.stack.spur/plugins.ext delete mode 100644 build.linux64generic/squeak.stack.spur/plugins.int diff --git a/build.linux32generic/squeak.stack.spur/build/mvm b/build.linux32generic/squeak.stack.spur/build/mvm deleted file mode 100755 index 660ea2607f..0000000000 --- a/build.linux32generic/squeak.stack.spur/build/mvm +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash -set -e -# Stack Spur VM with VM profiler and threaded heartbeat -INSTALLDIR=sqstkspurlinuxht -# 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 && 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 \ - --with-vmversion=5.0 \ - --with-src=spurstacksrc --disable-cogit \ - --without-vm-display-fbdev --without-npsqueak \ - TARGET_ARCH="-m32" \ - CFLAGS="$OPT" \ - vm_variant=spur32 -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 ; test ${PIPESTATUS[0]} -eq 0 diff --git a/build.linux32generic/squeak.stack.spur/makeallclean b/build.linux32generic/squeak.stack.spur/makeallclean deleted file mode 100755 index a7cac6bd4e..0000000000 --- a/build.linux32generic/squeak.stack.spur/makeallclean +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -e -trap 'exit 2' HUP INT PIPE TERM -if [ "$1" = -fork ]; then - shift - for d in `dirname $0`/build*; do - (cd ./$d - echo y | ./mvm "$@") & - done - wait -else - for d in `dirname $0`/build*; do - (cd ./$d - echo y | ./mvm "$@") - done -fi diff --git a/build.linux32generic/squeak.stack.spur/makealldirty b/build.linux32generic/squeak.stack.spur/makealldirty deleted file mode 100755 index 11f39e8808..0000000000 --- a/build.linux32generic/squeak.stack.spur/makealldirty +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -e -trap 'exit 2' HUP INT PIPE TERM -if [ "$1" = -fork ]; then - shift - for d in `dirname $0`/build*; do - (cd ./$d - echo n | ./mvm "$@") & - done - wait -else - for d in `dirname $0`/build*; do - (cd ./$d - echo n | ./mvm "$@") - done -fi diff --git a/build.linux32generic/squeak.stack.spur/plugins.ext b/build.linux32generic/squeak.stack.spur/plugins.ext deleted file mode 100644 index ed34a89ac0..0000000000 --- a/build.linux32generic/squeak.stack.spur/plugins.ext +++ /dev/null @@ -1,18 +0,0 @@ -# Copied, perhaps edited, from ../../src/examplePlugins.ext -EXTERNAL_PLUGINS = \ -MIDIPlugin \ -B3DAcceleratorPlugin \ -FileAttributesPlugin \ -Squeak3D \ -SqueakFFIPrims \ -SqueakSSL \ -LocalePlugin \ -UnicodePlugin \ -UnixOSProcessPlugin \ -UUIDPlugin \ -ImmX11Plugin \ -XDisplayControlPlugin \ -DESPlugin \ -MD5Plugin \ -SHA2Plugin \ -VectorEnginePlugin \ diff --git a/build.linux32generic/squeak.stack.spur/plugins.int b/build.linux32generic/squeak.stack.spur/plugins.int deleted file mode 100644 index d5fb9f6b77..0000000000 --- a/build.linux32generic/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 \ -Float64ArrayPlugin \ -FloatArrayPlugin \ -FloatMathPlugin \ -IA32ABI \ -JoystickTabletPlugin \ -JPEGReaderPlugin \ -JPEGReadWriter2Plugin \ -Klatt \ -LargeIntegers \ -Matrix2x3Plugin \ -MiscPrimitivePlugin \ -Mpeg3Plugin \ -RePlugin \ -SecurityPlugin \ -SerialPlugin \ -SocketPlugin \ -SoundCodecPrims \ -SoundGenerationPlugin \ -SoundPlugin \ -StarSqueakPlugin \ -SurfacePlugin \ -VMProfileLinuxSupportPlugin diff --git a/build.linux64generic/squeak.stack.spur/build/mvm b/build.linux64generic/squeak.stack.spur/build/mvm deleted file mode 100755 index be06e4679e..0000000000 --- a/build.linux64generic/squeak.stack.spur/build/mvm +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash -set -e -# Stack Spur VM with VM profiler and threaded heartbeat -INSTALLDIR=sqstkspur64linuxht -# Some gcc versions create a broken VM using -O2 -OPT="-g -O1 -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 && 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 \ - --with-vmversion=5.0 \ - --with-src=spurstack64src --disable-cogit \ - --without-vm-display-fbdev --without-npsqueak \ - TARGET_ARCH="-m64" \ - CFLAGS="$OPT" \ - vm_variant=spur64 -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 ; test ${PIPESTATUS[0]} -eq 0 diff --git a/build.linux64generic/squeak.stack.spur/makeallclean b/build.linux64generic/squeak.stack.spur/makeallclean deleted file mode 100755 index a7cac6bd4e..0000000000 --- a/build.linux64generic/squeak.stack.spur/makeallclean +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -e -trap 'exit 2' HUP INT PIPE TERM -if [ "$1" = -fork ]; then - shift - for d in `dirname $0`/build*; do - (cd ./$d - echo y | ./mvm "$@") & - done - wait -else - for d in `dirname $0`/build*; do - (cd ./$d - echo y | ./mvm "$@") - done -fi diff --git a/build.linux64generic/squeak.stack.spur/makealldirty b/build.linux64generic/squeak.stack.spur/makealldirty deleted file mode 100755 index 11f39e8808..0000000000 --- a/build.linux64generic/squeak.stack.spur/makealldirty +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -e -trap 'exit 2' HUP INT PIPE TERM -if [ "$1" = -fork ]; then - shift - for d in `dirname $0`/build*; do - (cd ./$d - echo n | ./mvm "$@") & - done - wait -else - for d in `dirname $0`/build*; do - (cd ./$d - echo n | ./mvm "$@") - done -fi diff --git a/build.linux64generic/squeak.stack.spur/plugins.ext b/build.linux64generic/squeak.stack.spur/plugins.ext deleted file mode 100644 index ed34a89ac0..0000000000 --- a/build.linux64generic/squeak.stack.spur/plugins.ext +++ /dev/null @@ -1,18 +0,0 @@ -# Copied, perhaps edited, from ../../src/examplePlugins.ext -EXTERNAL_PLUGINS = \ -MIDIPlugin \ -B3DAcceleratorPlugin \ -FileAttributesPlugin \ -Squeak3D \ -SqueakFFIPrims \ -SqueakSSL \ -LocalePlugin \ -UnicodePlugin \ -UnixOSProcessPlugin \ -UUIDPlugin \ -ImmX11Plugin \ -XDisplayControlPlugin \ -DESPlugin \ -MD5Plugin \ -SHA2Plugin \ -VectorEnginePlugin \ diff --git a/build.linux64generic/squeak.stack.spur/plugins.int b/build.linux64generic/squeak.stack.spur/plugins.int deleted file mode 100644 index d5fb9f6b77..0000000000 --- a/build.linux64generic/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 \ -Float64ArrayPlugin \ -FloatArrayPlugin \ -FloatMathPlugin \ -IA32ABI \ -JoystickTabletPlugin \ -JPEGReaderPlugin \ -JPEGReadWriter2Plugin \ -Klatt \ -LargeIntegers \ -Matrix2x3Plugin \ -MiscPrimitivePlugin \ -Mpeg3Plugin \ -RePlugin \ -SecurityPlugin \ -SerialPlugin \ -SocketPlugin \ -SoundCodecPrims \ -SoundGenerationPlugin \ -SoundPlugin \ -StarSqueakPlugin \ -SurfacePlugin \ -VMProfileLinuxSupportPlugin From de7a493adbd095471f2223f83182ce4806cef48d Mon Sep 17 00:00:00 2001 From: pbella Date: Wed, 1 Sep 2021 01:34:58 -0400 Subject: [PATCH 3/3] Add (reworked) linux32 and linux64 to support stack VM builds on non-x86/ARM architectures. Also includes related autoconf changes. --- building/linux32/squeak.stack.spur/build/mvm | 28 +++++ .../linux32/squeak.stack.spur/makeallclean | 15 +++ .../linux32/squeak.stack.spur/makealldirty | 15 +++ .../linux32/squeak.stack.spur/plugins.ext | 18 +++ .../linux32/squeak.stack.spur/plugins.int | 38 ++++++ building/linux64/squeak.stack.spur/build/mvm | 30 +++++ .../linux64/squeak.stack.spur/makeallclean | 15 +++ .../linux64/squeak.stack.spur/makealldirty | 15 +++ .../linux64/squeak.stack.spur/plugins.ext | 18 +++ .../linux64/squeak.stack.spur/plugins.int | 38 ++++++ platforms/unix/config/aclocal.m4 | 20 +-- platforms/unix/config/configure | 114 +++++++++++++++++- platforms/unix/config/configure.ac | 55 ++++++++- platforms/unix/config/ltmain.sh | 10 +- .../unix/plugins/UnicodePlugin/Makefile.inc | 2 +- .../unix/plugins/UnicodePlugin/acinclude.m4 | 2 +- 16 files changed, 413 insertions(+), 20 deletions(-) create mode 100755 building/linux32/squeak.stack.spur/build/mvm create mode 100755 building/linux32/squeak.stack.spur/makeallclean create mode 100755 building/linux32/squeak.stack.spur/makealldirty create mode 100644 building/linux32/squeak.stack.spur/plugins.ext create mode 100644 building/linux32/squeak.stack.spur/plugins.int create mode 100755 building/linux64/squeak.stack.spur/build/mvm create mode 100755 building/linux64/squeak.stack.spur/makeallclean create mode 100755 building/linux64/squeak.stack.spur/makealldirty create mode 100644 building/linux64/squeak.stack.spur/plugins.ext create mode 100644 building/linux64/squeak.stack.spur/plugins.int mode change 100644 => 100755 platforms/unix/config/ltmain.sh diff --git a/building/linux32/squeak.stack.spur/build/mvm b/building/linux32/squeak.stack.spur/build/mvm new file mode 100755 index 0000000000..bfc2ddbe88 --- /dev/null +++ b/building/linux32/squeak.stack.spur/build/mvm @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +set -e +# Stack Spur VM with VM profiler and threaded heartbeat +INSTALLDIR=sqstkspurlinuxht + +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 && 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 \ + --with-vmversion=5.0 \ + --with-src=src/spur32.stack --disable-cogit \ + --without-vm-display-fbdev --without-npsqueak \ + VM_WORD_SIZE="32" \ + VM_CFLAGS="-DNDEBUG -DDEBUGVM=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 ; test ${PIPESTATUS[0]} -eq 0 diff --git a/building/linux32/squeak.stack.spur/makeallclean b/building/linux32/squeak.stack.spur/makeallclean new file mode 100755 index 0000000000..a7cac6bd4e --- /dev/null +++ b/building/linux32/squeak.stack.spur/makeallclean @@ -0,0 +1,15 @@ +#!/bin/sh -e +trap 'exit 2' HUP INT PIPE TERM +if [ "$1" = -fork ]; then + shift + for d in `dirname $0`/build*; do + (cd ./$d + echo y | ./mvm "$@") & + done + wait +else + for d in `dirname $0`/build*; do + (cd ./$d + echo y | ./mvm "$@") + done +fi diff --git a/building/linux32/squeak.stack.spur/makealldirty b/building/linux32/squeak.stack.spur/makealldirty new file mode 100755 index 0000000000..11f39e8808 --- /dev/null +++ b/building/linux32/squeak.stack.spur/makealldirty @@ -0,0 +1,15 @@ +#!/bin/sh -e +trap 'exit 2' HUP INT PIPE TERM +if [ "$1" = -fork ]; then + shift + for d in `dirname $0`/build*; do + (cd ./$d + echo n | ./mvm "$@") & + done + wait +else + for d in `dirname $0`/build*; do + (cd ./$d + echo n | ./mvm "$@") + done +fi diff --git a/building/linux32/squeak.stack.spur/plugins.ext b/building/linux32/squeak.stack.spur/plugins.ext new file mode 100644 index 0000000000..29506a64ba --- /dev/null +++ b/building/linux32/squeak.stack.spur/plugins.ext @@ -0,0 +1,18 @@ +# Copied, perhaps edited, from ../../../src/examplePlugins.ext +EXTERNAL_PLUGINS = \ +MIDIPlugin \ +B3DAcceleratorPlugin \ +FileAttributesPlugin \ +Squeak3D \ +SqueakFFIPrims \ +SqueakSSL \ +LocalePlugin \ +UnicodePlugin \ +UnixOSProcessPlugin \ +UUIDPlugin \ +ImmX11Plugin \ +XDisplayControlPlugin \ +DESPlugin \ +MD5Plugin \ +SHA2Plugin \ +VectorEnginePlugin \ diff --git a/building/linux32/squeak.stack.spur/plugins.int b/building/linux32/squeak.stack.spur/plugins.int new file mode 100644 index 0000000000..d252bcd460 --- /dev/null +++ b/building/linux32/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 \ +Float64ArrayPlugin \ +FloatArrayPlugin \ +FloatMathPlugin \ +IA32ABI \ +JoystickTabletPlugin \ +JPEGReaderPlugin \ +JPEGReadWriter2Plugin \ +Klatt \ +LargeIntegers \ +Matrix2x3Plugin \ +MiscPrimitivePlugin \ +Mpeg3Plugin \ +RePlugin \ +SecurityPlugin \ +SerialPlugin \ +SocketPlugin \ +SoundCodecPrims \ +SoundGenerationPlugin \ +SoundPlugin \ +StarSqueakPlugin \ +SurfacePlugin \ +VMProfileLinuxSupportPlugin diff --git a/building/linux64/squeak.stack.spur/build/mvm b/building/linux64/squeak.stack.spur/build/mvm new file mode 100755 index 0000000000..2efadbd8e4 --- /dev/null +++ b/building/linux64/squeak.stack.spur/build/mvm @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +set -e +# Stack Spur VM with VM profiler and threaded heartbeat +INSTALLDIR=sqstkspur64linuxht + +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 && 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 \ + --with-vmversion=5.0 \ + --with-src=src/spur64.stack --disable-cogit \ + --without-vm-display-fbdev --without-npsqueak \ + TARGET_ARCH="-m64" \ + CC=clang \ + VM_WORD_SIZE="64" \ + VM_CFLAGS="-DNDEBUG -DDEBUGVM=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 ; test ${PIPESTATUS[0]} -eq 0 diff --git a/building/linux64/squeak.stack.spur/makeallclean b/building/linux64/squeak.stack.spur/makeallclean new file mode 100755 index 0000000000..a7cac6bd4e --- /dev/null +++ b/building/linux64/squeak.stack.spur/makeallclean @@ -0,0 +1,15 @@ +#!/bin/sh -e +trap 'exit 2' HUP INT PIPE TERM +if [ "$1" = -fork ]; then + shift + for d in `dirname $0`/build*; do + (cd ./$d + echo y | ./mvm "$@") & + done + wait +else + for d in `dirname $0`/build*; do + (cd ./$d + echo y | ./mvm "$@") + done +fi diff --git a/building/linux64/squeak.stack.spur/makealldirty b/building/linux64/squeak.stack.spur/makealldirty new file mode 100755 index 0000000000..11f39e8808 --- /dev/null +++ b/building/linux64/squeak.stack.spur/makealldirty @@ -0,0 +1,15 @@ +#!/bin/sh -e +trap 'exit 2' HUP INT PIPE TERM +if [ "$1" = -fork ]; then + shift + for d in `dirname $0`/build*; do + (cd ./$d + echo n | ./mvm "$@") & + done + wait +else + for d in `dirname $0`/build*; do + (cd ./$d + echo n | ./mvm "$@") + done +fi diff --git a/building/linux64/squeak.stack.spur/plugins.ext b/building/linux64/squeak.stack.spur/plugins.ext new file mode 100644 index 0000000000..29506a64ba --- /dev/null +++ b/building/linux64/squeak.stack.spur/plugins.ext @@ -0,0 +1,18 @@ +# Copied, perhaps edited, from ../../../src/examplePlugins.ext +EXTERNAL_PLUGINS = \ +MIDIPlugin \ +B3DAcceleratorPlugin \ +FileAttributesPlugin \ +Squeak3D \ +SqueakFFIPrims \ +SqueakSSL \ +LocalePlugin \ +UnicodePlugin \ +UnixOSProcessPlugin \ +UUIDPlugin \ +ImmX11Plugin \ +XDisplayControlPlugin \ +DESPlugin \ +MD5Plugin \ +SHA2Plugin \ +VectorEnginePlugin \ diff --git a/building/linux64/squeak.stack.spur/plugins.int b/building/linux64/squeak.stack.spur/plugins.int new file mode 100644 index 0000000000..d252bcd460 --- /dev/null +++ b/building/linux64/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 \ +Float64ArrayPlugin \ +FloatArrayPlugin \ +FloatMathPlugin \ +IA32ABI \ +JoystickTabletPlugin \ +JPEGReaderPlugin \ +JPEGReadWriter2Plugin \ +Klatt \ +LargeIntegers \ +Matrix2x3Plugin \ +MiscPrimitivePlugin \ +Mpeg3Plugin \ +RePlugin \ +SecurityPlugin \ +SerialPlugin \ +SocketPlugin \ +SoundCodecPrims \ +SoundGenerationPlugin \ +SoundPlugin \ +StarSqueakPlugin \ +SurfacePlugin \ +VMProfileLinuxSupportPlugin diff --git a/platforms/unix/config/aclocal.m4 b/platforms/unix/config/aclocal.m4 index bceabd7292..b1a79c7e7c 100644 --- a/platforms/unix/config/aclocal.m4 +++ b/platforms/unix/config/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.3 -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1047,8 +1047,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF @@ -1077,11 +1077,11 @@ _LT_EOF # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + 10.0,*86*-darwin8*|10.0,*-darwin[[912]]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[[012]][[,.]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) + 10.*|11.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; @@ -1498,7 +1498,7 @@ need_locks=$enable_libtool_lock m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} -: ${AR_FLAGS=cru} +: ${AR_FLAGS=cr} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) @@ -4710,6 +4710,12 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) diff --git a/platforms/unix/config/configure b/platforms/unix/config/configure index 7a3375bc8c..688eb4df94 100755 --- a/platforms/unix/config/configure +++ b/platforms/unix/config/configure @@ -681,6 +681,8 @@ INSTALL_SCRIPT INSTALL_PROGRAM AS SET_MAKE +TARGET_ARCH +getbuildarch target_os target_vendor target_cpu @@ -5484,7 +5486,7 @@ esac fi : ${AR=ar} -: ${AR_FLAGS=cru} +: ${AR_FLAGS=cr} @@ -7247,8 +7249,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 + echo "$AR cr libconftest.a conftest.o" >&5 + $AR cr libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF @@ -7280,11 +7282,11 @@ $as_echo "$lt_cv_ld_force_load" >&6; } # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + 10.0,*86*-darwin8*|10.0,*-darwin[912]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[012][,.]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) + 10.*|11.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; @@ -8104,6 +8106,12 @@ lt_prog_compiler_static= lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) @@ -11973,6 +11981,100 @@ else fi +######################## + +# This section is used by the 'generic' linux32 & linux64 mvm configs which in turn are used for Debian package building on 'other' platforms which can only support stack VMs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking TARGET_ARCH & CFLAGS" >&5 +$as_echo_n "checking TARGET_ARCH & CFLAGS... " >&6; } +if [ "$VM_CFLAGS" != "" ] +then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: autoconfigure" >&5 +$as_echo "autoconfigure" >&6; } + # dpkg-architecture when available on Debian (and derivatives) with fallback to uname + # using DEB_HOST_GNU_CPU rather than DEB_HOST_ARCH_CPU for consistency with uname + # Extract the first word of "dpkg-architecture", so it can be a program name with args. +set dummy dpkg-architecture; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_getbuildarch+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$getbuildarch"; then + ac_cv_prog_getbuildarch="$getbuildarch" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_getbuildarch="dpkg-architecture --query DEB_HOST_GNU_CPU" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_getbuildarch" && ac_cv_prog_getbuildarch="uname -m" +fi +fi +getbuildarch=$ac_cv_prog_getbuildarch +if test -n "$getbuildarch"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $getbuildarch" >&5 +$as_echo "$getbuildarch" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking autoconfigure arch" >&5 +$as_echo_n "checking autoconfigure arch... " >&6; } + build_arch=`$getbuildarch` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $build_arch" >&5 +$as_echo "$build_arch" >&6; } + case $build_arch in + i686) TARGET_ARCH="-m32" + CFLAGS="-g -O2 -msse2" + ;; + + x86_64) TARGET_ARCH="-m64" + CFLAGS="-g -O1 -msse2" + ;; + + # Omitting -DNO_VM_PROFILE=1 for now + armhf) TARGET_ARCH="-march=armv6 -mfpu=vfp -mfloat-abi=hard" + CFLAGS="-g -O3" + ;; + + # Omitting -DMUSL -DUSEEVDEV for now + aarch64) TARGET_ARCH="-march=armv8-a" + CFLAGS="-g -O2 -D__ARM_ARCH_ISA_A64 -DARM64 -D__arm__ -D__arm64__ -D__aarch64__" + ;; + + *) + if [ "$VM_WORD_SIZE" == "32" ] + then + TARGET_ARCH="-m32" + else + TARGET_ARCH="-m64" + fi + CFLAGS="-g -O2" + ;; + esac + + + { $as_echo "$as_me:${as_lineno-$LINENO}: TARGET_ARCH=$TARGET_ARCH" >&5 +$as_echo "$as_me: TARGET_ARCH=$TARGET_ARCH" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: CFLAGS=$CFLAGS" >&5 +$as_echo "$as_me: CFLAGS=$CFLAGS" >&6;} +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: mvm" >&5 +$as_echo "mvm" >&6; } +fi + ######################## TARGET_ARCH="$TARGET_ARCH" @@ -19221,7 +19323,7 @@ rm -f UnicodePlugin.sub UnicodePlugin.lib { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PangoCairo libraries" >&5 $as_echo_n "checking for PangoCairo libraries... " >&6; } save_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="-I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include" +CPPFLAGS="-I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include diff --git a/platforms/unix/config/configure.ac b/platforms/unix/config/configure.ac index 2bfe2134d8..b32a8c7f4d 100644 --- a/platforms/unix/config/configure.ac +++ b/platforms/unix/config/configure.ac @@ -28,7 +28,7 @@ # # Author: Ian.Piumarta@SqueakLand.org # -# Last edited: Wed Nov 13 17:15:30 PST 2013 by eliot +# Last edited: Mon Aug 30 21:50:00 EST 2021 by phil AC_PREREQ([2.69]) @@ -204,6 +204,59 @@ AC_ARG_WITH(gnu-as, ######################## +# This section is used by the 'generic' linux32 & linux64 mvm configs which in turn are used for Debian package building on 'other' platforms which can only support stack VMs +AC_MSG_CHECKING([TARGET_ARCH & CFLAGS]) +if [[ "$VM_CFLAGS" != "" ]] +then + AC_MSG_RESULT([autoconfigure]) + # dpkg-architecture when available on Debian (and derivatives) with fallback to uname + # using DEB_HOST_GNU_CPU rather than DEB_HOST_ARCH_CPU for consistency with uname + AC_CHECK_PROG(getbuildarch, + [dpkg-architecture], + [dpkg-architecture --query DEB_HOST_GNU_CPU], + [uname -m]) + AC_MSG_CHECKING([autoconfigure arch]) + build_arch=`$getbuildarch` + AC_MSG_RESULT([$build_arch]) + case $build_arch in + i686) TARGET_ARCH="-m32" + CFLAGS="-g -O2 -msse2" + ;; + + x86_64) TARGET_ARCH="-m64" + CFLAGS="-g -O1 -msse2" + ;; + + # Omitting -DNO_VM_PROFILE=1 for now + armhf) TARGET_ARCH="-march=armv6 -mfpu=vfp -mfloat-abi=hard" + CFLAGS="-g -O3" + ;; + + # Omitting -DMUSL -DUSEEVDEV for now + aarch64) TARGET_ARCH="-march=armv8-a" + CFLAGS="-g -O2 -D__ARM_ARCH_ISA_A64 -DARM64 -D__arm__ -D__arm64__ -D__aarch64__" + ;; + + *) + if [[ "$VM_WORD_SIZE" == "32" ]] + then + TARGET_ARCH="-m32" + else + TARGET_ARCH="-m64" + fi + CFLAGS="-g -O2" + ;; + esac + AC_SUBST([TARGET_ARCH]) + AC_SUBST([CFLAGS]) + AC_MSG_NOTICE([TARGET_ARCH=$TARGET_ARCH]) + AC_MSG_NOTICE([CFLAGS=$CFLAGS]) +else + AC_MSG_RESULT([mvm]) +fi + +######################## + TARGET_ARCH="$TARGET_ARCH" # tpr - try to keep msse out of it for Pi CFLAGS="$CFLAGS_32 $CFLAGS -msse" diff --git a/platforms/unix/config/ltmain.sh b/platforms/unix/config/ltmain.sh old mode 100644 new mode 100755 index c12c197be7..21e5e07847 --- a/platforms/unix/config/ltmain.sh +++ b/platforms/unix/config/ltmain.sh @@ -31,7 +31,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-9" +VERSION="2.4.6 Debian-2.4.6-15" package_revision=2.4.6 @@ -387,7 +387,7 @@ EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # -# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +# debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: @@ -2141,7 +2141,7 @@ include the following information: compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.6-9 + version: $progname $scriptversion Debian-2.4.6-15 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` @@ -7368,10 +7368,12 @@ func_mode_link () # -stdlib=* select c++ std lib with clang # -fsanitize=* Clang/GCC memory and address sanitizer # -fuse-ld=* Linker select flags for GCC + # -static-* direct GCC to link specific libraries statically + # -fcilkplus Cilk Plus language extension features for C/C++ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ - -specs=*|-fsanitize=*|-fuse-ld=*) + -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" diff --git a/platforms/unix/plugins/UnicodePlugin/Makefile.inc b/platforms/unix/plugins/UnicodePlugin/Makefile.inc index 02d554ad04..6a8f25f07a 100644 --- a/platforms/unix/plugins/UnicodePlugin/Makefile.inc +++ b/platforms/unix/plugins/UnicodePlugin/Makefile.inc @@ -1,2 +1,2 @@ -XCPPFLAGS= -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include +XCPPFLAGS= -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include XLDFLAGS= -lpangocairo-1.0 -lcairo -lpango-1.0 -lgobject-2.0 -lglib-2.0 diff --git a/platforms/unix/plugins/UnicodePlugin/acinclude.m4 b/platforms/unix/plugins/UnicodePlugin/acinclude.m4 index 9995474b1a..2905243011 100644 --- a/platforms/unix/plugins/UnicodePlugin/acinclude.m4 +++ b/platforms/unix/plugins/UnicodePlugin/acinclude.m4 @@ -2,7 +2,7 @@ AC_MSG_CHECKING([for PangoCairo libraries]) save_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="-I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include" +CPPFLAGS="-I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include" AC_TRY_COMPILE([#include ],[{}],[ AC_MSG_RESULT(yes) ],[