bmx-ng / bcc

A next-generation bcc parser for BlitzMax
zlib License
33 stars 12 forks source link

Compilation failure on Apple Silicon M1 Max (clang 17) #659

Closed sblank closed 6 months ago

sblank commented 7 months ago

Sometime in the last month (or a bit earlier), I began receiving the following error:

/Users/sblank/Desktop/BlitzMax/dist/bootstrap/mod/brl.mod/hook.mod/.bmx/hook.bmx.release.macos.arm64.c:18:26: error: incompatible function pointer types assigning to 'BBOBJECT ()(BBINT, BBOBJECT, BBOBJECT)' (aka 'struct BBObject ()(int, struct BBObject , struct BBObject )') from 'void ()()' [-Wincompatible-function-pointer-types]

at several points in the compilation process, resulting in a build failure. My assumption is that some update or other to clang has introduced a more strict compilation, but I've been unable to find a workaround or fix.

Has anyone else experienced this behavior?

woollybah commented 7 months ago

What version of llvm are you using? eg

% clang --version
Apple clang version 15.0.0 (clang-1500.0.40.1)
Target: arm64-apple-darwin23.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
woollybah commented 7 months ago

I've installed 17 via hombrew and configured BlitzMax to build using that, and am able to reproduce. Thanks.

sblank commented 7 months ago

Homebrew clang version 17.0.6 Target: arm64-apple-darwin23.4.0 Thread model: posix InstalledDir: /opt/homebrew/Cellar/llvm/17.0.6_1/bin

Thanks!

Stan

woollybah commented 7 months ago

You can get around it for the time being (until a fix is implemented) by adding something like this to custom.bmk

setccopt functionptrs -Wno-incompatible-function-pointer-types
sblank commented 7 months ago

Unfortunately, the workaround didn't do the trick and the same errors appeared. I added the line in three 'custom.bmk' locations:

~/BlitzMax/bin/custom.bmk ~/BlitzMax/dist/bootstrap/src/bmk/custom.bmk ~/BlitzMax/src/bmk/custom.bmk

I can wait for the fix, no worries.

Thank you for working on this issue!

Stan

woollybah commented 7 months ago

You'd probably need to regenerate the bootstrap code and scripts with the new option included in the version of BlitzMax you are building with.

sblank commented 7 months ago

Regenerating the bootstrap code is something that is beyond my expertise at the moment. I've poked around a bit, but I'm not certain where to start. I'm using the latest bmx-ng version from a few days ago.

Regards,

Stan

sblank commented 6 months ago

Thanks Brucey! I'll check it out later today... looking forward to it!

Cheers,

Stan

GWRon commented 6 months ago

Thanks Brucey! I'll check it out later today... looking forward to it!

Cheers,

Stan

Hey Stan, did you check it out ? And does it run flawless for you?

Asking as the commit fixing your issue leads to issues on other user's computers (at least Windows of others, and on my Linux box too -> #662).

sblank commented 6 months ago

Hi Brucey,

I did check it out, but had no luck with creating the bmk executable.
The bcc file seems to be there, but that's all. I'm still getting similar error messages and I thought I had posted a message showing the terminal output, but apparently not.

My apologies for not getting back to you... I'll keep a closer watch now that my teaching duties are over for the summer!

Thank you for responding!

Stan

On 2024-05-26 06:24, Ronny Otto wrote:

Thanks Brucey! I'll check it out later today... looking forward to it!

Cheers,

Stan

Hey Stan, did you check it out ? And does it run flawless for you?

Asking as the commit fixing your issue leads to issues on other user's computers (at least Windows of others, and on my Linux box too -> #662 [1]).

-- Reply to this email directly, view it on GitHub [2], or unsubscribe [3]. You are receiving this because you authored the thread.Message ID: @.***>

Links:

[1] https://github.com/bmx-ng/bcc/issues/662 [2] https://github.com/bmx-ng/bcc/issues/659#issuecomment-2132184116 [3] https://github.com/notifications/unsubscribe-auth/ABR2UTTME7UXYM42PWXVJX3ZEHBAJAVCNFSM6AAAAABHFBDHS6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZSGE4DIMJRGY

sblank commented 6 months ago

My mistake... thanks for responding Ronny!

No luck getting bmk to compile and MaxIde has never worked on my MacBook Pro M1 Max, but I could at least use BlitzMax-ng through VSCode.

Kind regards,

Stan

On 2024-05-26 06:24, Ronny Otto wrote:

Thanks Brucey! I'll check it out later today... looking forward to it!

Cheers,

Stan

Hey Stan, did you check it out ? And does it run flawless for you?

Asking as the commit fixing your issue leads to issues on other user's computers (at least Windows of others, and on my Linux box too -> #662 [1]).

-- Reply to this email directly, view it on GitHub [2], or unsubscribe [3]. You are receiving this because you authored the thread.Message ID: @.***>

Links:

[1] https://github.com/bmx-ng/bcc/issues/662 [2] https://github.com/bmx-ng/bcc/issues/659#issuecomment-2132184116 [3] https://github.com/notifications/unsubscribe-auth/ABR2UTTME7UXYM42PWXVJX3ZEHBAJAVCNFSM6AAAAABHFBDHS6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZSGE4DIMJRGY

sblank commented 6 months ago

Progress was made on the current release (May 26, 2024) in that both bcc and bmk compiled. MaxIDE did not compile, but using VSCode I was able to at least begin to build some of the samples. However, none of the samples could complete the build process and the errors were consistent:

[ 81%] Compiling:linux_source.bmx.release.macos.arm64.c /Users/sblank/Desktop/BlitzMax/mod/sdl.mod/sdl.mod/SDL/src/thread/SDL_thread.c:294:41: error: incompatible integer to pointer conversion passing 'SDL_threadID' (aka 'unsigned long') to parameter of type 'void ' [-Wint-conversion] BBThread bbThread = bbThreadRegister(SDL_ThreadID()); ^~~~~~ /Users/sblank/Desktop/BlitzMax/mod/brl.mod/blitz.mod/blitz_thread.h:140:36: note: passing argument to parameter 'thd' here BBThread bbThreadRegister( void thd ); ^ [ 82%] Compiling:common.bmx.release.macos.arm64.c 1 error generated. [ 82%] Compiling:common.bmx.release.macos.arm64.c [ 83%] Compiling:source.bmx.release.macos.arm64.c Build Error: failed to compile (256) /Users/sblank/Desktop/BlitzMax/mod/sdl.mod/sdl.mod/SDL/src/thread/SDL_thread.c [ 84%] Compiling:vector.bmx.release.macos.arm64.c

== ERROR ==

Execution time: 0s 584.222375ms

On 2024-05-26 06:24, Ronny Otto wrote:

Thanks Brucey! I'll check it out later today... looking forward to it!

Cheers,

Stan

Hey Stan, did you check it out ? And does it run flawless for you?

Asking as the commit fixing your issue leads to issues on other user's computers (at least Windows of others, and on my Linux box too -> #662 [1]).

-- Reply to this email directly, view it on GitHub [2], or unsubscribe [3]. You are receiving this because you authored the thread.Message ID: @.***>

Links:

[1] https://github.com/bmx-ng/bcc/issues/662 [2] https://github.com/bmx-ng/bcc/issues/659#issuecomment-2132184116 [3] https://github.com/notifications/unsubscribe-auth/ABR2UTTME7UXYM42PWXVJX3ZEHBAJAVCNFSM6AAAAABHFBDHS6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZSGE4DIMJRGY