United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7153343 Dependency on non-POSIX header file <link.h> causes portability problem
JDK-7153343 : Dependency on non-POSIX header file causes portability problem

Details
Type:
Bug
Submit Date:
2012-03-13
Status:
Closed
Updated Date:
2013-04-22
Project Name:
JDK
Resolved Date:
2012-03-27
Component:
security-libs
OS:
linux
Sub-Component:
java.security
CPU:
x86
Priority:
P4
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:

Related Reports
Backport:
Relates:

Sub Tasks

Description
FULL PRODUCT VERSION :


ADDITIONAL OS VERSION INFORMATION :
Ubuntu 11.10, AIX 7

A DESCRIPTION OF THE PROBLEM :
link.h is included in following source files from OpenJDK codebase

src/solaris/npt/npt_md.h
src/solaris/native/sun/security/pkcs11/j2secmod_md.c
src/solaris/native/sun/security/pkcs11/wrapper/p11_md.c
src/solaris/native/sun/security/jgss/wrapper/NativeFunc.c
src/solaris/native/sun/security/smartcardio/pcsc_md.c
src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c

But link.h is not part of POSIX standard, see http://en.wikipedia.org/wiki/C_POSIX_library, moreover this including causes portability problem for other Unix-like platforms, such as AIX. So far as I see, OpenJDK only uses POSIX.1-2001 compatible dlopen, dlclose, dlsym, dlerror functions, no special extensions involved, so here suggest to remove link.h and use dlfcn.h only.

This bug is created for commiting to tl repository while bug 7152519 is created for 2d repository.


REPRODUCIBILITY :
This bug can be reproduced always.

                                    

Comments
EVALUATION

link.h should be removed, as it is unnecessary.

Changeset: c4e66dc3222d
Author:    littlee
Date:      2012-03-16 10:47 +0800
URL:       http://hg.openjdk.java.net/jdk8/tl/jdk/rev/c4e66dc3222d

7153343: Dependency on non-POSIX header file<link.h>  causes portability problem
Summary: Remove the unneccessary link.h
Reviewed-by: alanb, chegar
Contributed-by: Jonathan Lu<###@###.###>

! src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c
! src/solaris/native/sun/security/jgss/wrapper/NativeFunc.c
! src/solaris/native/sun/security/pkcs11/j2secmod_md.c
! src/solaris/native/sun/security/pkcs11/wrapper/p11_md.c
! src/solaris/native/sun/security/smartcardio/pcsc_md.c
! src/solaris/npt/npt_md.h
                                     
2012-03-17



Hardware and Software, Engineered to Work Together