FreeBSD Spiele Umfrage

Und ja, UT2004 ist heute noch cool und lohnt sich für mich zumindest.
An dem Spiel merkt man selber das man A.L.T. wird/ist.
Das Gute aber ist, ich kann das Game nun mit meinen Kindern (alt genug) im LAN spielen. Besser als dieser Fortnite Aufguss/Remake ;-)

Als Reaktion auf diesen Thread gestern Abend mal wieder Q3 ausgepackt und gezockt. Ja man merkt es leider :D Das wirklich schlimme ist: Ich bin noch jung genug um zu wissen, wie lahm ich manchmal bin.
 
Es kommt drauf an :) Ich sehe bei Q2, dass man vielleicht keine 20 mehr ist und die Reflexe von damals nicht mehr erreichen kann, aber auch Training eine ganz große Rolle spielt. Gegen die Elite, also die Nerds, die all die Jahre dabei geblieben sind und seit inzwischen 27 Jahren jeden Abend spielen, bin ich völlig chancenlos und werde es auch immer bleiben. Aber wenn ich die Single Player Kampagnen des Hauptspiels und vor allem der hammerharten Addons jetzt wieder mal auf nennenswerten Schwierigkeitsgrad spielen würde, wäre ich hinterher schon ganz gut drin. Dann noch ein paar Tage Deathmatch und ich wäre wieder deutlich über dem Mittelfeld.
 
Also der Thread hat bei mir auch die Lust erweckt, mal wieder UT2004 auszuprobieren. Ich habe noch die alte DVD mit Seriennummer, auf der sogar gleich der Linux-Installer mit drauf ist. Die Installation hat geklappt und das Spiel lief auf Anhieb mit dem c7-Linuxulator. War allerdings noch Version 3186. Danach habe ich noch das Unreal Tournament Megapack 2004 installiert (muss leider manuell mit cpgemacht werden) und damit war das Spiel auf dem letzten Stand. Es startete allerdings dann nicht mehr mit ut2004. Ein kurzes Googeln brachte die Antwort, man muss das 64-Bit Binary aus dem System-Ordener nehmen. Dann noch das Editieren der Unreal.ini wegen dem Master Server (befindet sich übrigens im System-Order des Users!) und dann konnte es auch Online losgehen. Allerdings weiß ich nicht, ob ich gegen Bots oder reale Spieler gespielt habe. Und obwohl das Spiel zig wundersachöne Maps hat (sogar auch von UT2003), geht dann wieder das übliche Runterladen von irgendwelchen anderen Maps los, die echt bescheiden sind...
Ich war also nicht so begeistert, die fast allabendliche Partie, die ich mir nach wie vor mit ETQW gönne, hat es in keinem Fall übertroffen.

Zum Thema TDM: Kriege ich nicht installiert:

Code:
# ./tdm_installer.linux64
./tdm_installer.linux64: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./tdm_installer.linux64)
./tdm_installer.linux64: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./tdm_installer.linux64)
./tdm_installer.linux64: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./tdm_installer.linux64)

In diesem Sinne:

TDM kann man sich auch selbst für FreeBSD compilen. Oder konnte man zumindest mal, ich habe es schon lange nicht mehr gemacht.
Könntest Du dieses Wissen mal mit uns teilen? Bzw., wenn das tatsächlich möglich ist, könnte man das doch in die Ports packen? Das wäre mal eine Maßnahme...

Wo wir schon bei dem Thema sind, hier liegen die Quellen für die Linux-Installer einer Menge Spiele:


Also wollte ich mal fragen, ob es auch möglich wäre, die direkt auch für FreeBSD zu kompilieren?
 
Und obwohl das Spiel zig wundersachöne Maps hat (sogar auch von UT2003), geht dann wieder das übliche Runterladen von irgendwelchen anderen Maps los, die echt bescheiden sind...
Dann müssen wir vielleicht mal online spielen mit den bestehenden Maps. Falls ich das zeitlich mal hinbekomme. Spaßig ist es allemal.

Q3 ist mir mittlerweile zu altbacken, aber das hier ist doch interessant, und es läuft hervorragend.

 
Dann müssen wir vielleicht mal online spielen mit den bestehenden Maps. Falls ich das zeitlich mal hinbekomme. Spaßig ist es allemal.

Q3 ist mir mittlerweile zu altbacken, aber das hier ist doch interessant, und es läuft hervorragend.


Multiplayer hab ich D3 nie wirklich gespielt, aber das Original über dhewm3 ist wirklich ein geiler Horrorshooter den ich auch kürzlich erst wieder gezockt habe :)
Dazu gibts einiges an HD Texture Mods, so dass das Game auch heute noch gut aussieht. Das offizielle "remaster", die Doom3 BFG Edition kann ich leider nicht empfehlen, da dort das Gameplay ein anderes ist.
 
Multiplayer hab ich D3 nie wirklich gespielt, aber das Original über dhewm3 ist wirklich ein geiler Horrorshooter den ich auch kürzlich erst wieder gezockt habe :)
Dazu gibts einiges an HD Texture Mods, so dass das Game auch heute noch gut aussieht. Das offizielle "remaster", die Doom3 BFG Edition kann ich leider nicht empfehlen, da dort das Gameplay ein anderes ist.
In der Tat ein geiles Game, auch das "Ressurection of Evil" Add-On. Ich habe es immer mit dem Linux Port gespielt. Gibt es da einen merklichen Unterschied zu dhewm3?
 
Widescreen/WQHD funktioniert ohne Config-Gehacke, es läuft allgemein performanter/besser auf aktueller HW. Ich kann aber nur mit der Win Version vergleichen.
 
So, bin dann auf den in der zweiten Zeile genannten Link (https://wiki.thedarkmod.com/index.php?title=The_Dark_Mod_-_Compilation_Guide) gegangen und habe die Schritte für Linux befolgt. Wir reden wie gesagt darüber, dass Du es angeblich mal für FreeBSD geschafft hast. Bei mir klappt es nicht. Die erforderlichen Packages sind glaube ich installiert. Ich werde mal meine Schritte dokumentieren:

Zuerst habe ich die Dateienstruktur erstellt.

mkdir -p games/darkmod
mkdir -p games/darkmod_src

Dann entsprechend dem Screenshot in der Anleitung mit kdesvn das Gleiche gemacht:

1733490699961.webp

Danach bekam ich das hier:

1733490761249.webp


Wie in der Anleitung weiter beschrieben, habe ich im Verzeichnis "darkmod_src" das Verzeichnis "build" erstellt und bin hineingewechselt.
Dann im Verzeichnis
cmake -DCMAKE_BUILD_TYPE="Release" ..
ausgeführt und danach
make -j
Klappte aber nicht, dafür aber
make

Hier der Terminaloutput:

Code:
$ pwd
/usr/home/werner
$ cd games/darkmod_src/
$ mkdir build
$ cd build/
$ cmake -DCMAKE_BUILD_TYPE="Release" ..
CMake Deprecation Warning at sys/cmake/ucm.cmake:13 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
  CMakeLists.txt:23 (include)


CMake Deprecation Warning at sys/cmake/ucm.cmake:13 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
  sys/cmake/PrecompiledHeader.cmake:1 (include)
  CMakeLists.txt:24 (include)


-- The C compiler identification is Clang 18.1.5
-- The CXX compiler identification is Clang 18.1.5
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test MSSE2_SUPPORTED
-- Performing Test MSSE2_SUPPORTED - Success
Determining SVN revision
-- Conan: Target declared 'ZLIB::ZLIB'
-- Conan: Target declared 'minizip::minizip'
-- Conan: Component target declared 'CURL::libcurl'
-- Conan: Component target declared 'MbedTLS::mbedcrypto'
-- Conan: Component target declared 'MbedTLS::mbedx509'
-- Conan: Component target declared 'MbedTLS::mbedtls'
-- Conan: Target declared 'OpenAL::OpenAL'
-- Conan: Target declared 'ALSA::ALSA'
-- Conan: Component target declared 'Ogg::ogg'
-- Conan: Component target declared 'Vorbis::vorbis'
-- Conan: Component target declared 'Vorbis::vorbisenc'
-- Conan: Component target declared 'Vorbis::vorbisfile'
-- Conan: Component target declared 'vorbis::vorbisenc-alias'
-- Conan: Component target declared 'vorbis::vorbisfile-alias'
-- Conan: Target declared 'vorbis::vorbis'
-- Conan: Target declared 'JPEG::JPEG'
-- Conan: Target declared 'PNG::PNG'
-- Conan: Component target declared 'ffmpeg::avutil'
-- Conan: Component target declared 'ffmpeg::swscale'
-- Conan: Component target declared 'ffmpeg::swresample'
-- Conan: Component target declared 'ffmpeg::avcodec'
-- Conan: Component target declared 'ffmpeg::avformat'
-- Conan: Target declared 'ffmpeg::ffmpeg'
-- Conan: Target declared 'pugixml::pugixml'
-- Conan: Target declared 'glfw'
-- Conan: Target declared 'opengl::opengl'
-- Conan: Component target declared 'xorg::x11'
-- Conan: Component target declared 'xorg::x11-xcb'
-- Conan: Component target declared 'xorg::fontenc'
-- Conan: Component target declared 'xorg::ice'
-- Conan: Component target declared 'xorg::xau'
-- Conan: Component target declared 'xorg::xaw7'
-- Conan: Component target declared 'xorg::xcursor'
-- Conan: Component target declared 'xorg::xdamage'
-- Conan: Component target declared 'xorg::xdmcp'
-- Conan: Component target declared 'xorg::xext'
-- Conan: Component target declared 'xorg::xfixes'
-- Conan: Component target declared 'xorg::xinerama'
-- Conan: Component target declared 'xorg::xkbfile'
-- Conan: Component target declared 'xorg::xmu'
-- Conan: Component target declared 'xorg::xmuu'
-- Conan: Component target declared 'xorg::xpm'
-- Conan: Component target declared 'xorg::xrandr'
-- Conan: Component target declared 'xorg::xrender'
-- Conan: Component target declared 'xorg::xscrnsaver'
-- Conan: Component target declared 'xorg::xt'
-- Conan: Component target declared 'xorg::xv'
-- Conan: Component target declared 'xorg::xxf86vm'
-- Conan: Component target declared 'xorg::xcb-xkb'
-- Conan: Component target declared 'xorg::xcb-icccm'
-- Conan: Component target declared 'xorg::xcb-image'
-- Conan: Component target declared 'xorg::xcb-keysyms'
-- Conan: Component target declared 'xorg::xcb-randr'
-- Conan: Component target declared 'xorg::xcb-render'
-- Conan: Component target declared 'xorg::xcb-renderutil'
-- Conan: Component target declared 'xorg::xcb-shape'
-- Conan: Component target declared 'xorg::xcb-shm'
-- Conan: Component target declared 'xorg::xcb-sync'
-- Conan: Component target declared 'xorg::xcb-xfixes'
-- Conan: Component target declared 'xorg::xcb-xinerama'
-- Conan: Component target declared 'xorg::xcb'
-- Conan: Component target declared 'xorg::xcb-atom'
-- Conan: Component target declared 'xorg::xcb-aux'
-- Conan: Component target declared 'xorg::xcb-event'
-- Conan: Component target declared 'xorg::xcb-util'
-- Conan: Component target declared 'xorg::xcb-dri3'
-- Conan: Component target declared 'xorg::xcb-cursor'
-- Conan: Component target declared 'xorg::xcb-dri2'
-- Conan: Component target declared 'xorg::xcb-glx'
-- Conan: Component target declared 'xorg::xcb-present'
-- Conan: Component target declared 'xorg::xcb-composite'
-- Conan: Component target declared 'xorg::xcb-ewmh'
-- Conan: Component target declared 'xorg::xcb-res'
-- Conan: Component target declared 'xorg::uuid'
-- Conan: Component target declared 'xorg::sm'
-- Conan: Target declared 'xorg::xorg'
-- Conan: Target declared 'doctest::doctest'
-- Conan: Target declared 'tracy::tracy'
-- Configuring done (4.5s)
-- Generating done (0.2s)
-- Build files have been written to: /usr/home/werner/games/darkmod_src/build
$ make -j
make: option requires an argument -- j
usage: make [-BeikNnqrSstWwX]
            [-C directory] [-D variable] [-d flags] [-f makefile]
            [-I directory] [-J private] [-j max_jobs] [-m directory] [-T file]
            [-V variable] [-v variable] [variable=value] [target ...]
$ make
[  0%] Building CXX object CMakeFiles/TheDarkMod.dir/cm/CollisionModel_contacts.cpp.o
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:204:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Matrix.h:2457:18: error: too many arguments provided to function-like macro invocation
 2457 |         ptr = (float *) _alloca16( numColumns * sizeof( float ) );
      |                         ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:87: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                                                                    ^
/usr/include/machine/param.h:78:9: note: macro 'ALIGN' defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |         ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:204:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Matrix.h:2457:18: error: use of undeclared identifier 'ALIGN'
 2457 |         ptr = (float *) _alloca16( numColumns * sizeof( float ) );
      |                         ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:37: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:195:22: error: too many arguments provided to function-like macro invocation
  195 |         temp[0] = (float *) _alloca16( order * sizeof( float ) );
      |                             ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:87: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                                                                    ^
/usr/include/machine/param.h:78:9: note: macro 'ALIGN' defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |         ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:195:22: error: use of undeclared identifier 'ALIGN'
  195 |         temp[0] = (float *) _alloca16( order * sizeof( float ) );
      |                             ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:37: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:196:22: error: too many arguments provided to function-like macro invocation
  196 |         temp[1] = (float *) _alloca16( order * sizeof( float ) );
      |                             ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:87: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                                                                    ^
/usr/include/machine/param.h:78:9: note: macro 'ALIGN' defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |         ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:196:22: error: use of undeclared identifier 'ALIGN'
  196 |         temp[1] = (float *) _alloca16( order * sizeof( float ) );
      |                             ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:37: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:266:26: error: too many arguments provided to function-like macro invocation
  266 |         accumLength = (float *) _alloca16( values.Num() * sizeof( float ) );
      |                                 ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:87: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                                                                    ^
/usr/include/machine/param.h:78:9: note: macro 'ALIGN' defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |         ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:266:26: error: use of undeclared identifier 'ALIGN'
  266 |         accumLength = (float *) _alloca16( values.Num() * sizeof( float ) );
      |                                 ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:37: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:330:21: error: too many arguments provided to function-like macro invocation
  330 |         length = (float *) _alloca16( values.Num() * sizeof( float ) );
      |                            ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:87: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                                                                    ^
/usr/include/machine/param.h:78:9: note: macro 'ALIGN' defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |         ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:330:21: error: use of undeclared identifier 'ALIGN'
  330 |         length = (float *) _alloca16( values.Num() * sizeof( float ) );
      |                            ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:37: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:508:20: error: too many arguments provided to function-like macro invocation
  508 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                           ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:87: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                                                                    ^
/usr/include/machine/param.h:78:9: note: macro 'ALIGN' defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |         ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:508:20: error: use of undeclared identifier 'ALIGN'
  508 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                           ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:37: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:531:20: error: too many arguments provided to function-like macro invocation
  531 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                           ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:87: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                                                                    ^
/usr/include/machine/param.h:78:9: note: macro 'ALIGN' defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |         ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:531:20: error: use of undeclared identifier 'ALIGN'
  531 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                           ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:37: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:555:20: error: too many arguments provided to function-like macro invocation
  555 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                           ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:87: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                                                                    ^
/usr/include/machine/param.h:78:9: note: macro 'ALIGN' defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |         ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:555:20: error: use of undeclared identifier 'ALIGN'
  555 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                           ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:37: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:584:16: error: too many arguments provided to function-like macro invocation
  584 |         c = (float *) _alloca16( (d+1) * sizeof( float ) );
      |                       ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:87: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                                                                    ^
/usr/include/machine/param.h:78:9: note: macro 'ALIGN' defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |         ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:584:16: error: use of undeclared identifier 'ALIGN'
  584 |         c = (float *) _alloca16( (d+1) * sizeof( float ) );
      |                       ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:37: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^
In file included from /usr/home/werner/games/darkmod_src/cm/CollisionModel_contacts.cpp:24:
In file included from /usr/home/werner/games/darkmod_src/idlib/precompiled.h:42:
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1169:17: error: too many arguments provided to function-like macro invocation
 1169 |         d0 = (float *) _alloca16( ( this->values.Num() - 1 ) * sizeof( float ) );
      |                        ^
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:87: note: expanded from macro '_alloca16'
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                                                                    ^
/usr/include/machine/param.h:78:9: note: macro 'ALIGN' defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |         ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
*** Error code 1

Stop.
make[2]: stopped in /usr/home/werner/games/darkmod_src/build
*** Error code 1

Stop.
make[1]: stopped in /usr/home/werner/games/darkmod_src/build
*** Error code 1

Stop.
make: stopped in /usr/home/werner/games/darkmod_src/build
$

Warum klappt das also nicht?
 
@cabriofahrer
Ohne jetzt im Detail geguckt zu haben, aber der offensichtlichste Unterschied ist, das Du LLVM/Clang zum kompilieren nimmst und nicht den GCC.
Ich würde also (wie ja auch von der Anleitung gefordert) den GCC nehmen und die Umgebungsvbariablen entsprechend setzen:
Code:
CC=gcc
CXX=g++
Außerdem wird das make ein GNU Make sein. Auch das musst Du dann natürlich installieren (Package gmake) und dann auch mit gmake aufrufen (das Standard make unter FreeBSD verhält sich anders).
(wobei ich es schon etwas seltsam finde, das man zum Erstellen der Build-Konfig. cmake nimmt und dann zum kompilieren nicht auch cmake nimmt )
 
Wenn man die ersten 3 Thief Teile mochte, kommt man mit The Dark Mod dann auf seine Kosten? Auch Story und nicht nur Gameplay? Ich kannte das nämlich bisher tatsächlich nicht!
 
Wenn man die ersten 3 Thief Teile mochte, kommt man mit The Dark Mod dann auf seine Kosten? Auch Story und nicht nur Gameplay?
Absolut! (Auch wenn man nur Thief 1-2 mochte und das scheußliche dritte von Eidos nicht ;) ) Eine klassische "lange" Story gibts nicht, da es eher einzelne Missionen sind. Aber jede hat ihre eigene Story und den speziellen Charme.
 
Hast es doch erst letztens im User-Lösch Thread gemacht ;) Ich glaube da will sich jemand für den Mod-Posten empfehlen!
 
@cabriofahrer
Ohne jetzt im Detail geguckt zu haben, aber der offensichtlichste Unterschied ist, das Du LLVM/Clang zum kompilieren nimmst und nicht den GCC.
Ich würde also (wie ja auch von der Anleitung gefordert) den GCC nehmen und die Umgebungsvbariablen entsprechend setzen:
Code:
CC=gcc
CXX=g++
Außerdem wird das make ein GNU Make sein. Auch das musst Du dann natürlich installieren (Package gmake) und dann auch mit gmake aufrufen (das Standard make unter FreeBSD verhält sich anders).
(wobei ich es schon etwas seltsam finde, das man zum Erstellen der Build-Konfig. cmake nimmt und dann zum kompilieren nicht auch cmake nimmt )
Und wie genau verwende ich im Beispiel gcc? Also komplette Befehle? Und welche Version überhaupt? Ein pkg search gcc ergibt das hier:

Code:
$ pkg search gcc
aarch64-gcc12-12.3.0_2         Cross GNU Compiler 12 for FreeBSD/aarch64
aarch64-gcc13-13.2.0_2         Cross GNU Compiler 13 for FreeBSD/aarch64
aarch64-gcc14-14.1.0           Cross GNU Compiler 14 for FreeBSD/aarch64
aarch64-none-elf-gcc-11.3.0_3  GNU Compiler Collection for bare metal aarch64 cross-development
afl++-gcc-4.21.c               Fast instrumented fuzzer
amd64-gcc12-12.3.0_2           Cross GNU Compiler 12 for FreeBSD/amd64
amd64-gcc13-13.2.0_2           Cross GNU Compiler 13 for FreeBSD/amd64
amd64-gcc14-14.1.0             Cross GNU Compiler 14 for FreeBSD/amd64
arm-none-eabi-gcc-11.3.0_3     GNU Compiler Collection for bare metal arm cross-development
armv6-gcc12-12.3.0_2           Cross GNU Compiler 12 for FreeBSD/armv6
armv6-gcc13-13.2.0_2           Cross GNU Compiler 13 for FreeBSD/armv6
armv7-gcc12-12.3.0_2           Cross GNU Compiler 12 for FreeBSD/armv7
armv7-gcc13-13.2.0_2           Cross GNU Compiler 13 for FreeBSD/armv7
armv7-gcc14-14.1.0             Cross GNU Compiler 14 for FreeBSD/armv7
avr-gcc-14.1.0                 FSF GCC for Atmel AVR 8-bit RISC cross-development
colorgcc-1.4.5                 Perl script to colorize the terminal output of GCC
gcc-13_5                       Meta-port for the default version of the GNU Compiler Collection
gcc-arm-embedded-10.3.20210921 Complete gcc-based toolcahin for embedded ARM development
gcc-msp430-ti-toolchain-9.3.1.2.20210722_1 Complete gcc-based toolcahin for TI MSP430 uC
gcc10-10.5.0_1                 GNU Compiler Collection 10
gcc11-11.5.0                   GNU Compiler Collection 11
gcc11-devel-11.4.1.s20240710   GNU Compiler Collection 11
gcc12-12.4.0                   GNU Compiler Collection 12
gcc12-devel-12.4.1.s20240919   GNU Compiler Collection 12
gcc13-13.3.0                   GNU Compiler Collection 13
gcc13-devel-13.3.1.s20240920   GNU Compiler Collection 13
gcc14-14.2.0_1                 GNU Compiler Collection 14
gcc14-devel-14.2.1.s20240921,1 GNU Compiler Collection 14
gcc15-devel-15.0.0.s20240922   GNU Compiler Collection 15
gcc6-aux-20180516_3,1          Version of GCC 6 with full Ada support
gccmakedep-1.0.4               Create dependencies in makefiles using 'gcc -M'
i386-gcc12-12.3.0_2            Cross GNU Compiler 12 for FreeBSD/i386
i386-gcc13-13.2.0_2            Cross GNU Compiler 13 for FreeBSD/i386
i386-gcc14-14.1.0              Cross GNU Compiler 14 for FreeBSD/i386
powerpc-gcc12-12.3.0_2         Cross GNU Compiler 12 for FreeBSD/powerpc
powerpc-gcc13-13.2.0_2         Cross GNU Compiler 13 for FreeBSD/powerpc
powerpc-gcc14-14.1.0           Cross GNU Compiler 14 for FreeBSD/powerpc
powerpc64-gcc12-12.3.0_2       Cross GNU Compiler 12 for FreeBSD/powerpc64
powerpc64-gcc13-13.2.0_2       Cross GNU Compiler 13 for FreeBSD/powerpc64
powerpc64-gcc14-14.1.0         Cross GNU Compiler 14 for FreeBSD/powerpc64
py311-pygccxml-2.5.0           Python package for easy C++ declarations navigation
riscv32-unknown-elf-gcc-11.3.0_3 GNU Compiler Collection for bare metal riscv32 cross-development
riscv64-gcc12-12.3.0_2         Cross GNU Compiler 12 for FreeBSD/riscv64
riscv64-gcc13-13.2.0_2         Cross GNU Compiler 13 for FreeBSD/riscv64
riscv64-gcc14-14.1.0           Cross GNU Compiler 14 for FreeBSD/riscv64
riscv64-none-elf-gcc-11.3.0_3  GNU Compiler Collection for bare metal riscv64 cross-development
tigcc-0.96.b8_11               C compiler for the TI89, 92, and 92+ calculators
$

Ich nehme an "gcc-13_5 Meta-port for the default version of the GNU Compiler Collection"?

Also insbesondere
den GCC nehmen und die Umgebungsvbariablen entsprechend setzen:
verstehe ich nicht, deshalb genaue Befehle für das Beispiel, bitte?
Ich bin kein Programmierer/Softwareentwickler, deshalb ist das Ganze für mich absolutes Neuland. Deshalb bat ich ja ursprünglich @Yamagi , sein Wissen mit uns zu teilen. Mit dem Hinweis auf die Anleitung für Linux ist es also leider für jemanden wie mich nicht ausreichend getan.

Was war denn das Thema? Ballerspiele oder Compiler-Errors? :D
Ich habe nichts dagegen, wenn der Teil zum Kompilieren von TDM unter FreeBSD in einen gesonderten Thread ausgelagert wird und dann bis zu einem Ergebnis bzw. einer vollständigen Anleitung für FreeBSD weitergeführt wird, zumal das Spiel offensichtlich Interesse bei mehreren Teilnehmern hervorruft. Eine native Lösung ist natürlich immer schöner als irgendwie mit wine oder proton.
Und dass der Linux Installer bei mir auch nicht funktioniert hat, hatte ich oben auch erwähnt. Vor Jahren klappte es allerdings mal mit der alten Version, hatte das Spiel damals aber aus irgendwelchen Gründen nicht sehr lange gespielt.
 
Ich nehme an "gcc-13_5 Meta-port for the default version of the GNU Compiler Collection"?
Ja. Ich glaube mit einem
pkg install gcc gmake
machst Du erst mal nichts verkehrt. Damit hast Du den GCC und GNU Make.

verstehe ich nicht, deshalb genaue Befehle für das Beispiel, bitte?
Wie gesagt. Du musst die entsprechenden Umgebungsvariablen setzen.
Also
env CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE="Release" ..
Und für den gmake-Aufruf genauso.

Ich bin kein Programmierer/Softwareentwickler, deshalb ist das Ganze für mich absolutes Neuland.
Das verstehe ich.
Ich befürchte aber, mit dem gcc und gmake ist es da nicht getan.
Und die Anleitung nimmt bezug auf ne ubuntu-Version von vor zig Jahren.
Ob das dann überhaupt mit den aktuellen Bibliotheksversionen problemlos durchläuft ist die Frage.
 
Zuletzt bearbeitet:
Guten Morgen allerseits! So, ich habe mal die Anweisungen von @Andy_m4 ausprobiert, leider ohne Erfolg. Ich nehme an, zunächst musste ich erstmal nur den Inhalt im "build" Verzeichnis löschen und der erste Schritt mit kdesvn brauchte nicht wiederholt zu werden?
Also in diesem Sinne:

Code:
$ pwd
/usr/home/werner/games
$ cd darkmod
$ ls
$ cd ..
$ ls
darkmod        darkmod_src
$ cd darkmod_src/
$ ls
CMakeLists.txt            appveyor.yml            glprogs
COMPILING.txt            base                idlib
CiScripts            build                renderer
LICENSE.txt            cm                sound
MayaImport            engine.vcxproj            sys
MayaImport.vcxproj        engine.vcxproj.filters        tdm_installer
MayaImport.vcxproj.filters    engine.vcxproj.user        tdm_package
TheDarkMod.sln            framework            tests
ThirdParty            game                tools
TypeInfo            gen_svnversion.cmd        ui
$ cd build/
$ ls
$ env CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE="Release" ..
CMake Deprecation Warning at sys/cmake/ucm.cmake:13 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
  CMakeLists.txt:23 (include)


CMake Deprecation Warning at sys/cmake/ucm.cmake:13 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
  sys/cmake/PrecompiledHeader.cmake:1 (include)
  CMakeLists.txt:24 (include)


-- The C compiler identification is GNU 13.3.0
-- The CXX compiler identification is GNU 13.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/local/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/local/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test MSSE2_SUPPORTED
-- Performing Test MSSE2_SUPPORTED - Success
Determining SVN revision
Setting up precompiled header for GCC
-- Conan: Target declared 'ZLIB::ZLIB'
-- Conan: Target declared 'minizip::minizip'
-- Conan: Component target declared 'CURL::libcurl'
-- Conan: Component target declared 'MbedTLS::mbedcrypto'
-- Conan: Component target declared 'MbedTLS::mbedx509'
-- Conan: Component target declared 'MbedTLS::mbedtls'
-- Conan: Target declared 'OpenAL::OpenAL'
-- Conan: Target declared 'ALSA::ALSA'
-- Conan: Component target declared 'Ogg::ogg'
-- Conan: Component target declared 'Vorbis::vorbis'
-- Conan: Component target declared 'Vorbis::vorbisenc'
-- Conan: Component target declared 'Vorbis::vorbisfile'
-- Conan: Component target declared 'vorbis::vorbisenc-alias'
-- Conan: Component target declared 'vorbis::vorbisfile-alias'
-- Conan: Target declared 'vorbis::vorbis'
-- Conan: Target declared 'JPEG::JPEG'
-- Conan: Target declared 'PNG::PNG'
-- Conan: Component target declared 'ffmpeg::avutil'
-- Conan: Component target declared 'ffmpeg::swscale'
-- Conan: Component target declared 'ffmpeg::swresample'
-- Conan: Component target declared 'ffmpeg::avcodec'
-- Conan: Component target declared 'ffmpeg::avformat'
-- Conan: Target declared 'ffmpeg::ffmpeg'
-- Conan: Target declared 'pugixml::pugixml'
-- Conan: Target declared 'glfw'
-- Conan: Target declared 'opengl::opengl'
-- Conan: Component target declared 'xorg::x11'
-- Conan: Component target declared 'xorg::x11-xcb'
-- Conan: Component target declared 'xorg::fontenc'
-- Conan: Component target declared 'xorg::ice'
-- Conan: Component target declared 'xorg::xau'
-- Conan: Component target declared 'xorg::xaw7'
-- Conan: Component target declared 'xorg::xcursor'
-- Conan: Component target declared 'xorg::xdamage'
-- Conan: Component target declared 'xorg::xdmcp'
-- Conan: Component target declared 'xorg::xext'
-- Conan: Component target declared 'xorg::xfixes'
-- Conan: Component target declared 'xorg::xinerama'
-- Conan: Component target declared 'xorg::xkbfile'
-- Conan: Component target declared 'xorg::xmu'
-- Conan: Component target declared 'xorg::xmuu'
-- Conan: Component target declared 'xorg::xpm'
-- Conan: Component target declared 'xorg::xrandr'
-- Conan: Component target declared 'xorg::xrender'
-- Conan: Component target declared 'xorg::xscrnsaver'
-- Conan: Component target declared 'xorg::xt'
-- Conan: Component target declared 'xorg::xv'
-- Conan: Component target declared 'xorg::xxf86vm'
-- Conan: Component target declared 'xorg::xcb-xkb'
-- Conan: Component target declared 'xorg::xcb-icccm'
-- Conan: Component target declared 'xorg::xcb-image'
-- Conan: Component target declared 'xorg::xcb-keysyms'
-- Conan: Component target declared 'xorg::xcb-randr'
-- Conan: Component target declared 'xorg::xcb-render'
-- Conan: Component target declared 'xorg::xcb-renderutil'
-- Conan: Component target declared 'xorg::xcb-shape'
-- Conan: Component target declared 'xorg::xcb-shm'
-- Conan: Component target declared 'xorg::xcb-sync'
-- Conan: Component target declared 'xorg::xcb-xfixes'
-- Conan: Component target declared 'xorg::xcb-xinerama'
-- Conan: Component target declared 'xorg::xcb'
-- Conan: Component target declared 'xorg::xcb-atom'
-- Conan: Component target declared 'xorg::xcb-aux'
-- Conan: Component target declared 'xorg::xcb-event'
-- Conan: Component target declared 'xorg::xcb-util'
-- Conan: Component target declared 'xorg::xcb-dri3'
-- Conan: Component target declared 'xorg::xcb-cursor'
-- Conan: Component target declared 'xorg::xcb-dri2'
-- Conan: Component target declared 'xorg::xcb-glx'
-- Conan: Component target declared 'xorg::xcb-present'
-- Conan: Component target declared 'xorg::xcb-composite'
-- Conan: Component target declared 'xorg::xcb-ewmh'
-- Conan: Component target declared 'xorg::xcb-res'
-- Conan: Component target declared 'xorg::uuid'
-- Conan: Component target declared 'xorg::sm'
-- Conan: Target declared 'xorg::xorg'
-- Conan: Target declared 'doctest::doctest'
-- Conan: Target declared 'tracy::tracy'
-- Configuring done (6.1s)
-- Generating done (0.3s)
-- Build files have been written to: /usr/home/werner/games/darkmod_src/build

Und dann:

Code:
$ env CC=gcc CXX=g++ gmake
[  0%] Copying header
[  0%] Precompiling header
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:204,
                 from /usr/home/werner/games/darkmod_src/build/TheDarkMod_pch/precompiled.h:42:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Matrix.h:2457:65: error: macro "ALIGN" passed 2 arguments, but takes just 1
 2457 |         ptr = (float *) _alloca16( numColumns * sizeof( float ) );
      |                                                                 ^
In file included from /usr/include/sys/param.h:163,
                 from /usr/home/werner/games/darkmod_src/ThirdParty/artefacts/linux_64/../tdm_deploy/tracy/include/tracy/../client/TracyCallstack.h:7,
                 from /usr/home/werner/games/darkmod_src/ThirdParty/artefacts/linux_64/../tdm_deploy/tracy/include/tracy/../client/TracyCallstack.hpp:6,
                 from /usr/home/werner/games/darkmod_src/ThirdParty/artefacts/linux_64/../tdm_deploy/tracy/include/tracy/../client/TracyProfiler.hpp:12,
                 from /usr/home/werner/games/darkmod_src/ThirdParty/artefacts/linux_64/../tdm_deploy/tracy/include/tracy/../client/TracyLock.hpp:9,
                 from /usr/home/werner/games/darkmod_src/ThirdParty/artefacts/linux_64/../tdm_deploy/tracy/include/tracy/Tracy.hpp:121,
                 from /usr/home/werner/games/darkmod_src/build/TheDarkMod_pch/precompiled.h:29:
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
In file included from /usr/home/werner/games/darkmod_src/idlib/../idlib/Lib.h:213:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:195:64: error: macro "ALIGN" passed 2 arguments, but takes just 1
  195 |         temp[0] = (float *) _alloca16( order * sizeof( float ) );
      |                                                                ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:196:64: error: macro "ALIGN" passed 2 arguments, but takes just 1
  196 |         temp[1] = (float *) _alloca16( order * sizeof( float ) );
      |                                                                ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:266:75: error: macro "ALIGN" passed 2 arguments, but takes just 1
  266 |         accumLength = (float *) _alloca16( values.Num() * sizeof( float ) );
      |                                                                           ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:330:70: error: macro "ALIGN" passed 2 arguments, but takes just 1
  330 |         length = (float *) _alloca16( values.Num() * sizeof( float ) );
      |                                                                      ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:508:75: error: macro "ALIGN" passed 2 arguments, but takes just 1
  508 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                                                                           ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:531:75: error: macro "ALIGN" passed 2 arguments, but takes just 1
  531 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                                                                           ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:555:75: error: macro "ALIGN" passed 2 arguments, but takes just 1
  555 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                                                                           ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:584:58: error: macro "ALIGN" passed 2 arguments, but takes just 1
  584 |         c = (float *) _alloca16( (d+1) * sizeof( float ) );
      |                                                          ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1169:80: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1169 |         d0 = (float *) _alloca16( ( this->values.Num() - 1 ) * sizeof( float ) );
      |                                                                                ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1170:80: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1170 |         d1 = (float *) _alloca16( ( this->values.Num() - 1 ) * sizeof( float ) );
      |                                                                                ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1171:81: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1171 |         alpha = (type *) _alloca16( ( this->values.Num() - 1 ) * sizeof( type ) );
      |                                                                                 ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1172:74: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1172 |         beta = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                                                                          ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1173:83: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1173 |         gamma = (float *) _alloca16( ( this->values.Num() - 1 ) * sizeof( float ) );
      |                                                                                   ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1174:73: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1174 |         delta = (type *) _alloca16( this->values.Num() * sizeof( type ) );
      |                                                                         ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1229:80: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1229 |         d0 = (float *) _alloca16( ( this->values.Num() - 1 ) * sizeof( float ) );
      |                                                                                ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1230:80: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1230 |         d1 = (float *) _alloca16( ( this->values.Num() - 1 ) * sizeof( float ) );
      |                                                                                ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1231:81: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1231 |         alpha = (type *) _alloca16( ( this->values.Num() - 1 ) * sizeof( type ) );
      |                                                                                 ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1232:74: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1232 |         beta = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                                                                          ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1233:83: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1233 |         gamma = (float *) _alloca16( ( this->values.Num() - 1 ) * sizeof( float ) );
      |                                                                                   ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1234:73: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1234 |         delta = (type *) _alloca16( this->values.Num() * sizeof( type ) );
      |                                                                         ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1298:80: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1298 |         d0 = (float *) _alloca16( ( this->values.Num() - 1 ) * sizeof( float ) );
      |                                                                                ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1299:72: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1299 |         x.SetData( this->values.Num(), VECX_ALLOCA( this->values.Num() ) );
      |                                                                        ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1300:115: error: macro "ALIGN" passed 2 arguments, but takes just 1
 1300 |         mat.SetData( this->values.Num(), this->values.Num(), MATX_ALLOCA( this->values.Num() * this->values.Num() ) );
      |                                                                                                                   ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2176:73: error: macro "ALIGN" passed 2 arguments, but takes just 1
 2176 |         float *bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                                                                         ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2205:73: error: macro "ALIGN" passed 2 arguments, but takes just 1
 2205 |         float *bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                                                                         ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2234:73: error: macro "ALIGN" passed 2 arguments, but takes just 1
 2234 |         float *bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                                                                         ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2410:66: error: macro "ALIGN" passed 2 arguments, but takes just 1
 2410 |         bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                                                                  ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2443:66: error: macro "ALIGN" passed 2 arguments, but takes just 1
 2443 |         bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                                                                  ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2444:67: error: macro "ALIGN" passed 2 arguments, but takes just 1
 2444 |         d1vals = (float *) _alloca16( this->order * sizeof(float) );
      |                                                                   ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2483:66: error: macro "ALIGN" passed 2 arguments, but takes just 1
 2483 |         bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                                                                  ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2484:67: error: macro "ALIGN" passed 2 arguments, but takes just 1
 2484 |         d1vals = (float *) _alloca16( this->order * sizeof(float) );
      |                                                                   ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2485:67: error: macro "ALIGN" passed 2 arguments, but takes just 1
 2485 |         d2vals = (float *) _alloca16( this->order * sizeof(float) );
      |                                                                   ^
/usr/include/machine/param.h:78: note: macro "ALIGN" defined here
   78 | #define ALIGN(p)                _ALIGN(p)
      |
In file included from /usr/home/werner/games/darkmod_src/build/TheDarkMod_pch/precompiled.h:19:
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Matrix.h: In member function 'idMatX& idMatX::SwapRows(int, int)':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Matrix.h:2457:25: note: in expansion of macro '_alloca16'
 2457 |         ptr = (float *) _alloca16( numColumns * sizeof( float ) );
      |                         ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'float idCurve<type>::RombergIntegral(float, float, int) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:195:29: note: in expansion of macro '_alloca16'
  195 |         temp[0] = (float *) _alloca16( order * sizeof( float ) );
      |                             ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'float idCurve<type>::GetTimeForLength(float, float) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:266:33: note: in expansion of macro '_alloca16'
  266 |         accumLength = (float *) _alloca16( values.Num() * sizeof( float ) );
      |                                 ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'void idCurve<type>::SetConstantSpeed(float)':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:330:28: note: in expansion of macro '_alloca16'
  330 |         length = (float *) _alloca16( values.Num() * sizeof( float ) );
      |                            ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'virtual type idCurve_Bezier<type>::GetCurrentValue(float) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:508:27: note: in expansion of macro '_alloca16'
  508 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                           ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'virtual type idCurve_Bezier<type>::GetCurrentFirstDerivative(float) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:531:27: note: in expansion of macro '_alloca16'
  531 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                           ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'virtual type idCurve_Bezier<type>::GetCurrentSecondDerivative(float) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:555:27: note: in expansion of macro '_alloca16'
  555 |         bvals = (float *) _alloca16( this->values.Num() * sizeof( float ) );
      |                           ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'void idCurve_Bezier<type>::Basis(int, float, float*) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:584:23: note: in expansion of macro '_alloca16'
  584 |         c = (float *) _alloca16( (d+1) * sizeof( float ) );
      |                       ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'void idCurve_NaturalCubicSpline<type>::SetupFree() const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1169:24: note: in expansion of macro '_alloca16'
 1169 |         d0 = (float *) _alloca16( ( this->values.Num() - 1 ) * sizeof( float ) );
      |                        ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'void idCurve_NaturalCubicSpline<type>::SetupClamped() const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1229:24: note: in expansion of macro '_alloca16'
 1229 |         d0 = (float *) _alloca16( ( this->values.Num() - 1 ) * sizeof( float ) );
      |                        ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'void idCurve_NaturalCubicSpline<type>::SetupClosed() const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:1298:24: note: in expansion of macro '_alloca16'
 1298 |         d0 = (float *) _alloca16( ( this->values.Num() - 1 ) * sizeof( float ) );
      |                        ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'virtual type idCurve_NonUniformBSpline<type>::GetCurrentValue(float) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2176:34: note: in expansion of macro '_alloca16'
 2176 |         float *bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                                  ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'virtual type idCurve_NonUniformBSpline<type>::GetCurrentFirstDerivative(float) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2205:34: note: in expansion of macro '_alloca16'
 2205 |         float *bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                                  ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'virtual type idCurve_NonUniformBSpline<type>::GetCurrentSecondDerivative(float) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2234:34: note: in expansion of macro '_alloca16'
 2234 |         float *bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                                  ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'virtual type idCurve_NURBS<type>::GetCurrentValue(float) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2410:27: note: in expansion of macro '_alloca16'
 2410 |         bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                           ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'virtual type idCurve_NURBS<type>::GetCurrentFirstDerivative(float) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2443:27: note: in expansion of macro '_alloca16'
 2443 |         bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                           ^~~~~~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h: In member function 'virtual type idCurve_NURBS<type>::GetCurrentSecondDerivative(float) const':
/usr/home/werner/games/darkmod_src/idlib/sys/sys_defines.h:167:66: error: 'ALIGN' was not declared in this scope
  167 | #define _alloca16( x )                                  ((void *)ALIGN( (uintptr_t)_alloca( ALIGN( x, 16 ) + 16 ), 16 ) )
      |                                                                  ^~~~~
/usr/home/werner/games/darkmod_src/idlib/../idlib/math/Curve.h:2483:27: note: in expansion of macro '_alloca16'
 2483 |         bvals = (float *) _alloca16( this->order * sizeof(float) );
      |                           ^~~~~~~~~
gmake[2]: *** [CMakeFiles/TheDarkMod.dir/build.make:80: TheDarkMod_pch/precompiled.h.gch] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:82: CMakeFiles/TheDarkMod.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2
$
 
Die Definition vom Makro ALIGN passt nicht. Möglicherweise passt da was mit den Include-Dateien nicht. Ich würde mal gucken, obs noch woanders definiert ist (also z.B. mit grep -r "#define ALIGN(" in den entsprechenden Verzeichnissen).
Denn das was in /usr/include/sys/param.h definiert ist, ist ja offenbar nicht das Richtige.
 
Warum klappt das also nicht?
Weil es halt runtergerottet ist. Keiner baut es regelmäßig auf FreeBSD, irgendwann kommt dann eine Änderung, die es kaputt macht und keiner merkt es. Das war neben dem wirklich miserablem Suspend/Resume-Support der Hauptgrund für mich, auf meinem Desktop zumindest vorübergehend auf Linux zu wechseln. Ich hatte keine Lust mehr ständig Software hinterherzufummeln. :/

The Dark Mod ist wieder mal so ein Fall "Eines kommt zum Anderen". Der erste Fehler, den du siehst, ist noch einfach zu fixen. FreeBSD definiert in den Systemheadern selbst ein Makro ALIGN. Das kollidiert, C++ erlaubt keine Mehrfachdefinition von Makros. Der hacky Fix ist das Macro einfach umzubenennen, ich habe ALIGN2 gewählt. Dann fehlen Defines in C++-Systemheadern. Das ist schon ein schlechtes Zeichen. Kann man drum herum frickeln, aber anach bricht es ab, da <experimental/filesystem> eingebunden wird. FreeBSD liefert den Header aber nicht mehr aus. Also kann man:

  • Es mit gcc versuchen, was aber ohne größere Umbauten am Buildsystem nicht geht. Denn gcc unterstützt auf FreeBSD keine precompiled Header, das Build System verlangt sie.
  • Verschiedene clang-Versionen durchprobieren, das ist erfolglos.
  • Es auf C++17 portieren. Nicht schwer, dauerte gute 15 Minuten es zu hacken.

Allerdings bricht er danach im SIMD-Code ab. Die Fehlermeldung ist:

Code:
[  2%] Building CXX object CMakeFiles/TheDarkMod.dir/idlib/math/Simd_SSE2.cpp.o
/home/yamagi/temp/src/idlib/math/Simd_AVX2.cpp:58:5: error: always_inline function '_mm256_fmadd_ps' requires target feature 'fma', but would be inlined into function 'CullByFrustum' that is compiled without support for 'fma'
   58 |                                 _mm256_fmadd_ps( fC, vZ, fD )
      |                                 ^
/home/yamagi/temp/src/idlib/math/Simd_AVX2.cpp:57:4: error: always_inline function '_mm256_fmadd_ps' requires target feature 'fma', but would be inlined into function 'CullByFrustum' that is compiled without support for 'fma'
   57 |                         _mm256_fmadd_ps( fB, vY,
      |                         ^
/home/yamagi/temp/src/idlib/math/Simd_AVX2.cpp:56:14: error: always_inline function '_mm256_fmadd_ps' requires target feature 'fma', but would be inlined into function 'CullByFrustum' that is compiled without support for 'fma'
   56 |                 __m256 d = _mm256_fmadd_ps( fA, vX,
      |                            ^
3 errors generated.

Und ich verstehe gerade nicht wieso. Die Defines in dem SIMD-Headern für FreeBSD habe ich nachgetragen. AVX2 scheint er auch zu finden, nur FMA nicht. Was seltsam ist. Da ich keine Zeit mehr habe, gebe ich hier erstmal auf.
 
Vielen Dank erstmal für Deine Ausführungen! Auch wenn ich von der Materie im Detail nichts verstehe, denke ich dann, dass der Aufwand, das für FreeBSD zu kompilieren, ziemlich hoch ist.

Was seltsam ist. Da ich keine Zeit mehr habe, gebe ich hier erstmal auf.
Eilig ist es ja nicht. Glaubst Du, das wäre in näherer Zukunft zu bewältigen, wenn Du wieder etwas mehr Zeit findest?
Ich denke für eine schnelle Lösung wäre es vielleicht einfacher zu versuchen, es mit dem Linuxulator zum Laufen zu bringen?
Hier mal ein gedanklicher Ansatz:
Und die Anleitung nimmt bezug auf ne ubuntu-Version von vor zig Jahren.
In der Anleitung ist die Rede von Ubuntu 16.04. Man könnte vielleicht diese Ubuntu-Version in einer virtuellen Maschine installieren und das Spiel dort kompilieren. Doch existieren noch alle benötigten Packages für diese alte Ubuntu-Version? Und damit es dann im Linuxulator (c7) läuft, darf die Version von glib (?) nicht höher sein als die von c7, das hatten wir an anderer Stelle schon mal. Weiß also jemand spontan, welche Versionen von glib wir jeweils bei Ubuntu 16.04 und linux-c7 haben?
 
welche Versionen von glib wir jeweils bei Ubuntu 16.04 und linux-c7 haben?
Spontan weiß ich das nicht. Aber linux-c7 bezieht sich auf CentOS 7 das wiederum Redhat Enterprise Linux 7 entspricht, welches irgendwann zwischen 2014 released wurde. Aber natürlich seit dem auch einige Updates erfahren hat.
Aber grob passen sollte es.

Ansonsten könnte man ja auch probieren einfach das geforderte ubuntu 16.04 als Umgebung für den Linuxulator zu nehmen.
Wenn man das noch "jailed" muss man sich nicht mal den vorhandenen Kram beschmutzen.
 
Zurück
Oben