3 Replies Latest reply: Jan 14, 2009 5:54 PM by 807557 RSS

    Java RTS requires SSE

    807557
      If you run Java RTS on an x86 processor that lacks SSE support, you get an error:

      dl failure on line 719Error: failed /opt/SUNWrtjv/jre/lib/i386/client/libjvm.so, because ld.so.1: java: fatal: /opt/SUNWrtjv/jre/lib/i386/client/libjvm.so: hardware capability unsupported: 0x800 [ SSE ]

      Apparently RTS requires SSE to run. Does anyone know why this is?

      The SSE requirement means that RTS is incapable of running on many embedded processors, such as the AMD Geode.
        • 1. Re: Java RTS requires SSE
          807557
          Hi Trevor,

          I'm looking into this. I'm not aware of a requirement for SSE - though it is used if available (I think some FP support uses it, and also perhaps volatile long support).

          David Holmes
          • 2. Re: Java RTS requires SSE
            807557
            Trevor,

            Can you run JDK5 -client on this system? I can't see anything that would produce the error you reported. I don't have any machines of this kind to test on :(

            David Holmes
            • 3. Re: Java RTS requires SSE
              807557
              I just found this:

              http://blogs.sun.com/alblog/entry/ridding_or_modifying_hardware_capabilities

              So it appears that the binary is marked as using SSE and so Solaris is refusing to run it::

              ELF 32-bit LSB dynamic lib 80386 Version 1 [SSE MMX CX8 FPU], dynamically linked, not stripped, no debugging information available

              FYI this is the same as for JDK7, but JDK5 has no markings. I'll need to check with the rest of the HS team to see what's going on here and whether we should be applying one of the workarounds mentioned in the blog.

              David Holmes