[Vm-dev] Failed to build FloatMathPlugin on FreeBSD

David T. Lewis lewis at mail.msen.com
Sat Mar 12 19:59:08 UTC 2011


On Thu, Mar 10, 2011 at 09:04:18PM -0800, Gary Dunn wrote:
> On Thu, Mar 10, 2011 at 12:12 PM, David T. Lewis <lewis at mail.msen.com> wrote:
> >
> > On Thu, Mar 10, 2011 at 09:27:23AM -0800, Gary Dunn wrote:
> >>
> >> I am setting up to try to add DBus support to the vm. Decided it was
> >> time to practice building an unmodified vm. Downloaded sources for
> >> 4.4.7.2357. I have been running Squeak with 3.11.3.2135 and that seems
> >> to work fine.
> >>
> >> make stopped with
> >>
> >> [ 10%] Building C object
> >> FloatMathPlugin/CMakeFiles/FloatMathPlugin.dir/usr/home/gary/OpenSlate/Squeak/Squeak-4.4.7.2357-src/unix/src/vm/intplugins/FloatMathPlugin/FloatMathPlugin.c.o
> >> cc1: error: unrecognized command line option "-mno-fused-madd"
> >> *** Error code 1
> >>
> >> I was able to make squeak
> >>
> >> This is a slightly old version of FreeBSD:
> >>
> >> $ uname -a
> >> FreeBSD slate01 8.0-RELEASE-p2 FreeBSD 8.0-RELEASE-p2 #0: Thu Jan 28
> >> 06:16:14 HST 2010 ? ? gary at slate01:/usr/obj/usr/src/sys/GENERIC ?i386
> >
> > Hi Gary,
> >
> > Apparently the -mno-fused-madd option is supported only on newer gcc compilers.
> > As a workaround, look at platforms/unix/plugins/FloatMathPlugin/config.cmake
> > and edit it out. Clean out your build directory, then run configure and you
> > should be back in business. This will not effect the behavior of your plugin,
> > at least not in any way that will be detected by the test suite.
> >
> > There was some earlier discussion of this on the list. I suspect that the
> > -mno-fused-madd compiler option is completely unnecessary, although I don't
> > know for certain if this is the case.
> >
> > Can any of our numeric gurus confirm if it is safe to just get rid of this
> > compiler option for all platforms? It seems to have no effect that can be
> > detected by the unit tests.
> >
> > Earlier discussion was here:
> > ?http://lists.squeakfoundation.org/pipermail/vm-dev/2011-January/006672.html
> >
> > Dave
> >
> > p.s. welcome to the vm-dev list!
> 
> Removing that option did the trick, however the vm does not run. I
> suspect it is something trivial. I tested in place, without make
> install. With my build directory (work) the current directory I enter
> the command
> 
> $ ./squeak /home/gary/Squeak4.2-10966.image
> 
> and get this undefined symbol error:
> 
> /usr/home/gary/OpenSlate/Squeak/Squeak-4.4.7.2357-src/work/vm-display-X11/so.vm-display-X11:
> Undefined symbol "error"
> could not find display driver vm-display-X11; either:
>   - check that /usr/local/lib/squeak/4.4.7-2357/vm-display-X11.so exists, or
>   - use the '-plugins <path>' option to tell me where it is, or
>   - remove DISPLAY from your environment.
> Abort trap (core dumped)
> 
> Note that "check that
> /usr/local/lib/squeak/4.4.7-2357/vm-display-X11.so exists" is false.
> It should be looking for
> /usr/home/gary/OpenSlate/Squeak/Squeak-4.4.7.2357-src/work/vm-display-X11/so.vm-display-X1l.
> Do I need to modify the squeak shell script, or just run make install?
> 
> 
> -- 
> Gary Dunn
> Honolulu

Yes, you need to run make install in order to put the various shared
libraries into a place where the VM expects to find them. That said,
the undefined symbol reference and the core dump indicate other problems.

WRT the undefined symbol "error", take a look at the interp.c file (this
is source generated from VMMaker) and see how the error() function is
redefined. Possibly for FreeBSD you will need something similar for
sqUnixX11.c. If so, you can probably handle it by putting a #define in
the config.h file, or just hack sqUnixX11.c for the time being.

Dave



More information about the Vm-dev mailing list