The java_api.* and jni_helpers.* are actually only used by
java.cc and following httpserver java-related plugins:
- httpserver-jolokia-plugin
- httpserver-jvm-plugin
- josvsym

This patch moves the relevant code out from kernel
and makes it part of java.so.

Signed-off-by: Waldemar Kozaczuk <jwkozac...@gmail.com>
---
 Makefile                                       |  2 --
 modules/httpserver-api/Makefile                |  2 +-
 modules/httpserver-api/module.py               |  1 +
 modules/httpserver-jolokia-plugin/jolokia.cc   |  2 +-
 modules/httpserver-jvm-plugin/jvm.cc           |  2 +-
 modules/java-base/Makefile                     |  3 ++-
 modules/java-base/common.gmk                   |  4 ++--
 modules/java-base/java.cc                      |  4 ++--
 {java => modules/java-base}/jvm/java_api.cc    |  0
 {java => modules/java-base}/jvm/java_api.hh    |  0
 {java => modules/java-base}/jvm/jni_helpers.cc |  0
 {java => modules/java-base}/jvm/jni_helpers.hh |  0
 modules/java-isolated/Makefile                 | 11 +++++++----
 modules/java-non-isolated/Makefile             | 11 +++++++----
 modules/java-tests/Makefile                    |  3 +++
 modules/josvsym/josvsym.cc                     |  2 +-
 16 files changed, 28 insertions(+), 19 deletions(-)
 rename {java => modules/java-base}/jvm/java_api.cc (100%)
 rename {java => modules/java-base}/jvm/java_api.hh (100%)
 rename {java => modules/java-base}/jvm/jni_helpers.cc (100%)
 rename {java => modules/java-base}/jvm/jni_helpers.hh (100%)

diff --git a/Makefile b/Makefile
index 62277d5f..51f76cd6 100644
--- a/Makefile
+++ b/Makefile
@@ -817,8 +817,6 @@ drivers += drivers/clock-common.o
 drivers += drivers/clockevent.o
 drivers += core/elf.o
 drivers += java/jvm/jvm_balloon.o
-drivers += java/jvm/java_api.o
-drivers += java/jvm/jni_helpers.o
 drivers += drivers/random.o
 drivers += drivers/zfs.o
 drivers += drivers/null.o
diff --git a/modules/httpserver-api/Makefile b/modules/httpserver-api/Makefile
index 943fe705..525fafbf 100644
--- a/modules/httpserver-api/Makefile
+++ b/modules/httpserver-api/Makefile
@@ -107,7 +107,7 @@ check-http:
 check-ssl:
        # Test SSL
        cd $(src) && \
-       make image=httpserver-api.fg_ssl,certs,openjdk8-zulu-full,jetty && \
+       make image=httpserver-api.daemon_ssl,certs,openjdk8-zulu-full,jetty && \
        PYTHONPATH=$(src)/scripts 
modules/httpserver-api/tests/testhttpserver-api.py \
                --cert modules/certs/build/client.pem \
                --key modules/certs/build/client.key \
diff --git a/modules/httpserver-api/module.py b/modules/httpserver-api/module.py
index e1da7447..cdedf5a3 100644
--- a/modules/httpserver-api/module.py
+++ b/modules/httpserver-api/module.py
@@ -22,6 +22,7 @@ 
api.require_if_other_module_present('httpserver-jvm-plugin','java')
 # httpserver will run regardless of an explicit command line
 # passed with "run.py -e".
 daemon = api.run_on_init(_exe + ' &!')
+daemon_ssl = api.run_on_init(_exe + ' --ssl &!')
 
 fg = api.run(_exe)
 
diff --git a/modules/httpserver-jolokia-plugin/jolokia.cc 
b/modules/httpserver-jolokia-plugin/jolokia.cc
index 30e3a7cb..75b451e9 100644
--- a/modules/httpserver-jolokia-plugin/jolokia.cc
+++ b/modules/httpserver-jolokia-plugin/jolokia.cc
@@ -15,7 +15,7 @@
 #include <mutex>
 #include <memory>
 #include <regex>
-#include <java/jvm/jni_helpers.hh>
+#include "../java-base/jvm/jni_helpers.hh"
 #include "exception.hh"
 
 using namespace httpserver::json;
diff --git a/modules/httpserver-jvm-plugin/jvm.cc 
b/modules/httpserver-jvm-plugin/jvm.cc
index 68c3760e..b27481ce 100644
--- a/modules/httpserver-jvm-plugin/jvm.cc
+++ b/modules/httpserver-jvm-plugin/jvm.cc
@@ -7,7 +7,7 @@
 
 #include "jvm.hh"
 #include "autogen/jvm.json.hh"
-#include "jvm/java_api.hh"
+#include "../java-base/jvm/java_api.hh"
 #include <string>
 
 namespace httpserver {
diff --git a/modules/java-base/Makefile b/modules/java-base/Makefile
index 13c1858c..d61999cf 100644
--- a/modules/java-base/Makefile
+++ b/modules/java-base/Makefile
@@ -3,7 +3,7 @@ include common.gmk
 ifeq ($(arch),aarch64)
 java-targets :=
 else
-java-targets := obj/jni/monitor.so
+java-targets := obj/jni/monitor.so obj/jvm/jni_helpers.o obj/jvm/java_api.o
 endif
 
 module: all
@@ -13,6 +13,7 @@ all: $(init) $(java-targets)
 init:
        @echo "  MKDIRS"
        $(call very-quiet, mkdir -p obj/jni)
+       $(call very-quiet, mkdir -p obj/jvm)
 .PHONY: init
 
 clean:
diff --git a/modules/java-base/common.gmk b/modules/java-base/common.gmk
index e54a301a..0e2e4690 100644
--- a/modules/java-base/common.gmk
+++ b/modules/java-base/common.gmk
@@ -1,7 +1,5 @@
-
 INCLUDES = -I$(src)/arch/$(arch) -I$(src) -I$(src)/include -I$(src)/arch/common
 INCLUDES += -I$(src)/include/glibc-compat
-INCLUDES += -isystem $(src)/external/$(arch)/acpica/source/include
 INCLUDES += $(shell $(CXX) -E -xc++ - -v </dev/null 2>&1 | awk '/^End/ {exit} 
/^ .*c\+\+/ {print "-isystem" $$0}')
 INCLUDES += -isystem $(src)/include/api
 INCLUDES += -isystem $(src)/include/api/$(arch)
@@ -13,7 +11,9 @@ autodepend = -MD -MT $@ -MP
 COMMON_FLAGS  = -g -Wall -fPIC $(INCLUDES) -O2 $(autodepend) 
-DCONF_debug_memory=0 -D_KERNEL
 CXXFLAGS  = -std=c++11 $(COMMON_FLAGS)
 CFLAGS = -std=gnu99 $(COMMON_FLAGS)
+
 src = $(shell readlink -f ../..)
+java-base-path := $(src)/modules/java-base
 
 RM := /bin/rm
 
diff --git a/modules/java-base/java.cc b/modules/java-base/java.cc
index 74e0d860..796f6e44 100644
--- a/modules/java-base/java.cc
+++ b/modules/java-base/java.cc
@@ -14,9 +14,9 @@
 #include <osv/debug.hh>
 #include <java/jvm/jvm_balloon.hh>
 #include <osv/mempool.hh>
-#include <java/jvm/java_api.hh>
+#include "jvm/java_api.hh"
 #include "osv/version.hh"
-#include <java/jvm/jni_helpers.hh>
+#include "jvm/jni_helpers.hh"
 #include <osv/defer.hh>
 #include <osv/app.hh>
 
diff --git a/java/jvm/java_api.cc b/modules/java-base/jvm/java_api.cc
similarity index 100%
rename from java/jvm/java_api.cc
rename to modules/java-base/jvm/java_api.cc
diff --git a/java/jvm/java_api.hh b/modules/java-base/jvm/java_api.hh
similarity index 100%
rename from java/jvm/java_api.hh
rename to modules/java-base/jvm/java_api.hh
diff --git a/java/jvm/jni_helpers.cc b/modules/java-base/jvm/jni_helpers.cc
similarity index 100%
rename from java/jvm/jni_helpers.cc
rename to modules/java-base/jvm/jni_helpers.cc
diff --git a/java/jvm/jni_helpers.hh b/modules/java-base/jvm/jni_helpers.hh
similarity index 100%
rename from java/jvm/jni_helpers.hh
rename to modules/java-base/jvm/jni_helpers.hh
diff --git a/modules/java-isolated/Makefile b/modules/java-isolated/Makefile
index 549aed5f..e0e15a01 100644
--- a/modules/java-isolated/Makefile
+++ b/modules/java-isolated/Makefile
@@ -8,17 +8,20 @@ else
 java-targets := obj/java.so
 endif
 
-obj/java.o: $(SRC)/modules/java-base/java.cc | init
-       $(call quiet, $(CXX) $(CXXFLAGS) -o $@ -c 
$(SRC)/modules/java-base/java.cc -MMD, CXX $@)
+obj/java.o: $(java-base-path)/java.cc | init
+       $(call quiet, $(CXX) $(CXXFLAGS) -o $@ -c $(java-base-path)/java.cc 
-MMD, CXX $@)
+
+obj/java.so: obj/java.o $(java-base-path)/obj/jvm/java_api.o 
$(java-base-path)/obj/jvm/jni_helpers.o
+       $(call quiet, $(CXX) $(CXXFLAGS) -shared -o $@ $^, LINK $@)
 
 init:
        @echo "  MKDIRS"
        $(call very-quiet, mkdir -p obj)
 
 module: $(java-targets)
-       cd $(SRC)/modules/java-base && mvn -q --projects 
:runjava-common,:runjava-isolated  package -DskipTests=true
+       cd $(java-base-path) && mvn -q --projects 
:runjava-common,:runjava-isolated  package -DskipTests=true
 
 clean:
-       cd $(SRC)/modules/java-base && mvn -q clean
+       cd $(java-base-path) && mvn -q clean
        -rm -f dependency-reduced-pom.xml
        $(call very-quiet, $(RM) -rf obj)
diff --git a/modules/java-non-isolated/Makefile 
b/modules/java-non-isolated/Makefile
index bf87f6d7..19e4a48f 100644
--- a/modules/java-non-isolated/Makefile
+++ b/modules/java-non-isolated/Makefile
@@ -8,17 +8,20 @@ else
 java-targets := obj/java_non_isolated.so
 endif
 
-obj/java_non_isolated.o: $(SRC)/modules/java-base/java.cc | init
-       $(call quiet, $(CXX) $(CXXFLAGS) -DRUN_JAVA_NON_ISOLATED -o $@ -c 
$(SRC)/modules/java-base/java.cc -MMD, CXX $@)
+obj/java_non_isolated.o: $(java-base-path)/java.cc | init
+       $(call quiet, $(CXX) $(CXXFLAGS) -DRUN_JAVA_NON_ISOLATED -o $@ -c 
$(java-base-path)/java.cc -MMD, CXX $@)
+
+obj/java_non_isolated.so: obj/java_non_isolated.o 
$(java-base-path)/obj/jvm/java_api.o $(java-base-path)/obj/jvm/jni_helpers.o
+       $(call quiet, $(CXX) $(CXXFLAGS) -shared -o $@ $^, LINK $@)
 
 init:
        @echo "  MKDIRS"
        $(call very-quiet, mkdir -p obj)
 
 module: $(java-targets)
-       cd $(SRC)/modules/java-base && mvn -q --projects 
:runjava-common,:runjava-non-isolated package -DskipTests=true
+       cd $(java-base-path) && mvn -q --projects 
:runjava-common,:runjava-non-isolated package -DskipTests=true
 
 clean:
-       cd $(SRC)/modules/java-base && mvn -q clean
+       cd $(java-base-path) && mvn -q clean
        -rm -f dependency-reduced-pom.xml
        $(call very-quiet, $(RM) -rf obj)
diff --git a/modules/java-tests/Makefile b/modules/java-tests/Makefile
index 874f3bad..dc3dbb1b 100644
--- a/modules/java-tests/Makefile
+++ b/modules/java-tests/Makefile
@@ -10,6 +10,9 @@ endif
 obj/java_isolated.o: $(SRC)/modules/java-base/java.cc | init
        $(call quiet, $(CXX) $(CXXFLAGS) -o $@ -c 
$(SRC)/modules/java-base/java.cc -MMD, CXX $@)
 
+obj/java_isolated.so: obj/java_isolated.o $(java-base-path)/obj/jvm/java_api.o 
$(java-base-path)/obj/jvm/jni_helpers.o
+       $(call quiet, $(CXX) $(CXXFLAGS) -shared -o $@ $^, LINK $@)
+
 init:
        @echo "  MKDIRS"
        $(call very-quiet, mkdir -p obj)
diff --git a/modules/josvsym/josvsym.cc b/modules/josvsym/josvsym.cc
index 50638298..c74a713e 100644
--- a/modules/josvsym/josvsym.cc
+++ b/modules/josvsym/josvsym.cc
@@ -5,7 +5,7 @@
 #include <thread>
 #include <initializer_list>
 #include <osv/tracecontrol.hh>
-#include <java/jvm/jni_helpers.hh>
+#include "../java-base/jvm/jni_helpers.hh"
 
 static jvmtiEnv * jvmti;
 static trace::generator_id id;
-- 
2.20.1

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to osv-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/20200116042111.4833-1-jwkozaczuk%40gmail.com.

Reply via email to