ptitSeb / Serious-Engine

A port to the OpenPandora (and working fine on plain Linux) of the open source version of a game engine developed by Croteam for the classic Serious Sam games. Status: Working (for both FE and SE).

Home Page:https://pyra-handheld.com/boards/threads/serious-sam-first-encounter.77225/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compile errors on Fedora 34 Workstation

IAMSolaara opened this issue · comments

Hi, I tried compiling this on my computer running Fedora 34 and after installing g++, cmake and SDL2-devel.
Most errors were regarding the ULONG and SLONG types, so I tried doing a massive sed replace of ULONG with unsigned long and of SLONG with long on all .c, .h, .cpp, .y and .es files in Sources.

This now triggers syntax errors for some .es files tho spitting out errors again.

It's weird how I haven't seen a single issue regarding ULONG on Linux. Am I missing perhaps some libraries?

I'm uploading logs soon

This is what I get when compiling using the master branch from the ptitSeb/Serious-Engine repo.
stockrepo.txt

While this is what I get after doing that mass sed replace
replacedALL.txt

I don't think it's a good idea so use sed here.

The error seems to be a conflct between 64bits and 32bits headers. Which one are you building? 32 or 64bits?

I don't think it's a good idea so use sed here.

The error seems to be a conflct between 64bits and 32bits headers. Which one are you building? 32 or 64bits?

64bit

bruh apparently it didn't redirect stderr to the file...

Ok reuploaded stockrepo.txt with everything, double checked this time.
stockrepo.txt

And here's the right replacedALL.txt though I don't think it'll be of much help now...
replacedALL.txt

bruh apparently it didn't redirect stderr to the file...

Use make > log.txt 2>&1 to redirect both stdout and stderr to a file.

Problem is this file /usr/lib/gcc/x86_64-redhat-linux/11/include/ia32intrin.h get included by some other header. And it's wrong because it's a 32bits one. I don't see what include it in the logs you sent

let me see any mentions in /usr/lib of that file

ok so that ia32intrin.h file is included by x86gprintrin.h, which is mentioned at 23% when building CMakeFiles/Shaders.dir/Shaders/AddShaderDS.cpp.o.

let me see which packages owns that file.
EDIT: it's owned by gcc-11.1.1-1.fc34.x86_64...

I'm gonna try to compile this on a clean VM and another machine, all with Fedora 34.

OK, both the other machine and VM stopped at the same spot as before and seem to give the same errors...

VM Log: f34VM.txt
Other machine log: f34om.txt

EDIT: They seem to be out of order after looking at them using MELD but tbh the VM did have many more jobs (16 instead of 4) so that could be the issue
EDIT2: Will have them on the same folder (only have to recompile VM) to have less disorder due to that.

And how are you building? using the build64.sh script or something else?

tried both using build-linux64.sh and by doing mkdir build; cd build; cmake .. -DCMAKE_BUILD_TYPE=Debug;make -j4 > log.txt 2>&1 and got the same results on all 3 machines. (also tried doing 1 by 1 the same steps as in the script, including using RelWithDebInfo instead of Debug, same outcome)

I got it to compile just fine on my Arch machine, dunno what to say tbh...

Also, on a second note, even tho I compiled with -DTFE=TRUE it asks for libEntitiesMP.so which I only get when not having that flag, I only get the one without MP in the name

I had issues building with gcc11 too, but clang build just fine. #36