ReadyTalk / avian

[INACTIVE] Avian is a lightweight virtual machine and class library designed to provide a useful subset of Java's features, suitable for building self-contained applications.

Home Page:https://readytalk.github.io/avian/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot compile avian with OpenJDK 8u76b03

marvec opened this issue · comments

When using both parameters openjdk and openjdk-src I get

src/machine.cpp:6061:79: error: cannot convert ‘vm::GcClass*’ to ‘vm::GcJclass*’ for argument ‘2’ to ‘vm::GcLookup* vm::makeLookup(vm::Thread*, vm::GcJclass*, uint32_t)’
       = makeLookup(t, c, ACC_PUBLIC | ACC_PRIVATE | ACC_PROTECTED | ACC_STATIC);
                                                                               ^
src/machine.cpp:6070:63: error: cannot convert ‘vm::GcClassLoader*’ to ‘vm::GcJclass*’ for argument ‘2’ to ‘vm::GcMethodType* vm::makeMethodType(vm::Thread*, vm::GcJclass*, vm::object, vm::object, vm::GcMethodType*, vm::object, vm::GcString*)’
       t, c->loader(), invocation->template_()->spec(), 0, 0, 0);
                                                               ^
src/machine.cpp:6104:14: error: cannot convert ‘vm::GcClassLoader*’ to ‘vm::GcJclass*’ for argument ‘2’ to ‘vm::GcMethodType* vm::makeMethodType(vm::Thread*, vm::GcJclass*, vm::object, vm::object, vm::GcMethodType*, vm::object, vm::GcString*)’
             0);
              ^
src/machine.cpp:6123:63: error: invalid conversion from ‘int’ to ‘vm::GcMethodType*’ [-fpermissive]
             = makeMethodHandle(t, kind, c->loader(), method, 0);
                                                               ^
src/machine.cpp:6123:63: error: cannot convert ‘vm::GcMethod*’ to ‘vm::GcMethodHandle*’ for argument ‘4’ to ‘vm::GcMethodHandle* vm::makeMethodHandle(vm::Thread*, vm::GcMethodType*, vm::object, vm::GcMethodHandle*, uint8_t)’
src/machine.cpp:6163:79: error: invalid conversion from ‘unsigned int’ to ‘vm::GcMethodType*’ [-fpermissive]
             : makeMethodHandle(t, REF_invokeSpecial, c->loader(), bootstrap, 0);
                                                                               ^
src/machine.cpp:6163:79: error: cannot convert ‘vm::GcMethod*’ to ‘vm::GcMethodHandle*’ for argument ‘4’ to ‘vm::GcMethodHandle* vm::makeMethodHandle(vm::Thread*, vm::GcMethodType*, vm::object, vm::GcMethodHandle*, uint8_t)’
make: *** [build/linux-x86_64-debug-openjdk-src/machine.o] Error 1

When using just openjdk, I get:

src/classpath-openjdk.cpp: In member function ‘virtual vm::GcThread* {anonymous}::local::MyClasspath::makeThread(vm::Thread*, vm::Thread*)’:
src/classpath-openjdk.cpp:533:28: error: no matching function for call to ‘vm::GcThread::setName(vm::Thread*&, vm::GcCharArray*&)’
     thread->setName(t, name);
                            ^
src/classpath-openjdk.cpp:533:28: note: candidate is:
In file included from src/avian/machine.h:1758:0,
                 from src/classpath-openjdk.cpp:11:
build/linux-x86_64-debug-openjdk/type-declarations.cpp:5141:8: note: void vm::GcThread::setName(vm::Thread*, vm::GcString*)
   void setName(Thread* t UNUSED, GcString* value) { setField(t, this , ThreadName, reinterpret_cast<object>(value)); }
        ^
build/linux-x86_64-debug-openjdk/type-declarations.cpp:5141:8: note:   no known conversion for argument 2 from ‘vm::GcCharArray*’ to ‘vm::GcString*’
make: *** [build/linux-x86_64-debug-openjdk/classpath-openjdk.o] Error 1

Hi Martin,

Can you tell me what operating system you're using and what version of OpenJDK you're building with?

Sorry for the delay, that was MintLinux 17 and ArchLinux, both with the same results.

Thanks. I just reproduced this with OpenJDK 8u91-b14. I'll work on fixing it.