Fix macOS 26 CLING runtime dictionary errors caused by Homebrew/SDK header conflicts
macOS 26 (Darwin 25.5.0) introduced stricter Clang module map rules in
DarwinFoundation1.modulemap: the '_c_standard_library_obsolete' module
now requires the 'found_incompatible_headers__check_search_paths' feature,
which CLING's runtime interpreter does not set. When fftw3.h (from
/opt/homebrew/include) was parsed by CLING via the inlined PStartupHandler
dictionary payload, it triggered this module map error, causing all
PStartupHandler signal/slot connections to fail.
Two fixes:
- PMusr.h: guard '#include "fftw3.h"' with '#ifndef __CLING__'. No fftw
types appear in PMusr.h class definitions, so CLING does not need it
for reflection. This is the primary runtime fix.
- CMakeLists.txt (src/classes and all src/external libs): replace
'-I${FFTW3_INCLUDE}', '-I${Boost_INCLUDE_DIRS}', '-I${GSL_INCLUDE_DIRS}',
and '-I${ROOT_INCLUDE_DIRS}' with '-isystem' in all root_generate_dictionary
OPTIONS blocks, and change 'include_directories(${FFTW3_INCLUDE})' to
'include_directories(SYSTEM ...)'. Internal project paths (MUSRFIT_INC,
BMW_TOOLS_INC, NONLOCAL_INC, CMAKE_CURRENT_SOURCE_DIR, etc.) keep '-I'.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,10 +3,10 @@ FeSe 9p4 TF100 p107apr09_sample*1p02
|
||||
FITPARAMETER
|
||||
# Nr. Name Value Step Pos_Error Boundaries
|
||||
1 alpha 0.954734 0 none 0 2
|
||||
2 asy 0.2624 0.0014 none 0 0.33
|
||||
3 phase -0.10 0.33 none
|
||||
4 field 97.912 0.055 none 0 none
|
||||
5 rate 0.3164 0.0044 none 0 none
|
||||
2 asy 0.2625 0.0014 none 0 0.33
|
||||
3 phase -0.11 0.33 none
|
||||
4 field 97.913 0.055 none 0 none
|
||||
5 rate 0.3159 0.0044 none 0 none
|
||||
|
||||
###############################################################
|
||||
THEORY
|
||||
@@ -25,7 +25,7 @@ alpha 1
|
||||
map 0 0 0 0 0 0 0 0 0 0 0
|
||||
forward 2
|
||||
backward 1
|
||||
background 61 184 57 145
|
||||
background 61 184 57 145 # estimated bkg: 60.9593 / 71.2955
|
||||
data 207 7994 167 8009
|
||||
t0 202.0 162.0
|
||||
fit 0 8
|
||||
@@ -40,10 +40,10 @@ SAVE
|
||||
|
||||
###############################################################
|
||||
FOURIER
|
||||
units Gauss # units either 'Gauss', 'MHz', or 'Mc/s'
|
||||
units Gauss # units either 'Gauss', 'Tesla', 'MHz', or 'Mc/s'
|
||||
fourier_power 12
|
||||
apodization NONE # NONE, WEAK, MEDIUM, STRONG
|
||||
plot POWER # REAL, IMAG, REAL_AND_IMAG, POWER, PHASE
|
||||
plot POWER # REAL, IMAG, REAL_AND_IMAG, POWER, PHASE, PHASE_OPT_REAL
|
||||
phase 8
|
||||
#range_for_phase_correction 50.0 70.0
|
||||
range 0 200
|
||||
@@ -55,5 +55,5 @@ range 0 8 -0.3 0.3
|
||||
view_packing 38
|
||||
|
||||
###############################################################
|
||||
STATISTIC --- 2012-03-20 11:22:25
|
||||
chisq = 554.2, NDF = 351, chisq/NDF = 1.578917
|
||||
STATISTIC --- 2026-06-27 13:56:43
|
||||
chisq = 566.7, NDF = 351, chisq/NDF = 1.614589
|
||||
|
||||
@@ -6,14 +6,14 @@ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include)
|
||||
# Hence, target_include_directories cannot be used here because, targets are
|
||||
# setup only afterwards.
|
||||
include_directories(${MUSRFIT_INC})
|
||||
include_directories(${FFTW3_INC})
|
||||
include_directories(SYSTEM ${FFTW3_INCLUDE})
|
||||
|
||||
root_generate_dictionary(
|
||||
PFourierCanvasDict
|
||||
PFourierCanvas.h
|
||||
OPTIONS
|
||||
-I${MUSRFIT_INC}
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-inlineInputHeader
|
||||
LINKDEF ${MUSRFIT_INC}/PFourierCanvasLinkDef.h
|
||||
MODULE PFourierCanvas
|
||||
@@ -23,7 +23,7 @@ root_generate_dictionary(
|
||||
PMsgBox.h
|
||||
LINKDEF ${MUSRFIT_INC}/PMsgBoxLinkDef.h
|
||||
OPTIONS
|
||||
-I${Boost_INCLUDE_DIRS} -I${FFTW3_INCLUDE} -I${MUSRFIT_INC}
|
||||
-isystem ${Boost_INCLUDE_DIRS} -isystem ${FFTW3_INCLUDE} -I${MUSRFIT_INC}
|
||||
-inlineInputHeader
|
||||
MODULE PMsgBox
|
||||
)
|
||||
@@ -32,7 +32,7 @@ root_generate_dictionary(
|
||||
PMusrCanvas.h
|
||||
LINKDEF ${MUSRFIT_INC}/PMusrCanvasLinkDef.h
|
||||
OPTIONS
|
||||
-I${Boost_INCLUDE_DIRS} -I${FFTW3_INCLUDE} -I${MUSRFIT_INC}
|
||||
-isystem ${Boost_INCLUDE_DIRS} -isystem ${FFTW3_INCLUDE} -I${MUSRFIT_INC}
|
||||
-inlineInputHeader
|
||||
MODULE PMusrCanvas
|
||||
)
|
||||
@@ -41,7 +41,7 @@ root_generate_dictionary(
|
||||
PMusrT0.h
|
||||
LINKDEF ${MUSRFIT_INC}/PMusrT0LinkDef.h
|
||||
OPTIONS
|
||||
-I${Boost_INCLUDE_DIRS} -I${FFTW3_INCLUDE} -I${MUSRFIT_INC}
|
||||
-isystem ${Boost_INCLUDE_DIRS} -isystem ${FFTW3_INCLUDE} -I${MUSRFIT_INC}
|
||||
-inlineInputHeader
|
||||
MODULE PMusrT0
|
||||
)
|
||||
@@ -50,7 +50,7 @@ root_generate_dictionary(
|
||||
PStartupHandler.h
|
||||
LINKDEF ${MUSRFIT_INC}/PStartupHandlerLinkDef.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE} -I${MUSRFIT_INC}
|
||||
-isystem ${FFTW3_INCLUDE} -I${MUSRFIT_INC}
|
||||
-inlineInputHeader
|
||||
MODULE PStartupHandler
|
||||
)
|
||||
@@ -60,7 +60,7 @@ root_generate_dictionary(
|
||||
LINKDEF ${MUSRFIT_INC}/PUserFcnBaseLinkDef.h
|
||||
OPTIONS
|
||||
-inlineInputHeader
|
||||
-I${FFTW3_INCLUDE} -I${MUSRFIT_INC}
|
||||
-isystem ${FFTW3_INCLUDE} -I${MUSRFIT_INC}
|
||||
MODULE PUserFcnBase
|
||||
)
|
||||
root_generate_dictionary(
|
||||
@@ -69,7 +69,7 @@ root_generate_dictionary(
|
||||
OPTIONS
|
||||
-I${NONLOCAL_INC}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${CMAKE_CURRENT_SOURCE_DIR}
|
||||
-inlineInputHeader
|
||||
LINKDEF ${MUSRFIT_INC}/PRgeHandlerLinkDef.h
|
||||
@@ -129,7 +129,7 @@ add_library(PMusr SHARED
|
||||
)
|
||||
#--- make sure that the include directory is found ----------------------------
|
||||
target_include_directories(
|
||||
PMusr BEFORE PRIVATE
|
||||
PMusr SYSTEM BEFORE PRIVATE
|
||||
$<BUILD_INTERFACE:${DKS_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${Boost_INCLUDE_DIRS}>
|
||||
$<BUILD_INTERFACE:${FFTW3_INCLUDE}>
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ root_generate_dictionary(
|
||||
PDepthProfileDict
|
||||
PDepthProfile.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE_DIR}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${DEPTH_PROFILE_INC}
|
||||
-inlineInputHeader
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ root_generate_dictionary(
|
||||
PMagProximityFitterDict
|
||||
PMagProximityFitter.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${CMAKE_CURRENT_SOURCE_DIR}
|
||||
-inlineInputHeader
|
||||
|
||||
Vendored
+1
-1
@@ -14,7 +14,7 @@ root_generate_dictionary(
|
||||
PNL_PippardFitterDict
|
||||
PNL_PippardFitter.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${NONLOCAL_INC}
|
||||
-I${CMAKE_CURRENT_SOURCE_DIR}
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ root_generate_dictionary(
|
||||
LineProfileDict
|
||||
LineProfile.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
LINKDEF LineProfileLinkDef.h
|
||||
MODULE LineProfile
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ root_generate_dictionary(
|
||||
TCalcMeanFieldsLEMDict
|
||||
TCalcMeanFieldsLEM.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${BMW_TOOLS_INC}
|
||||
-I${POFB_INC}
|
||||
|
||||
+3
-3
@@ -13,7 +13,7 @@ root_generate_dictionary(
|
||||
TLondon1DDict
|
||||
TLondon1D.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${BMW_TOOLS_INC}
|
||||
-I${FIT_P_OF_B_INC}
|
||||
@@ -25,7 +25,7 @@ root_generate_dictionary(
|
||||
TVortexDict
|
||||
TVortex.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${BMW_TOOLS_INC}
|
||||
-I${FIT_P_OF_B_INC}
|
||||
@@ -37,7 +37,7 @@ root_generate_dictionary(
|
||||
TSkewedGssDict
|
||||
TSkewedGss.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${BMW_TOOLS_INC}
|
||||
-I${POFB_INC}
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ root_generate_dictionary(
|
||||
TGapIntegralsDict
|
||||
TGapIntegrals.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${BMW_TOOLS_INC}
|
||||
-I${CMAKE_CURRENT_SOURCE_DIR}
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ root_generate_dictionary(
|
||||
TLFRelaxationDict
|
||||
TLFRelaxation.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${BMW_TOOLS_INC}
|
||||
-inlineInputHeader
|
||||
|
||||
+3
-3
@@ -12,9 +12,9 @@ root_generate_dictionary(
|
||||
PPhotoMeissnerDict
|
||||
PPhotoMeissner.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-I${GSL_INCLUDE_DIRS}
|
||||
-I${ROOT_INCLUDE_DIRS}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-isystem ${GSL_INCLUDE_DIRS}
|
||||
-isystem ${ROOT_INCLUDE_DIRS}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${PHOTO_MEISSNER_INC}
|
||||
-inlineInputHeader
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ root_generate_dictionary(
|
||||
PSkewedLorentzianDict
|
||||
PSkewedLorentzian.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${SPIN_VALVE_INC}
|
||||
-inlineInputHeader
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ root_generate_dictionary(
|
||||
ZFRelaxationDict
|
||||
ZFRelaxation.h
|
||||
OPTIONS
|
||||
-I${FFTW3_INCLUDE}
|
||||
-isystem ${FFTW3_INCLUDE}
|
||||
-I${MUSRFIT_INC}
|
||||
-I${BMW_TOOLS_INC}
|
||||
-inlineInputHeader
|
||||
|
||||
@@ -39,7 +39,12 @@
|
||||
//#ifdef __CINT__
|
||||
//typedef struct { char a[7]; } __float128; // needed since cint doesn't know it
|
||||
//#endif
|
||||
// __CLING__ guard: fftw3.h includes <stddef.h> which triggers macOS module map
|
||||
// errors in CLING's runtime parser when Homebrew paths are in the search path.
|
||||
// No fftw types are used in this header's class definitions, so CLING doesn't need it.
|
||||
#ifndef __CLING__
|
||||
#include "fftw3.h"
|
||||
#endif
|
||||
|
||||
//-------------------------------------------------------------
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user