3.9-7 for Solaris SPARC (problems)

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

3.9-7 for Solaris SPARC (problems)

Andreas Wacknitz
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




Reply | Threaded
Open this post in threaded view
|

Re: 3.9-7 for Solaris SPARC (problems)

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