diff --git a/LibOS/shim/test/apps/openjdk/.gitignore b/LibOS/shim/test/apps/openjdk/.gitignore new file mode 100644 index 00000000..7e6a0b4e --- /dev/null +++ b/LibOS/shim/test/apps/openjdk/.gitignore @@ -0,0 +1,4 @@ +openjdk-* +openjdk-*-jre +*.tar.bz2 +*.class diff --git a/LibOS/shim/test/apps/openjdk/Makefile b/LibOS/shim/test/apps/openjdk/Makefile index 3eaac71e..3053e2a3 100644 --- a/LibOS/shim/test/apps/openjdk/Makefile +++ b/LibOS/shim/test/apps/openjdk/Makefile @@ -4,20 +4,17 @@ ifeq ($(OS),Linux) NPROCS := $(shell grep -c ^processor /proc/cpuinfo) endif -target = $(patsubst %.java,%.class,$(wildcard classes/*.java)) +target = build-java $(patsubst %.java,%.class,$(wildcard classes/*.java)) exec_target = java.manifest clean-extra = clean-classes -JAVA_HOST_HOME = $(shell readlink -f /usr/bin/java | xargs dirname | xargs dirname) +compact_rule = sys.stack.size = 1M\nsys.brk.size = 16M\nglibc.heap_size = 4M\nsgx.enclave_size = 2G\nsgx.thread_num = 16\nsgx.heap_min = 0x80000000 +large_rule = sys.stack.size = 4M\nsys.brk.size = 64M\nglibc.heap_size = 16M\nsgx.enclave_size = 8G\nsgx.thread_num = 32\nsgx.heap_min = 0x40000000 -compact_rule = sys.stack.size = 1M\nsys.brk.size = 16M\nglibc.heap_size = 4M\nsgx.enclave_size = 4G\nsgx.thread_num = 16 -large_rule = sys.stack.size = 4M\nsys.brk.size = 64M\nglibc.heap_size = 16M\nsgx.enclave_size = 8G\nsgx.thread_num = 32 - -ABSPATH_IN_MANIFEST = yes extra_rules = \ -e 's:\$$(DEBUGTYPE):$(if $(DEBUG),inline,none):g' \ - -e 's:\$$(JAVA_HOME):$(JAVA_HOST_HOME):g' \ + -e 's:\$$(JAVA_HOME):$(JAVA_HOME):g' \ -e 's:\$$(RESOURCE_RULE):$(if $(COMPACT),$(compact_rule),$(large_rule)):g' level = ../../ @@ -137,13 +134,13 @@ distclean: clean endif -build-java: $(JAVA_HOME)/bin/java +build-java: $(JAVA_HOME)/bin/java $(JAVAC) java_home: @echo $(JAVA_HOME) -%.class: %.java - javac $< +%.class: %.java $(JAVAC) + $(JAVAC) $< clean-classes: rm -f $(addsuffix .class,$(TEST_CLASS)) diff --git a/LibOS/shim/test/apps/openjdk/java-local.manifest.template b/LibOS/shim/test/apps/openjdk/java-local.manifest.template deleted file mode 100644 index 8ff54717..00000000 --- a/LibOS/shim/test/apps/openjdk/java-local.manifest.template +++ /dev/null @@ -1,46 +0,0 @@ -#!$(PAL) - -loader.preload = file:$(SHIMPATH) -loader.exec = file:$(JAVA_HOME)/bin/java -loader.execname = java -loader.env.LD_LIBRARY_PATH = /jre/lib/amd64:/jre/lib/amd64/jli:/lib:/lib/x86_64-linux-gnu:/usr/lib:/usr/lib/x86_64-linux-gnu -loader.env.PATH = /jre/bin:/bin:/usr/bin -loader.debug_type = none - -fs.mount.lib1.type = chroot -fs.mount.lib1.path = /lib -fs.mount.lib1.uri = file:$(LIBCDIR) - -fs.mount.lib2.type = chroot -fs.mount.lib2.path = /lib/x86_64-linux-gnu -fs.mount.lib2.uri = file:/lib/x86_64-linux-gnu - -fs.mount.jre.type = chroot -fs.mount.jre.path = /jre -fs.mount.jre.uri = file:$(JAVA_HOME) - -fs.mount.usr.type = chroot -fs.mount.usr.path = /usr -fs.mount.usr.uri = file:/usr - -sys.stack.size = 256K -sys.brk.size = 16M -glibc.heap_size = 16M - -sgx.enclave_size = 512M -sgx.thread_num = 16 - -sgx.trusted_files.ld = file:$(LIBCDIR)/ld-linux-x86-64.so.2 -sgx.trusted_files.libc = file:$(LIBCDIR)/libc.so.6 -sgx.trusted_files.libdl = file:$(LIBCDIR)/libdl.so.2 -sgx.trusted_files.libm = file:$(LIBCDIR)/libm.so.6 -sgx.trusted_files.libpthread = file:$(LIBCDIR)/libpthread.so.0 -sgx.trusted_files.librt = file:/lib/x86_64-linux-gnu/librt.so.1 -sgx.trusted_files.libgcc = file:/lib/x86_64-linux-gnu/libgcc_s.so.1 -sgx.trusted_files.libcpp = file:/usr/lib/x86_64-linux-gnu/libstdc++.so.6 -sgx.trusted_files.libnss1 = file:/lib/x86_64-linux-gnu/libnss_compat.so.2 -sgx.trusted_files.libnss2 = file:/lib/x86_64-linux-gnu/libnss_files.so.2 -sgx.trusted_files.libnsl = file:/lib/x86_64-linux-gnu/libnsl.so.1 - -sgx.allowed_files.java_home = file:$(JAVA_HOME) -sgx.allowed_files.classes = file:classes diff --git a/LibOS/shim/test/apps/openjdk/java.manifest.template b/LibOS/shim/test/apps/openjdk/java.manifest.template index ae9a0d57..bb1f1420 100644 --- a/LibOS/shim/test/apps/openjdk/java.manifest.template +++ b/LibOS/shim/test/apps/openjdk/java.manifest.template @@ -3,7 +3,7 @@ loader.preload = file:$(SHIMPATH) loader.exec = file:$(JAVA_HOME)/bin/java loader.execname = java -loader.env.LD_LIBRARY_PATH = $(JAVA_HOME)/lib/amd64:$(JAVA_HOME)/lib/amd64/jli:/graphene:/lib/x86_64-linux-gnu:/usr/lib:/usr/lib/x86_64-linux-gnu +loader.env.LD_LIBRARY_PATH = /jre/lib/amd64:/jre/lib/amd64/jli:/graphene:/lib/x86_64-linux-gnu:/usr/lib:/usr/lib/x86_64-linux-gnu loader.env.PATH = /jre/bin:/bin:/usr/bin loader.debug_type = $(DEBUGTYPE) @@ -16,7 +16,7 @@ fs.mount.lib2.path = /lib/x86_64-linux-gnu fs.mount.lib2.uri = file:/lib/x86_64-linux-gnu fs.mount.jre.type = chroot -fs.mount.jre.path = $(JAVA_HOME) +fs.mount.jre.path = /jre fs.mount.jre.uri = file:$(JAVA_HOME) fs.mount.usr.type = chroot @@ -29,31 +29,22 @@ fs.mount.tmp.uri = file:/tmp $(RESOURCE_RULE) -sgx.trusted_files.ld = file:$(LIBCDIR)/ld-linux-x86-64.so.2 -sgx.trusted_files.libc = file:$(LIBCDIR)/libc.so.6 -sgx.trusted_files.libdl = file:$(LIBCDIR)/libdl.so.2 -sgx.trusted_files.librt = file:$(LIBCDIR)/librt.so.1 -sgx.trusted_files.libm = file:$(LIBCDIR)/libm.so.6 -sgx.trusted_files.libpthread = file:$(LIBCDIR)/libpthread.so.0 -sgx.trusted_files.libresolv = file:$(LIBCDIR)/libresolv.so.2 -sgx.trusted_files.libnssdns = file:/lib/x86_64-linux-gnu/libnss_dns.so.2 -sgx.trusted_files.libnssfiles = file:/lib/x86_64-linux-gnu/libnss_files.so.2 -sgx.trusted_files.libnsscompact = file:/lib/x86_64-linux-gnu/libnss_compat.so.2 -sgx.trusted_files.libnssnis = file:/lib/x86_64-linux-gnu/libnss_nis.so.2 -sgx.trusted_files.libgcc = file:/lib/x86_64-linux-gnu/libgcc_s.so.1 -sgx.trusted_files.libcpp = file:/usr/lib/x86_64-linux-gnu/libstdc++.so.6 -sgx.trusted_files.libnsl = file:/lib/x86_64-linux-gnu/libnsl.so.1 -sgx.trusted_files.libz = file:/lib/x86_64-linux-gnu/libz.so.1 -sgx.trusted_files.libgio = file:/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 -sgx.trusted_files.libgobject = file:/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 -sgx.trusted_files.libglib = file:/lib/x86_64-linux-gnu/libglib-2.0.so.0 -sgx.trusted_files.libgmodule = file:/usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 -sgx.trusted_files.libselinux = file:/lib/x86_64-linux-gnu/libselinux.so.1 -sgx.trusted_files.libffi = file:/usr/lib/x86_64-linux-gnu/libffi.so.6 -sgx.trusted_files.libpcre = file:/lib/x86_64-linux-gnu/libpcre.so.3 +sgx.search_trusted_libs.libc = file:$(LIBCDIR) +sgx.search_trusted_libs.java = file:$(JAVA_HOME)/lib/amd64 +sgx.search_trusted_libs.java_server = file:$(JAVA_HOME)/lib/amd64/server + +sgx.trusted_libs.librt = file:$(LIBCDIR)/librt.so.1 +sgx.trusted_libs.libjava = file:$(JAVA_HOME)/lib/amd64/libjava.so +sgx.trusted_libs.libjli = file:$(JAVA_HOME)/lib/amd64/jli/libjli.so +sgx.trusted_libs.libjvm = file:$(JAVA_HOME)/lib/amd64/server/libjvm.so +sgx.trusted_libs.libzip = file:$(JAVA_HOME)/lib/amd64/libzip.so +sgx.trusted_libs.libnssc = file:/lib/x86_64-linux-gnu/libnss_compat.so.2 +sgx.trusted_libs.libnssf = file:/lib/x86_64-linux-gnu/libnss_files.so.2 +sgx.trusted_libs.libnssn = file:/lib/x86_64-linux-gnu/libnss_nis.so.2 + +sgx.trusted_files.jvmcfg = file:$(JAVA_HOME)/lib/amd64/jvm.cfg +sgx.trusted_files.meta_index = file:$(JAVA_HOME)/lib/meta-index -sgx.allowed_files.java_home = file:$(JAVA_HOME) -sgx.allowed_files.java_lib = file:/usr/lib/jvm/java-7-openjdk-amd64/lib/ct.sym sgx.allowed_files.classes = file:classes sgx.allowed_files.tmp = file:/tmp sgx.allowed_files.xml_out = file:xml_out