The compilation fails in Arch Linux when the default CMake RelWithDebInfo configuration is used, with ENABLE_SYSTEM_FLUIDSYNTH=OFF. This build command fails:
cmake svkaiser/Doom64EX && make
with a warning considered as error (-Werror=stringop-truncation) about string operation truncation on included fluidsynth library:
`svkaiser/Doom64EX/fluidsynth/src/utils/fluidsynth_priv.h:209:38: error: ‘strncpy’ output may be truncated copying 16 bytes from a string of length 16 [-Werror=stringop-truncation]
svkaiser/Doom64EX/fluidsynth/src/synth/fluid_synth.c:1339:9: note: in expansion of macro ‘FLUID_STRNCPY’
FLUID_STRNCPY (resptr, name, 16);
^~~~~
cc1: all warnings being treated as errors`
This error can be worked around by:
Using the system fluidsynth library provided by pacman. Install with sudo pacman -S fluidsynth and then build with the flag enabled cmake -DENABLE_SYSTEM_FLUIDSYNTH=ON svkaiser/Doom64EX && make
Compile with no optimization flag -O2 by removing the compiler flag from the CMakeLists.txt and fluidsynth/CMakeLists.txt.
The compilation fails in Arch Linux when the default CMake
RelWithDebInfo
configuration is used, withENABLE_SYSTEM_FLUIDSYNTH=OFF
. This build command fails:cmake svkaiser/Doom64EX && make
with a warning considered as error (
-Werror=stringop-truncation
) about string operation truncation on included fluidsynth library:`svkaiser/Doom64EX/fluidsynth/src/utils/fluidsynth_priv.h:209:38: error: ‘strncpy’ output may be truncated copying 16 bytes from a string of length 16 [-Werror=stringop-truncation]
define FLUID_STRNCPY(_dst,_src,_n) strncpy(_dst,_src,_n)
svkaiser/Doom64EX/fluidsynth/src/synth/fluid_synth.c:1339:9: note: in expansion of macro ‘FLUID_STRNCPY’ FLUID_STRNCPY (resptr, name, 16); ^
~~~~ cc1: all warnings being treated as errors`This error can be worked around by:
Using the system fluidsynth library provided by pacman. Install with
sudo pacman -S fluidsynth
and then build with the flag enabledcmake -DENABLE_SYSTEM_FLUIDSYNTH=ON svkaiser/Doom64EX && make
Compile with no optimization flag
-O2
by removing the compiler flag from theCMakeLists.txt
andfluidsynth/CMakeLists.txt
.