Index: runtime/src/z_Linux_asm.s =================================================================== --- runtime/src/z_Linux_asm.s +++ runtime/src/z_Linux_asm.s @@ -109,8 +109,28 @@ # endif // KMP_OS_DARWIN #endif // KMP_ARCH_X86 || KMP_ARCH_x86_64 -#if KMP_OS_LINUX && KMP_ARCH_AARCH64 +#if KMP_ARCH_AARCH64 +# if KMP_OS_DARWIN +# define KMP_PREFIX_UNDERSCORE(x) _##x // extra underscore for OS X* symbols +# define KMP_LABEL(x) L_##x // form the name of label + +.macro ALIGN + .align $0 +.endmacro + +.macro DEBUG_INFO +/* Not sure what .size does in icc, not sure if we need to do something + similar for OS X*. +*/ +.endmacro + +.macro PROC + ALIGN 4 + .globl KMP_PREFIX_UNDERSCORE($0) +KMP_PREFIX_UNDERSCORE($0): +.endmacro +# else // KMP_OS_DARWIN # define KMP_PREFIX_UNDERSCORE(x) x // no extra underscore for Linux* OS symbols // Format labels so that they don't override function names in gdb's backtraces # define KMP_LABEL(x) .L_##x // local label hidden from backtraces @@ -133,8 +153,9 @@ KMP_PREFIX_UNDERSCORE(\proc): .cfi_startproc .endm +# endif // KMP_OS_DARWIN -#endif // KMP_OS_LINUX && KMP_ARCH_AARCH64 +#endif // KMP_ARCH_AARCH64 // ----------------------------------------------------------------------- // data @@ -1441,7 +1462,7 @@ #endif /* KMP_ARCH_X86_64 */ // ' -#if KMP_OS_LINUX && KMP_ARCH_AARCH64 +#if KMP_ARCH_AARCH64 //------------------------------------------------------------------------ // @@ -1553,7 +1574,7 @@ DEBUG_INFO __kmp_invoke_microtask // -- End __kmp_invoke_microtask -#endif /* KMP_OS_LINUX && KMP_ARCH_AARCH64 */ +#endif /* KMP_ARCH_AARCH64 */ #if KMP_ARCH_PPC64 Index: runtime/src/z_Linux_util.cpp =================================================================== --- runtime/src/z_Linux_util.cpp +++ runtime/src/z_Linux_util.cpp @@ -2516,7 +2516,7 @@ #endif // USE_LOAD_BALANCE -#if !(KMP_ARCH_X86 || KMP_ARCH_X86_64 || KMP_MIC || (KMP_OS_LINUX && KMP_ARCH_AARCH64) || KMP_ARCH_PPC64) +#if !(KMP_ARCH_X86 || KMP_ARCH_X86_64 || KMP_MIC || KMP_ARCH_AARCH64 || KMP_ARCH_PPC64) // we really only need the case with 1 argument, because CLANG always build // a struct of pointers to shared variables referenced in the outlined function