Greetings.
gdoom 3.7.x don't compile under ppc64(le) architecture; it seems that the cause is asmjit not supporting such arch.
[code]
# error "[asmjit] Couldn't determine the target's calling convention."
In file included from /home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/codeholder.h:13,
from /home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/codeemitter.h:13,
from /home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/assembler.h:12,
from /home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/assembler.cpp:11:
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:477:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignature0(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:486:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignature1(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:496:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignature2(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:506:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignature3(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:516:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignature4(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:526:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignature5(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:536:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignature6(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:546:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignature7(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:556:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignature8(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:566:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignature9(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:576:59: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignature10(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:587:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignatureT(uint32_t ccId = CallConv::kIdHost) noexcept {
^~~~~~~
/home/yamir/gzdoom-src-g3.7.2/gzdoom-g3.7.2/asmjit/asmjit/base/../base/../base/../base/../base/func.h:607:58: error: ‘kIdHost’ no es un miembro de ‘asmjit::CallConv’
ASMJIT_INLINE FuncSignatureX(uint32_t ccId = CallConv::kIdHost) noexcept {
[/code]
Thank you for reading
gzdoom 3.7.x won't compile under the ppc64le arch
Moderator: GZDoom Developers
Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Re: gzdoom 3.7.x won't compile under the ppc64le arch
My answer to this one is the same as the other exotic platforms with similar errors:
I don't own the hardware or software to test this. I am also not interested in acquiring it. It requires active involvement from developers using those platforms to fix these issues.
For anyone interested in creating a PR, two things needs to be done:
1) Improve CMakeLists.txt to not build/include asmjit or the jit_*.cpp files on architectures that aren't compatible.
2) Add empty stubs or some #ifdefs that makes it not call the JIT compiler code (essentially the linker errors that appear when the jit files aren't included). There is already code for x86 redirecting execution to the VM, so relatively speaking not much code needs to be added.
I don't own the hardware or software to test this. I am also not interested in acquiring it. It requires active involvement from developers using those platforms to fix these issues.
For anyone interested in creating a PR, two things needs to be done:
1) Improve CMakeLists.txt to not build/include asmjit or the jit_*.cpp files on architectures that aren't compatible.
2) Add empty stubs or some #ifdefs that makes it not call the JIT compiler code (essentially the linker errors that appear when the jit files aren't included). There is already code for x86 redirecting execution to the VM, so relatively speaking not much code needs to be added.
Re: gzdoom 3.7.x won't compile under the ppc64le arch
I cannot test this as well. Although, I will try to exclude JIT related code from all targets except Intel x64.
Re: gzdoom 3.7.x won't compile under the ppc64le arch
This is probably the best way to handle it to be honest. Just do a blanket exclusion, since the system only supports one architecture anyway, and that's unlikely to change in the immediate future._mental_ wrote:Although, I will try to exclude JIT related code from all targets except Intel x64.
Re: gzdoom 3.7.x won't compile under the ppc64le arch
Should be fixed in 8892cb6.
Re: gzdoom 3.7.x won't compile under the ppc64le arch
I was able to compile and test the engine in the ppc64le hardware with those changes and it works perfectly. Yeah, the issue has been fixed_mental_ wrote:Should be fixed in 8892cb6.
Thank you, everyone!