diff --git a/clang/lib/Basic/Targets/Hexagon.cpp b/clang/lib/Basic/Targets/Hexagon.cpp --- a/clang/lib/Basic/Targets/Hexagon.cpp +++ b/clang/lib/Basic/Targets/Hexagon.cpp @@ -24,6 +24,8 @@ Builder.defineMacro("__qdsp6__", "1"); Builder.defineMacro("__hexagon__", "1"); + Builder.defineMacro("__ELF__"); + // The macro __HVXDBL__ is deprecated. bool DefineHvxDbl = false; diff --git a/clang/test/Preprocessor/hexagon-predefines.c b/clang/test/Preprocessor/hexagon-predefines.c --- a/clang/test/Preprocessor/hexagon-predefines.c +++ b/clang/test/Preprocessor/hexagon-predefines.c @@ -96,3 +96,8 @@ // CHECK-V67HVX-128B: #define __HVX_LENGTH__ 128 // CHECK-V67HVX-128B: #define __HVX__ 1 // CHECK-V67HVX-128B: #define __hexagon__ 1 + +// RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv67 \ +// RUN: -target-feature +hvxv67 -target-feature +hvx-length128b %s | FileCheck \ +// RUN: %s -check-prefix CHECK-ELF +// CHECK-ELF: #define __ELF__ 1 diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt --- a/compiler-rt/lib/builtins/CMakeLists.txt +++ b/compiler-rt/lib/builtins/CMakeLists.txt @@ -492,7 +492,6 @@ set(armv7em_SOURCES ${arm_SOURCES}) # hexagon arch -set(hexagon_SOURCES ${GENERIC_SOURCES} ${GENERIC_TF_SOURCES}) set(hexagon_SOURCES hexagon/common_entry_exit_abi1.S hexagon/common_entry_exit_abi2.S @@ -524,6 +523,8 @@ hexagon/udivsi3.S hexagon/umoddi3.S hexagon/umodsi3.S + ${GENERIC_SOURCES} + ${GENERIC_TF_SOURCES} )