Blacklist GCC 5 on Linux again

GCC 5 mangles some symbols, such as "plugin_globals" ->
"plugin_globals[abi:c++11]" (or "_Z14plugin_globalsB5cxx11"), even
when declared with 'extern "C"'. This breaks plugins, in particular.
develop
lethosor 2015-11-10 18:43:34 -05:00
parent 583ee40cba
commit 9c62ff1d7f
2 changed files with 10 additions and 11 deletions

@ -25,11 +25,7 @@ macro(CHECK_GCC COMPILER_PATH)
execute_process(COMMAND ${COMPILER_PATH} -dumpversion OUTPUT_VARIABLE GCC_VERSION_OUT)
string(STRIP "${GCC_VERSION_OUT}" GCC_VERSION_OUT)
if (${GCC_VERSION_OUT} VERSION_LESS "4.5" OR ${GCC_VERSION_OUT} VERSION_GREATER "4.9.9")
if ((LINUX) AND (${GCC_VERSION_OUT} VERSION_GREATER "5.0"))
message(WARNING "You are using GCC ${GCC_VERSION_OUT}, which is not recommended - see Compile.rst for more information.")
else()
message(SEND_ERROR "${COMPILER_PATH} version ${GCC_VERSION_OUT} cannot be used - use GCC 4.5 through 4.9")
endif()
message(SEND_ERROR "${COMPILER_PATH} version ${GCC_VERSION_OUT} cannot be used - use GCC 4.5 through 4.9")
endif()
endmacro()

@ -53,12 +53,15 @@ DFHack is meant to be installed into an existing DF folder, so get one ready.
We assume that any Linux platform will have ``git`` available.
To build DFHack you need a 32-bit version of GCC. GCC 4.5 is easiest to work
with due to avoiding libstdc++ issues (see below), but any later 4.x version
should work as well. GCC 5.x may work but is discouraged for releases because it
won't work on systems without GCC 5.x installed. On 64-bit distributions, you'll
need the multilib development tools and libraries (``gcc-multilib`` or
``gcc-4.x-multilib`` on Debian). Alternatively, you might be able to use ``lxc``
To build DFHack you need a version of GCC 4.x capable of compiling for 32-bit
(i386) targets. GCC 4.5 is easiest to work with due to avoiding libstdc++ issues
(see below), but any later 4.x version should work as well. GCC 5.x will not
work due to ABI changes (the entire plugin loading system won't work, for
example). On 64-bit distributions, you'll need the multilib development tools
and libraries (``gcc-multilib`` or ``gcc-4.x-multilib`` on Debian). Note that
installing a 32-bit GCC on 64-bit systems (e.g. ``gcc:i386`` on Debian) will
typically *not* work, as it depends on several other 32-bit libraries that
conflict with system libraries. Alternatively, you might be able to use ``lxc``
to
:forums:`create a virtual 32-bit environment <139553.msg5435310#msg5435310>`.