From 6d2cfd252cb98c579a4d6aea5d2e2cb25a879190 Mon Sep 17 00:00:00 2001 From: Omar Duran Date: Wed, 4 Feb 2026 16:33:56 -0800 Subject: [PATCH 1/4] fix: Resolves a segmentation fault on macOS (ARM64) The previous UMFPACK_ORDERING_BEST setting triggered external METIS calls that caused stack corruption due to library mismatch. --- .../linearAlgebra/interfaces/direct/SuiteSparse.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp b/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp index 33d3affe7cf..8e2b16e4eac 100644 --- a/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp @@ -172,7 +172,8 @@ void setOptions( SuiteSparseData & data, LinearSolverParameters const & params ) // Get the default control parameters umfpack_dl_defaults( data.control ); data.control[UMFPACK_PRL] = params.logLevel; - data.control[UMFPACK_ORDERING] = UMFPACK_ORDERING_BEST; + // Use AMD to avoid METIS-related stack inconsistencies on macOS + data.control[UMFPACK_ORDERING] = UMFPACK_ORDERING_AMD; } } // namespace From 905099b3fca07d99d8f0e103bad461ef7717039f Mon Sep 17 00:00:00 2001 From: Omar Duran Date: Wed, 4 Feb 2026 18:33:40 -0800 Subject: [PATCH 2/4] wip: rebase lines --- .integrated_tests.yaml | 2 +- BASELINE_NOTES.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.integrated_tests.yaml b/.integrated_tests.yaml index cba1657ab23..1a2decc0326 100644 --- a/.integrated_tests.yaml +++ b/.integrated_tests.yaml @@ -1,6 +1,6 @@ baselines: bucket: geosx - baseline: integratedTests/baseline_integratedTests-pr3940-15307-53de7ba + baseline: integratedTests/baseline_integratedTests-pr3963-15420-6d2cfd2 allow_fail: all: '' diff --git a/BASELINE_NOTES.md b/BASELINE_NOTES.md index 621dd209242..230f1918ddd 100644 --- a/BASELINE_NOTES.md +++ b/BASELINE_NOTES.md @@ -6,6 +6,10 @@ This file is designed to track changes to the integrated test baselines. Any developer who updates the baseline ID in the .integrated_tests.yaml file is expected to create an entry in this file with the pull request number, date, and their justification for rebaselining. These notes should be in reverse-chronological order, and use the following time format: (YYYY-MM-DD). +PR #3963 (2026-02-04) +===================== +Resolves a segmentation fault on macOS (ARM64) + PR #3940 (2026-01-27) ===================== Fix the transimissibility calculated between a cell and a surface element From f029a4910fc219a9c51ce8db1d116763d71e2109 Mon Sep 17 00:00:00 2001 From: Omar Duran Date: Wed, 4 Feb 2026 18:41:08 -0800 Subject: [PATCH 3/4] Triggering CI/CD From 7d86c704de89bc97c1a1cf5291c3d9fda294e8fd Mon Sep 17 00:00:00 2001 From: Omar Duran Date: Mon, 16 Mar 2026 18:02:00 -0700 Subject: [PATCH 4/4] wip: better fix linking components explicitly. --- src/cmake/thirdparty/SetupGeosxThirdParty.cmake | 11 +++++++++-- .../linearAlgebra/interfaces/direct/SuiteSparse.cpp | 3 +-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/cmake/thirdparty/SetupGeosxThirdParty.cmake b/src/cmake/thirdparty/SetupGeosxThirdParty.cmake index 24f29fb1799..6cfe9fd286e 100644 --- a/src/cmake/thirdparty/SetupGeosxThirdParty.cmake +++ b/src/cmake/thirdparty/SetupGeosxThirdParty.cmake @@ -211,7 +211,7 @@ else() endif() ################################ -# ZLIB +# ZLIB ################################ if(DEFINED ZLIB_DIR) list(PREPEND CMAKE_PREFIX_PATH "${ZLIB_DIR}") @@ -638,11 +638,18 @@ endif() if(DEFINED SUITESPARSE_DIR) message(STATUS "SUITESPARSE_DIR = ${SUITESPARSE_DIR}") + set( SUITESPARSE_LIBRARIES umfpack amd suitesparseconfig ) + if( APPLE ) + # UMFPACK on macOS can route ordering through CHOLMOD internals. + # Link these components explicitly to avoid fragile runtime symbol resolution. + list( APPEND SUITESPARSE_LIBRARIES cholmod colamd camd ccolamd ) + endif() + find_and_import(NAME suitesparse INCLUDE_DIRECTORIES ${SUITESPARSE_DIR}/include LIBRARY_DIRECTORIES ${SUITESPARSE_DIR}/lib ${SUITESPARSE_DIR}/lib64 HEADER umfpack.h - LIBRARIES umfpack + LIBRARIES ${SUITESPARSE_LIBRARIES} DEPENDS blas lapack) extract_version_from_header( NAME suitesparse diff --git a/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp b/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp index fd1c980f3c4..31254c27533 100644 --- a/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp @@ -172,8 +172,7 @@ void setOptions( SuiteSparseData & data, LinearSolverParameters const & params ) // Get the default control parameters umfpack_dl_defaults( data.control ); data.control[UMFPACK_PRL] = params.logLevel; - // Use AMD to avoid METIS-related stack inconsistencies on macOS - data.control[UMFPACK_ORDERING] = UMFPACK_ORDERING_AMD; + data.control[UMFPACK_ORDERING] = UMFPACK_ORDERING_BEST; } } // namespace