fix GNU Classpath build

This commit is contained in:
Joel Dice 2009-12-05 19:40:46 -07:00
parent 0c85fc7527
commit 2b4361c060
3 changed files with 32 additions and 9 deletions

View File

@ -54,7 +54,7 @@ ifdef gnu
gnu-object-dep = $(build)/gnu-object.dep
gnu-cflags = -DBOOT_BUILTINS=\"javaio,javalang,javalangreflect,javamath,javanet,javanio,javautil\" -DAVIAN_GNU
gnu-lflags = -lgmp
gnu-objects := $(shell find $(build)/gnu-objects -name "*.o")
gnu-objects = $(shell find $(build)/gnu-objects -name "*.o")
endif
root := $(shell (cd .. && pwd))
@ -446,7 +446,6 @@ gnu-overrides = \
avian/*.class \
avian/resource/*.class \
java/lang/Class.class \
java/lang/Class\$$*.class \
java/lang/Enum.class \
java/lang/InheritableThreadLocal.class \
java/lang/Object.class \
@ -469,7 +468,9 @@ gnu-overrides = \
java/lang/reflect/AccessibleObject.class \
java/lang/reflect/Constructor.class \
java/lang/reflect/Field.class \
java/lang/reflect/Method.class
java/lang/reflect/Method.class \
java/lang/reflect/Proxy.class \
java/lang/reflect/Proxy\$$*.class
test-sources = $(wildcard $(test)/*.java)
test-classes = $(call java-classes,$(test-sources),$(test),$(test-build))

View File

@ -351,7 +351,7 @@ Avian_java_lang_VMClassLoader_getPrimitiveClass
}
extern "C" JNIEXPORT int64_t JNICALL
Avian_java_lang_ClassLoader_defineClass
Avian_avian_SystemClassLoader_defineClass
(Thread*, object, uintptr_t*);
extern "C" JNIEXPORT int64_t JNICALL
@ -367,7 +367,7 @@ Avian_java_lang_VMClassLoader_defineClass
// fprintf(stderr, "define class %s in %p\n", n,
// reinterpret_cast<void*>(arguments[0]));
return Avian_java_lang_ClassLoader_defineClass(t, 0, args);
return Avian_avian_SystemClassLoader_defineClass(t, 0, args);
}
extern "C" JNIEXPORT int64_t JNICALL

View File

@ -173,7 +173,9 @@ turnOffTheLights(Thread* t)
void (*function)(Thread*, object);
memcpy(&function, &finalizerFinalize(t, f), BytesPerWord);
function(t, finalizerTarget(t, f));
if (function) {
function(t, finalizerTarget(t, f));
}
}
for (object* p = &(t->m->tenuredFinalizers); *p;) {
@ -182,7 +184,9 @@ turnOffTheLights(Thread* t)
void (*function)(Thread*, object);
memcpy(&function, &finalizerFinalize(t, f), BytesPerWord);
function(t, finalizerTarget(t, f));
if (function) {
function(t, finalizerTarget(t, f));
}
}
Machine* m = t->m;
@ -1848,8 +1852,9 @@ bootClass(Thread* t, Machine::Type type, int superType, uint32_t objectMask,
super = (superType >= 0 ? arrayBody(t, t->m->types, superType) : 0);
object class_ = t->m->processor->makeClass
(t, 0, BootstrapFlag, fixedSize, arrayElementSize, 0, mask, 0, 0, super, 0,
0, 0, 0, 0, 0, t->m->loader, vtableLength);
(t, 0, BootstrapFlag, fixedSize, arrayElementSize,
arrayElementSize ? 1 : 0, mask, 0, 0, super, 0, 0, 0, 0, 0, 0,
t->m->loader, vtableLength);
set(t, t->m->types, ArrayBody + (type * BytesPerWord), class_);
}
@ -1951,6 +1956,23 @@ boot(Thread* t)
classVmFlags(t, arrayBody(t, m->types, Machine::JvoidType))
|= PrimitiveFlag;
set(t, arrayBody(t, m->types, Machine::BooleanArrayType), ClassStaticTable,
arrayBody(t, m->types, Machine::JbooleanType));
set(t, arrayBody(t, m->types, Machine::ByteArrayType), ClassStaticTable,
arrayBody(t, m->types, Machine::JbyteType));
set(t, arrayBody(t, m->types, Machine::CharArrayType), ClassStaticTable,
arrayBody(t, m->types, Machine::JcharType));
set(t, arrayBody(t, m->types, Machine::ShortArrayType), ClassStaticTable,
arrayBody(t, m->types, Machine::JshortType));
set(t, arrayBody(t, m->types, Machine::IntArrayType), ClassStaticTable,
arrayBody(t, m->types, Machine::JintType));
set(t, arrayBody(t, m->types, Machine::LongArrayType), ClassStaticTable,
arrayBody(t, m->types, Machine::JlongType));
set(t, arrayBody(t, m->types, Machine::FloatArrayType), ClassStaticTable,
arrayBody(t, m->types, Machine::JfloatType));
set(t, arrayBody(t, m->types, Machine::DoubleArrayType), ClassStaticTable,
arrayBody(t, m->types, Machine::JdoubleType));
m->classMap = makeHashMap(t, 0, 0);
m->bootstrapClassMap = makeHashMap(t, 0, 0);