[Vm-dev] Building (Linux) VM - with segfaults. that point to audio

Brad Fuller bradallenfuller at gmail.com
Sat Nov 15 00:56:29 UTC 2008


Objective: I'm trying to build the VM out of the box, nothing fancy. I
want to use ALSA.
Problem: I'm getting segfaults when playing any audio object (from the
Objects>Multimedia panel)

I svn'd fresh source from the trunk, and followed the directions in
README.SVN [1]. I then moved to unix subdir and made. Everything went
fine, no errors and installed fine. Squeak seems to run fine.e.g. I
exercised the network retrieving the Universe packages.

However, when I start up an image and pull out any of the audio
objects, a segfault happens immediately:

Segmentation fault

17753728 [] in >playLoop
17753820 [] in Semaphore>critical:
17753544 BlockContext>ensure:
17753360 Semaphore>critical:
17720844 >playLoop
17720660 [] in >startPlayerProcessBufferSize:rate:stereo:sound:
17720752 [] in BlockContext>newProcess
Aborted

I get the same segfault using a command option:
$ squeak -vm sound=ALSA Squeak3.10.2-7179-basic.image

If I specify "none":
$ squeak -vm sound=none Squeak3.10.2-7179-basic.image

then no segfault, and of course, no sounds.


the plugin does exist in the squeak directory:
$ lsa /usr/local/lib/squeak/3.10-4
total 22540
   4 drwxr-xr-x 2 root root     4096 2008-11-14 15:35 .
   4 drwxr-xr-x 5 1000 1000     4096 2008-11-14 15:32 ..
  28 -rwxr-xr-x 1 root root    26820 2008-11-14 15:32 AioPlugin
 172 -rwxr-xr-x 1 root root   170451 2008-11-14 15:32 B3DAcceleratorPlugin
  32 -rwxr-xr-x 1 root root    29332 2008-11-14 15:32 ClipboardExtendedPlugin
  76 -rwxr-xr-x 1 root root    71250 2008-11-14 15:32 DBusPlugin
  24 -rwxr-xr-x 1 root root    20934 2008-11-14 15:32 FileCopyPlugin
 184 -rwxr-xr-x 1 root root   182395 2008-11-14 15:32 GStreamerPlugin
  32 -rwxr-xr-x 1 root root    32161 2008-11-14 15:32 ImmX11Plugin
  88 -rwxr-xr-x 1 root root    85971 2008-11-14 15:32 KedamaPlugin
 140 -rwxr-xr-x 1 root root   138507 2008-11-14 15:32 KedamaPlugin2
  44 -rwxr-xr-x 1 root root    44065 2008-11-14 15:32 MIDIPlugin
 792 -rwxr-xr-x 1 root root   803221 2008-11-14 15:32 Mpeg3Plugin
  24 -rwxr-xr-x 1 root root    23088 2008-11-14 15:32 npsqueak.so
  36 -rwxr-xr-x 1 root root    36765 2008-11-14 15:32 PseudoTTYPlugin
 144 -rwxr-xr-x 1 root root   142582 2008-11-14 15:32 RomePlugin
2472 -rwxr-xr-x 1 root root  2525072 2008-11-14 15:32 squeak
 208 -rwxr-xr-x 1 root root   205337 2008-11-14 15:32 Squeak3D
17200 -rw-r--r-- 1 root root 17584742 2008-11-14 15:35 SqueakV39.sources
 116 -rwxr-xr-x 1 root root   113755 2008-11-14 15:32 UnixOSProcessPlugin
  20 -rwxr-xr-x 1 root root    17974 2008-11-14 15:32 UUIDPlugin
 100 -rwxr-xr-x 1 root root    96184 2008-11-14 15:32 VideoForLinuxPlugin
 112 -rwxr-xr-x 1 root root   110434 2008-11-14 15:32 vm-display-fbdev
  28 -rwxr-xr-x 1 root root    26121 2008-11-14 15:32 vm-display-null
 272 -rwxr-xr-x 1 root root   271778 2008-11-14 15:32 vm-display-X11
  56 -rwxr-xr-x 1 root root    49985 2008-11-14 15:32 vm-sound-ALSA
  20 -rwxr-xr-x 1 root root    16870 2008-11-14 15:32 vm-sound-null
  84 -rwxr-xr-x 1 root root    79461 2008-11-14 15:32 vm-sound-OSS
  28 -rwxr-xr-x 1 root root    25109 2008-11-14 15:32 XDisplayControlPlugin

I thought maybe it was because SoundPlugin was not there, but it's in:
 $ ls src/vm/intplugins/SoundPlugin
SoundPlugin.c

and:
$ cat src/plugins.int
# Automatically generated makefile include for internal plugins
INTERNAL_PLUGINS = ADPCMCodecPlugin AsynchFilePlugin
BMPReadWriterPlugin B2DPlugin BitBltPlugin CroquetPlugin DSAPrims
ZipPlugin DropPlugin FFTPlugin FilePlugin FloatArrayPlugin
FloatMathPlugin GeniePlugin JPEGReadWriter2Plugin JPEGReaderPlugin
JoystickTabletPlugin Klatt LargeIntegers LocalePlugin Matrix2x3Plugin
MiscPrimitivePlugin RePlugin SecurityPlugin SerialPlugin SocketPlugin
SoundCodecPrims SoundGenerationPlugin SoundPlugin StarSqueakPlugin
SurfacePlugin

I assume it got built and is located internally in the vm proper.

Any ideas? I have a feeling I just missed something completely easy in
the setup.
Or, could this be because I'm running 64bit? Since everything else is working?


[1] the first instruction in README.SVN is incorrect. It should be: $
svn co http://squeakvm.org/svn/squeak/trunk squeak - .i.e. the path is
a bit wrong. Perhaps I should write up a bug?

(should these types of messages go to the squeak-vm list? I long-ago
unsubscribed to that since it had little traffic)

--
Brad Fuller


More information about the Vm-dev mailing list