libretro / libretro/ps2

Doesn't compile with system's latest libchdr and doesn't use bundled

Open
#106 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
85
Forks
26
Avg merge
6h 43m
Merged PRs (30d)
6

Description

I was never able to compile this due to error with libchdr:

pcsx2/CDVD/ChdFileReader.cpp:56:24: error: no matching function for call to 'chd_open_file'
   56 |         const chd_error err = chd_open_file(*fp, mode, parent, chd);
      |                               ^~~~~~~~~~~~~
/usr/include/libchdr/chd.h:379:22: note: candidate function not viable: cannot convert argument of incomplete type 'RFILE *' to 'FILE *' (aka '_IO_FILE *') for 1st argument
  379 | CHD_EXPORT chd_error chd_open_file(FILE *file, int mode, chd_file *parent, chd_file **chd);
      |                      ^             ~~~~~~~~~~

This doesn't like includes from system's libchdr but does not seem to even attempt to use bundled 3rdparty/chdr/libchdr.
Even though cmake/SearchForStuff.cmake has add_subdirectory(3rdparty/chdr EXCLUDE_FROM_ALL) and 3rdparty/chdr/CMakeLists.txt has target_include_directories(chdr-static PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/libchdr/include"…, those includes are never used, it seems.

And I can't use precompiled version because libretro/retroarch inexplicably decided to hardcode all cores to AVX2, cutting off the most popular x86 platform: LGA2011 CPUs. Apparently, 12-core server AVX1-only processors aren't enough for those, even though it's what I use for playing pcsx2, rpcs3, dolphin at 4K/HDR10+. And Cyberpunk at native 1440p. Not for libretro though.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with pcsx2/CDVD/ChdFileReader.cpp and inspect dependency and include handling in cmake/SearchForStuff.cmake and 3rdparty/chdr/CMakeLists.txt. Trace which libchdr headers and target are selected during configuration, then verify a clean build uses the bundled library or supports the system version without the reported chd_open_file mismatch.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.