openMSX problems when built with XCode 10.1 on MacOS 10.14

By Grauw

Enlighted (7894)

Grauw's picture

20-11-2018, 21:43

I’ve got two problems building openMSX on my Mac which seem to be related to building with the latest version of XCode, version 10.1. One I solved, the other I didn’t:

1. When clearing the derived directory and rebuilding all 3rd party libs, I get errors about C include headers not being found. This seems to be due to the way clang (so not clang++) is invoked, the build succeeds if I change line 356 in main.mk from

  CC:=$(shell clang++ -print-prog-name=clang)

to

  CC:=$(subst clang++,clang,$(CXX))

2. When running the built openMSX I get a window with no video output, everything is working, I hear sound and key clicks, just a blank window. The 0.14.0-293-a6644b41e build I made a couple of months ago works fine though.

The problem looks exactly like the one mentioned here. It seems openGL is now always rendered on a layer even if wantsLayer is set to NO. I think this comment is the most relevant there.

Because the old version still works, this seems to have to do with the XCode version, and here someone also “fixed” the same issue by downgrading to XCode 9.4.1. Not sure if the MacOS version is relevant, but I’m on MacOS 10.14 (upgraded at the same time as XCode).

Adding <setting id="renderer">SDL</setting> to settings.xml, or setting it blindly from the console, or changing the scale factor to 3x and back all did not seem to have any effect (other than resizing the window for the latter). I was hoping that might have triggered one of those update calls they mentioned.

Anyway I know little about MacOS rendering, so I have no clue how go from this information to a fix :).

Login or register to post comments

By Grauw

Enlighted (7894)

Grauw's picture

20-11-2018, 21:46

Grauw wrote:

2. When running the built openMSX I get a window with no video output, everything is working, I hear sound and key clicks, just a blank window. The 0.14.0-293-a6644b41e build I made a couple of months ago works fine though.

The problem looks exactly like the one mentioned here. It seems openGL is now always rendered on a layer even if wantsLayer is set to NO. I think this comment is the most relevant there.

Because the old version still works, this seems to have to do with the XCode version, and here someone also “fixed” the same issue by downgrading to XCode 9.4.1. Not sure if the MacOS version is relevant, but I’m on MacOS 10.14 (upgraded at the same time as XCode).

Highlighting another link from the last stackoverflow post above:

AppKit Release Notes for macOS 10.14: Layer-Backed Views

By Manuel

Ascended (15195)

Manuel's picture

21-11-2018, 22:33

OK, that sounds bad... does it mean we need to patch SDL somehow? Can you take a look at that? We don't really have a full-blown Mac developer in our team anymore.

By Grauw

Enlighted (7894)

Grauw's picture

24-11-2018, 14:41

I figured it’d be easier to track these two issues on github than in a forum thread Smile:

https://github.com/openMSX/openMSX/issues/1125
https://github.com/openMSX/openMSX/issues/1126

My MSX profile