[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