Hi all,
I have successfully compiled SqueakVM-3.9-7 for Solaris 10 (SPARC). But there were some problems I want to write about.
First, some background: - For the compilation I have been using Sun's OpenSPARC Cool Tools (http://cooltools.sunsource.net/gcc/index.html). That is a gcc-4.0.2 frontend and SunStudio's backend. This combination creates 2 to 3 times faster code than a regular gcc (my own micro benchmarks). - I run configure --prefix=/opt/squeak as the default /usr/local is inappropriate for System V. - Furthermore I used CGLAGS="-O2 -fast" ("-O3 -fast -xipo" had problems). - It was necessary to use gmake instead of make due to some incompabilities.
I had to correct the source code at four places: 1. .../platforms/unix/vm/aio.c: System V doesn't know of O_ASYNC. Thus, I had to remove this flag in aioEnable(int fd, void* data, int flags). I don't know whether there is an equivalent for System V. Furthermore, I don't know whether this will be a problem in the resulting executable. 2. .../platforms/unix/vm/sqUnixMain.c: PATH_MAX needs an #include <limits.h> 3. .../platforms/unix/vm-sound-Sun/sqUnixSoundSun.c: static int soundAvailableSpace(void) needs a forward declaration because of the "static" modifier. 4. .../platforms/unix/src/plugins/UnixProcessPlugin/UnixProcessPlugin.c: feof() needs an additional cast. Thus, if ((feof(sqFile->file)) == 0){ gets if ((feof((FILE *)(sqFile->file))) == 0){
The resulting installation runs fine with two remaining problems:
1. Running squeak I get many "iconv_open: Invalid argument" messages on the console. 2. Some UNIT tests fail: running "Tests-VM : FloatMathPluginTests" gives "27 run, 18 passes, 0 expected failures, 2 Failures, 7 errors, 0 unexpected passes" failures: #testFraction #testTan errors: #testArcCos #testArcCosH #testArcSin #testArcSinH #testArcTanH #testLog #testLog10 All the errors are due to "primitiveFailed".
I did these tests in an 3.9-7048 image. Interestingly, running the same tests in the same image on Windows (VM-3.7.1) results in "27 run, 7 passes, 0 expected failures, 0 failures, 20 errors, 0 unexpected passes".
So, is FloatMathPlugin broken on all VMs and how to get rid of the annoying warning messages on the console?
Regards, Andreas
On Tue, Jul 25, 2006 at 04:26:21PM +0200, Andreas Wacknitz wrote:
4. .../platforms/unix/src/plugins/UnixProcessPlugin/UnixProcessPlugin.c: feof() needs an additional cast. Thus, if ((feof(sqFile->file)) == 0){ gets if ((feof((FILE *)(sqFile->file))) == 0){
Hi Andreas,
Thanks for pointing this out. I believe that this bug is resolved in the development version of OSPP at http://www.squeaksource.com/OSProcessPlugin/VMConstruction-Plugins-OSProcess..., so it should not be a problem in future releases of the Unix VM sources.
Dave
vm-dev@lists.squeakfoundation.org