[vmkit-commits] [PATCH] Hook JnjvmClassLoader to make use of appropriate Classpath

Nicolas Geoffray nicolas.geoffray at gmail.com
Wed Oct 26 13:09:40 PDT 2011


Looks good, but

On Wed, Oct 26, 2011 at 2:31 AM, Will Dietz <wdietz2 at illinois.edu> wrote:

> Inlined below.
>
> Note that even with the previous versioning patch this still fails to
> load libjava.so because we don't actually export the required JVM_*
> symbols yet :).
>
> ~Will
>
> >From 955540d76d1b0e4e819e1cc70ee8b306da2f05f9 Mon Sep 17 00:00:00 2001
> From: Will Dietz <w at wdtz.org>
> Date: Fri, 14 Oct 2011 05:19:58 -0500
> Subject: [PATCH 3/3] Hook JnjvmClassLoader to make use of OpenJDK stuff for
>  an OpenJDK build.
>
> ---
>  lib/J3/ClassLib/Classpath.h.in          |    6 ++++++
>  lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp |    4 ++++
>  lib/J3/VMCore/JnjvmClassLoader.cpp      |    4 ++--
>  3 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/lib/J3/ClassLib/Classpath.h.in b/lib/J3/ClassLib/
> Classpath.h.in
> index 67a3f9f..e0e628f 100644
> --- a/lib/J3/ClassLib/Classpath.h.in
> +++ b/lib/J3/ClassLib/Classpath.h.in
> @@ -17,6 +17,9 @@
>  #define GNUClasspathGlibj "@classpathglibj@"
>  #define GNUClasspathVersion "@classpathversion@"
>
> +#define ClasslibBootEnv GNUClasspathGlibj
> +#define ClasslibLibEnv GNUClasspathLibs
> +
>  #else
>
>  // OpenJDK values
> @@ -45,4 +48,7 @@
>   ":" "/usr/lib" \
>   ":" "/usr/lib64"
>
> +#define ClasslibBootEnv OpenJDKBootPath
> +#define ClasslibLibEnv OpenJDKLibPaths
> +
>  #endif // USE_OPENJDK
> diff --git a/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp
> b/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp
> index 11226b3..7ffe434 100644
> --- a/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp
> +++ b/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp
> @@ -7,6 +7,7 @@
>  //
>
>  //===----------------------------------------------------------------------===//
>
> +#include "Classpath.h"
>  #include "ClasspathReflect.h"
>  #include "JavaAccess.h"
>  #include "JavaClass.h"
> @@ -538,6 +539,9 @@ extern "C" JavaString*
> Java_java_lang_VMSystem_getenv__Ljava_lang_String_2(JavaS
>
>  void Classpath::initialiseClasspath(JnjvmClassLoader* loader) {
>
> +  // Load OpenJDK's libjava.so
> +  assert(loader->loadLib(OpenJDKLibJava));
>

The assert can be removed by the compiler. Is that the intended behavior of
your change? Maybe you should do:
void* res = loader->loadLib(OpenJDKLibJava);
assert(res);

?


> +
>   newClassLoader =
>     UPCALL_CLASS(loader, "java/lang/ClassLoader");
>
> diff --git a/lib/J3/VMCore/JnjvmClassLoader.cpp
> b/lib/J3/VMCore/JnjvmClassLoader.cpp
> index 98d9897..f5d01c5 100644
> --- a/lib/J3/VMCore/JnjvmClassLoader.cpp
> +++ b/lib/J3/VMCore/JnjvmClassLoader.cpp
> @@ -61,8 +61,8 @@
> JnjvmBootstrapLoader::JnjvmBootstrapLoader(mvm::BumpPtrAllocator&
> Alloc,
>   javaSignatures = new(allocator, "SignMap") SignMap();
>   strings = new(allocator, "StringList") StringList();
>
> -  bootClasspathEnv = GNUClasspathGlibj;
> -  libClasspathEnv = GNUClasspathLibs;
> +  bootClasspathEnv = ClasslibBootEnv;
> +  libClasspathEnv = ClasslibLibEnv;
>
>   upcalls = new(allocator, "Classpath") Classpath();
>   bootstrapLoader = this;
> --
> 1.7.5.1
> _______________________________________________
> vmkit-commits mailing list
> vmkit-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/vmkit-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/vmkit-commits/attachments/20111026/b4b3500b/attachment.html>


More information about the vmkit-commits mailing list