X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvmcore%2Flinker.c;h=49cf74a678c4a805d048e62745ffbb678050960e;hb=9d4cb0889f6539fc4f2a82784dc4664b1a0f332d;hp=abf018cc8f35289ae98f9544f458150ccc884329;hpb=eeb47fef67768a700bf4e6cdf94a8f23cab46ee5;p=cacao.git diff --git a/src/vmcore/linker.c b/src/vmcore/linker.c index abf018cc8..49cf74a67 100644 --- a/src/vmcore/linker.c +++ b/src/vmcore/linker.c @@ -40,15 +40,16 @@ #include "vm/access.h" #include "vm/array.h" -#include "vm/exceptions.h" -#include "vm/primitive.h" -#include "vm/stringlocal.h" -#include "vm/vm.h" +#include "vm/exceptions.hpp" +#include "vm/primitive.hpp" +#include "vm/string.hpp" +#include "vm/vm.hpp" #include "vm/jit_interface.h" #include "vmcore/class.h" #include "vmcore/classcache.h" +#include "vmcore/globals.hpp" #include "vmcore/loader.h" #include "vmcore/options.h" #include "vmcore/rt-timing.h" @@ -326,6 +327,9 @@ void linker_init(void) vm_abort("linker_init: linking failed"); # if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK) + if (!link_class(class_sun_misc_Signal)) + vm_abort("linker_init: linking failed"); + if (!link_class(class_sun_reflect_MagicAccessorImpl)) vm_abort("linker_init: linking failed"); # endif @@ -523,6 +527,15 @@ static bool linker_overwrite_method(methodinfo *mg, if ((ms->flags & ACC_METHOD_IMPLEMENTED) && ms->name != utf_init) { do { + +#if defined(ENABLE_TLH) + if (mg->flags & ACC_METHOD_MONOMORPHY_USED) { + printf("%s/%s is evil! the siner is %s/%s\n", mg->clazz->name->text, mg->name->text, + ms->clazz->name->text, ms->name->text); + ms->flags |= ACC_METHOD_PARENT_MONOMORPHY_USED; + } +#endif + if (mg->flags & ACC_METHOD_IMPLEMENTED) { /* this adds another implementation */