View Issue Details

IDProjectCategoryView StatusLast Update
0004857The Dark ModCodingpublic30.01.2022 21:00
Reportercaseyac Assigned Tostgatilov  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
PlatformA-EON Cyrus, PPC64 e5500OSDebianOS Versionunstable
Product VersionTDM 2.06 
Target VersionTDM 2.10Fixed in VersionTDM 2.10 
Summary0004857: Build Error due to reference to cpuid.h on PPC64
DescriptionThe build and target system is an A-EON Cyrus board, a 64-bit Freescale PowerPC e5500 based system running Debian unstable (64-bit kernel, 32-bit user-space). Building fails due to reference to cpuid.h. Please consider fixing; the A-EON Cyrus is a current, consumer marketed system.
Build Fail:
g++ -o build/scons_powerpc/release/core/idlib/math/Rotation.o -c -pipe -Wall -Wno-unknown-pragmas -fmessage-length=0 -std=c++11 -fno-strict-aliasing -fvisibility=hidden -g -O3 -ffast-math -fno-unsafe-math-optimizations -DXTHREADS -Ibuild/scons_powerpc/release/core/sys/scons -Isys/scons -Iinclude -Iinclude/zlib -Iinclude/libjpeg -Iinclude/libpng -Iinclude/devil -Iinclude/ffmpeg -I. -Iidlib -Iframework -Igame idlib/math/Rotation.cpp
g++ -o build/scons_powerpc/release/core/idlib/math/Simd.o -c -pipe -Wall -Wno-unknown-pragmas -fmessage-length=0 -std=c++11 -fno-strict-aliasing -fvisibility=hidden -g -O3 -ffast-math -fno-unsafe-math-optimizations -DXTHREADS -Ibuild/scons_powerpc/release/core/sys/scons -Isys/scons -Iinclude -Iinclude/zlib -Iinclude/libjpeg -Iinclude/libpng -Iinclude/devil -Iinclude/ffmpeg -I. -Iidlib -Iframework -Igame idlib/math/Simd.cpp
idlib/math/Simd.cpp:21:10: fatal error: cpuid.h: No such file or directory
 #include <cpuid.h>
          ^~~~~~~~~
compilation terminated.
scons: *** [build/scons_powerpc/release/core/idlib/math/Simd.o] Error 1
scons: building terminated because of errors.
casey@Utopia:~/thedarkmod.2.06.src$
Steps To ReproduceAttempt build on a powerpc or emulated powerpc system.
TagsNo tags attached.

Relationships

related to 0004550 resolvedstgatilov Cleanup of SIMD code 

Activities

stgatilov

stgatilov

05.07.2018 03:01

administrator   ~0010642

OMG, wtf cpu is this?!!11 =)

I think PowerPC CPU with Linux OS was never supported even by ID software. At least this was never in consideration for TDM. Given that Apple has switched to x86 long time ago, there is no reason to support PowerPC except for people with very old Macs and you.

It can probably be fixed during generic SIMD cleanup, which is not going to happen until 2.07 is out.

You can fix compilation yourself: comment out this include, and the big "#ifdef __linux__" section in idSIMD::InitProcessor.
duzenko

duzenko

05.07.2018 07:36

developer   ~0010643

Please provide a patch for us to merge, because setting up a PPC VM for build is "too much stress".
stgatilov

stgatilov

14.04.2021 13:12

administrator   ~0013848

I'm not sure if @caseyac is still here...

I have done cleanup of SIMD code (0004550), and wrapped all the x86-specific madness under proper ifdefs.
So now (at least at rev 9279) it should be possible to compile TDM for PowerPC (after adding CPUSTRING define).
However:
  1) You will have to build all third-party libs for your platform, and I'm pretty sure you will have problems to overcome. See ThirdParty/readme.md.
  2) Some additional problems might arise when you run built TDM (like calling convention in scripting engine).

Issue History

Date Modified Username Field Change
04.07.2018 04:30 caseyac New Issue
05.07.2018 02:50 stgatilov Relationship added related to 0004550
05.07.2018 03:01 stgatilov Note Added: 0010642
05.07.2018 07:36 duzenko Note Added: 0010643
14.04.2021 13:12 stgatilov Note Added: 0013848
14.04.2021 13:13 stgatilov Assigned To => stgatilov
14.04.2021 13:13 stgatilov Status new => feedback
14.04.2021 13:13 stgatilov Target Version => TDM 2.10
30.01.2022 21:00 nbohr1more Status feedback => resolved
30.01.2022 21:00 nbohr1more Resolution open => fixed
30.01.2022 21:00 nbohr1more Fixed in Version => TDM 2.10