libretro / LRPS2

GNU General Public License v2.0
165 stars 48 forks source link

build.sh fails on Fedora 36 #235

Closed opsyne closed 1 year ago

opsyne commented 1 year ago

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:

  1. Clone the repo
  2. 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

PC specifications: