Failed to build FloatMathPlugin on FreeBSD

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Failed to build FloatMathPlugin on FreeBSD

Gary Dunn-2
 
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@slate01:/usr/obj/usr/src/sys/GENERIC  i386


--
Gary Dunn
Honolulu
Reply | Threaded
Open this post in threaded view
|

Re: Failed to build FloatMathPlugin on FreeBSD

David T. Lewis
 
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@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!

Reply | Threaded
Open this post in threaded view
|

Re: Failed to build FloatMathPlugin on FreeBSD

Henrik Sperre Johansen

The compiler option specifies whether to use available machine code to contract floating point operations with no intermediate rounding.
So unless you're running on a ppc, or some obscure other ones which contain such opcodes, you can safely discard it :)
If you do, the code in FloatMathPlugin contain such structures, and platform-independent results are important to you, it's a good idea to turn on.

Cheers,
Henry

PS. -mno-fused-madd is specific to ppc and a few other platforms according to the GCC docs though...
In November last year, it was aliased to the platform-independent -ffp-contract=off (which I suppose excludes the equivalent IA64 capabilities, as well as any found on future machines), might be a good idea to turn that on just in case in the future.
The equivalent for the intel compiler is IPF-fma strict (for IA64 only).


On Mar 10, 2011, at 9:12 44PM, David T. Lewis 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@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!
>

Reply | Threaded
Open this post in threaded view
|

Re: Failed to build FloatMathPlugin on FreeBSD

David T. Lewis
 
Thank you for the explanation.

Dave

On Thu, Mar 10, 2011 at 11:59:58PM +0100, Henrik Johansen wrote:

>
> The compiler option specifies whether to use available machine code to contract floating point operations with no intermediate rounding.
> So unless you're running on a ppc, or some obscure other ones which contain such opcodes, you can safely discard it :)
> If you do, the code in FloatMathPlugin contain such structures, and platform-independent results are important to you, it's a good idea to turn on.
>
> Cheers,
> Henry
>
> PS. -mno-fused-madd is specific to ppc and a few other platforms according to the GCC docs though...
> In November last year, it was aliased to the platform-independent -ffp-contract=off (which I suppose excludes the equivalent IA64 capabilities, as well as any found on future machines), might be a good idea to turn that on just in case in the future.
> The equivalent for the intel compiler is IPF-fma strict (for IA64 only).
>
>
> On Mar 10, 2011, at 9:12 44PM, David T. Lewis 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@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!
> >
Reply | Threaded
Open this post in threaded view
|

Re: Failed to build FloatMathPlugin on FreeBSD

Gary Dunn-2
In reply to this post by David T. Lewis

On Thu, Mar 10, 2011 at 12:12 PM, David T. Lewis <[hidden email]> 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@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
Reply | Threaded
Open this post in threaded view
|

Re: Failed to build FloatMathPlugin on FreeBSD

David T. Lewis
 
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 <[hidden email]> 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@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

Reply | Threaded
Open this post in threaded view
|

Re: Failed to build FloatMathPlugin on FreeBSD

Gary Dunn-2

On Sat, Mar 12, 2011 at 11:59 AM, David T. Lewis <[hidden email]> wrote:

> 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 <[hidden email]> 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@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

I do not have sqUnixX11.c. in my build tree, only in
/unix/vm-display-X11. Am I supposed to edit that one then re-run
configure, or does this indicate a problem with configure sensing that
I am on an X11 box? I went ahead and added the same error define code:

/* define missing error function for FreeBSD --gd */

#ifndef error
 /* error() function called from Interpreter */
 /* Default definition if not previously defined in config.h */
 #define error(str) defaultErrorProc(str)
#endif

re-ran configure, make, make install

Now aqueak starts without error, but with no output. No window. It
just hangs and terminates nicely with Ctrl-C. How do I enable error
logging?

--
Gary Dunn
Honolulu