OpenJDK does not build on Solaris nv82

Kelly O'Hair Kelly.Ohair at Sun.COM
Wed Feb 6 23:51:57 UTC 2008


This is the change I did to JDK6 and the OpenJDK6 files.
Granted it's been pointed out that maybe just doing this include
on both Linux and Solaris should work, I wasn't sure about
doing this include on Linux at the time I made the change.

We use some pretty antique Linux systems for jdk5/jdk6 and the variations
in the Linux systems seems pretty extreme, so I'm never quite sure
what is safe to do that works for both our antique versions and the
newer versions of Linux. :^(

-kto

--- old/src/solaris/hpi/native_threads/src/sys_api_td.c	Fri Jan 11 15:08:55 2008
+++ new/src/solaris/hpi/native_threads/src/sys_api_td.c	Fri Jan 11 15:08:55 2008
@@ -1,5 +1,5 @@
  /*
- * @(#)sys_api_td.c	1.34 05/11/17
+ * @(#)sys_api_td.c	1.35 08/01/11
   *
   * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
   * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
@@ -52,6 +52,8 @@
   */
  #ifdef __linux__
  typedef int rlim_t ;
+#else
+#include <sys/resource.h>
  #endif



Tim Bell wrote:
> Alexey Ushakov wrote:
>> Hello Max,
>>
>> Actually, we've already found this problem and passed to the team 
>> responsible for the code (Cannot provide you  bug id at the moment 
>> though, but will do as soon as I get it). For now you can use 
>> following workaround in openjdk sources (that worked for me):
> 
> This is Bug-ID 6637583
> Build failure on latest Solaris, source missing include of resource.h?
> 
> Kelly has built a fix that you could pull from his repository.
> 
> HTH - Tim
> 
> 
>> ------- src/solaris/hpi/native_threads/src/sys_api_td.c -------
>> 55a56,59
>>  > #if defined(__solaris__)
>>  > #include <sys/resource.h>
>>  > #endif
>>  >
>>
>> Best Regards,
>> Alexey
>>
>>
>> Max (Weijun) Wang wrote:
>>> Hi All
>>>
>>> Just update my Solaris to nv82 and nightly build fails:
>>>
>>> "/net/bounty.prc.sun.com/j2se-jsn/max/work/myjdk/jdk/src/solaris/hpi/native_threads/src/sys_api_td.c", 
>>> line 101: syntax error before or at: limit
>>> "/net/bounty.prc.sun.com/j2se-jsn/max/work/myjdk/jdk/src/solaris/hpi/native_threads/src/sys_api_td.c", 
>>> line 101: warning: undefined or missing type for: limit
>>> "/net/bounty.prc.sun.com/j2se-jsn/max/work/myjdk/jdk/src/solaris/hpi/native_threads/src/sys_api_td.c", 
>>> line 105: undefined symbol: limit
>>> cc: acomp failed for 
>>> /net/bounty.prc.sun.com/j2se-jsn/max/work/myjdk/jdk/src/solaris/hpi/native_threads/src/sys_api_td.c 
>>>
>>> gnumake[5]: *** 
>>> [/net/bounty.prc.sun.com/j2se-jsn/armory/java/re/max_huge/b7open/solaris-sparc/tmp/java/hpi/native_threads/obj/sys_api_td.o] 
>>> Error 2
>>> gnumake[5]: *** Waiting for unfinished jobs....
>>> gnumake[5]: *** Waiting for unfinished jobs....
>>> gnumake[5]: Leaving directory 
>>> `/net/bounty.prc.sun.com/j2se-jsn/max/work/myjdk/jdk/make/java/hpi/native' 
>>>
>>>
>>> It seems that inside the file 
>>> jdk/src/solaris/hpi/native_threads/src/sys_api_td.c, there's a line
>>>      101:   int InitializeIO(rlim_t limit)
>>> and the type rlim_t is not recognized.
>>>
>>> I do a little search and find out that in my /usr/include/sys/stream.h:
>>>
>>> #include <sys/isa_defs.h>
>>> #ifdef _KERNEL
>>> #include <sys/vnode.h>
>>> #endif
>>> #include <sys/poll.h>
>>> #include <sys/strmdep.h>
>>> #include <sys/cred.h>
>>> #include <sys/t_lock.h>
>>> #include <sys/model.h>
>>>
>>> While in the old versions, the sys/vnode.h line is not surrounded in 
>>> #ifdef.
>>>
>>> Anyone can pass this to a Solaris guy?
>>>
>>> Thanks
>>> Max
>>>
>>
> 



More information about the build-dev mailing list