Hi Edwin,
Let's try one more thing before we give up.
Looking at that error message, I think you must be encountering this issue on FreeBSD:
https://github.com/FluidSynth/fluidsynth/issues/133
That explains the "duplicate case value" error you are seeing. It will affect only the ALSA vm plugin, so if ALSA sound is excluded from the build I expect the error will be gone. Please try the following:
- Put SoundCodecPrims and SoundGenerationPlugin back into your plugins.int file. These were the the cause of the problem.
- In your build/Makefile, find the line that defines CFLAGS_PARAM, and change it to this (leading space before the "--" is important, so copy this exactly):
CFLAGS_PARAM=" --without-vm-sound-ALSA --CFLAGS='-O2 -D_FILE_OFFSET_BITS=64'"
- Do a "make clean" followed by "make".
If this does not work, then let's move the question over to the vm-dev list, and ask "can anyone can help provide either a Cog or interpreter VM for V3 image on FreeBSD?" It is possible that someone may be running a Cog OpenSmalltalk VM on FreeBSD, and if so that might be a better way to get you running on FreeBSD.
CC to the vm-dev list.
Dave
On Sat, May 19, 2018 at 06:06:43AM +0200, Edwin Ancaer wrote:
Hello,
Squeak seems not to be made for FreeBSD. I removed the cameraplugin and the UUIDplugin, but at 96 % of the build, the error
/home/edwin/squeak/platforms/unix/vm-sound-ALSA/sqUnixSoundALSA.c:254:9: error: duplicate case value '-32' case -ESTRPIPE: { /* stream suspended */ ^ popped up again.
I tried to remove the sound plugins,SoundCodecPrims SoundGenerationPlugin SoundPlugin but that did not help.
I then removed the offending case statement (logically, I could just get the wrong error message there).
What I see is the squeak window opening, with a black rectangle in the upper left corner, and then the coredump starts.
I'm afraid for now, I reached the limits of my possibilities. I'll have to choose, stay with FreeBSD and GNUstep, or back to Linux with Squeak.... perfection does not exist in this world. I will keep following the mail list anyway, in case something pops up.
Thanks anyway for the assistance.
Edwin Ancaer
2018-05-19 1:47 GMT+02:00 David T. Lewis lewis@mail.msen.com:
Hi Edwin,
Yes, it was a problem on the server, file system full as a result of some hacker attacks. I have enough enough server access to clear out some files from /tmp so I think it is working again now, although the problem is likely to come back. In any case, please give it another try and hopefully the error will to gone this time.
Dave
On Fri, May 18, 2018 at 11:07:53PM +0200, Edwin Ancaer wrote:
Hello,
when trying to execute the command
svn co http://squeakvm.org/svn/squeak/trunk/platforms
I get the answer
svn: E020014: Can't find a temporary directory: Internal error.
I seem to hve enough free space. Can there be a problem on the server
again?
Kind regards,
2018-05-18 5:37 GMT+02:00 Edwin Ancaer eancaer@gmail.com:
Tim,
Thanks, the correspondence between the version numbers of vm, images
and
source files was not clear to me.
However, the result remains the same: i get a coredump, with the same backtrace. Now there is a chance the changes I made to get the vm
compiled
might have something to do with it, so I will first rebuild the vm and exclude uuid and sound plugins, to see what I get then.
Kind regards,
Edwin Ancaer
Op vr 18 mei 2018 04:23 schreef Tm Jhnsn digit@sonic.net:
On May 16, 2018, at 11:47 PM, Edwin Ancaer wrote:
Doing the same I now have a VM that could be working. I feel silly to ask, but can you tell ,me where I find a suitable image file? On
Windows
and Linux I always used the all-in-one package, so this problem never occurred.
Hi Edwin,
http://files.squeak.org/4.6/Squeak4.6-15102.zip should contain your image.
http://files.squeak.org/4.6/SqueakV46.sources.zip should contain your sources file.
Hope that helps, Tim
After some hacking, I can invoke squeak and get some version info
...@dpdev1:~/usr/src/opensmalltalk-vm/products/sqcogspur64linuxht/lib/squeak/5.0 % ./squeak --version
5.0- Sun May 20 06:49:54 UTC 2018 cc [Production Spur 64-bit VM]
CoInterpreter VMMaker.oscog-eem.2380 uuid: c76d37e1-445c-4e34-9796-fc836dfd50c9 May 20 2018
StackToRegisterMappingCogit VMMaker.oscog-eem.2380 uuid: c76d37e1-445c-4e34-9796-fc836dfd50c9 May 20 2018
VM: $Date$
Date: $CommitHash$ CommitHash: $Rev$
Plugins: $URL$ $Rev$
FreeBSD dpdev1 11.1-RELEASE-p4 FreeBSD 11.1-RELEASE-p4 #0: Tue Nov 14 06:12:40 UTC 2017 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
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/]
As I get time, I will continue hacking on this and as time permits, I will work with whoever is interested.
Process I am following is as follows
git clone http://www.github.com/OpenSmalltalk/opensmalltalk-v
cp -Rv build.linux64x64/ build.freebsd64x64
cd build.freebsd64x64/squeak.cog.spur/
[create backup copies of original plugins.* and build/mvm
cp plugins.int plugins.int.orig ; cp plugins.ext plugins.ext.orig
cp build/mvm ./
[hack,baby hack!]
reduce plugins.int to minimal (I blogged on this a couple of years ago: )
INTERNAL_PLUGINS = \
AsynchFilePlugin \
B2DPlugin \
BitBltPlugin \
SocketPlugin
after some hacking, I reduced plugins.ext to this:
EXTERNAL_PLUGINS = \
B3DAcceleratorPlugin \
SqueakFFIPrims \
LocalePlugin \
UnicodePlugin \
UnixOSProcessPlugin \
UUIDPlugin \
ImmX11Plugin \
XDisplayControlPlugin
modified mvm to this (note the FreeBSD addition to the case statement, the addition of libiconv and the --without--vm-sound-FOO)
#!/usr/bin/env bash
set -e
# Spur VM with VM profiler and threaded heartbeat
INSTALLDIR=sqcogspur64linuxht
OPT="-g -O2 -fwrapv -DNDEBUG -DDEBUGVM=0 -D_FILE_OFFSET_BITS=64"
CFLAGS="$OPT -msse2 -DCOGMTVM=0"
LIBS=""
LDFLAGS=""
case $(uname -s) in
OpenBSD)
CFLAGS="$CFLAGS -I/usr/local/include"
LIBS="$LIBS -lexecinfo"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
;;
FreeBSD)
CFLAGS="$CFLAGS -I/usr/local/include"
LIBS="$LIBS -lexecinfo -liconv"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
;;
esac
if [ $# -ge 1 ]; then
INSTALLDIR="$1"; shift
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 \
--without-vm-sound-MacOSX \
--without-vm-sound-Sun \
--without-vm-sound-custom \
--without-vm-sound-ALSA \
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-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG
./mvm (it will error out trying to build sound plugins even though I put those --without-vm-sound-foo thingies in)
Stop.
make[1]: stopped in /usr/home/gettimothy/usr/src/opensmalltalk-vm/build.freebsd64x64/squeak.cog.spur/build/vm-sound-ALSA
edit the Makefile and search for "sound"
modify LIBS
LIBS= -luuid -lutil -lpulse-simple -lasound -lm -lexecinfo -liconv
becomes:
LIBS= -luuid -lutil -lm -lexecinfo -liconv
modify PLUGINS_LA
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}
becomes :
PLUGINS_LA = vm-display-X11${la} vm-display-null${la} B3DAcceleratorPlugin${la} SqueakFFIPrims${la} LocalePlugin${la} UnixOSProcessPlugin${la} UUIDPlugin${la} ImmX11Plugin${la} XDisplayControlPlugin${la}
(Why are the --without-vm-sound--... directives ignored?)
type make.
it compiles.
but the 'getversion' program barfs a bit (probably UUID problemvi M):
./getversion
VM_NICKNAME: Cog Spur VM
VIRTUAL_MACHINE_NICKNAME: Cog Spur Virtual Machine
VM_MONIKER: CogSpurVM
VM_VERSION: 5.0
VM_MAJOR: 5
VM_MINOR: 0
VM_RELEASE: $CommitHash$
VERSION_TAG: 5.0-$CommitHash$
VERSION_NUMBER: 5.0.$CommitHash$
COMMIT_HASH:
NICKNAME: Cog
OBJMEM: Spur
DEFAULT_IMAGE_NAME: squeak.image
gettimothy@dpdev1:~/usr/src/opensmalltalk-vm/build.freebsd64x64/squeak.cog.spur/build %
and the resulting products output reflects that:
tree sqcogspur64linuxht/
sqcogspur64linuxht/
|-- bin
| `-- squeak
|-- lib
| `-- squeak
| `-- 5.0-$CommitHash$
| `-- squeak
`-- squeak
hack some more, renaming the lib/squeak/5.0
mv 5.0-$CommitHash$/ 5.0
check the executable:
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
invoke it and check version (outputs as at the beginning of the post)
try to run it anyway (you never know!)
../opensmalltalk-vm/products/sqcogspur64linuxht/lib/squeak/5.0/squeak Squeak5.1-16548-64bit.image -headless
squeak: could not find any display driver
Abort (core dumped)
Why its looking for a display driver with the -headless flag ? I don't know.
Summary, this is worth pursing. I will hack at it as I get time.
cheers,
tty
On 20.05.2018, at 09:31, gettimothy gettimothy@zoho.com wrote:
LIBS="$LIBS -lexecinfo -liconv"
FreeBSD 11 ships with iconv in libc, so actually that should not be necessary. Problem is that if you have the libiconv port, the /usr/local/include will mess things up. Oh well… -t
vm-dev@lists.squeakfoundation.org