Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • Nektar Nektar
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 90
    • Issues 90
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 60
    • Merge requests 60
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Nektar
  • NektarNektar
  • Merge requests
  • !1462

Enable ARM macOS runner, fixes for SCOTCH allocation and PETSc detection on macOS

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Dave Moxey requested to merge feature/macos-arm into master Dec 10, 2022
  • Overview 6
  • Commits 4
  • Pipelines 3
  • Changes 9

Issue/feature addressed

This MR enables a macOS ARM-based M1 runner. It also addresses two macOS-related issues with Scotch graph allocation and PETSc detection.

Proposed solution

Most of the work in this branch has been in setting up the runner itself. However two regressions were identified. Firstly, SCOTCH_Graph behaviour seems to be different in newer versions of Scotch. Secondly, PETSc detection recently moved to use pkg-config in !1454 (merged), but when the library is not in the main linker path, linking fails.

Implementation

Scotch graph allocation now uses the SCOTCH_graphAlloc function in SubStructuredGraph.cpp:

SCOTCH_graphAlloc *scGraph = SCOTCH_graphAlloc();

PETSc detection now uses the PETSC_LINK_LIBRARIES variable, if available:

        # Prefer to use absolute paths to avoid separate link directories on
        # some platforms (e.g. macOS). However not available in all CMake
        # versions.
        IF (DEFINED PETSC_LINK_LIBRARIES)
            SET(PETSC_LIBRARIES ${PETSC_LINK_LIBRARIES} CACHE INTERNAL "")
        ENDIF()

Tests

No new tests, but macOS runner now enabled.

Suggested reviewers

@ccantwel @mgreen

Notes

@mgreen I think this is the thing that was causing runtime errors for you, might be worth checking this now works for you.

Checklist

  • [ ] Functions and classes, or changes to them, are documented.
  • [ ] User guide/documentation is updated.
  • Changelog is updated.
  • Suitable tests added for new functionality.
  • Contributed code is correctly formatted. (See the contributing guidelines).
  • [ ] License added to any new files.
  • No extraneous files have been added (e.g. compiler output or test data files).
Edited Dec 10, 2022 by Dave Moxey
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: feature/macos-arm