Please see my answers below: On Thu, Dec 22, 2016 at 5:24 AM, Nadav Har'El <[email protected]> wrote:
> Hi, I committed this patch, but I also have a question below: > > > -- > Nadav Har'El > [email protected] > > On Thu, Dec 22, 2016 at 7:20 AM, Waldemar Kozaczuk <[email protected]> > wrote: > >> This patch addresses a build issue where this build command would fail >> due to both jdk 7 and 8 included: >> scripts/build -j4 image=java-tests,openjdk8-fedora && scripts/test.py >> --name java.* >> >> Following build commands should work now: >> scripts/build -j4 image=java-tests && scripts/test.py --name java.* >> scripts/build -j4 image=openjdk8-fedora,java-tests && scripts/test.py >> --name java.* >> >> Signed-off-by: Waldemar Kozaczuk <[email protected]> >> >> --- >> modules/java-tests/Makefile | 5 +---- >> modules/java-tests/module.py | 17 ++--------------- >> modules/java-tests/usr.manifest | 2 -- >> 3 files changed, 3 insertions(+), 21 deletions(-) >> >> diff --git a/modules/java-tests/Makefile b/modules/java-tests/Makefile >> index 7ec7028..55ca28d 100644 >> --- a/modules/java-tests/Makefile >> +++ b/modules/java-tests/Makefile >> @@ -4,12 +4,9 @@ include $(SRC)/modules/java-base/common.gmk >> ifeq ($(arch),aarch64) >> java-targets := >> else >> -java-targets := obj/java.so obj/java_non_isolated.so >> +java-targets := obj/java_non_isolated.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_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 $@) >> > > I don't understand what this does, or what the change changes... > If I understand correctly, you want to have two versions of java.so: > "isolated" and "non-isolated", to test both? > So now you're assuming that by default, because you are requiring "java" > and that defaults to "isolated", you only need to build the non-isolated > version specially? > So I guess if someone now explicitly lists java-non-isolated on the build > line with java-tests, it will fail? > This is not a big loss (why would anybody want to do that in the first > place...) but I am just wondering if that is what you expect to happen. > WK: Yes I am making this assumption and in general I don not like to make assumptions and I wish I did not have to do it here. Maybe there is a better way but things got complicated when I tried to satisfy three a little conflicting requirements - backwards-compatibility (require 'java' thing in apps), modularization and jave-tests which requires both isolated and non-isolated things in single image. So the whole thing is less than ideal. > > There's another thing I don't understand - is compiling > java_non_isolated.so enough to add a non-isolated Java? Don't you need to > also add another jar to the image? > Yes this like java-tests/usr.manifest does this: /java/runjava-non-isolated.jar: ${OSV_BASE}/modules/java-base/runjava-non-isolated/target/runjava-non-isolated.jar > > >> >> diff --git a/modules/java-tests/module.py b/modules/java-tests/module.py >> index 18d64ab..1e872f6 100644 >> --- a/modules/java-tests/module.py >> +++ b/modules/java-tests/module.py >> @@ -1,25 +1,12 @@ >> from osv.modules import api >> from osv.modules.filemap import FileMap >> -import os, os.path >> >> -api.require('java-base') >> - >> -usr_files = FileMap() >> -jdkdir = os.path.basename(os.path.expandvars('${jdkbase}')) >> - >> -usr_files.add('${jdkbase}').to('/usr/lib/jvm/java') \ >> - .include('lib/**') \ >> - .include('jre/**') \ >> - .exclude('jre/lib/security/cacerts') \ >> - .exclude('jre/lib/audio/**') >> - >> -usr_files.link('/usr/lib/jvm/' + jdkdir).to('java') >> -usr_files.link('/usr/lib/jvm/jre').to('java/jre') >> -usr_files.link('/usr/lib/jvm/java/jre/lib/security/cacerts' >> ).to('/etc/pki/java/cacerts') >> +api.require('java') >> >> _jar = '/tests/java/tests.jar' >> _isolates_jar = '/tests/java/isolates.jar' >> >> +usr_files = FileMap() >> usr_files.add('${OSV_BASE}/modules/java-tests/tests/target/ >> runjava-tests.jar').to(_jar) >> usr_files.add('${OSV_BASE}/modules/java-tests/tests-isolate >> s/target/tests-isolates-jar-with-dependencies.jar').to(_isolates_jar) >> >> diff --git a/modules/java-tests/usr.manifest >> b/modules/java-tests/usr.manifest >> index 8145b19..52dd94d 100644 >> --- a/modules/java-tests/usr.manifest >> +++ b/modules/java-tests/usr.manifest >> @@ -6,8 +6,6 @@ >> # >> >> [manifest] >> -/java.so: ${OSV_BASE}/modules/java-tests/obj/java.so >> -/java/runjava-isolated.jar: ${OSV_BASE}/modules/java-base/ >> runjava-isolated/target/runjava-isolated.jar >> /java_non_isolated.so: ${OSV_BASE}/modules/java-tests >> /obj/java_non_isolated.so >> /java/runjava-non-isolated.jar: ${OSV_BASE}/modules/java-base/ >> runjava-non-isolated/target/runjava-non-isolated.jar >> /.java.policy: ${OSV_BASE}/modules/java-tests/.java.policy >> -- >> 2.7.4 >> >> -- >> 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 [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
