[squeak-dev] No vm-display-x11 Plug-in After Building From Source On FreeBSD 10.1

David T. Lewis lewis at mail.msen.com
Sun Dec 14 17:29:11 UTC 2014


On Sun, Dec 14, 2014 at 03:02:32PM +0000, B J wrote:
> <snip>
> 
> Thanks.
> 
> > There's a couple things that may go wrong:
> >
> > It's possible it was not built because of missing header or library files.
> >
> > It's also possible the module's file name is different (e.g. on Linux it is
> > so.vm-display-x11)
> 
> I've noticed that with FreeBSD when I tried installing Squeak from the
> repository.
> 
> so you might have a look in the vm's lib directory for
> > what the actual name is.
> 
> It said it was looking for vm-display-x11.so, but if so.vm-display-x11
> is what's produced, I'm assuming that an error would result.
> 
> >
> > Also, if you did not run "make install" you will have to pass the actual
> > directory name for the plugins on the vm's command line.
> 
> The instructions suggest running "make" first, checking out the
> results first, and then running "make install".  I didn't go further
> than just "make" because of the error.
> 
> >
> > Finally, even if the VM finds the module, it may fail to load if some
> > dependent library is missing. On Linux I can check with "ldd pluginfile",
> > not sure what the equivalent BSD command is.
> 
> I haven't tried that yet.

If you think that the module is not being built at all, take a look at the config.h
file in your build directory. That is the output of the cmake configure process,
and if there is some issue related to locating the build libraries, you will probably
see evidence of it in config.h. Look for definitions that are commented out, but
maybe should not be.

Note, the "so.xxxx" naming convention is part of the installation process, so
don't worry about that. If you can build the VM and install it, the naming will
take care of itself.

I'm not sure which source package you are starting with, but here is a simple
recipe for building the latest from Subversion.

1) Start with an empty directory, then get the latest versions of all the
platforms sources and the VMMaker generated sources:

  $ svn co http://squeakvm.org/svn/squeak/trunk/platforms
  $ svn co http://squeakvm.org/svn/squeak/trunk/src

2) In that same directory, make a subdirectory in which to build the VM:

  $ mkdir build
  $ cd build

3) Copy the attached Makefile into your build directory.

4) build the VM, and install it if you get plausible results.

  $ make
  $ sudo make install

This makefile is what I use on Linux, so you may need to fiddle around with the
CFLAGS, or add additional "--without xxxx" options to exclude modules that give
you problems, but otherwise I think it should work.

HTH,
Dave

-------------- next part --------------
# Fri Nov 22 19:42:46 EST 2013
#
# Makefile to build and install a 32-bit and 64-bit object memory VM. This
# makefile can be run with /usr/sbin/checkinstall to create an RPM or Debian
# install package.
#
# Assume platforms is ../platforms and src is ../src
# 
# The SqueakSSL plugin cannot yet be built for image64, otherwise the 32-bit
# and 64-bit object memory VMs should be the same.

# CFLAGS setting to pass to cmake configure. If undefined, use compiler defaults.
CFLAGS_PARAM="--CFLAGS='-O3 -D_FILE_OFFSET_BITS=64'"

squeakvm:	build/squeakvm build64/squeakvm64

build/squeakvm:	build/CMakeCache.txt
	(cd build; make)

build/CMakeCache.txt:
	mkdir build || true
	(cd build; ../../platforms/unix/cmake/configure --src=../../src ${CFLAGS_PARAM})

build64/squeakvm64:	build64/CMakeCache.txt
	(cd build64; make)

build64/CMakeCache.txt:
	mkdir build64 || true
	(cd build64; ../../platforms/unix/cmake/configure --src=../../src --image64 --vm-only --without-SqueakSSL ${CFLAGS_PARAM})

install:	squeakvm
	(cd build; make install)
	(cd build64; make install)

clean:
	rm -rf build build64



More information about the Squeak-dev mailing list