You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I observed this while writing #43 which is a fix for #42.
On 43, we fixed the following compilation error which occurred when 128750d added a std::unordered_map to GuiControlProfile:
make: *** [Torque2D.mk:130: Debug/2d/controllers/core/PickingSceneController.cc.o] Error 1
In file included from /usr/include/c++/9/unordered_map:47,
from ../../source/gui/guiTypes.h:63,
from ../../source/gui/guiControl.h:42,
from ../../source/2d/core/ImageFrameProviderCore.h:51,
from ../../source/2d/core/ImageFrameProvider.h:27,
from ../../source/2d/core/SpriteBatchItem.h:27,
from ../../source/2d/core/SpriteBatch.h:27,
from ../../source/2d/core/SpriteBatchQuery.cc:26:
/usr/include/c++/9/bits/unordered_map.h:40:37: error: '_Hashtable_traits' in namespace 'std::__detail' does not name a template type
On #43 we papered over the issue by replacing the offending std::unordered_map with the Torque-internal HashMap which is a drop-in replacement. However, it's silly to not be able to use perfectly good container types from the standard library, and likely will drive off users who will want to be able to use the C++ constructs they know and love.
On this ticket, we should definitely investigate and fix this issue.
Would-be investigators will note that, following #31, the Makefile-backed Linux build on the development branch has been slightly overhauled, including building in a Docker container that provides somewhat-tighter controls of our toolchain. In this case, the Dockerfile in engine/compilers/Make-{32,64}bit/ pins an Ubuntu 20.04 build environment, and uses the distro-default build-essential packages.
This loosely pins us to the following build of GCC:
casey on WATERFALCON in ~
at 09:02:55 🍀 docker run -it torque2d-linux64-build-env
root@5998068a57ba:/# g++ --version
g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Some standard library containers do not work on Linux platform (ex,
std:unordered_map
)The text was updated successfully, but these errors were encountered: