diff --git a/flang-rt/cmake/modules/AddFlangRT.cmake b/flang-rt/cmake/modules/AddFlangRT.cmake index 43b1451d65e32..ab383bcbe2cdf 100644 --- a/flang-rt/cmake/modules/AddFlangRT.cmake +++ b/flang-rt/cmake/modules/AddFlangRT.cmake @@ -251,8 +251,15 @@ function (add_flangrt_library name) $<$:-nogpulib -flto -fvisibility=hidden -Wno-unknown-cuda-version --cuda-feature=+ptx63> ) elseif (APPLE) + # Clang on Darwin enables non-POSIX extensions by default. + # This causes some macros to leak, such as HUGE from , which + # causes some conflicts with Flang symbols (but not with Flang-RT, for + # now). + # It also causes some Flang-RT extensions to be disabled, such as fdate, + # that checks for _POSIX_C_SOURCE. + # Setting _POSIX_C_SOURCE avoids these issues. target_compile_options(${tgtname} PRIVATE - $<$:${DARWIN_osx_BUILTIN_MIN_VER_FLAG}> + $<$:${DARWIN_osx_BUILTIN_MIN_VER_FLAG} -D_POSIX_C_SOURCE=200809> ) endif () diff --git a/flang-rt/unittests/CMakeLists.txt b/flang-rt/unittests/CMakeLists.txt index fd63ad11dcf43..53cd54dfd215e 100644 --- a/flang-rt/unittests/CMakeLists.txt +++ b/flang-rt/unittests/CMakeLists.txt @@ -78,6 +78,15 @@ function(add_flangrt_dependent_libs target) instead falls back to builtins from Compiler-RT. Linking with ${tgtname} may result in a linker error.") endif () + elseif (APPLE) + # Clang on Darwin enables non-POSIX extensions by default. + # This causes some macros to leak, such as HUGE from , which + # causes some conflicts with Flang symbols (but not with Flang-RT, for + # now). + # It also causes some Flang-RT extensions to be disabled, such as fdate, + # that checks for _POSIX_C_SOURCE. + # Setting _POSIX_C_SOURCE avoids these issues. + target_compile_options(${target} PRIVATE "-D_POSIX_C_SOURCE=200809") endif () endfunction()