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 |
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! |
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! > |
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! > > |
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 |
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 |
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 |
Free forum by Nabble | Edit this page |