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-OSProcessPlugin-dtl.5.mcz, so it should not be a problem in future releases of the Unix VM sources. Dave |
Free forum by Nabble | Edit this page |