christopherpow / nesicide

Integrated Development Environment for the 8-bit Nintendo Entertainment System
315 stars 38 forks source link

"port.h" fails to define interlocked_cmpxchg on ARM (Raspberry Pi) #28

Closed nyanpasu64 closed 4 years ago

nyanpasu64 commented 6 years ago

The version of "port.h" you bundle in "deps/wine/include/wine/" fails to link on a Raspberry Pi 3B running lateset Raspbian Stretch. The Pi is an ARM device, so the _asm_\ implementation of interlocked_cmpxchg/etc. get #ifdef'd out. It's instead declared extern, resulting in a linking failure.

https://github.com/wine-mirror/wine/blob/master/include/wine/port.h ~~fixes this configuration issue, adding #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 and properly defining the functions.

If you checkout Wine Git on Linux, and attempt a build, then replacing deps/wine/include with wine/include fixes compilation failure.

This issue arises from Instrument.cpp using InterlockedIncrement/etc.

christopherpow commented 4 years ago

This sounds like a forkable issue if it is truly still an issue. I don't have capacity to support Pi.