* src/vm/signal.c (signal_thread): Restart sigwait if it has been
[cacao.git] / src / vmcore / linker.c
index abf018cc8f35289ae98f9544f458150ccc884329..49cf74a678c4a805d048e62745ffbb678050960e 100644 (file)
 
 #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 */