HotSpot build on SPARC/Solaris

Azeem Jiva azeem.jiva at oracle.com
Tue Sep 6 13:21:45 PDT 2011


Trying to build on SPARC/Solaris I get the following error:

"/root/hsx/src/os/solaris/vm/os_solaris.cpp", line 6428: Error: Formal 
argument 6 of type unsigned* in call to recvfrom(int, void*, unsigned 
long, int, sockaddr*, unsigned*) is being passed int*.
"/root/hsx/src/os/solaris/vm/os_solaris.cpp", line 6428: Error: Formal 
argument 6 of type unsigned* in call to recvfrom(int, void*, unsigned 
long, int, sockaddr*, unsigned*) is being passed int*.

It seems the method signature changed in Solaris 11 from int pointer to 
an unsigned pointer.  I can get around the issue by casting fromlen to 
an unsigned pointer, but that's dangerous.  I guess I'm looking for 
ideas for a better solution to this.

diff -r 7588156f5cf9 src/os/solaris/vm/os_solaris.cpp
--- a/src/os/solaris/vm/os_solaris.cpp  Mon Sep 05 17:09:05 2011 -0700
+++ b/src/os/solaris/vm/os_solaris.cpp  Tue Sep 06 20:07:09 2011 +0000
@@ -6425,7 +6425,7 @@
                               sockaddr *from, int *fromlen) {
     //%%note jvm_r11
    INTERRUPTIBLE_RETURN_INT((int)::recvfrom(fd, buf, nBytes,\
-    flags, from, fromlen), os::Solaris::clear_interrupted);
+    flags, from, (unsigned*)fromlen), os::Solaris::clear_interrupted);
  }

  int os::sendto(int fd, char *buf, int len, int flags,

-- 
Azeem Jiva
@javawithjiva



More information about the hotspot-compiler-dev mailing list