Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Autoconf: Detect FMS IO implementation #652

Merged
merged 2 commits into from
May 24, 2024

Conversation

marshallward
Copy link
Member

This patch allows autoconf to detect the version of FMS IO that is implemented in its library, and select the appropriate "infra" in the MOM6 source.

The allows for removal of the --with-framework flag, and should prevent future FMS library/infra mismatches.

@marshallward marshallward requested a review from adcroft May 24, 2024 14:52
This patch allows autoconf to detect the version of FMS IO that is
implemented in its library, and select the appropriate "infra" in the
MOM6 source.

The allows for removal of the --with-framework flag, and should prevent
future FMS library/infra mismatches.
@adcroft
Copy link
Member

adcroft commented May 24, 2024

So how do you control which FMS to use? Currently MacOS is failing presumably because it found FMS2 again

@marshallward
Copy link
Member Author

I think the regression test fail is expected:

  1. MacOS uses GCC 14.1, which can currently only use FMS1
  2. The FRAMEWORKK argument (fms1) was used to specify this framework. This no longer exists.
  3. The default framework is FMS2, which is presumably the cause of the error (cannot find fms2_io).

This more or less makes sense, but I can't yet decide if it should have happened or if it is somehow fixable.

@marshallward
Copy link
Member Author

Talked with @adcroft, we agree the cause of the regression is becasue the old target build is using the new .testing/Makefile, which no longer uses FRAMEWORK. We should put a bit more time into .testing so target_codebase uses its own .testing/Makefile.

The build/target/MOM6 rule was modified so that build/target is now a
symlink into build/target_codebase/.testing/build/symmetric.

In other words, build/target now uses the entire build system of
target_codebase (i.e. the reference codebase) rather than borrowing from
bits and pieces of the current codebase.

This should prevent potential false positives in future regression tests
related to buildsystem changes.

Several apparently unused blocks of rules and other content in
.testing/Makefile have also been removed.
@marshallward
Copy link
Member Author

The "target" build now uses its own build system. So not only is this regression avoided, but similar ones in the future should also be prevented.

@adcroft adcroft merged commit c7d3268 into NOAA-GFDL:dev/gfdl May 24, 2024
12 checks passed
@marshallward marshallward deleted the ac_fms_io_detect branch January 14, 2025 15:19
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.

2 participants