<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style='font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif;'><div>After some hacking, I can invoke squeak and get some version info<br></div><div><br></div><div><i>...@dpdev1:~/usr/src/opensmalltalk-vm/products/sqcogspur64linuxht/lib/squeak/5.0 % ./squeak --version</i><i></i><br></div><div><i>5.0-  Sun May 20 06:49:54 UTC 2018 cc [Production Spur 64-bit VM]</i><i></i><br></div><div><i>CoInterpreter VMMaker.oscog-eem.2380 uuid: c76d37e1-445c-4e34-9796-fc836dfd50c9 May 20 2018</i><i></i><br></div><div><i>StackToRegisterMappingCogit VMMaker.oscog-eem.2380 uuid: c76d37e1-445c-4e34-9796-fc836dfd50c9 May 20 2018</i><i></i><br></div><div><i>VM:  $Date$</i><i></i><br></div><div><i>Date: $CommitHash$ CommitHash: $Rev$</i><i></i><br></div><div><i>Plugins: $URL$ $Rev$</i><i></i><br></div><div><i>FreeBSD dpdev1 11.1-RELEASE-p4 FreeBSD 11.1-RELEASE-p4 #0: Tue Nov 14 06:12:40 UTC 2017     </i><a target="_blank" href="mailto:root@amd64-builder.daemonology.net"><i>root@amd64-builder.daemonology.net</i></a><i>:/usr/obj/usr/src/sys/GENERIC  amd64</i><i></i><br></div><div><i>plugin path: /usr/home/gettimothy/usr/src/opensmalltalk-vm/products/sqcogspur64linuxht/lib/squeak/5.0/ [default: /usr/home/gettimothy/usr/src/opensmalltalk-vm/products/sqcogspur64linuxht/lib/squeak/5.0/]</i><i></i><br></div><div><br></div><div class="zmail_extra"><div id="Zm-_Id_-Sgn1"><div>As I get time, I will continue hacking on this and as time permits, I will work with whoever is interested.<br></div><div>Process I am following is as follows <br></div><div><br></div></div></div><div>git clone <a target="_blank" href="http://www.github.com/OpenSmalltalk/opensmalltalk-vm">http://www.github.com/OpenSmalltalk/opensmalltalk-v</a><br></div><div>cp -Rv build.linux64x64/ build.freebsd64x64<br></div><div>cd build.freebsd64x64/squeak.cog.spur/<br></div><div>[create backup copies of original plugins.* and build/mvm <br></div><div>cp plugins.int plugins.int.orig ; cp plugins.ext plugins.ext.orig<br></div><div>cp build/mvm ./<br></div><div><br></div><div>[hack,baby hack!]<br></div><div>reduce plugins.int to minimal (I blogged on this a couple of years ago: )<br></div><div><br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div>INTERNAL_PLUGINS = \<br></div><div>AsynchFilePlugin \<br></div><div>B2DPlugin \<br></div><div>BitBltPlugin \<br></div><div>SocketPlugin<br></div></div></blockquote><div>after some hacking, I reduced plugins.ext to this:<br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div>EXTERNAL_PLUGINS = \<br></div><div>B3DAcceleratorPlugin \<br></div><div>SqueakFFIPrims \<br></div><div>LocalePlugin \<br></div><div>UnicodePlugin \<br></div><div>UnixOSProcessPlugin \<br></div><div>UUIDPlugin \<br></div><div>ImmX11Plugin \<br></div><div>XDisplayControlPlugin<br></div></div></blockquote><div><br></div><div>modified mvm to this (note the FreeBSD addition to the case statement, the addition of libiconv and the --without--vm-sound-FOO)<br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div>#!/usr/bin/env bash<br></div><div>set -e<br></div><div># Spur VM with VM profiler and threaded heartbeat<br></div><div>INSTALLDIR=sqcogspur64linuxht<br></div><div><br></div><div>OPT="-g -O2 -fwrapv -DNDEBUG -DDEBUGVM=0 -D_FILE_OFFSET_BITS=64"<br></div><div><br></div><div>CFLAGS="$OPT -msse2 -DCOGMTVM=0"<br></div><div>LIBS=""<br></div><div>LDFLAGS=""<br></div><div>case $(uname -s) in<br></div><div>  OpenBSD)<br></div><div>           CFLAGS="$CFLAGS -I/usr/local/include"<br></div><div>           LIBS="$LIBS -lexecinfo"<br></div><div>           LDFLAGS="$LDFLAGS -L/usr/local/lib"<br></div><div>           ;;<br></div><div>  FreeBSD)<br></div><div>           CFLAGS="$CFLAGS -I/usr/local/include"<br></div><div>           LIBS="$LIBS -lexecinfo -liconv"<br></div><div>           LDFLAGS="$LDFLAGS -L/usr/local/lib"<br></div><div>           ;;<br></div><div>esac<br></div><div><br></div><div><br></div><div><br></div><div>if [ $# -ge 1 ]; then<br></div><div>        INSTALLDIR="$1"; shift<br></div><div>fi<br></div><div><br></div><div>echo -n "clean? "<br></div><div>read a<br></div><div>case $a in<br></div><div>n|no|N|NO)      echo "ok but this isn't safe!!";;<br></div><div>*)                      test -f Makefile && make reallyclean<br></div><div>esac<br></div><div>test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .)<br></div><div>test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .)<br></div><div>test -f config.h || ../../../platforms/unix/config/configure --without-npsqueak \<br></div><div>                --with-vmversion=5.0 \<br></div><div>                --with-src=spur64src \<br></div><div>                --without-vm-sound-MacOSX \<br></div><div>                --without-vm-sound-Sun \<br></div><div>                --without-vm-sound-custom \<br></div><div>                --without-vm-sound-ALSA \<br></div><div>        TARGET_ARCH="-m64" \<br></div><div>        CFLAGS="$CFLAGS" \<br></div><div>        LIBS="$LIBS" \<br></div><div>        LDFLAGS="$LDFLAGS"<br></div><div>rm -f vm/sqUnixMain.o # nuke version info<br></div><div>rm -rf ../../../products/$INSTALLDIR<br></div><div># prefer make install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR`<br></div><div># but older linux readlinks lack the -f flag<br></div><div>make install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG<br></div></div></blockquote><div><br></div><div>./mvm  (it will error out trying to build sound plugins even though I put those --without-vm-sound-foo thingies in)<br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div>Stop.<br></div><div>make[1]: stopped in /usr/home/gettimothy/usr/src/opensmalltalk-vm/build.freebsd64x64/<a target="_blank" href="http://squeak.cog.spur/build/vm-sound-ALSA">squeak.cog.spur/build/vm-sound-ALSA</a><br></div></div></blockquote><div>edit the Makefile and search for "sound" <br></div><div><br></div><div>modify LIBS</div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div><br></div><div>LIBS=           -luuid -lutil -lpulse-simple -lasound  -lm  -lexecinfo -liconv<br></div></div></blockquote><div>becomes:<br></div><div><br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div>LIBS=           -luuid -lutil  -lm  -lexecinfo -liconv<br></div></blockquote><div><br></div><div><br></div><div>modify PLUGINS_LA<br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div>PLUGINS_LA      =  vm-display-X11${la} vm-display-null${la} vm-sound-ALSA${la} vm-sound-NAS${la} vm-sound-OSS${la} vm-sound-null${la} vm-sound-pulse${la} B3DAcceleratorPlugin${la} SqueakFFIPrims${la} LocalePlugin${la} UnixOSProcessPlugin${la} UUIDPlugin${la} ImmX11Plugin${la} XDisplayControlPlugin${la}<br></div><div><br></div></div></blockquote><div><br></div><div>becomes :<br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div>PLUGINS_LA      =  vm-display-X11${la} vm-display-null${la}  B3DAcceleratorPlugin${la} SqueakFFIPrims${la} LocalePlugin${la} UnixOSProcessPlugin${la} UUIDPlugin${la} ImmX11Plugin${la} XDisplayControlPlugin${la}<br></div></blockquote><div>(Why are the --without-vm-sound--... directives ignored?)<br></div><div><br></div><div>type make.<br></div><div><br></div><div>it compiles.<br></div><div><br></div><div>but the 'getversion' program barfs a bit (probably UUID problemvi M):<br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div><br></div><div>./getversion <br></div><div>VM_NICKNAME: Cog Spur VM<br></div><div>VIRTUAL_MACHINE_NICKNAME: Cog Spur Virtual Machine<br></div><div>VM_MONIKER: CogSpurVM<br></div><div>VM_VERSION: 5.0<br></div><div>VM_MAJOR: 5<br></div><div>VM_MINOR: 0<br></div><div>VM_RELEASE: $CommitHash$<br></div><div>VERSION_TAG: 5.0-$CommitHash$<br></div><div>VERSION_NUMBER: 5.0.$CommitHash$<br></div><div>COMMIT_HASH:<br></div><div>NICKNAME: Cog<br></div><div>OBJMEM: Spur<br></div><div>DEFAULT_IMAGE_NAME: squeak.image<br></div><div>gettimothy@dpdev1:~/usr/src/opensmalltalk-vm/build.freebsd64x64/<a href="http://squeak.cog.spur/build" target="_blank">squeak.cog.spur/build</a> %<br></div></div></blockquote><div><br></div><div>and the resulting products output reflects that:<br></div><div><br></div><div><br></div><div><br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div>tree sqcogspur64linuxht/<br></div><div>sqcogspur64linuxht/<br></div><div>|-- bin<br></div><div>|   `-- squeak<br></div><div>|-- lib<br></div><div>|   `-- squeak<br></div><div>|       `-- 5.0-$CommitHash$<br></div><div>|           `-- squeak<br></div><div>`-- squeak<br></div></div></blockquote><div><br></div><div>hack some more, renaming the lib/squeak/5.0 <br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div>mv 5.0-\$CommitHash\$/ 5.0<br></div></blockquote><div><br></div><div>check the executable:<br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div>file 5.0/squeak 5.0/squeak: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 11.1, FreeBSD-style, not stripped<br></div></blockquote><div><br></div><div>invoke it and check version (outputs as at the beginning of the post)<br></div><div><br></div><div><br></div><div>try to run it anyway (you never know!)<br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div>../opensmalltalk-vm/products/sqcogspur64linuxht/lib/squeak/5.0/squeak Squeak5.1-16548-64bit.image -headless<br></div><div>squeak: could not find any display driver<br></div><div>Abort (core dumped)<br></div></div></blockquote><div><br></div><div>Why its looking for a display driver with the -headless flag ? I don't know.</div><div><br></div><div><br></div><div><br></div><div>Summary, this is worth pursing. I will hack at it as I get time. <br></div><div><br></div><div><br></div><div>cheers,<br></div><div><br></div><div>tty</div><div><br></div><div><br></div></div><br></body></html>