Skip to content

Fixes for macOS Sequoia build problems, some tests still stalling out. - #12

Open
nthcomputing wants to merge 2 commits into
AdaCore:masterfrom
nthcomputing:master
Open

Fixes for macOS Sequoia build problems, some tests still stalling out.#12
nthcomputing wants to merge 2 commits into
AdaCore:masterfrom
nthcomputing:master

Conversation

@nthcomputing

Copy link
Copy Markdown

Summary of Fixes

This is a series of small fixes to remedy the build system errors found on MacOS Sequoia.

Most of them were basic C macro visibility issues, one was improper removal of the an old guard, one was an incorrect, re-used, signal value that was fixed by just defining the unused signal by name with a value of 0 (if you can think of a better value, please update that), and lastly struct ip_opts was incorrectly marked as missing in MacOS, so it was redefined by forist source. The fix was to override florist source to allow native MacOS definition of struct ip_opts to be used by enabling HAVE_struct_ip_opts.

There were no new compilation bugs on the source files themselves. Everything here is really an alteration to the build system. Too many test failures to really know how it's operating. I may eventually look into it but the first couple errors are actually real definitions that honestly differ from the IEEE 1003.5 documentation and so are valid failures due to real differences in Darwin kernel source.

These fixes were not tested again another OS, so that needs to be done to ensure they are clean and apply to MacOS only.

Build problems included:

MacOS - Test Parameters.adb:
SIGUSR2 = 31 so created a real SIGUNUSED Variable = 0 instead and used that.

MacOS - posix-signals.ads
Created SIGUNUSED := 0;

I put back a previously existing PRAGMA warning off that protected a invalid range definition for Realtime_Signal, This should have never been removed, unknown why MacOS guards were altered?

MacOS - c-posix.c
Build errors basically due to missing some C macro definitions that only appear when DARWIN_C_SOURCE is defined. Used APPLE Macro to enable these other needed macros or even make them visible.

ip_opts struct was incorrectly detected on MacOS as missing. Forcibly enabled HAVE_struct_ip_opts just for APPLE to fix this, didn't see a better way.

Thanks!

Build problems included:

MacOS - Test Parameters.adb:
SIGUSR2 = 31 so created a real SIGUNUSED Variable = 0 instead and used that!

MacOS - posix-signals.ads
Created SIGUNUSED  := 0;

I put back a previously existing PRAGMA warning that protected a invalid range definition for Realtime_Signal, This should have never been removed, unknown why MacOS guards were altered?

MacOS - c-posix.c
Build errors basically missing some definitions due to lack of C macro definitions for DARWIN_C_SOURCE.  __APPLE__ Macro was used to enable these macros or even make them visible.

ip_opts struct was incorrectly detected on MacOS.  Forcibly enabled HAVE_struct_ip_opts just for __APPLE__ to fix this.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant