Package: openjdk-11 / 11.0.4+11-1~deb10u1

jexec.diff Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
--- a/src/java.base/unix/native/launcher/jexec.c
+++ b/src/java.base/unix/native/launcher/jexec.c
@@ -168,9 +168,10 @@ int main(int argc, const char * argv[])
 
     /* Get the path to the java binary, which is in a known position relative
      * to our current position, which is in argv[0]. */
-    if (getJavaPath(argv[argi++], java, RELATIVE_DEPTH) != 0) {
+    if (getJavaPath(JDK_BASE_DIR "/lib/jexec", java, RELATIVE_DEPTH) != 0) {
         errorExit(errno, MISSING_JAVA_MSG);
     }
+    argi++;
     alen = (argc + 2) * (sizeof (const char *));
     if (alen <= 0 || alen > INT_MAX / sizeof(char *)) {
         errorExit(errno, BAD_ARG_MSG);
--- a/make/launcher/Launcher-java.base.gmk
+++ b/make/launcher/Launcher-java.base.gmk
@@ -72,6 +72,9 @@ $(eval $(call SetupBuildLauncher, keytoo
 ################################################################################
 
 ifeq ($(OPENJDK_TARGET_OS), linux)
+  ifeq (,$(DEBIAN_JDK_BASE_DIR))
+    $(error DEBIAN_JDK_BASE_DIR must be defined for jexec build)
+  endif
   $(eval $(call SetupJdkExecutable, BUILD_JEXEC, \
       NAME := jexec, \
       SRC := $(TOPDIR)/src/$(MODULE)/unix/native/launcher, \
@@ -79,7 +82,7 @@ ifeq ($(OPENJDK_TARGET_OS), linux)
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKEXE) \
           -I$(TOPDIR)/src/$(MODULE)/share/native/libjli, \
-      CFLAGS_linux := -fPIC, \
+      CFLAGS_linux := -fPIC '-DJDK_BASE_DIR="$(DEBIAN_JDK_BASE_DIR)"', \
       CFLAGS_solaris := -KPIC, \
       LDFLAGS := $(LDFLAGS_JDKEXE), \
       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \