JesseTG / melonds-ds

A remake of the libretro melonDS core that prioritizes standalone parity, reliability, and usability.
GNU General Public License v3.0
106 stars 14 forks source link

Haiku build #200

Open kwyxz opened 2 months ago

kwyxz commented 2 months ago

What version of melonDS DS are you using?

Latest git

Does the problem happen in standalone melonDS?

I don't know.

What happened?

While attempting to build the MelonDS DS core on Haiku, I first had to disable the redefinition of struct addrinfo by adding a simple #ifndef __HAIKU__ around it, but this is does not seem MelonDS DS specific.

[ 32%] Building C object CMakeFiles/libretro-common.dir/_deps/libretro-common-src/net/net_compat.c.o
In file included from /boot/home/melonds-ds/build/_deps/libretro-common-src/net/net_compat.c:30:
/boot/home/melonds-ds/build/_deps/libretro-common-src/include/net/net_compat.h:263:8: error: redefinition of 'struct addrinfo'
  263 | struct addrinfo
      |        ^~~~~~~~
In file included from /boot/home/melonds-ds/build/_deps/libretro-common-src/include/net/net_compat.h:169:
/boot/system/develop/headers/posix/netdb.h:46:8: note: originally defined here
   46 | struct addrinfo {
      |        ^~~~~~~~

The following however happens when building slirp:

[ 18%] Building CXX object _deps/glm-build/glm/CMakeFiles/glm.dir/detail/glm.cpp.o
/boot/home/libretro-super/libretro-melondsds/build/_deps/libslirp-src/src/slirp.c: In function 'slirp_socket_can_recv':
/boot/home/libretro-super/libretro-melondsds/build/_deps/libslirp-src/src/slirp.c:1585:18: error: array type has incomplete element type 'struct iovec'
 1585 |     struct iovec iov[2];
      |                  ^~~
CMakeFiles/slirp.dir/build.make:313: recipe for target 'CMakeFiles/slirp.dir/_deps/libslirp-src/src/slirp.c.o' failed
make[3]: *** [CMakeFiles/slirp.dir/_deps/libslirp-src/src/slirp.c.o] Error 1
CMakeFiles/Makefile2:358: recipe for target 'CMakeFiles/slirp.dir/all' failed

Haiku has its own implementation of libslirp already packaged so maybe it would be possible to link to this instead?

What should've happened instead?

The core should have built.

Which platforms do you see the problem on?

Which versions of the OS?

Haiku Nightly

Which libretro frontend are you using?

RetroArch 1.18.0

Terms