nosoop / rcbot2

A Metamod:Source plugin that provides customizable bot players.
http://rcbot.bots-united.com
GNU Affero General Public License v3.0
5 stars 0 forks source link

Failure to compile on newer toolchains #14

Closed nosoop closed 3 years ago

nosoop commented 3 years ago

While it does compile correctly on Ubuntu 16.04 (LTS) and Debian 8, I'm stumped at what this error is on Debian 10:

(ambuild-sm-1.10) user@build:~/alliedmodders/rcbot2/build$ ambuild
Spawned worker (pid: 759)
Spawned worker (pid: 760)
[759] clang++ -Wall -Wno-non-virtual-dtor -Wno-overloaded-virtual -Werror -fPIC -fno-rtti -msse -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -std=c++11 -w -D__linux -Wno-delete-non-virtual-dtor -Wno-unused-private-field -Wno-deprecated-register -m32 -Dstrcmpi=strcasecmp -g3 -Wno-expansion-to-defined -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -DGNUC -DPOSIX -D_LINUX -DSE_EPISODEONE=1 -DSE_ORANGEBOX=3 -DSE_CSS=6 -DSE_HL2DM=7 -DSE_DODS=8 -DSE_SDK2013=9 -DSE_TF2=11 -DSE_LEFT4DEAD=12 -DSE_NUCLEARDAWN=13 -DSE_LEFT4DEAD2=15 -DSE_DARKMESSIAH=2 -DSE_ALIENSWARM=16 -DSE_BLOODYGOODTIME=4 -DSE_EYE=5 -DSE_CSGO=21 -DSE_DOTA=22 -DSE_PORTAL2=17 -DSE_BLADE=18 -DSE_INSURGENCY=19 -DSE_DOI=20 -DSE_CONTAGION=14 -DSE_BMS=10 -DSOURCE_ENGINE=11 -DCOMPILER_GCC -DSM_EXT -I /home/user/alliedmodders/rcbot2/build/includes -I /home/user/alliedmodders/rcbot2 -I /home/user/alliedmodders/mmsource-1.10/core -I /home/user/alliedmodders/mmsource-1.10/core/sourcehook -I /home/user/alliedmodders/hl2sdk-tf2/public -I /home/user/alliedmodders/hl2sdk-tf2/public/engine -I /home/user/alliedmodders/hl2sdk-tf2/public/mathlib -I /home/user/alliedmodders/hl2sdk-tf2/public/vstdlib -I /home/user/alliedmodders/hl2sdk-tf2/public/tier0 -I /home/user/alliedmodders/hl2sdk-tf2/public/tier1 -I /home/user/alliedmodders/hl2sdk-tf2/game_shared -I /home/user/alliedmodders/hl2sdk-tf2/game/shared -I /home/user/alliedmodders/hl2sdk-tf2/game/server -I /home/user/alliedmodders/hl2sdk-tf2/public/game/server -I /home/user/alliedmodders/hl2sdk-tf2/public/game/server -I /home/user/alliedmodders/sourcemod-1.10/sourcepawn/include -I /home/user/alliedmodders/sourcemod-1.10/public/amtl -I /home/user/alliedmodders/sourcemod-1.10/public/amtl/amtl -I /home/user/alliedmodders/sourcemod-1.10/public -I /home/user/alliedmodders/rcbot2/sm_ext -I /home/user/alliedmodders/rcbot2/utils/RCBot2_meta -I /home/user/alliedmodders/rcbot2/versioning -H -c /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot_sigscan.cpp -o utils_RCBot2_meta_bot_sigscan.o
In file included from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot_sigscan.cpp:37:
In file included from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot.h:68:
In file included from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot_utility.h:37:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/vector:60:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_algobase.h:64:
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_pair.h:428:13: error: no member named 'swap' in namespace 'std'
        using std::swap;
              ~~~~~^
1 error generated.
Build failed: rcbot.2.tf2/utils_RCBot2_meta_bot_sigscan.o

Attempting to #include <utility> produces a similar result:

(ambuild-sm-1.10) user@forttest:~/alliedmodders/rcbot2/build$ ambuild
Spawned worker (pid: 1161)
Spawned worker (pid: 1162)
[1162] clang++ -Wall -Wno-non-virtual-dtor -Wno-overloaded-virtual -Werror -fPIC -fno-rtti -msse -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -std=c++11 -w -D__linux -Wno-delete-non-virtual-dtor -Wno-unused-private-field -Wno-deprecated-register -m32 -Dstrcmpi=strcasecmp -g3 -Wno-expansion-to-defined -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -DGNUC -DPOSIX -D_LINUX -DSE_EPISODEONE=1 -DSE_ORANGEBOX=3 -DSE_CSS=6 -DSE_HL2DM=7 -DSE_DODS=8 -DSE_SDK2013=9 -DSE_TF2=11 -DSE_LEFT4DEAD=12 -DSE_NUCLEARDAWN=13 -DSE_LEFT4DEAD2=15 -DSE_DARKMESSIAH=2 -DSE_ALIENSWARM=16 -DSE_BLOODYGOODTIME=4 -DSE_EYE=5 -DSE_CSGO=21 -DSE_DOTA=22 -DSE_PORTAL2=17 -DSE_BLADE=18 -DSE_INSURGENCY=19 -DSE_DOI=20 -DSE_CONTAGION=14 -DSE_BMS=10 -DSOURCE_ENGINE=11 -DCOMPILER_GCC -DSM_EXT -I /home/user/alliedmodders/rcbot2/build/includes -I /home/user/alliedmodders/rcbot2 -I /home/user/alliedmodders/mmsource-1.10/core -I /home/user/alliedmodders/mmsource-1.10/core/sourcehook -I /home/user/alliedmodders/hl2sdk-tf2/public -I /home/user/alliedmodders/hl2sdk-tf2/public/engine -I /home/user/alliedmodders/hl2sdk-tf2/public/mathlib -I /home/user/alliedmodders/hl2sdk-tf2/public/vstdlib -I /home/user/alliedmodders/hl2sdk-tf2/public/tier0 -I /home/user/alliedmodders/hl2sdk-tf2/public/tier1 -I /home/user/alliedmodders/hl2sdk-tf2/game_shared -I /home/user/alliedmodders/hl2sdk-tf2/game/shared -I /home/user/alliedmodders/hl2sdk-tf2/game/server -I /home/user/alliedmodders/hl2sdk-tf2/public/game/server -I /home/user/alliedmodders/hl2sdk-tf2/public/game/server -I /home/user/alliedmodders/sourcemod-1.10/sourcepawn/include -I /home/user/alliedmodders/sourcemod-1.10/public/amtl -I /home/user/alliedmodders/sourcemod-1.10/public/amtl/amtl -I /home/user/alliedmodders/sourcemod-1.10/public -I /home/user/alliedmodders/rcbot2/sm_ext -I /home/user/alliedmodders/rcbot2/utils/RCBot2_meta -I /home/user/alliedmodders/rcbot2/versioning -H -c /home/user/alliedmodders/rcbot2/sm_ext/bot_sm_natives.cpp -o _home_user_alliedmodders_rcbot2_sm_ext_bot_sm_natives.o
[1161] clang++ -Wall -Wno-non-virtual-dtor -Wno-overloaded-virtual -Werror -fPIC -fno-rtti -msse -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -std=c++11 -w -D__linux -Wno-delete-non-virtual-dtor -Wno-unused-private-field -Wno-deprecated-register -m32 -Dstrcmpi=strcasecmp -g3 -Wno-expansion-to-defined -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -DGNUC -DPOSIX -D_LINUX -DSE_EPISODEONE=1 -DSE_ORANGEBOX=3 -DSE_CSS=6 -DSE_HL2DM=7 -DSE_DODS=8 -DSE_SDK2013=9 -DSE_TF2=11 -DSE_LEFT4DEAD=12 -DSE_NUCLEARDAWN=13 -DSE_LEFT4DEAD2=15 -DSE_DARKMESSIAH=2 -DSE_ALIENSWARM=16 -DSE_BLOODYGOODTIME=4 -DSE_EYE=5 -DSE_CSGO=21 -DSE_DOTA=22 -DSE_PORTAL2=17 -DSE_BLADE=18 -DSE_INSURGENCY=19 -DSE_DOI=20 -DSE_CONTAGION=14 -DSE_BMS=10 -DSOURCE_ENGINE=11 -DCOMPILER_GCC -DSM_EXT -I /home/user/alliedmodders/rcbot2/build/includes -I /home/user/alliedmodders/rcbot2 -I /home/user/alliedmodders/mmsource-1.10/core -I /home/user/alliedmodders/mmsource-1.10/core/sourcehook -I /home/user/alliedmodders/hl2sdk-tf2/public -I /home/user/alliedmodders/hl2sdk-tf2/public/engine -I /home/user/alliedmodders/hl2sdk-tf2/public/mathlib -I /home/user/alliedmodders/hl2sdk-tf2/public/vstdlib -I /home/user/alliedmodders/hl2sdk-tf2/public/tier0 -I /home/user/alliedmodders/hl2sdk-tf2/public/tier1 -I /home/user/alliedmodders/hl2sdk-tf2/game_shared -I /home/user/alliedmodders/hl2sdk-tf2/game/shared -I /home/user/alliedmodders/hl2sdk-tf2/game/server -I /home/user/alliedmodders/hl2sdk-tf2/public/game/server -I /home/user/alliedmodders/hl2sdk-tf2/public/game/server -I /home/user/alliedmodders/sourcemod-1.10/sourcepawn/include -I /home/user/alliedmodders/sourcemod-1.10/public/amtl -I /home/user/alliedmodders/sourcemod-1.10/public/amtl/amtl -I /home/user/alliedmodders/sourcemod-1.10/public -I /home/user/alliedmodders/rcbot2/sm_ext -I /home/user/alliedmodders/rcbot2/utils/RCBot2_meta -I /home/user/alliedmodders/rcbot2/versioning -H -c /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot_plugin_meta.cpp -o utils_RCBot2_meta_bot_plugin_meta.o
In file included from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot_plugin_meta.cpp:40:
In file included from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot.h:68:
In file included from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot_utility.h:37:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/utility:70:
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_pair.h:428:13: error: no member named 'swap' in namespace 'std'
        using std::swap;
              ~~~~~^
1 error generated.
Build failed: rcbot.2.tf2/utils_RCBot2_meta_bot_plugin_meta.o

Both are configured to compile against SM 1.10 and ambuild commit b158427.

nosoop commented 3 years ago

Resolved. Apparently, removing every instance of #define swap V_swap and #undef swap allows it to compile.

I'll have to make sure this works on my old toolchain (maybe outdated HL2SDK is part of the issue?), but I guess the fix is straightforward enough.

Edit: Yep, the HL2SDK for DoD:S was updated 'recently' to avoid the naming conflicts I experienced with the C++ STL.