Cannot compile avian with OpenJDK 8u76b03
marvec opened this issue · 3 comments
marvec commented
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
dicej commented
Hi Martin,
Can you tell me what operating system you're using and what version of OpenJDK you're building with?
marvec commented
Sorry for the delay, that was MintLinux 17 and ArchLinux, both with the same results.
dicej commented
Thanks. I just reproduced this with OpenJDK 8u91-b14. I'll work on fixing it.