The short version is that build.sh fails on my Fedora box, the specific issue being -DCMAKE_TOOLCHAIN_FILE=cmake/linux-compiler-i386-multilib.cmake. Manually running cmake with any any other options besides the -DCMAKE_TOOLCHAN_FILE flag creates a working a build. Unfortunately I don't know enough about cmake to properly debug the issue
PCSX2 version:
Current HEAD: ad7650949e6c8c87cd2c5e278af88e3722a321bc
Description of the issue:
Running ./build.sh fails on Fedora 36:
Forcing cross compilation.
Building pcsx2 with -DCMAKE_BUILD_PO=FALSE -GNinja -DCMAKE_TOOLCHAIN_FILE=cmake/linux-compiler-i386-multilib.cmake
-- Build Fedora specific
-- Disabling the inclusion of the binary compile date.
-- Building with GNU GCC
-- BuildType set to Devel by default
-- Cross compilation is enabled.
-- Compiling a i386 build on a x86_64 host.
-- AIO found pkg
-- Found xxd. GameIndex.h, cheats_ws.h, cheats_60fps.h and cheats_nointerlacing.h will be generated.
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
CMAKE_TOOLCHAIN_FILE
-- Build files have been written to: /tmp/pcsx2/build
[0/2] Re-checking globbed directories...
[1/301] Building CXX object 3rdparty/wxwidgets3.0/CMakeFiles/wxwidgets.dir/src/common/hashmap.cpp.o
FAILED: 3rdparty/wxwidgets3.0/CMakeFiles/wxwidgets.dir/src/common/hashmap.cpp.o
ccache /usr/lib64/ccache/c++ -m32 -DDISABLE_BUILD_DATE -DDISABLE_RECORDING -D_ARCH_32=1 -D_FILE_OFFSET_BITS=64 -D_M_X86=1 -D_M_X86_32=1 -D__LIBRETRO__ -D__LINUX__ -D__UNIX__ -DwxUSE_GUI=0 -DwxUSE_UNIX -I/usr/include/libxml2 -I/tmp/pcsx2/common/include -I/tmp/pcsx2/common/include/Utilities -I/tmp/pcsx2/common/include/x86emitter -I/tmp/pcsx2/build/common/include -I/tmp/pcsx2/3rdparty/libchdr/include -I/tmp/pcsx2/3rdparty/yaml-cpp/include -isystem /tmp/pcsx2/3rdparty/wxwidgets3.0/include -isystem /tmp/pcsx2/3rdparty/wxwidgets3.0/include/nogui -mfxsr -march=native -pipe -fvisibility=hidden -pthread -fno-builtin-strcmp -fno-builtin-memcmp -mfpmath=sse -Wall -Wextra -Wno-attributes -Wno-unused-function -Wno-unused-parameter -Wno-missing-field-initializers -Wno-overloaded-virtual -Wno-address -Wno-unused-value -Wstrict-aliasing -Wstrict-overflow=1 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -ggdb3 -fno-omit-frame-pointer -DNDEBUG -DPCSX2_DEVBUILD -D_DEVEL -O2 -DBUILTIN_GS_PLUGIN -DBUILTIN_PAD_PLUGIN -DBUILTIN_USB_PLUGIN -DBUILTIN_DEV9_PLUGIN -Wno-invalid-offsetof -MD -MT 3rdparty/wxwidgets3.0/CMakeFiles/wxwidgets.dir/src/common/hashmap.cpp.o -MF 3rdparty/wxwidgets3.0/CMakeFiles/wxwidgets.dir/src/common/hashmap.cpp.o.d -o 3rdparty/wxwidgets3.0/CMakeFiles/wxwidgets.dir/src/common/hashmap.cpp.o -c /tmp/pcsx2/3rdparty/wxwidgets3.0/src/common/hashmap.cpp
In file included from /tmp/pcsx2/3rdparty/wxwidgets3.0/include/wx/hashmap.h:14,
from /tmp/pcsx2/3rdparty/wxwidgets3.0/src/common/hashmap.cpp:13:
/tmp/pcsx2/3rdparty/wxwidgets3.0/include/wx/string.h:154:15: error: ‘wxUniChar wxCStrData::operator[](unsigned int) const’ cannot be overloaded with ‘wxUniChar wxCStrData::operator[](size_t) const’
154 | wxUniChar operator[](unsigned int n) const { return operator[](size_t(n)); }
| ^~~~~~~~
/tmp/pcsx2/3rdparty/wxwidgets3.0/include/wx/string.h:150:22: note: previous declaration ‘wxUniChar wxCStrData::operator[](size_t) const’
150 | inline wxUniChar operator[](size_t n) const;
| ^~~~~~~~
/tmp/pcsx2/3rdparty/wxwidgets3.0/include/wx/string.h:1432:15: error: ‘wxUniChar wxString::operator[](unsigned int) const’ cannot be overloaded with ‘wxUniChar wxString::operator[](size_t) const’
1432 | wxUniChar operator[](unsigned int n) const
| ^~~~~~~~
/tmp/pcsx2/3rdparty/wxwidgets3.0/include/wx/string.h:1429:15: note: previous declaration ‘wxUniChar wxString::operator[](size_t) const’
1429 | wxUniChar operator[](size_t n) const
| ^~~~~~~~
/tmp/pcsx2/3rdparty/wxwidgets3.0/include/wx/string.h:1444:18: error: ‘wxUniCharRef wxString::operator[](unsigned int)’ cannot be overloaded with ‘wxUniCharRef wxString::operator[](size_t)’
1444 | wxUniCharRef operator[](unsigned int n)
| ^~~~~~~~
/tmp/pcsx2/3rdparty/wxwidgets3.0/include/wx/string.h:1441:18: note: previous declaration ‘wxUniCharRef wxString::operator[](size_t)’
1441 | wxUniCharRef operator[](size_t n)
| ^~~~~~~~
this is a very truncated log, the same error message is repeated several times
How to reproduce the issue:
Clone the repo
Run ./build.sh
Last known version to work:
bisect:
01aad938f60cada5fa0986a2d05794d4629c23c6 is the first bad commit
commit 01aad938f60cada5fa0986a2d05794d4629c23c6
Author: Benjamin FRANCOIS <kwyxz@kwyxz.org>
Date: Sat Nov 7 00:01:57 2020 -0800
Enable Linux build
The short version is that build.sh fails on my Fedora box, the specific issue being
-DCMAKE_TOOLCHAIN_FILE=cmake/linux-compiler-i386-multilib.cmake
. Manually running cmake with any any other options besides the-DCMAKE_TOOLCHAN_FILE
flag creates a working a build. Unfortunately I don't know enough about cmake to properly debug the issuePCSX2 version: Current HEAD:
ad7650949e6c8c87cd2c5e278af88e3722a321bc
Description of the issue: Running
./build.sh
fails on Fedora 36:this is a very truncated log, the same error message is repeated several times
How to reproduce the issue:
./build.sh
Last known version to work:
bisect:
PC specifications: