[Fixed] gzdoom 3.7.x won't compile under the ppc64le arch

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

gzdoom 3.7.x won't compile under the ppc64le arch

Postby Lillian Gizzleway » Sun Feb 03, 2019 11:56 am

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 :-)
Lillian Gizzleway
 

Re: gzdoom 3.7.x won't compile under the ppc64le arch

Postby dpJudas » Sun Feb 03, 2019 4:43 pm

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.
dpJudas
 
 
 
Joined: 28 May 2016

Re: gzdoom 3.7.x won't compile under the ppc64le arch

Postby _mental_ » Mon Feb 04, 2019 3:44 am

I cannot test this as well. Although, I will try to exclude JIT related code from all targets except Intel x64.
_mental_
 
 
 
Joined: 07 Aug 2011

Re: gzdoom 3.7.x won't compile under the ppc64le arch

Postby Rachael » Mon Feb 04, 2019 5:27 am

_mental_ wrote:Although, I will try to exclude JIT related code from all targets except Intel x64.

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.
User avatar
Rachael
Webmaster
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle

Re: gzdoom 3.7.x won't compile under the ppc64le arch

Postby _mental_ » Mon Feb 04, 2019 9:21 am

Should be fixed in 8892cb6.
_mental_
 
 
 
Joined: 07 Aug 2011

Re: gzdoom 3.7.x won't compile under the ppc64le arch

Postby draena » Mon Feb 04, 2019 1:43 pm

_mental_ wrote:Should be fixed in 8892cb6.


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 :-)

Thank you, everyone!
draena
 
Joined: 03 Feb 2019


Return to Closed Bugs

Who is online

Users browsing this forum: No registered users and 2 guests