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

Phil Race philip.race at oracle.com
Mon Mar 12 11:22:40 PDT 2012


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