aboutsummaryrefslogtreecommitdiffstats
path: root/make
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2019-06-17 04:08:24 +0200
committerSven Gothel <[email protected]>2019-06-17 04:08:24 +0200
commit330dad069dee5a0cc0480cf5cd9052000004223a (patch)
tree97593f5e7586c3aa12055c37cd0ac5d829488827 /make
parent52a6d4ef4133a998824236af9bb48d0ea65359a9 (diff)
Bug 1363: Java 11: Recognize Java9+ ..; Support JEP 178 static linkage libgluegen-rt[.so] -> libgluegen_rt[.so|.a]
Recognize Java9+ .. - Recognize new Java9+ version string as of JEP 223 - Avoid Classpath's private findLibrary call +++ Support JEP 178 static linkage (OpenJDK 1.8) - Need to change native library basename: libgluegen-rt[.so] -> libgluegen_rt[.so|.a] since the dash '-' is not supported in a ANSI-c function name. - Added 'JNI_OnLoad_gluegen_rt' to recognize statical linked JNI code - Added JNI_VERSION_1_8 to jni/jni.h
Diffstat (limited to 'make')
-rw-r--r--make/build.xml15
-rw-r--r--make/stub_includes/jni/jni.h4
2 files changed, 8 insertions, 11 deletions
diff --git a/make/build.xml b/make/build.xml
index a03ef68..cb21bdf 100644
--- a/make/build.xml
+++ b/make/build.xml
@@ -436,26 +436,20 @@
<target name="c.rename.lib.mingw" if="isMingW">
<!-- FIXME: this is a hack; the cpptask should have an option to change the
suffix or at least understand the override from .so to .dll -->
- <move file="${build}/obj/libgluegen-rt.so" tofile="${build}/obj/gluegen-rt.dll" />
- </target>
-
- <target name="c.rename.lib.macosx" if="isOSX">
- <copy file="${build}/obj/libgluegen-rt.dylib" tofile="${build}/obj/libgluegen-rt.so" />
+ <move file="${build}/obj/libgluegen_rt.so" tofile="${build}/obj/gluegen_rt.dll" />
</target>
<target name="c.manifest" if="isVC8Family">
<!-- exec mt, the Microsoft Manifest Tool, to include DLL manifests in order to resolve the location of msvcr80.dll -->
- <msvc.manifest objdir="${build}/obj" dllname="gluegen-rt" />
+ <msvc.manifest objdir="${build}/obj" dllname="gluegen_rt" />
</target>
<target name="gluegen.build.native" depends="init, c.configure" >
<property name="c.compiler.src.files.common" value="src/native/common/*.c" />
<property name="c.compiler.src.files.os" value="src/native/${c.src.dir.os}/*.c" />
- <property name="output.lib.name" value="gluegen-rt" />
- <condition property="output.lib.name.os" value="lib${output.lib.name}.so"><isset property="isUnix"/></condition>
- <condition property="output.lib.name.os" value="${output.lib.name}.dll"><isset property="isWindows"/></condition>
- <condition property="output.lib.name.os" value="lib${output.lib.name}.dylib"><isset property="isOSX"/></condition>
+ <property name="output.lib.name" value="gluegen_rt" /> <!-- dash replaced by underscore to allow static linkage via JEP 178 -->
+ <property name="output.lib.name.os" value="${native.library.prefix}${output.lib.name}.${native.library.suffix}" />
<uptodate property="gluegen.build.skip.native">
<srcfiles dir= "${project.root}" includes="${c.compiler.src.files.os}"/>
@@ -543,7 +537,6 @@
<antcall target="gluegen.build.a.symbols" inheritAll="true" inheritRefs="true" />
<antcall target="c.rename.lib.mingw" inheritRefs="true" />
- <antcall target="c.rename.lib.macosx" inheritRefs="true" />
<antcall target="gluegen.cpptasks.striplibs" inheritRefs="true">
<param name="libdir" value="${gluegen.lib.dir}"/>
diff --git a/make/stub_includes/jni/jni.h b/make/stub_includes/jni/jni.h
index b4c6c1d..eac2640 100644
--- a/make/stub_includes/jni/jni.h
+++ b/make/stub_includes/jni/jni.h
@@ -164,6 +164,7 @@ typedef long JNIEnv;
#define JDK1_2
#define JDK1_4
+#define JDK1_8
#define _JNI_IMPORT_OR_EXPORT_ JNIIMPORT
@@ -171,6 +172,7 @@ typedef long JNIEnv;
#define JNI_VERSION_1_2 0x00010002
#define JNI_VERSION_1_4 0x00010004
#define JNI_VERSION_1_6 0x00010006
+#define JNI_VERSION_1_8 0x00010008
#else /* __GLUEGEN__ */
@@ -1859,6 +1861,7 @@ typedef struct JavaVMAttachArgs {
#define JDK1_2
#define JDK1_4
+#define JDK1_8
struct JNIInvokeInterface_ {
void *reserved0;
@@ -1923,6 +1926,7 @@ JNI_OnUnload(JavaVM *vm, void *reserved);
#define JNI_VERSION_1_2 0x00010002
#define JNI_VERSION_1_4 0x00010004
#define JNI_VERSION_1_6 0x00010006
+#define JNI_VERSION_1_8 0x00010008
#endif /* __GLUEGEN__ */