[OpenJDK 2D-Dev] Remove including of link.h to improve portability

Jonathan Lu luchsh at linux.vnet.ibm.com
Tue Mar 13 03:14:19 PDT 2012


Hi Phil,

Thanks a lot for the review and testing, I've splited the patch into two 
parts, one for 2D repository and another for TL. Here's the patch for 2D 
repository:

http://cr.openjdk.java.net/~luchsh/7152519/

So could anybody please help to do another review?

Thanks a lot!

- Jonathan

On 03/13/2012 02:22 AM, Phil Race wrote:
> I added two of those includes myself I believe and I doubt I did it 
> unless needed
> and others apparently found it necessary too. So we need to be sure 
> this is OK.
> However at least one of those I added dates back to Solaris 8 being 
> the build platform
> so maybe its no longer needed.
>
> I ran the patch through our internal jprt build system on all 
> platforms which
> for Solaris uses a recent Solaris 10 update and it built fine. I 
> didn't notice
> any new warnings on the files I know anything about.
>
> > 7152519
> It was incorrectly submitted as awt, I moved it to 2D.
>
> But I think you should split this into 2 patches.
> The above bug can be used for all the 2D ones and push to 2d.
>
> The other one for the nio and security patches can go to the "tl" repo.
>
> -phil.
>
>
>
>
> On 3/11/2012 8:29 PM, Jonathan Lu wrote:
>> Bug 7152519 has been created for this patch.
>>
>> - Jonathan
>>
>> On 03/09/2012 07:49 PM, Jonathan Lu wrote:
>>> Hello 2d-dev,
>>>
>>> I find that link.h is included in several place of OpenJDK code, 
>>> mostly together with dlfcn.h, but this caused portability problem in 
>>> my testing on some Unix platforms, such as AIX.
>>> So far as I see OpenJDK only makes use of basic POSIX.1-2001 
>>> compatible dynamic library manipulation functions, such as dlopen, 
>>> dlclose, dlsym, dlerr functions, no other extensions found, so is 
>>> link.h still neccessary for current implementation? because link.h 
>>> is not found in the c-POSIX standard headers 
>>> (http://en.wikipedia.org/wiki/C_POSIX_library) and I think this 
>>> removal will be an enhancement for portability, does that make sense?
>>>
>>> Here's the proposed patch, since most parts of it are from Java2d so 
>>> I post it here for discussion.
>>> http://cr.openjdk.java.net/~luchsh/remove_link_h/ 
>>> <http://cr.openjdk.java.net/%7Eluchsh/remove_link_h/>
>>>
>>> And one more question, in 
>>> src/solaris/native/sun/java2d/x11/XRBackendNative.c I found 
>>> following comments
>>>  #ifdef __solaris__
>>>  /* Solaris 10 will not have these symbols at runtime */
>>>  #include <link.h>
>>>
>>> And in src/solaris/native/sun/awt/fontpath.c,
>>>  #include <dlfcn.h>
>>>  #ifndef __linux__ /* i.e. is solaris */
>>>  #include <link.h>
>>>  #endif
>>>
>>> I've built successfully on Ubuntu 11.10 32bit and OpenSolaris 
>>> Express 2010.11 x86, the patch seems to be OK, but does anybody know 
>>> the situation on Solaris (e.g. Solaris 10) of this problem?
>>> I assume it will also comply with POSIX.1-2001 standard, and provide 
>>> all the required functions in dlfcn.h, right?
>>>
>>> Cheers!
>>> - Jonathan
>>>
>>
>



More information about the nio-dev mailing list