[llvm-branch-commits] [clang] 2b74728 - Add Hightec toolchain description
Author: Konstantin Schwarz
Date: 2019-01-17T09:43:28+01:00
New Revision: 2b747283621473751ef40c0f2ea1fdf50c14453f
URL:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f
DIFF:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f.diff
LOG: Add Hightec toolchain description
Added:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
Modified:
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
Removed:
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 2b03c9f7001f7..637907aa91fe3 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,6 +45,7 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
+ ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 952a716cb6e61..1caf63bf354f7 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -26,6 +26,7 @@
#include "ToolChains/HIP.h"
#include "ToolChains/Haiku.h"
#include "ToolChains/Hexagon.h"
+#include "ToolChains/HighTec.h"
#include "ToolChains/Lanai.h"
#include "ToolChains/Linux.h"
#include "ToolChains/MSVC.h"
@@ -4282,6 +4283,12 @@ const ToolChain &Driver::getToolChain(const ArgList
&Args,
auto &TC = ToolChains[Target.str()];
if (!TC) {
+
+if (toolchains::HighTec::handlesTarget(Target)) {
+ TC = llvm::make_unique(*this, Target, Args);
+ return *TC;
+}
+
switch (Target.getOS()) {
case llvm::Triple::Haiku:
TC = llvm::make_unique(*this, Target, Args);
diff --git a/clang/lib/Driver/ToolChains/HighTec.cpp
b/clang/lib/Driver/ToolChains/HighTec.cpp
new file mode 100644
index 0..367137f771b08
--- /dev/null
+++ b/clang/lib/Driver/ToolChains/HighTec.cpp
@@ -0,0 +1,311 @@
+//===--- HighTec.cpp - HighTec ToolChain Implementation *- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===--===//
+
+#include "HighTec.h"
+#include "Arch/ARM.h"
+#include "clang/Basic/Version.h"
+#include "clang/Basic/VirtualFileSystem.h"
+#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Driver.h"
+#include "clang/Driver/DriverDiagnostic.h"
+#include "clang/Driver/Options.h"
+#include "llvm/Option/ArgList.h"
+#include "llvm/Support/Path.h"
+#include "llvm/Support/TargetParser.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm::opt;
+using namespace clang;
+using namespace clang::driver;
+using namespace clang::driver::tools;
+using namespace clang::driver::toolchains;
+
+static std::string getArchitecture(llvm::Triple Triple) {
+
+ llvm::StringRef Arch = llvm::Triple::getArchTypePrefix(Triple.getArch());
+ if (Arch != "")
+return Arch;
+
+ llvm_unreachable("Unknown architecture specified.");
+}
+
+static std::string getArchVersionString(StringRef Arch) {
+
+ switch (llvm::ARM::parseArch(llvm::ARM::getCanonicalArchName(Arch))) {
+default:
+ // For now, only support v7 & v8
+ return "";
+case llvm::ARM::ArchKind::ARMV8A:
+ return "v8-a";
+case llvm::ARM::ArchKind::ARMV8_1A:
+ return "v8.1-a";
+case llvm::ARM::ArchKind::ARMV8_2A:
+ return "v8-2-a";
+case llvm::ARM::ArchKind::ARMV8_3A:
+ return "v8-3-a";
+case llvm::ARM::ArchKind::ARMV8R:
+ return "v8-r";
+case llvm::ARM::ArchKind::ARMV8MBaseline:
+ return "v8-m.base";
+case llvm::ARM::ArchKind::ARMV8MMainline:
+ return "v8-m.main";
+case llvm::ARM::ArchKind::ARMV7A:
+ return "v7-a";
+case llvm::ARM::ArchKind::ARMV7R:
+ return "v7-r";
+case llvm::ARM::ArchKind::ARMV7EM:
+ return "v7e-m";
+case llvm::ARM::ArchKind::ARMV7M:
+ return "v7-m";
+case llvm::ARM::ArchKind::ARMV7S:
+ return "v7-s";
+case llvm::ARM::ArchKind::ARMV7K:
+ return "v7-k";
+case llvm::ARM::ArchKind::ARMV7VE:
+ return "v7ve";
+case llvm::ARM::ArchKind::ARMV6M:
+ return "v6-m";
+ }
+}
+
+static std::string getArchVersion(llvm::Triple Triple, const
llvm::opt::ArgList &Args) {
+
+
+ if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
+ return getArchVersionString(A->getValue());
+ } else {
+
+
[llvm-branch-commits] [clang] 043b898 - [LLVMARM-13] Add function for defining HighTec specific macros, call it from ARM targets.
Author: Konstantin Schwarz
Date: 2019-01-17T11:35:06+01:00
New Revision: 043b8986368f76ba8fa2c5e34db83537e8af6d47
URL:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47
DIFF:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47.diff
LOG: [LLVMARM-13] Add function for defining HighTec specific macros, call it
from ARM targets.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
Removed:
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1ef2fe3b81416..5ee68fd92ce2a 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,6 +112,10 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
+void addHighTecDefines(MacroBuilder &Builder) {
+ Builder.defineMacro("__HIGHTEC__");
+}
+
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index d450aa3f37ed6..3c31890c8e15b 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,6 +46,9 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
+
+LLVM_LIBRARY_VISIBILITY
+void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index 3444591ac5933..ddca8369b7423 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,6 +211,8 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+
+ addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 19fcc5abea97e..8d49f124c854a 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,6 +752,8 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
+
+ addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 716de1c - Remove repository URL from version string
Author: Konstantin Schwarz
Date: 2019-01-17T11:36:16+01:00
New Revision: 716de1cb582ea2676e1a00ed135085229d88e615
URL:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615
DIFF:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615.diff
LOG: Remove repository URL from version string
Added:
Modified:
clang/lib/Basic/Version.cpp
lld/Common/Version.cpp
Removed:
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index c2b7753d41288..bef40f9f1201c 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,6 +25,7 @@
namespace clang {
std::string getClangRepositoryPath() {
+ return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -55,6 +56,7 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
+ return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/lld/Common/Version.cpp b/lld/Common/Version.cpp
index 6226c9a2fac69..3ef83bbeddd18 100644
--- a/lld/Common/Version.cpp
+++ b/lld/Common/Version.cpp
@@ -30,6 +30,8 @@ static std::string getRepository() {
std::string Repo = getRepositoryPath();
std::string Rev = LLD_REVISION_STRING;
+ return " (" + Rev + ")";
+
if (Repo.empty() && Rev.empty())
return "";
if (!Repo.empty() && !Rev.empty())
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt] 550c750 - Add support for building compiler-rt for bare metal.
Author: Konstantin Schwarz
Date: 2019-01-17T12:15:24+01:00
New Revision: 550c750e922efcd0960498f876b28de71eb1657b
URL:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b
DIFF:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b.diff
LOG: Add support for building compiler-rt for bare metal.
Added:
Modified:
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
Removed:
diff --git a/compiler-rt/cmake/builtin-config-ix.cmake
b/compiler-rt/cmake/builtin-config-ix.cmake
index a5704e5fed537..17311bcd8661a 100644
--- a/compiler-rt/cmake/builtin-config-ix.cmake
+++ b/compiler-rt/cmake/builtin-config-ix.cmake
@@ -23,8 +23,8 @@ int foo(int x, int y) {
")
-set(ARM64 aarch64)
-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
+set(ARM64 aarch64 aarch64v8a)
+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8r armv8a)
set(HEXAGON hexagon)
set(X86 i386)
set(X86_64 x86_64)
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt
b/compiler-rt/lib/builtins/CMakeLists.txt
index 82332967b1047..7a1b74d0c7e0e 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -207,11 +207,11 @@ if (HAVE_UNWIND_H)
gcc_personality_v0.c)
endif ()
-if (NOT FUCHSIA)
- set(GENERIC_SOURCES
-${GENERIC_SOURCES}
-clear_cache.c)
-endif()
+#if (NOT FUCHSIA)
+# set(GENERIC_SOURCES
+#${GENERIC_SOURCES}
+#clear_cache.c)
+#endif()
# These sources work on all x86 variants, but only x86 variants.
set(x86_ARCH_SOURCES
@@ -394,11 +394,18 @@ set(arm_Thumb1_VFPv2_SOURCES
arm/unordsf2vfp.S)
set(arm_Thumb1_icache_SOURCES
arm/sync_synchronize.S)
-set(arm_Thumb1_SOURCES
- ${arm_Thumb1_JT_SOURCES}
- ${arm_Thumb1_SjLj_EH_SOURCES}
- ${arm_Thumb1_VFPv2_SOURCES}
- ${arm_Thumb1_icache_SOURCES})
+
+if(APPLE)
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_SjLj_EH_SOURCES}
+${arm_Thumb1_VFPv2_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+else()
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+endif()
if(MINGW)
set(arm_SOURCES
@@ -453,6 +460,12 @@ set(armhf_SOURCES ${arm_SOURCES})
set(armv7_SOURCES ${arm_SOURCES})
set(armv7s_SOURCES ${arm_SOURCES})
set(armv7k_SOURCES ${arm_SOURCES})
+
+set(armv8a_SOURCES ${arm_SOURCES})
+set(armv8r_SOURCES ${arm_SOURCES})
+
+set(aarch64v8a_SOURCES ${aarch64_SOURCES})
+
set(arm64_SOURCES ${aarch64_SOURCES})
# macho_embedded archs
@@ -565,8 +578,13 @@ else ()
set(_arch "arm|armv6m")
elseif("${arch}" MATCHES "^(armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
set(_arch "arm")
+ elseif("${arch}" MATCHES "^(armv8a|armv8r)$")
+set(_arch "arm")
+ elseif("${arch}" MATCHES "^(aarch64v8a)$")
+set(_arch "aarch64")
endif()
+ message(WARNING "supposed to work for target: " ${arch})
# For ARM archs, exclude any VFP builtins if VFP is not supported
if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
string(REPLACE ";" " " _TARGET_${arch}_CFLAGS
"${TARGET_${arch}_CFLAGS}")
@@ -589,8 +607,9 @@ else ()
# Needed for clear_cache on debug mode, due to r7's usage in inline asm.
# Release mode already sets it via -O2/3, Debug mode doesn't.
+ set(BUILTIN_HF_CFLAGS "")
if (${arch} STREQUAL "armhf")
-list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
+list(APPEND BUILTIN_HF_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
endif()
# For RISCV32, we must force enable int128 for compiling long
@@ -604,7 +623,7 @@ else ()
ARCHS ${arch}
SOURCES ${${arch}_SOURCES}
DEFS ${BUILTIN_DEFS}
- CFLAGS ${BUILTIN_CFLAGS}
+ CFLAGS ${BUILTIN_CFLAGS} ${BUILTIN_HF_CFLAGS}
PARENT_TARGET builtins)
endif ()
endforeach ()
diff --git a/compiler-rt/lib/builtins/int_util.c
b/compiler-rt/lib/builtins/int_util.c
index de87410dbca28..b7e6a1c90741f 100644
--- a/compiler-rt/lib/builtins/int_util.c
+++ b/compiler-rt/lib/builtins/int_util.c
@@ -45,7 +45,7 @@ void compilerrt_abort_impl(const char *file, int line, const
char *function) {
__assert_rtn(function, file, line, "libcompiler_rt abort");
}
-#elif __Fuchsia__
+#elif 1
#ifndef _WIN32
__attribute__((weak))
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] 344c7a1 - Add basic C++ library support.
Author: Konstantin Schwarz
Date: 2019-01-17T12:24:02+01:00
New Revision: 344c7a13c1e0d48c89165365d9637dc0bef408a2
URL:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2
DIFF:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2.diff
LOG: Add basic C++ library support.
Added:
libcxx/include/support/hightec/locale_htc.h
Modified:
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
Removed:
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index d9def18d725c4..80663b1631232 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -168,6 +168,7 @@ if(LIBCXX_INSTALL_SUPPORT_HEADERS)
${files}
support/android/locale_bionic.h
support/fuchsia/xlocale.h
+support/hightec/locale_htc.h
support/ibm/limits.h
support/ibm/locale_mgmt_aix.h
support/ibm/support.h
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 639d06c9f5d70..840da61978a36 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -307,6 +307,8 @@
# define _LIBCPP_USING_NACL_RANDOM
#elif defined(_LIBCPP_WIN32API)
# define _LIBCPP_USING_WIN32_RANDOM
+#elif defined(__HIGHTEC__)
+// Do not define anything here for HighTec
#else
# define _LIBCPP_USING_DEV_RANDOM
#endif
@@ -979,6 +981,10 @@ template struct __static_assert_check {};
#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
#endif
+#if defined(__HIGHTEC__)
+#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#endif
+
#if defined(__APPLE__)
# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
diff --git a/libcxx/include/__locale b/libcxx/include/__locale
index f43e7b4303d34..2a71c7d279e9a 100644
--- a/libcxx/include/__locale
+++ b/libcxx/include/__locale
@@ -37,6 +37,8 @@
# include
#elif defined(_LIBCPP_HAS_MUSL_LIBC)
# include
+#elif defined(__HIGHTEC__)
+# include
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/math.h b/libcxx/include/math.h
index 3cc72aa2791e3..d28194c2992a9 100644
--- a/libcxx/include/math.h
+++ b/libcxx/include/math.h
@@ -298,6 +298,8 @@ long doubletruncl(long double x);
#pragma GCC system_header
#endif
+#include
+
#include_next
#ifdef __cplusplus
@@ -306,7 +308,7 @@ long doubletruncl(long double x);
// back to C++ linkage before including these C++ headers.
extern "C++" {
-#include
+
#include
// signbit
diff --git a/libcxx/include/support/hightec/locale_htc.h
b/libcxx/include/support/hightec/locale_htc.h
new file mode 100644
index 0..7f06f8e243633
--- /dev/null
+++ b/libcxx/include/support/hightec/locale_htc.h
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//=== support/hightec/locale_htc.h -===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===--===//
+
+#ifndef _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+#define _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+
+#include
+
+// Add definition for isascii function, which is not part of ISO C
+static inline int isascii(int c) {
+ return c == (c & 0x7f);
+}
+
+// Patch over lack of extended locale support
+typedef void *locale_t;
+
+static inline locale_t duplocale(locale_t) {
+ return NULL;
+}
+
+static inline void freelocale(locale_t) {
+}
+
+static inline locale_t newlocale(int, const char *, locale_t) {
+ return NULL;
+}
+
+static inline locale_t uselocale(locale_t) {
+ return NULL;
+}
+
+#define LC_COLLATE_MASK (LC_COLLATE)
+#define LC_CTYPE_MASK(LC_CTYPE)
+#define LC_MESSAGES_MASK (LC_MESSAGES)
+#define LC_MONETARY_MASK (LC_MONETARY)
+#define LC_NUMERIC_MASK (LC_NUMERIC)
+#define LC_TIME_MASK (LC_TIME)
+#define LC_ALL_MASK (LC_COLLATE_MASK|\
+ LC_CTYPE_MASK|\
+ LC_MONETARY_MASK|\
+ LC_NUMERIC_MASK|\
+ LC_TIME_MASK|\
+ LC_MESSAGES_MASK)
+
+#include
+#include
+
+
+#endif // _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp
index b9c701137df2d..0a23aba354697 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -31,6 +31,8 @@
#include "__sso_allocator"
#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
#include "support/win32/locale_win32.h"
+#elif defined(__HIGHTEC__)
+
#elif !defined(__BIONIC__)
#include
#endif
diff --git a/libcxx/src/random.cpp b/libcxx/src/random.cpp
index 4a2468368d065..90a822d9a247c 100644
--- a/libcxx/src/random.cpp
+++ b/libcxx/src/random.cpp
@@ -166,6 +166
[llvm-branch-commits] [libunwind] 5f46db7 - Add CMake option for configuring libunwind bare-metal build
Author: Konstantin Schwarz
Date: 2019-01-17T12:37:40+01:00
New Revision: 5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
URL:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
DIFF:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14.diff
LOG: Add CMake option for configuring libunwind bare-metal build
Added:
Modified:
libunwind/CMakeLists.txt
Removed:
diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt
index e460a72d45c07..a49e482807e7d 100644
--- a/libunwind/CMakeLists.txt
+++ b/libunwind/CMakeLists.txt
@@ -134,6 +134,7 @@ option(LIBUNWIND_ENABLE_ARM_WMMX "Enable unwinding support
for ARM WMMX register
option(LIBUNWIND_ENABLE_THREADS "Build libunwind with threading support." ON)
option(LIBUNWIND_USE_COMPILER_RT "Use compiler-rt instead of libgcc" OFF)
option(LIBUNWIND_INCLUDE_DOCS "Build the libunwind documentation."
${LLVM_INCLUDE_DOCS})
+option(LIBUNWIND_BAREMETAL "Build libunwind for baremetal targets." OFF)
set(LIBUNWIND_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING
"Define suffix of library directory name (32/64)")
@@ -332,6 +333,10 @@ if (WIN32 AND LIBUNWIND_ENABLE_STATIC AND NOT
LIBUNWIND_ENABLE_SHARED)
add_definitions(-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS)
endif()
+if (LIBUNWIND_BAREMETAL)
+ list(APPEND LIBUNWIND_COMPILE_FLAGS -D_LIBUNWIND_IS_BAREMETAL)
+endif()
+
#===
# Setup Source Code
#===
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 2ca7535 - Revert all changes done on the htc/master branch.
Author: Konstantin Schwarz
Date: 2019-09-03T11:55:46+02:00
New Revision: 2ca7535d6caa77de04bf3d80171376d26bde3729
URL:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729
DIFF:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729.diff
LOG: Revert all changes done on the htc/master branch.
For upcoming toolchains, we need a new concept for RLM license checks.
Moreover, the HighTec driver was mostly rewritten on the htc/release/7.x branch.
The changes are still available for later (partial) reuse.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
clang/lib/Basic/Version.cpp
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
libunwind/CMakeLists.txt
lld/Common/Version.cpp
Removed:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
libcxx/include/support/hightec/locale_htc.h
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 5ee68fd92ce2a..1ef2fe3b81416 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,10 +112,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
-void addHighTecDefines(MacroBuilder &Builder) {
- Builder.defineMacro("__HIGHTEC__");
-}
-
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index 3c31890c8e15b..d450aa3f37ed6 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,9 +46,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
-
-LLVM_LIBRARY_VISIBILITY
-void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index ddca8369b7423..3444591ac5933 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,8 +211,6 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
-
- addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 8d49f124c854a..19fcc5abea97e 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,8 +752,6 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
-
- addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index bef40f9f1201c..c2b7753d41288 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,7 +25,6 @@
namespace clang {
std::string getClangRepositoryPath() {
- return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -56,7 +55,6 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
- return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 637907aa91fe3..2b03c9f7001f7 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,7 +45,6 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
- ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cp
[llvm-branch-commits] [clang] 043b898 - [LLVMARM-13] Add function for defining HighTec specific macros, call it from ARM targets.
Author: Konstantin Schwarz
Date: 2019-01-17T11:35:06+01:00
New Revision: 043b8986368f76ba8fa2c5e34db83537e8af6d47
URL:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47
DIFF:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47.diff
LOG: [LLVMARM-13] Add function for defining HighTec specific macros, call it
from ARM targets.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
Removed:
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1ef2fe3b81416..5ee68fd92ce2a 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,6 +112,10 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
+void addHighTecDefines(MacroBuilder &Builder) {
+ Builder.defineMacro("__HIGHTEC__");
+}
+
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index d450aa3f37ed6..3c31890c8e15b 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,6 +46,9 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
+
+LLVM_LIBRARY_VISIBILITY
+void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index 3444591ac5933..ddca8369b7423 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,6 +211,8 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+
+ addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 19fcc5abea97e..8d49f124c854a 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,6 +752,8 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
+
+ addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 2b74728 - Add Hightec toolchain description
Author: Konstantin Schwarz
Date: 2019-01-17T09:43:28+01:00
New Revision: 2b747283621473751ef40c0f2ea1fdf50c14453f
URL:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f
DIFF:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f.diff
LOG: Add Hightec toolchain description
Added:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
Modified:
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
Removed:
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 2b03c9f7001f7..637907aa91fe3 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,6 +45,7 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
+ ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 952a716cb6e61..1caf63bf354f7 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -26,6 +26,7 @@
#include "ToolChains/HIP.h"
#include "ToolChains/Haiku.h"
#include "ToolChains/Hexagon.h"
+#include "ToolChains/HighTec.h"
#include "ToolChains/Lanai.h"
#include "ToolChains/Linux.h"
#include "ToolChains/MSVC.h"
@@ -4282,6 +4283,12 @@ const ToolChain &Driver::getToolChain(const ArgList
&Args,
auto &TC = ToolChains[Target.str()];
if (!TC) {
+
+if (toolchains::HighTec::handlesTarget(Target)) {
+ TC = llvm::make_unique(*this, Target, Args);
+ return *TC;
+}
+
switch (Target.getOS()) {
case llvm::Triple::Haiku:
TC = llvm::make_unique(*this, Target, Args);
diff --git a/clang/lib/Driver/ToolChains/HighTec.cpp
b/clang/lib/Driver/ToolChains/HighTec.cpp
new file mode 100644
index 0..367137f771b08
--- /dev/null
+++ b/clang/lib/Driver/ToolChains/HighTec.cpp
@@ -0,0 +1,311 @@
+//===--- HighTec.cpp - HighTec ToolChain Implementation *- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===--===//
+
+#include "HighTec.h"
+#include "Arch/ARM.h"
+#include "clang/Basic/Version.h"
+#include "clang/Basic/VirtualFileSystem.h"
+#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Driver.h"
+#include "clang/Driver/DriverDiagnostic.h"
+#include "clang/Driver/Options.h"
+#include "llvm/Option/ArgList.h"
+#include "llvm/Support/Path.h"
+#include "llvm/Support/TargetParser.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm::opt;
+using namespace clang;
+using namespace clang::driver;
+using namespace clang::driver::tools;
+using namespace clang::driver::toolchains;
+
+static std::string getArchitecture(llvm::Triple Triple) {
+
+ llvm::StringRef Arch = llvm::Triple::getArchTypePrefix(Triple.getArch());
+ if (Arch != "")
+return Arch;
+
+ llvm_unreachable("Unknown architecture specified.");
+}
+
+static std::string getArchVersionString(StringRef Arch) {
+
+ switch (llvm::ARM::parseArch(llvm::ARM::getCanonicalArchName(Arch))) {
+default:
+ // For now, only support v7 & v8
+ return "";
+case llvm::ARM::ArchKind::ARMV8A:
+ return "v8-a";
+case llvm::ARM::ArchKind::ARMV8_1A:
+ return "v8.1-a";
+case llvm::ARM::ArchKind::ARMV8_2A:
+ return "v8-2-a";
+case llvm::ARM::ArchKind::ARMV8_3A:
+ return "v8-3-a";
+case llvm::ARM::ArchKind::ARMV8R:
+ return "v8-r";
+case llvm::ARM::ArchKind::ARMV8MBaseline:
+ return "v8-m.base";
+case llvm::ARM::ArchKind::ARMV8MMainline:
+ return "v8-m.main";
+case llvm::ARM::ArchKind::ARMV7A:
+ return "v7-a";
+case llvm::ARM::ArchKind::ARMV7R:
+ return "v7-r";
+case llvm::ARM::ArchKind::ARMV7EM:
+ return "v7e-m";
+case llvm::ARM::ArchKind::ARMV7M:
+ return "v7-m";
+case llvm::ARM::ArchKind::ARMV7S:
+ return "v7-s";
+case llvm::ARM::ArchKind::ARMV7K:
+ return "v7-k";
+case llvm::ARM::ArchKind::ARMV7VE:
+ return "v7ve";
+case llvm::ARM::ArchKind::ARMV6M:
+ return "v6-m";
+ }
+}
+
+static std::string getArchVersion(llvm::Triple Triple, const
llvm::opt::ArgList &Args) {
+
+
+ if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
+ return getArchVersionString(A->getValue());
+ } else {
+
+
[llvm-branch-commits] [clang] 716de1c - Remove repository URL from version string
Author: Konstantin Schwarz
Date: 2019-01-17T11:36:16+01:00
New Revision: 716de1cb582ea2676e1a00ed135085229d88e615
URL:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615
DIFF:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615.diff
LOG: Remove repository URL from version string
Added:
Modified:
clang/lib/Basic/Version.cpp
lld/Common/Version.cpp
Removed:
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index c2b7753d41288..bef40f9f1201c 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,6 +25,7 @@
namespace clang {
std::string getClangRepositoryPath() {
+ return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -55,6 +56,7 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
+ return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/lld/Common/Version.cpp b/lld/Common/Version.cpp
index 6226c9a2fac69..3ef83bbeddd18 100644
--- a/lld/Common/Version.cpp
+++ b/lld/Common/Version.cpp
@@ -30,6 +30,8 @@ static std::string getRepository() {
std::string Repo = getRepositoryPath();
std::string Rev = LLD_REVISION_STRING;
+ return " (" + Rev + ")";
+
if (Repo.empty() && Rev.empty())
return "";
if (!Repo.empty() && !Rev.empty())
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt] 550c750 - Add support for building compiler-rt for bare metal.
Author: Konstantin Schwarz
Date: 2019-01-17T12:15:24+01:00
New Revision: 550c750e922efcd0960498f876b28de71eb1657b
URL:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b
DIFF:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b.diff
LOG: Add support for building compiler-rt for bare metal.
Added:
Modified:
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
Removed:
diff --git a/compiler-rt/cmake/builtin-config-ix.cmake
b/compiler-rt/cmake/builtin-config-ix.cmake
index a5704e5fed537..17311bcd8661a 100644
--- a/compiler-rt/cmake/builtin-config-ix.cmake
+++ b/compiler-rt/cmake/builtin-config-ix.cmake
@@ -23,8 +23,8 @@ int foo(int x, int y) {
")
-set(ARM64 aarch64)
-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
+set(ARM64 aarch64 aarch64v8a)
+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8r armv8a)
set(HEXAGON hexagon)
set(X86 i386)
set(X86_64 x86_64)
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt
b/compiler-rt/lib/builtins/CMakeLists.txt
index 82332967b1047..7a1b74d0c7e0e 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -207,11 +207,11 @@ if (HAVE_UNWIND_H)
gcc_personality_v0.c)
endif ()
-if (NOT FUCHSIA)
- set(GENERIC_SOURCES
-${GENERIC_SOURCES}
-clear_cache.c)
-endif()
+#if (NOT FUCHSIA)
+# set(GENERIC_SOURCES
+#${GENERIC_SOURCES}
+#clear_cache.c)
+#endif()
# These sources work on all x86 variants, but only x86 variants.
set(x86_ARCH_SOURCES
@@ -394,11 +394,18 @@ set(arm_Thumb1_VFPv2_SOURCES
arm/unordsf2vfp.S)
set(arm_Thumb1_icache_SOURCES
arm/sync_synchronize.S)
-set(arm_Thumb1_SOURCES
- ${arm_Thumb1_JT_SOURCES}
- ${arm_Thumb1_SjLj_EH_SOURCES}
- ${arm_Thumb1_VFPv2_SOURCES}
- ${arm_Thumb1_icache_SOURCES})
+
+if(APPLE)
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_SjLj_EH_SOURCES}
+${arm_Thumb1_VFPv2_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+else()
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+endif()
if(MINGW)
set(arm_SOURCES
@@ -453,6 +460,12 @@ set(armhf_SOURCES ${arm_SOURCES})
set(armv7_SOURCES ${arm_SOURCES})
set(armv7s_SOURCES ${arm_SOURCES})
set(armv7k_SOURCES ${arm_SOURCES})
+
+set(armv8a_SOURCES ${arm_SOURCES})
+set(armv8r_SOURCES ${arm_SOURCES})
+
+set(aarch64v8a_SOURCES ${aarch64_SOURCES})
+
set(arm64_SOURCES ${aarch64_SOURCES})
# macho_embedded archs
@@ -565,8 +578,13 @@ else ()
set(_arch "arm|armv6m")
elseif("${arch}" MATCHES "^(armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
set(_arch "arm")
+ elseif("${arch}" MATCHES "^(armv8a|armv8r)$")
+set(_arch "arm")
+ elseif("${arch}" MATCHES "^(aarch64v8a)$")
+set(_arch "aarch64")
endif()
+ message(WARNING "supposed to work for target: " ${arch})
# For ARM archs, exclude any VFP builtins if VFP is not supported
if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
string(REPLACE ";" " " _TARGET_${arch}_CFLAGS
"${TARGET_${arch}_CFLAGS}")
@@ -589,8 +607,9 @@ else ()
# Needed for clear_cache on debug mode, due to r7's usage in inline asm.
# Release mode already sets it via -O2/3, Debug mode doesn't.
+ set(BUILTIN_HF_CFLAGS "")
if (${arch} STREQUAL "armhf")
-list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
+list(APPEND BUILTIN_HF_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
endif()
# For RISCV32, we must force enable int128 for compiling long
@@ -604,7 +623,7 @@ else ()
ARCHS ${arch}
SOURCES ${${arch}_SOURCES}
DEFS ${BUILTIN_DEFS}
- CFLAGS ${BUILTIN_CFLAGS}
+ CFLAGS ${BUILTIN_CFLAGS} ${BUILTIN_HF_CFLAGS}
PARENT_TARGET builtins)
endif ()
endforeach ()
diff --git a/compiler-rt/lib/builtins/int_util.c
b/compiler-rt/lib/builtins/int_util.c
index de87410dbca28..b7e6a1c90741f 100644
--- a/compiler-rt/lib/builtins/int_util.c
+++ b/compiler-rt/lib/builtins/int_util.c
@@ -45,7 +45,7 @@ void compilerrt_abort_impl(const char *file, int line, const
char *function) {
__assert_rtn(function, file, line, "libcompiler_rt abort");
}
-#elif __Fuchsia__
+#elif 1
#ifndef _WIN32
__attribute__((weak))
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] 344c7a1 - Add basic C++ library support.
Author: Konstantin Schwarz
Date: 2019-01-17T12:24:02+01:00
New Revision: 344c7a13c1e0d48c89165365d9637dc0bef408a2
URL:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2
DIFF:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2.diff
LOG: Add basic C++ library support.
Added:
libcxx/include/support/hightec/locale_htc.h
Modified:
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
Removed:
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index d9def18d725c4..80663b1631232 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -168,6 +168,7 @@ if(LIBCXX_INSTALL_SUPPORT_HEADERS)
${files}
support/android/locale_bionic.h
support/fuchsia/xlocale.h
+support/hightec/locale_htc.h
support/ibm/limits.h
support/ibm/locale_mgmt_aix.h
support/ibm/support.h
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 639d06c9f5d70..840da61978a36 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -307,6 +307,8 @@
# define _LIBCPP_USING_NACL_RANDOM
#elif defined(_LIBCPP_WIN32API)
# define _LIBCPP_USING_WIN32_RANDOM
+#elif defined(__HIGHTEC__)
+// Do not define anything here for HighTec
#else
# define _LIBCPP_USING_DEV_RANDOM
#endif
@@ -979,6 +981,10 @@ template struct __static_assert_check {};
#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
#endif
+#if defined(__HIGHTEC__)
+#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#endif
+
#if defined(__APPLE__)
# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
diff --git a/libcxx/include/__locale b/libcxx/include/__locale
index f43e7b4303d34..2a71c7d279e9a 100644
--- a/libcxx/include/__locale
+++ b/libcxx/include/__locale
@@ -37,6 +37,8 @@
# include
#elif defined(_LIBCPP_HAS_MUSL_LIBC)
# include
+#elif defined(__HIGHTEC__)
+# include
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/math.h b/libcxx/include/math.h
index 3cc72aa2791e3..d28194c2992a9 100644
--- a/libcxx/include/math.h
+++ b/libcxx/include/math.h
@@ -298,6 +298,8 @@ long doubletruncl(long double x);
#pragma GCC system_header
#endif
+#include
+
#include_next
#ifdef __cplusplus
@@ -306,7 +308,7 @@ long doubletruncl(long double x);
// back to C++ linkage before including these C++ headers.
extern "C++" {
-#include
+
#include
// signbit
diff --git a/libcxx/include/support/hightec/locale_htc.h
b/libcxx/include/support/hightec/locale_htc.h
new file mode 100644
index 0..7f06f8e243633
--- /dev/null
+++ b/libcxx/include/support/hightec/locale_htc.h
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//=== support/hightec/locale_htc.h -===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===--===//
+
+#ifndef _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+#define _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+
+#include
+
+// Add definition for isascii function, which is not part of ISO C
+static inline int isascii(int c) {
+ return c == (c & 0x7f);
+}
+
+// Patch over lack of extended locale support
+typedef void *locale_t;
+
+static inline locale_t duplocale(locale_t) {
+ return NULL;
+}
+
+static inline void freelocale(locale_t) {
+}
+
+static inline locale_t newlocale(int, const char *, locale_t) {
+ return NULL;
+}
+
+static inline locale_t uselocale(locale_t) {
+ return NULL;
+}
+
+#define LC_COLLATE_MASK (LC_COLLATE)
+#define LC_CTYPE_MASK(LC_CTYPE)
+#define LC_MESSAGES_MASK (LC_MESSAGES)
+#define LC_MONETARY_MASK (LC_MONETARY)
+#define LC_NUMERIC_MASK (LC_NUMERIC)
+#define LC_TIME_MASK (LC_TIME)
+#define LC_ALL_MASK (LC_COLLATE_MASK|\
+ LC_CTYPE_MASK|\
+ LC_MONETARY_MASK|\
+ LC_NUMERIC_MASK|\
+ LC_TIME_MASK|\
+ LC_MESSAGES_MASK)
+
+#include
+#include
+
+
+#endif // _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp
index b9c701137df2d..0a23aba354697 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -31,6 +31,8 @@
#include "__sso_allocator"
#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
#include "support/win32/locale_win32.h"
+#elif defined(__HIGHTEC__)
+
#elif !defined(__BIONIC__)
#include
#endif
diff --git a/libcxx/src/random.cpp b/libcxx/src/random.cpp
index 4a2468368d065..90a822d9a247c 100644
--- a/libcxx/src/random.cpp
+++ b/libcxx/src/random.cpp
@@ -166,6 +166
[llvm-branch-commits] [libunwind] 5f46db7 - Add CMake option for configuring libunwind bare-metal build
Author: Konstantin Schwarz
Date: 2019-01-17T12:37:40+01:00
New Revision: 5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
URL:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
DIFF:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14.diff
LOG: Add CMake option for configuring libunwind bare-metal build
Added:
Modified:
libunwind/CMakeLists.txt
Removed:
diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt
index e460a72d45c07..a49e482807e7d 100644
--- a/libunwind/CMakeLists.txt
+++ b/libunwind/CMakeLists.txt
@@ -134,6 +134,7 @@ option(LIBUNWIND_ENABLE_ARM_WMMX "Enable unwinding support
for ARM WMMX register
option(LIBUNWIND_ENABLE_THREADS "Build libunwind with threading support." ON)
option(LIBUNWIND_USE_COMPILER_RT "Use compiler-rt instead of libgcc" OFF)
option(LIBUNWIND_INCLUDE_DOCS "Build the libunwind documentation."
${LLVM_INCLUDE_DOCS})
+option(LIBUNWIND_BAREMETAL "Build libunwind for baremetal targets." OFF)
set(LIBUNWIND_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING
"Define suffix of library directory name (32/64)")
@@ -332,6 +333,10 @@ if (WIN32 AND LIBUNWIND_ENABLE_STATIC AND NOT
LIBUNWIND_ENABLE_SHARED)
add_definitions(-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS)
endif()
+if (LIBUNWIND_BAREMETAL)
+ list(APPEND LIBUNWIND_COMPILE_FLAGS -D_LIBUNWIND_IS_BAREMETAL)
+endif()
+
#===
# Setup Source Code
#===
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 2ca7535 - Revert all changes done on the htc/master branch.
Author: Konstantin Schwarz
Date: 2019-09-03T11:55:46+02:00
New Revision: 2ca7535d6caa77de04bf3d80171376d26bde3729
URL:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729
DIFF:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729.diff
LOG: Revert all changes done on the htc/master branch.
For upcoming toolchains, we need a new concept for RLM license checks.
Moreover, the HighTec driver was mostly rewritten on the htc/release/7.x branch.
The changes are still available for later (partial) reuse.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
clang/lib/Basic/Version.cpp
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
libunwind/CMakeLists.txt
lld/Common/Version.cpp
Removed:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
libcxx/include/support/hightec/locale_htc.h
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 5ee68fd92ce2a..1ef2fe3b81416 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,10 +112,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
-void addHighTecDefines(MacroBuilder &Builder) {
- Builder.defineMacro("__HIGHTEC__");
-}
-
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index 3c31890c8e15b..d450aa3f37ed6 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,9 +46,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
-
-LLVM_LIBRARY_VISIBILITY
-void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index ddca8369b7423..3444591ac5933 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,8 +211,6 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
-
- addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 8d49f124c854a..19fcc5abea97e 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,8 +752,6 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
-
- addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index bef40f9f1201c..c2b7753d41288 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,7 +25,6 @@
namespace clang {
std::string getClangRepositoryPath() {
- return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -56,7 +55,6 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
- return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 637907aa91fe3..2b03c9f7001f7 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,7 +45,6 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
- ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cp
[llvm-branch-commits] [clang] 2b74728 - Add Hightec toolchain description
Author: Konstantin Schwarz
Date: 2019-01-17T09:43:28+01:00
New Revision: 2b747283621473751ef40c0f2ea1fdf50c14453f
URL:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f
DIFF:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f.diff
LOG: Add Hightec toolchain description
Added:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
Modified:
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
Removed:
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 2b03c9f7001f7..637907aa91fe3 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,6 +45,7 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
+ ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 952a716cb6e61..1caf63bf354f7 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -26,6 +26,7 @@
#include "ToolChains/HIP.h"
#include "ToolChains/Haiku.h"
#include "ToolChains/Hexagon.h"
+#include "ToolChains/HighTec.h"
#include "ToolChains/Lanai.h"
#include "ToolChains/Linux.h"
#include "ToolChains/MSVC.h"
@@ -4282,6 +4283,12 @@ const ToolChain &Driver::getToolChain(const ArgList
&Args,
auto &TC = ToolChains[Target.str()];
if (!TC) {
+
+if (toolchains::HighTec::handlesTarget(Target)) {
+ TC = llvm::make_unique(*this, Target, Args);
+ return *TC;
+}
+
switch (Target.getOS()) {
case llvm::Triple::Haiku:
TC = llvm::make_unique(*this, Target, Args);
diff --git a/clang/lib/Driver/ToolChains/HighTec.cpp
b/clang/lib/Driver/ToolChains/HighTec.cpp
new file mode 100644
index 0..367137f771b08
--- /dev/null
+++ b/clang/lib/Driver/ToolChains/HighTec.cpp
@@ -0,0 +1,311 @@
+//===--- HighTec.cpp - HighTec ToolChain Implementation *- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===--===//
+
+#include "HighTec.h"
+#include "Arch/ARM.h"
+#include "clang/Basic/Version.h"
+#include "clang/Basic/VirtualFileSystem.h"
+#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Driver.h"
+#include "clang/Driver/DriverDiagnostic.h"
+#include "clang/Driver/Options.h"
+#include "llvm/Option/ArgList.h"
+#include "llvm/Support/Path.h"
+#include "llvm/Support/TargetParser.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm::opt;
+using namespace clang;
+using namespace clang::driver;
+using namespace clang::driver::tools;
+using namespace clang::driver::toolchains;
+
+static std::string getArchitecture(llvm::Triple Triple) {
+
+ llvm::StringRef Arch = llvm::Triple::getArchTypePrefix(Triple.getArch());
+ if (Arch != "")
+return Arch;
+
+ llvm_unreachable("Unknown architecture specified.");
+}
+
+static std::string getArchVersionString(StringRef Arch) {
+
+ switch (llvm::ARM::parseArch(llvm::ARM::getCanonicalArchName(Arch))) {
+default:
+ // For now, only support v7 & v8
+ return "";
+case llvm::ARM::ArchKind::ARMV8A:
+ return "v8-a";
+case llvm::ARM::ArchKind::ARMV8_1A:
+ return "v8.1-a";
+case llvm::ARM::ArchKind::ARMV8_2A:
+ return "v8-2-a";
+case llvm::ARM::ArchKind::ARMV8_3A:
+ return "v8-3-a";
+case llvm::ARM::ArchKind::ARMV8R:
+ return "v8-r";
+case llvm::ARM::ArchKind::ARMV8MBaseline:
+ return "v8-m.base";
+case llvm::ARM::ArchKind::ARMV8MMainline:
+ return "v8-m.main";
+case llvm::ARM::ArchKind::ARMV7A:
+ return "v7-a";
+case llvm::ARM::ArchKind::ARMV7R:
+ return "v7-r";
+case llvm::ARM::ArchKind::ARMV7EM:
+ return "v7e-m";
+case llvm::ARM::ArchKind::ARMV7M:
+ return "v7-m";
+case llvm::ARM::ArchKind::ARMV7S:
+ return "v7-s";
+case llvm::ARM::ArchKind::ARMV7K:
+ return "v7-k";
+case llvm::ARM::ArchKind::ARMV7VE:
+ return "v7ve";
+case llvm::ARM::ArchKind::ARMV6M:
+ return "v6-m";
+ }
+}
+
+static std::string getArchVersion(llvm::Triple Triple, const
llvm::opt::ArgList &Args) {
+
+
+ if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
+ return getArchVersionString(A->getValue());
+ } else {
+
+
[llvm-branch-commits] [clang] 043b898 - [LLVMARM-13] Add function for defining HighTec specific macros, call it from ARM targets.
Author: Konstantin Schwarz
Date: 2019-01-17T11:35:06+01:00
New Revision: 043b8986368f76ba8fa2c5e34db83537e8af6d47
URL:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47
DIFF:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47.diff
LOG: [LLVMARM-13] Add function for defining HighTec specific macros, call it
from ARM targets.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
Removed:
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1ef2fe3b81416..5ee68fd92ce2a 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,6 +112,10 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
+void addHighTecDefines(MacroBuilder &Builder) {
+ Builder.defineMacro("__HIGHTEC__");
+}
+
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index d450aa3f37ed6..3c31890c8e15b 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,6 +46,9 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
+
+LLVM_LIBRARY_VISIBILITY
+void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index 3444591ac5933..ddca8369b7423 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,6 +211,8 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+
+ addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 19fcc5abea97e..8d49f124c854a 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,6 +752,8 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
+
+ addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lld] 716de1c - Remove repository URL from version string
Author: Konstantin Schwarz
Date: 2019-01-17T11:36:16+01:00
New Revision: 716de1cb582ea2676e1a00ed135085229d88e615
URL:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615
DIFF:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615.diff
LOG: Remove repository URL from version string
Added:
Modified:
clang/lib/Basic/Version.cpp
lld/Common/Version.cpp
Removed:
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index c2b7753d41288..bef40f9f1201c 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,6 +25,7 @@
namespace clang {
std::string getClangRepositoryPath() {
+ return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -55,6 +56,7 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
+ return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/lld/Common/Version.cpp b/lld/Common/Version.cpp
index 6226c9a2fac69..3ef83bbeddd18 100644
--- a/lld/Common/Version.cpp
+++ b/lld/Common/Version.cpp
@@ -30,6 +30,8 @@ static std::string getRepository() {
std::string Repo = getRepositoryPath();
std::string Rev = LLD_REVISION_STRING;
+ return " (" + Rev + ")";
+
if (Repo.empty() && Rev.empty())
return "";
if (!Repo.empty() && !Rev.empty())
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt] 550c750 - Add support for building compiler-rt for bare metal.
Author: Konstantin Schwarz
Date: 2019-01-17T12:15:24+01:00
New Revision: 550c750e922efcd0960498f876b28de71eb1657b
URL:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b
DIFF:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b.diff
LOG: Add support for building compiler-rt for bare metal.
Added:
Modified:
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
Removed:
diff --git a/compiler-rt/cmake/builtin-config-ix.cmake
b/compiler-rt/cmake/builtin-config-ix.cmake
index a5704e5fed537..17311bcd8661a 100644
--- a/compiler-rt/cmake/builtin-config-ix.cmake
+++ b/compiler-rt/cmake/builtin-config-ix.cmake
@@ -23,8 +23,8 @@ int foo(int x, int y) {
")
-set(ARM64 aarch64)
-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
+set(ARM64 aarch64 aarch64v8a)
+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8r armv8a)
set(HEXAGON hexagon)
set(X86 i386)
set(X86_64 x86_64)
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt
b/compiler-rt/lib/builtins/CMakeLists.txt
index 82332967b1047..7a1b74d0c7e0e 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -207,11 +207,11 @@ if (HAVE_UNWIND_H)
gcc_personality_v0.c)
endif ()
-if (NOT FUCHSIA)
- set(GENERIC_SOURCES
-${GENERIC_SOURCES}
-clear_cache.c)
-endif()
+#if (NOT FUCHSIA)
+# set(GENERIC_SOURCES
+#${GENERIC_SOURCES}
+#clear_cache.c)
+#endif()
# These sources work on all x86 variants, but only x86 variants.
set(x86_ARCH_SOURCES
@@ -394,11 +394,18 @@ set(arm_Thumb1_VFPv2_SOURCES
arm/unordsf2vfp.S)
set(arm_Thumb1_icache_SOURCES
arm/sync_synchronize.S)
-set(arm_Thumb1_SOURCES
- ${arm_Thumb1_JT_SOURCES}
- ${arm_Thumb1_SjLj_EH_SOURCES}
- ${arm_Thumb1_VFPv2_SOURCES}
- ${arm_Thumb1_icache_SOURCES})
+
+if(APPLE)
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_SjLj_EH_SOURCES}
+${arm_Thumb1_VFPv2_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+else()
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+endif()
if(MINGW)
set(arm_SOURCES
@@ -453,6 +460,12 @@ set(armhf_SOURCES ${arm_SOURCES})
set(armv7_SOURCES ${arm_SOURCES})
set(armv7s_SOURCES ${arm_SOURCES})
set(armv7k_SOURCES ${arm_SOURCES})
+
+set(armv8a_SOURCES ${arm_SOURCES})
+set(armv8r_SOURCES ${arm_SOURCES})
+
+set(aarch64v8a_SOURCES ${aarch64_SOURCES})
+
set(arm64_SOURCES ${aarch64_SOURCES})
# macho_embedded archs
@@ -565,8 +578,13 @@ else ()
set(_arch "arm|armv6m")
elseif("${arch}" MATCHES "^(armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
set(_arch "arm")
+ elseif("${arch}" MATCHES "^(armv8a|armv8r)$")
+set(_arch "arm")
+ elseif("${arch}" MATCHES "^(aarch64v8a)$")
+set(_arch "aarch64")
endif()
+ message(WARNING "supposed to work for target: " ${arch})
# For ARM archs, exclude any VFP builtins if VFP is not supported
if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
string(REPLACE ";" " " _TARGET_${arch}_CFLAGS
"${TARGET_${arch}_CFLAGS}")
@@ -589,8 +607,9 @@ else ()
# Needed for clear_cache on debug mode, due to r7's usage in inline asm.
# Release mode already sets it via -O2/3, Debug mode doesn't.
+ set(BUILTIN_HF_CFLAGS "")
if (${arch} STREQUAL "armhf")
-list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
+list(APPEND BUILTIN_HF_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
endif()
# For RISCV32, we must force enable int128 for compiling long
@@ -604,7 +623,7 @@ else ()
ARCHS ${arch}
SOURCES ${${arch}_SOURCES}
DEFS ${BUILTIN_DEFS}
- CFLAGS ${BUILTIN_CFLAGS}
+ CFLAGS ${BUILTIN_CFLAGS} ${BUILTIN_HF_CFLAGS}
PARENT_TARGET builtins)
endif ()
endforeach ()
diff --git a/compiler-rt/lib/builtins/int_util.c
b/compiler-rt/lib/builtins/int_util.c
index de87410dbca28..b7e6a1c90741f 100644
--- a/compiler-rt/lib/builtins/int_util.c
+++ b/compiler-rt/lib/builtins/int_util.c
@@ -45,7 +45,7 @@ void compilerrt_abort_impl(const char *file, int line, const
char *function) {
__assert_rtn(function, file, line, "libcompiler_rt abort");
}
-#elif __Fuchsia__
+#elif 1
#ifndef _WIN32
__attribute__((weak))
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] 344c7a1 - Add basic C++ library support.
Author: Konstantin Schwarz
Date: 2019-01-17T12:24:02+01:00
New Revision: 344c7a13c1e0d48c89165365d9637dc0bef408a2
URL:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2
DIFF:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2.diff
LOG: Add basic C++ library support.
Added:
libcxx/include/support/hightec/locale_htc.h
Modified:
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
Removed:
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index d9def18d725c4..80663b1631232 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -168,6 +168,7 @@ if(LIBCXX_INSTALL_SUPPORT_HEADERS)
${files}
support/android/locale_bionic.h
support/fuchsia/xlocale.h
+support/hightec/locale_htc.h
support/ibm/limits.h
support/ibm/locale_mgmt_aix.h
support/ibm/support.h
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 639d06c9f5d70..840da61978a36 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -307,6 +307,8 @@
# define _LIBCPP_USING_NACL_RANDOM
#elif defined(_LIBCPP_WIN32API)
# define _LIBCPP_USING_WIN32_RANDOM
+#elif defined(__HIGHTEC__)
+// Do not define anything here for HighTec
#else
# define _LIBCPP_USING_DEV_RANDOM
#endif
@@ -979,6 +981,10 @@ template struct __static_assert_check {};
#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
#endif
+#if defined(__HIGHTEC__)
+#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#endif
+
#if defined(__APPLE__)
# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
diff --git a/libcxx/include/__locale b/libcxx/include/__locale
index f43e7b4303d34..2a71c7d279e9a 100644
--- a/libcxx/include/__locale
+++ b/libcxx/include/__locale
@@ -37,6 +37,8 @@
# include
#elif defined(_LIBCPP_HAS_MUSL_LIBC)
# include
+#elif defined(__HIGHTEC__)
+# include
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/math.h b/libcxx/include/math.h
index 3cc72aa2791e3..d28194c2992a9 100644
--- a/libcxx/include/math.h
+++ b/libcxx/include/math.h
@@ -298,6 +298,8 @@ long doubletruncl(long double x);
#pragma GCC system_header
#endif
+#include
+
#include_next
#ifdef __cplusplus
@@ -306,7 +308,7 @@ long doubletruncl(long double x);
// back to C++ linkage before including these C++ headers.
extern "C++" {
-#include
+
#include
// signbit
diff --git a/libcxx/include/support/hightec/locale_htc.h
b/libcxx/include/support/hightec/locale_htc.h
new file mode 100644
index 0..7f06f8e243633
--- /dev/null
+++ b/libcxx/include/support/hightec/locale_htc.h
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//=== support/hightec/locale_htc.h -===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===--===//
+
+#ifndef _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+#define _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+
+#include
+
+// Add definition for isascii function, which is not part of ISO C
+static inline int isascii(int c) {
+ return c == (c & 0x7f);
+}
+
+// Patch over lack of extended locale support
+typedef void *locale_t;
+
+static inline locale_t duplocale(locale_t) {
+ return NULL;
+}
+
+static inline void freelocale(locale_t) {
+}
+
+static inline locale_t newlocale(int, const char *, locale_t) {
+ return NULL;
+}
+
+static inline locale_t uselocale(locale_t) {
+ return NULL;
+}
+
+#define LC_COLLATE_MASK (LC_COLLATE)
+#define LC_CTYPE_MASK(LC_CTYPE)
+#define LC_MESSAGES_MASK (LC_MESSAGES)
+#define LC_MONETARY_MASK (LC_MONETARY)
+#define LC_NUMERIC_MASK (LC_NUMERIC)
+#define LC_TIME_MASK (LC_TIME)
+#define LC_ALL_MASK (LC_COLLATE_MASK|\
+ LC_CTYPE_MASK|\
+ LC_MONETARY_MASK|\
+ LC_NUMERIC_MASK|\
+ LC_TIME_MASK|\
+ LC_MESSAGES_MASK)
+
+#include
+#include
+
+
+#endif // _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp
index b9c701137df2d..0a23aba354697 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -31,6 +31,8 @@
#include "__sso_allocator"
#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
#include "support/win32/locale_win32.h"
+#elif defined(__HIGHTEC__)
+
#elif !defined(__BIONIC__)
#include
#endif
diff --git a/libcxx/src/random.cpp b/libcxx/src/random.cpp
index 4a2468368d065..90a822d9a247c 100644
--- a/libcxx/src/random.cpp
+++ b/libcxx/src/random.cpp
@@ -166,6 +166
[llvm-branch-commits] [libunwind] 5f46db7 - Add CMake option for configuring libunwind bare-metal build
Author: Konstantin Schwarz
Date: 2019-01-17T12:37:40+01:00
New Revision: 5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
URL:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
DIFF:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14.diff
LOG: Add CMake option for configuring libunwind bare-metal build
Added:
Modified:
libunwind/CMakeLists.txt
Removed:
diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt
index e460a72d45c07..a49e482807e7d 100644
--- a/libunwind/CMakeLists.txt
+++ b/libunwind/CMakeLists.txt
@@ -134,6 +134,7 @@ option(LIBUNWIND_ENABLE_ARM_WMMX "Enable unwinding support
for ARM WMMX register
option(LIBUNWIND_ENABLE_THREADS "Build libunwind with threading support." ON)
option(LIBUNWIND_USE_COMPILER_RT "Use compiler-rt instead of libgcc" OFF)
option(LIBUNWIND_INCLUDE_DOCS "Build the libunwind documentation."
${LLVM_INCLUDE_DOCS})
+option(LIBUNWIND_BAREMETAL "Build libunwind for baremetal targets." OFF)
set(LIBUNWIND_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING
"Define suffix of library directory name (32/64)")
@@ -332,6 +333,10 @@ if (WIN32 AND LIBUNWIND_ENABLE_STATIC AND NOT
LIBUNWIND_ENABLE_SHARED)
add_definitions(-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS)
endif()
+if (LIBUNWIND_BAREMETAL)
+ list(APPEND LIBUNWIND_COMPILE_FLAGS -D_LIBUNWIND_IS_BAREMETAL)
+endif()
+
#===
# Setup Source Code
#===
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt] 2ca7535 - Revert all changes done on the htc/master branch.
Author: Konstantin Schwarz
Date: 2019-09-03T11:55:46+02:00
New Revision: 2ca7535d6caa77de04bf3d80171376d26bde3729
URL:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729
DIFF:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729.diff
LOG: Revert all changes done on the htc/master branch.
For upcoming toolchains, we need a new concept for RLM license checks.
Moreover, the HighTec driver was mostly rewritten on the htc/release/7.x branch.
The changes are still available for later (partial) reuse.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
clang/lib/Basic/Version.cpp
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
libunwind/CMakeLists.txt
lld/Common/Version.cpp
Removed:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
libcxx/include/support/hightec/locale_htc.h
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 5ee68fd92ce2a..1ef2fe3b81416 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,10 +112,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
-void addHighTecDefines(MacroBuilder &Builder) {
- Builder.defineMacro("__HIGHTEC__");
-}
-
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index 3c31890c8e15b..d450aa3f37ed6 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,9 +46,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
-
-LLVM_LIBRARY_VISIBILITY
-void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index ddca8369b7423..3444591ac5933 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,8 +211,6 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
-
- addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 8d49f124c854a..19fcc5abea97e 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,8 +752,6 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
-
- addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index bef40f9f1201c..c2b7753d41288 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,7 +25,6 @@
namespace clang {
std::string getClangRepositoryPath() {
- return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -56,7 +55,6 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
- return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 637907aa91fe3..2b03c9f7001f7 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,7 +45,6 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
- ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cp
[llvm-branch-commits] [clang] 2b74728 - Add Hightec toolchain description
Author: Konstantin Schwarz
Date: 2019-01-17T09:43:28+01:00
New Revision: 2b747283621473751ef40c0f2ea1fdf50c14453f
URL:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f
DIFF:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f.diff
LOG: Add Hightec toolchain description
Added:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
Modified:
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
Removed:
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 2b03c9f7001f7..637907aa91fe3 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,6 +45,7 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
+ ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 952a716cb6e61..1caf63bf354f7 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -26,6 +26,7 @@
#include "ToolChains/HIP.h"
#include "ToolChains/Haiku.h"
#include "ToolChains/Hexagon.h"
+#include "ToolChains/HighTec.h"
#include "ToolChains/Lanai.h"
#include "ToolChains/Linux.h"
#include "ToolChains/MSVC.h"
@@ -4282,6 +4283,12 @@ const ToolChain &Driver::getToolChain(const ArgList
&Args,
auto &TC = ToolChains[Target.str()];
if (!TC) {
+
+if (toolchains::HighTec::handlesTarget(Target)) {
+ TC = llvm::make_unique(*this, Target, Args);
+ return *TC;
+}
+
switch (Target.getOS()) {
case llvm::Triple::Haiku:
TC = llvm::make_unique(*this, Target, Args);
diff --git a/clang/lib/Driver/ToolChains/HighTec.cpp
b/clang/lib/Driver/ToolChains/HighTec.cpp
new file mode 100644
index 0..367137f771b08
--- /dev/null
+++ b/clang/lib/Driver/ToolChains/HighTec.cpp
@@ -0,0 +1,311 @@
+//===--- HighTec.cpp - HighTec ToolChain Implementation *- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===--===//
+
+#include "HighTec.h"
+#include "Arch/ARM.h"
+#include "clang/Basic/Version.h"
+#include "clang/Basic/VirtualFileSystem.h"
+#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Driver.h"
+#include "clang/Driver/DriverDiagnostic.h"
+#include "clang/Driver/Options.h"
+#include "llvm/Option/ArgList.h"
+#include "llvm/Support/Path.h"
+#include "llvm/Support/TargetParser.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm::opt;
+using namespace clang;
+using namespace clang::driver;
+using namespace clang::driver::tools;
+using namespace clang::driver::toolchains;
+
+static std::string getArchitecture(llvm::Triple Triple) {
+
+ llvm::StringRef Arch = llvm::Triple::getArchTypePrefix(Triple.getArch());
+ if (Arch != "")
+return Arch;
+
+ llvm_unreachable("Unknown architecture specified.");
+}
+
+static std::string getArchVersionString(StringRef Arch) {
+
+ switch (llvm::ARM::parseArch(llvm::ARM::getCanonicalArchName(Arch))) {
+default:
+ // For now, only support v7 & v8
+ return "";
+case llvm::ARM::ArchKind::ARMV8A:
+ return "v8-a";
+case llvm::ARM::ArchKind::ARMV8_1A:
+ return "v8.1-a";
+case llvm::ARM::ArchKind::ARMV8_2A:
+ return "v8-2-a";
+case llvm::ARM::ArchKind::ARMV8_3A:
+ return "v8-3-a";
+case llvm::ARM::ArchKind::ARMV8R:
+ return "v8-r";
+case llvm::ARM::ArchKind::ARMV8MBaseline:
+ return "v8-m.base";
+case llvm::ARM::ArchKind::ARMV8MMainline:
+ return "v8-m.main";
+case llvm::ARM::ArchKind::ARMV7A:
+ return "v7-a";
+case llvm::ARM::ArchKind::ARMV7R:
+ return "v7-r";
+case llvm::ARM::ArchKind::ARMV7EM:
+ return "v7e-m";
+case llvm::ARM::ArchKind::ARMV7M:
+ return "v7-m";
+case llvm::ARM::ArchKind::ARMV7S:
+ return "v7-s";
+case llvm::ARM::ArchKind::ARMV7K:
+ return "v7-k";
+case llvm::ARM::ArchKind::ARMV7VE:
+ return "v7ve";
+case llvm::ARM::ArchKind::ARMV6M:
+ return "v6-m";
+ }
+}
+
+static std::string getArchVersion(llvm::Triple Triple, const
llvm::opt::ArgList &Args) {
+
+
+ if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
+ return getArchVersionString(A->getValue());
+ } else {
+
+
[llvm-branch-commits] [clang] 043b898 - [LLVMARM-13] Add function for defining HighTec specific macros, call it from ARM targets.
Author: Konstantin Schwarz
Date: 2019-01-17T11:35:06+01:00
New Revision: 043b8986368f76ba8fa2c5e34db83537e8af6d47
URL:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47
DIFF:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47.diff
LOG: [LLVMARM-13] Add function for defining HighTec specific macros, call it
from ARM targets.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
Removed:
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1ef2fe3b81416..5ee68fd92ce2a 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,6 +112,10 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
+void addHighTecDefines(MacroBuilder &Builder) {
+ Builder.defineMacro("__HIGHTEC__");
+}
+
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index d450aa3f37ed6..3c31890c8e15b 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,6 +46,9 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
+
+LLVM_LIBRARY_VISIBILITY
+void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index 3444591ac5933..ddca8369b7423 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,6 +211,8 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+
+ addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 19fcc5abea97e..8d49f124c854a 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,6 +752,8 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
+
+ addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lld] 716de1c - Remove repository URL from version string
Author: Konstantin Schwarz
Date: 2019-01-17T11:36:16+01:00
New Revision: 716de1cb582ea2676e1a00ed135085229d88e615
URL:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615
DIFF:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615.diff
LOG: Remove repository URL from version string
Added:
Modified:
clang/lib/Basic/Version.cpp
lld/Common/Version.cpp
Removed:
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index c2b7753d41288..bef40f9f1201c 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,6 +25,7 @@
namespace clang {
std::string getClangRepositoryPath() {
+ return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -55,6 +56,7 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
+ return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/lld/Common/Version.cpp b/lld/Common/Version.cpp
index 6226c9a2fac69..3ef83bbeddd18 100644
--- a/lld/Common/Version.cpp
+++ b/lld/Common/Version.cpp
@@ -30,6 +30,8 @@ static std::string getRepository() {
std::string Repo = getRepositoryPath();
std::string Rev = LLD_REVISION_STRING;
+ return " (" + Rev + ")";
+
if (Repo.empty() && Rev.empty())
return "";
if (!Repo.empty() && !Rev.empty())
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lld] 716de1c - Remove repository URL from version string
Author: Konstantin Schwarz
Date: 2019-01-17T11:36:16+01:00
New Revision: 716de1cb582ea2676e1a00ed135085229d88e615
URL:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615
DIFF:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615.diff
LOG: Remove repository URL from version string
Added:
Modified:
clang/lib/Basic/Version.cpp
lld/Common/Version.cpp
Removed:
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index c2b7753d41288..bef40f9f1201c 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,6 +25,7 @@
namespace clang {
std::string getClangRepositoryPath() {
+ return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -55,6 +56,7 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
+ return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/lld/Common/Version.cpp b/lld/Common/Version.cpp
index 6226c9a2fac69..3ef83bbeddd18 100644
--- a/lld/Common/Version.cpp
+++ b/lld/Common/Version.cpp
@@ -30,6 +30,8 @@ static std::string getRepository() {
std::string Repo = getRepositoryPath();
std::string Rev = LLD_REVISION_STRING;
+ return " (" + Rev + ")";
+
if (Repo.empty() && Rev.empty())
return "";
if (!Repo.empty() && !Rev.empty())
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 2b74728 - Add Hightec toolchain description
Author: Konstantin Schwarz
Date: 2019-01-17T09:43:28+01:00
New Revision: 2b747283621473751ef40c0f2ea1fdf50c14453f
URL:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f
DIFF:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f.diff
LOG: Add Hightec toolchain description
Added:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
Modified:
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
Removed:
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 2b03c9f7001f7..637907aa91fe3 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,6 +45,7 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
+ ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 952a716cb6e61..1caf63bf354f7 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -26,6 +26,7 @@
#include "ToolChains/HIP.h"
#include "ToolChains/Haiku.h"
#include "ToolChains/Hexagon.h"
+#include "ToolChains/HighTec.h"
#include "ToolChains/Lanai.h"
#include "ToolChains/Linux.h"
#include "ToolChains/MSVC.h"
@@ -4282,6 +4283,12 @@ const ToolChain &Driver::getToolChain(const ArgList
&Args,
auto &TC = ToolChains[Target.str()];
if (!TC) {
+
+if (toolchains::HighTec::handlesTarget(Target)) {
+ TC = llvm::make_unique(*this, Target, Args);
+ return *TC;
+}
+
switch (Target.getOS()) {
case llvm::Triple::Haiku:
TC = llvm::make_unique(*this, Target, Args);
diff --git a/clang/lib/Driver/ToolChains/HighTec.cpp
b/clang/lib/Driver/ToolChains/HighTec.cpp
new file mode 100644
index 0..367137f771b08
--- /dev/null
+++ b/clang/lib/Driver/ToolChains/HighTec.cpp
@@ -0,0 +1,311 @@
+//===--- HighTec.cpp - HighTec ToolChain Implementation *- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===--===//
+
+#include "HighTec.h"
+#include "Arch/ARM.h"
+#include "clang/Basic/Version.h"
+#include "clang/Basic/VirtualFileSystem.h"
+#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Driver.h"
+#include "clang/Driver/DriverDiagnostic.h"
+#include "clang/Driver/Options.h"
+#include "llvm/Option/ArgList.h"
+#include "llvm/Support/Path.h"
+#include "llvm/Support/TargetParser.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm::opt;
+using namespace clang;
+using namespace clang::driver;
+using namespace clang::driver::tools;
+using namespace clang::driver::toolchains;
+
+static std::string getArchitecture(llvm::Triple Triple) {
+
+ llvm::StringRef Arch = llvm::Triple::getArchTypePrefix(Triple.getArch());
+ if (Arch != "")
+return Arch;
+
+ llvm_unreachable("Unknown architecture specified.");
+}
+
+static std::string getArchVersionString(StringRef Arch) {
+
+ switch (llvm::ARM::parseArch(llvm::ARM::getCanonicalArchName(Arch))) {
+default:
+ // For now, only support v7 & v8
+ return "";
+case llvm::ARM::ArchKind::ARMV8A:
+ return "v8-a";
+case llvm::ARM::ArchKind::ARMV8_1A:
+ return "v8.1-a";
+case llvm::ARM::ArchKind::ARMV8_2A:
+ return "v8-2-a";
+case llvm::ARM::ArchKind::ARMV8_3A:
+ return "v8-3-a";
+case llvm::ARM::ArchKind::ARMV8R:
+ return "v8-r";
+case llvm::ARM::ArchKind::ARMV8MBaseline:
+ return "v8-m.base";
+case llvm::ARM::ArchKind::ARMV8MMainline:
+ return "v8-m.main";
+case llvm::ARM::ArchKind::ARMV7A:
+ return "v7-a";
+case llvm::ARM::ArchKind::ARMV7R:
+ return "v7-r";
+case llvm::ARM::ArchKind::ARMV7EM:
+ return "v7e-m";
+case llvm::ARM::ArchKind::ARMV7M:
+ return "v7-m";
+case llvm::ARM::ArchKind::ARMV7S:
+ return "v7-s";
+case llvm::ARM::ArchKind::ARMV7K:
+ return "v7-k";
+case llvm::ARM::ArchKind::ARMV7VE:
+ return "v7ve";
+case llvm::ARM::ArchKind::ARMV6M:
+ return "v6-m";
+ }
+}
+
+static std::string getArchVersion(llvm::Triple Triple, const
llvm::opt::ArgList &Args) {
+
+
+ if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
+ return getArchVersionString(A->getValue());
+ } else {
+
+
[llvm-branch-commits] [compiler-rt] 550c750 - Add support for building compiler-rt for bare metal.
Author: Konstantin Schwarz
Date: 2019-01-17T12:15:24+01:00
New Revision: 550c750e922efcd0960498f876b28de71eb1657b
URL:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b
DIFF:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b.diff
LOG: Add support for building compiler-rt for bare metal.
Added:
Modified:
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
Removed:
diff --git a/compiler-rt/cmake/builtin-config-ix.cmake
b/compiler-rt/cmake/builtin-config-ix.cmake
index a5704e5fed537..17311bcd8661a 100644
--- a/compiler-rt/cmake/builtin-config-ix.cmake
+++ b/compiler-rt/cmake/builtin-config-ix.cmake
@@ -23,8 +23,8 @@ int foo(int x, int y) {
")
-set(ARM64 aarch64)
-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
+set(ARM64 aarch64 aarch64v8a)
+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8r armv8a)
set(HEXAGON hexagon)
set(X86 i386)
set(X86_64 x86_64)
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt
b/compiler-rt/lib/builtins/CMakeLists.txt
index 82332967b1047..7a1b74d0c7e0e 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -207,11 +207,11 @@ if (HAVE_UNWIND_H)
gcc_personality_v0.c)
endif ()
-if (NOT FUCHSIA)
- set(GENERIC_SOURCES
-${GENERIC_SOURCES}
-clear_cache.c)
-endif()
+#if (NOT FUCHSIA)
+# set(GENERIC_SOURCES
+#${GENERIC_SOURCES}
+#clear_cache.c)
+#endif()
# These sources work on all x86 variants, but only x86 variants.
set(x86_ARCH_SOURCES
@@ -394,11 +394,18 @@ set(arm_Thumb1_VFPv2_SOURCES
arm/unordsf2vfp.S)
set(arm_Thumb1_icache_SOURCES
arm/sync_synchronize.S)
-set(arm_Thumb1_SOURCES
- ${arm_Thumb1_JT_SOURCES}
- ${arm_Thumb1_SjLj_EH_SOURCES}
- ${arm_Thumb1_VFPv2_SOURCES}
- ${arm_Thumb1_icache_SOURCES})
+
+if(APPLE)
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_SjLj_EH_SOURCES}
+${arm_Thumb1_VFPv2_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+else()
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+endif()
if(MINGW)
set(arm_SOURCES
@@ -453,6 +460,12 @@ set(armhf_SOURCES ${arm_SOURCES})
set(armv7_SOURCES ${arm_SOURCES})
set(armv7s_SOURCES ${arm_SOURCES})
set(armv7k_SOURCES ${arm_SOURCES})
+
+set(armv8a_SOURCES ${arm_SOURCES})
+set(armv8r_SOURCES ${arm_SOURCES})
+
+set(aarch64v8a_SOURCES ${aarch64_SOURCES})
+
set(arm64_SOURCES ${aarch64_SOURCES})
# macho_embedded archs
@@ -565,8 +578,13 @@ else ()
set(_arch "arm|armv6m")
elseif("${arch}" MATCHES "^(armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
set(_arch "arm")
+ elseif("${arch}" MATCHES "^(armv8a|armv8r)$")
+set(_arch "arm")
+ elseif("${arch}" MATCHES "^(aarch64v8a)$")
+set(_arch "aarch64")
endif()
+ message(WARNING "supposed to work for target: " ${arch})
# For ARM archs, exclude any VFP builtins if VFP is not supported
if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
string(REPLACE ";" " " _TARGET_${arch}_CFLAGS
"${TARGET_${arch}_CFLAGS}")
@@ -589,8 +607,9 @@ else ()
# Needed for clear_cache on debug mode, due to r7's usage in inline asm.
# Release mode already sets it via -O2/3, Debug mode doesn't.
+ set(BUILTIN_HF_CFLAGS "")
if (${arch} STREQUAL "armhf")
-list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
+list(APPEND BUILTIN_HF_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
endif()
# For RISCV32, we must force enable int128 for compiling long
@@ -604,7 +623,7 @@ else ()
ARCHS ${arch}
SOURCES ${${arch}_SOURCES}
DEFS ${BUILTIN_DEFS}
- CFLAGS ${BUILTIN_CFLAGS}
+ CFLAGS ${BUILTIN_CFLAGS} ${BUILTIN_HF_CFLAGS}
PARENT_TARGET builtins)
endif ()
endforeach ()
diff --git a/compiler-rt/lib/builtins/int_util.c
b/compiler-rt/lib/builtins/int_util.c
index de87410dbca28..b7e6a1c90741f 100644
--- a/compiler-rt/lib/builtins/int_util.c
+++ b/compiler-rt/lib/builtins/int_util.c
@@ -45,7 +45,7 @@ void compilerrt_abort_impl(const char *file, int line, const
char *function) {
__assert_rtn(function, file, line, "libcompiler_rt abort");
}
-#elif __Fuchsia__
+#elif 1
#ifndef _WIN32
__attribute__((weak))
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 043b898 - [LLVMARM-13] Add function for defining HighTec specific macros, call it from ARM targets.
Author: Konstantin Schwarz
Date: 2019-01-17T11:35:06+01:00
New Revision: 043b8986368f76ba8fa2c5e34db83537e8af6d47
URL:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47
DIFF:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47.diff
LOG: [LLVMARM-13] Add function for defining HighTec specific macros, call it
from ARM targets.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
Removed:
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1ef2fe3b81416..5ee68fd92ce2a 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,6 +112,10 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
+void addHighTecDefines(MacroBuilder &Builder) {
+ Builder.defineMacro("__HIGHTEC__");
+}
+
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index d450aa3f37ed6..3c31890c8e15b 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,6 +46,9 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
+
+LLVM_LIBRARY_VISIBILITY
+void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index 3444591ac5933..ddca8369b7423 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,6 +211,8 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+
+ addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 19fcc5abea97e..8d49f124c854a 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,6 +752,8 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
+
+ addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] 344c7a1 - Add basic C++ library support.
Author: Konstantin Schwarz
Date: 2019-01-17T12:24:02+01:00
New Revision: 344c7a13c1e0d48c89165365d9637dc0bef408a2
URL:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2
DIFF:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2.diff
LOG: Add basic C++ library support.
Added:
libcxx/include/support/hightec/locale_htc.h
Modified:
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
Removed:
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index d9def18d725c4..80663b1631232 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -168,6 +168,7 @@ if(LIBCXX_INSTALL_SUPPORT_HEADERS)
${files}
support/android/locale_bionic.h
support/fuchsia/xlocale.h
+support/hightec/locale_htc.h
support/ibm/limits.h
support/ibm/locale_mgmt_aix.h
support/ibm/support.h
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 639d06c9f5d70..840da61978a36 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -307,6 +307,8 @@
# define _LIBCPP_USING_NACL_RANDOM
#elif defined(_LIBCPP_WIN32API)
# define _LIBCPP_USING_WIN32_RANDOM
+#elif defined(__HIGHTEC__)
+// Do not define anything here for HighTec
#else
# define _LIBCPP_USING_DEV_RANDOM
#endif
@@ -979,6 +981,10 @@ template struct __static_assert_check {};
#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
#endif
+#if defined(__HIGHTEC__)
+#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#endif
+
#if defined(__APPLE__)
# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
diff --git a/libcxx/include/__locale b/libcxx/include/__locale
index f43e7b4303d34..2a71c7d279e9a 100644
--- a/libcxx/include/__locale
+++ b/libcxx/include/__locale
@@ -37,6 +37,8 @@
# include
#elif defined(_LIBCPP_HAS_MUSL_LIBC)
# include
+#elif defined(__HIGHTEC__)
+# include
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/math.h b/libcxx/include/math.h
index 3cc72aa2791e3..d28194c2992a9 100644
--- a/libcxx/include/math.h
+++ b/libcxx/include/math.h
@@ -298,6 +298,8 @@ long doubletruncl(long double x);
#pragma GCC system_header
#endif
+#include
+
#include_next
#ifdef __cplusplus
@@ -306,7 +308,7 @@ long doubletruncl(long double x);
// back to C++ linkage before including these C++ headers.
extern "C++" {
-#include
+
#include
// signbit
diff --git a/libcxx/include/support/hightec/locale_htc.h
b/libcxx/include/support/hightec/locale_htc.h
new file mode 100644
index 0..7f06f8e243633
--- /dev/null
+++ b/libcxx/include/support/hightec/locale_htc.h
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//=== support/hightec/locale_htc.h -===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===--===//
+
+#ifndef _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+#define _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+
+#include
+
+// Add definition for isascii function, which is not part of ISO C
+static inline int isascii(int c) {
+ return c == (c & 0x7f);
+}
+
+// Patch over lack of extended locale support
+typedef void *locale_t;
+
+static inline locale_t duplocale(locale_t) {
+ return NULL;
+}
+
+static inline void freelocale(locale_t) {
+}
+
+static inline locale_t newlocale(int, const char *, locale_t) {
+ return NULL;
+}
+
+static inline locale_t uselocale(locale_t) {
+ return NULL;
+}
+
+#define LC_COLLATE_MASK (LC_COLLATE)
+#define LC_CTYPE_MASK(LC_CTYPE)
+#define LC_MESSAGES_MASK (LC_MESSAGES)
+#define LC_MONETARY_MASK (LC_MONETARY)
+#define LC_NUMERIC_MASK (LC_NUMERIC)
+#define LC_TIME_MASK (LC_TIME)
+#define LC_ALL_MASK (LC_COLLATE_MASK|\
+ LC_CTYPE_MASK|\
+ LC_MONETARY_MASK|\
+ LC_NUMERIC_MASK|\
+ LC_TIME_MASK|\
+ LC_MESSAGES_MASK)
+
+#include
+#include
+
+
+#endif // _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp
index b9c701137df2d..0a23aba354697 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -31,6 +31,8 @@
#include "__sso_allocator"
#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
#include "support/win32/locale_win32.h"
+#elif defined(__HIGHTEC__)
+
#elif !defined(__BIONIC__)
#include
#endif
diff --git a/libcxx/src/random.cpp b/libcxx/src/random.cpp
index 4a2468368d065..90a822d9a247c 100644
--- a/libcxx/src/random.cpp
+++ b/libcxx/src/random.cpp
@@ -166,6 +166
[llvm-branch-commits] [libunwind] 5f46db7 - Add CMake option for configuring libunwind bare-metal build
Author: Konstantin Schwarz
Date: 2019-01-17T12:37:40+01:00
New Revision: 5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
URL:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
DIFF:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14.diff
LOG: Add CMake option for configuring libunwind bare-metal build
Added:
Modified:
libunwind/CMakeLists.txt
Removed:
diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt
index e460a72d45c07..a49e482807e7d 100644
--- a/libunwind/CMakeLists.txt
+++ b/libunwind/CMakeLists.txt
@@ -134,6 +134,7 @@ option(LIBUNWIND_ENABLE_ARM_WMMX "Enable unwinding support
for ARM WMMX register
option(LIBUNWIND_ENABLE_THREADS "Build libunwind with threading support." ON)
option(LIBUNWIND_USE_COMPILER_RT "Use compiler-rt instead of libgcc" OFF)
option(LIBUNWIND_INCLUDE_DOCS "Build the libunwind documentation."
${LLVM_INCLUDE_DOCS})
+option(LIBUNWIND_BAREMETAL "Build libunwind for baremetal targets." OFF)
set(LIBUNWIND_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING
"Define suffix of library directory name (32/64)")
@@ -332,6 +333,10 @@ if (WIN32 AND LIBUNWIND_ENABLE_STATIC AND NOT
LIBUNWIND_ENABLE_SHARED)
add_definitions(-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS)
endif()
+if (LIBUNWIND_BAREMETAL)
+ list(APPEND LIBUNWIND_COMPILE_FLAGS -D_LIBUNWIND_IS_BAREMETAL)
+endif()
+
#===
# Setup Source Code
#===
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] 344c7a1 - Add basic C++ library support.
Author: Konstantin Schwarz
Date: 2019-01-17T12:24:02+01:00
New Revision: 344c7a13c1e0d48c89165365d9637dc0bef408a2
URL:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2
DIFF:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2.diff
LOG: Add basic C++ library support.
Added:
libcxx/include/support/hightec/locale_htc.h
Modified:
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
Removed:
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index d9def18d725c4..80663b1631232 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -168,6 +168,7 @@ if(LIBCXX_INSTALL_SUPPORT_HEADERS)
${files}
support/android/locale_bionic.h
support/fuchsia/xlocale.h
+support/hightec/locale_htc.h
support/ibm/limits.h
support/ibm/locale_mgmt_aix.h
support/ibm/support.h
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 639d06c9f5d70..840da61978a36 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -307,6 +307,8 @@
# define _LIBCPP_USING_NACL_RANDOM
#elif defined(_LIBCPP_WIN32API)
# define _LIBCPP_USING_WIN32_RANDOM
+#elif defined(__HIGHTEC__)
+// Do not define anything here for HighTec
#else
# define _LIBCPP_USING_DEV_RANDOM
#endif
@@ -979,6 +981,10 @@ template struct __static_assert_check {};
#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
#endif
+#if defined(__HIGHTEC__)
+#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#endif
+
#if defined(__APPLE__)
# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
diff --git a/libcxx/include/__locale b/libcxx/include/__locale
index f43e7b4303d34..2a71c7d279e9a 100644
--- a/libcxx/include/__locale
+++ b/libcxx/include/__locale
@@ -37,6 +37,8 @@
# include
#elif defined(_LIBCPP_HAS_MUSL_LIBC)
# include
+#elif defined(__HIGHTEC__)
+# include
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/math.h b/libcxx/include/math.h
index 3cc72aa2791e3..d28194c2992a9 100644
--- a/libcxx/include/math.h
+++ b/libcxx/include/math.h
@@ -298,6 +298,8 @@ long doubletruncl(long double x);
#pragma GCC system_header
#endif
+#include
+
#include_next
#ifdef __cplusplus
@@ -306,7 +308,7 @@ long doubletruncl(long double x);
// back to C++ linkage before including these C++ headers.
extern "C++" {
-#include
+
#include
// signbit
diff --git a/libcxx/include/support/hightec/locale_htc.h
b/libcxx/include/support/hightec/locale_htc.h
new file mode 100644
index 0..7f06f8e243633
--- /dev/null
+++ b/libcxx/include/support/hightec/locale_htc.h
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//=== support/hightec/locale_htc.h -===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===--===//
+
+#ifndef _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+#define _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+
+#include
+
+// Add definition for isascii function, which is not part of ISO C
+static inline int isascii(int c) {
+ return c == (c & 0x7f);
+}
+
+// Patch over lack of extended locale support
+typedef void *locale_t;
+
+static inline locale_t duplocale(locale_t) {
+ return NULL;
+}
+
+static inline void freelocale(locale_t) {
+}
+
+static inline locale_t newlocale(int, const char *, locale_t) {
+ return NULL;
+}
+
+static inline locale_t uselocale(locale_t) {
+ return NULL;
+}
+
+#define LC_COLLATE_MASK (LC_COLLATE)
+#define LC_CTYPE_MASK(LC_CTYPE)
+#define LC_MESSAGES_MASK (LC_MESSAGES)
+#define LC_MONETARY_MASK (LC_MONETARY)
+#define LC_NUMERIC_MASK (LC_NUMERIC)
+#define LC_TIME_MASK (LC_TIME)
+#define LC_ALL_MASK (LC_COLLATE_MASK|\
+ LC_CTYPE_MASK|\
+ LC_MONETARY_MASK|\
+ LC_NUMERIC_MASK|\
+ LC_TIME_MASK|\
+ LC_MESSAGES_MASK)
+
+#include
+#include
+
+
+#endif // _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp
index b9c701137df2d..0a23aba354697 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -31,6 +31,8 @@
#include "__sso_allocator"
#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
#include "support/win32/locale_win32.h"
+#elif defined(__HIGHTEC__)
+
#elif !defined(__BIONIC__)
#include
#endif
diff --git a/libcxx/src/random.cpp b/libcxx/src/random.cpp
index 4a2468368d065..90a822d9a247c 100644
--- a/libcxx/src/random.cpp
+++ b/libcxx/src/random.cpp
@@ -166,6 +166
[llvm-branch-commits] [compiler-rt] 2ca7535 - Revert all changes done on the htc/master branch.
Author: Konstantin Schwarz
Date: 2019-09-03T11:55:46+02:00
New Revision: 2ca7535d6caa77de04bf3d80171376d26bde3729
URL:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729
DIFF:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729.diff
LOG: Revert all changes done on the htc/master branch.
For upcoming toolchains, we need a new concept for RLM license checks.
Moreover, the HighTec driver was mostly rewritten on the htc/release/7.x branch.
The changes are still available for later (partial) reuse.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
clang/lib/Basic/Version.cpp
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
libunwind/CMakeLists.txt
lld/Common/Version.cpp
Removed:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
libcxx/include/support/hightec/locale_htc.h
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 5ee68fd92ce2a..1ef2fe3b81416 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,10 +112,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
-void addHighTecDefines(MacroBuilder &Builder) {
- Builder.defineMacro("__HIGHTEC__");
-}
-
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index 3c31890c8e15b..d450aa3f37ed6 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,9 +46,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
-
-LLVM_LIBRARY_VISIBILITY
-void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index ddca8369b7423..3444591ac5933 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,8 +211,6 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
-
- addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 8d49f124c854a..19fcc5abea97e 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,8 +752,6 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
-
- addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index bef40f9f1201c..c2b7753d41288 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,7 +25,6 @@
namespace clang {
std::string getClangRepositoryPath() {
- return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -56,7 +55,6 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
- return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 637907aa91fe3..2b03c9f7001f7 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,7 +45,6 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
- ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cp
[llvm-branch-commits] [compiler-rt] 550c750 - Add support for building compiler-rt for bare metal.
Author: Konstantin Schwarz
Date: 2019-01-17T12:15:24+01:00
New Revision: 550c750e922efcd0960498f876b28de71eb1657b
URL:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b
DIFF:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b.diff
LOG: Add support for building compiler-rt for bare metal.
Added:
Modified:
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
Removed:
diff --git a/compiler-rt/cmake/builtin-config-ix.cmake
b/compiler-rt/cmake/builtin-config-ix.cmake
index a5704e5fed537..17311bcd8661a 100644
--- a/compiler-rt/cmake/builtin-config-ix.cmake
+++ b/compiler-rt/cmake/builtin-config-ix.cmake
@@ -23,8 +23,8 @@ int foo(int x, int y) {
")
-set(ARM64 aarch64)
-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
+set(ARM64 aarch64 aarch64v8a)
+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8r armv8a)
set(HEXAGON hexagon)
set(X86 i386)
set(X86_64 x86_64)
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt
b/compiler-rt/lib/builtins/CMakeLists.txt
index 82332967b1047..7a1b74d0c7e0e 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -207,11 +207,11 @@ if (HAVE_UNWIND_H)
gcc_personality_v0.c)
endif ()
-if (NOT FUCHSIA)
- set(GENERIC_SOURCES
-${GENERIC_SOURCES}
-clear_cache.c)
-endif()
+#if (NOT FUCHSIA)
+# set(GENERIC_SOURCES
+#${GENERIC_SOURCES}
+#clear_cache.c)
+#endif()
# These sources work on all x86 variants, but only x86 variants.
set(x86_ARCH_SOURCES
@@ -394,11 +394,18 @@ set(arm_Thumb1_VFPv2_SOURCES
arm/unordsf2vfp.S)
set(arm_Thumb1_icache_SOURCES
arm/sync_synchronize.S)
-set(arm_Thumb1_SOURCES
- ${arm_Thumb1_JT_SOURCES}
- ${arm_Thumb1_SjLj_EH_SOURCES}
- ${arm_Thumb1_VFPv2_SOURCES}
- ${arm_Thumb1_icache_SOURCES})
+
+if(APPLE)
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_SjLj_EH_SOURCES}
+${arm_Thumb1_VFPv2_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+else()
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+endif()
if(MINGW)
set(arm_SOURCES
@@ -453,6 +460,12 @@ set(armhf_SOURCES ${arm_SOURCES})
set(armv7_SOURCES ${arm_SOURCES})
set(armv7s_SOURCES ${arm_SOURCES})
set(armv7k_SOURCES ${arm_SOURCES})
+
+set(armv8a_SOURCES ${arm_SOURCES})
+set(armv8r_SOURCES ${arm_SOURCES})
+
+set(aarch64v8a_SOURCES ${aarch64_SOURCES})
+
set(arm64_SOURCES ${aarch64_SOURCES})
# macho_embedded archs
@@ -565,8 +578,13 @@ else ()
set(_arch "arm|armv6m")
elseif("${arch}" MATCHES "^(armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
set(_arch "arm")
+ elseif("${arch}" MATCHES "^(armv8a|armv8r)$")
+set(_arch "arm")
+ elseif("${arch}" MATCHES "^(aarch64v8a)$")
+set(_arch "aarch64")
endif()
+ message(WARNING "supposed to work for target: " ${arch})
# For ARM archs, exclude any VFP builtins if VFP is not supported
if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
string(REPLACE ";" " " _TARGET_${arch}_CFLAGS
"${TARGET_${arch}_CFLAGS}")
@@ -589,8 +607,9 @@ else ()
# Needed for clear_cache on debug mode, due to r7's usage in inline asm.
# Release mode already sets it via -O2/3, Debug mode doesn't.
+ set(BUILTIN_HF_CFLAGS "")
if (${arch} STREQUAL "armhf")
-list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
+list(APPEND BUILTIN_HF_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
endif()
# For RISCV32, we must force enable int128 for compiling long
@@ -604,7 +623,7 @@ else ()
ARCHS ${arch}
SOURCES ${${arch}_SOURCES}
DEFS ${BUILTIN_DEFS}
- CFLAGS ${BUILTIN_CFLAGS}
+ CFLAGS ${BUILTIN_CFLAGS} ${BUILTIN_HF_CFLAGS}
PARENT_TARGET builtins)
endif ()
endforeach ()
diff --git a/compiler-rt/lib/builtins/int_util.c
b/compiler-rt/lib/builtins/int_util.c
index de87410dbca28..b7e6a1c90741f 100644
--- a/compiler-rt/lib/builtins/int_util.c
+++ b/compiler-rt/lib/builtins/int_util.c
@@ -45,7 +45,7 @@ void compilerrt_abort_impl(const char *file, int line, const
char *function) {
__assert_rtn(function, file, line, "libcompiler_rt abort");
}
-#elif __Fuchsia__
+#elif 1
#ifndef _WIN32
__attribute__((weak))
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 2ca7535 - Revert all changes done on the htc/master branch.
Author: Konstantin Schwarz
Date: 2019-09-03T11:55:46+02:00
New Revision: 2ca7535d6caa77de04bf3d80171376d26bde3729
URL:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729
DIFF:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729.diff
LOG: Revert all changes done on the htc/master branch.
For upcoming toolchains, we need a new concept for RLM license checks.
Moreover, the HighTec driver was mostly rewritten on the htc/release/7.x branch.
The changes are still available for later (partial) reuse.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
clang/lib/Basic/Version.cpp
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
libunwind/CMakeLists.txt
lld/Common/Version.cpp
Removed:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
libcxx/include/support/hightec/locale_htc.h
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 5ee68fd92ce2a..1ef2fe3b81416 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,10 +112,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
-void addHighTecDefines(MacroBuilder &Builder) {
- Builder.defineMacro("__HIGHTEC__");
-}
-
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index 3c31890c8e15b..d450aa3f37ed6 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,9 +46,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
-
-LLVM_LIBRARY_VISIBILITY
-void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index ddca8369b7423..3444591ac5933 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,8 +211,6 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
-
- addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 8d49f124c854a..19fcc5abea97e 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,8 +752,6 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
-
- addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index bef40f9f1201c..c2b7753d41288 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,7 +25,6 @@
namespace clang {
std::string getClangRepositoryPath() {
- return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -56,7 +55,6 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
- return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 637907aa91fe3..2b03c9f7001f7 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,7 +45,6 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
- ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cp
[llvm-branch-commits] [libunwind] 5f46db7 - Add CMake option for configuring libunwind bare-metal build
Author: Konstantin Schwarz
Date: 2019-01-17T12:37:40+01:00
New Revision: 5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
URL:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
DIFF:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14.diff
LOG: Add CMake option for configuring libunwind bare-metal build
Added:
Modified:
libunwind/CMakeLists.txt
Removed:
diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt
index e460a72d45c07..a49e482807e7d 100644
--- a/libunwind/CMakeLists.txt
+++ b/libunwind/CMakeLists.txt
@@ -134,6 +134,7 @@ option(LIBUNWIND_ENABLE_ARM_WMMX "Enable unwinding support
for ARM WMMX register
option(LIBUNWIND_ENABLE_THREADS "Build libunwind with threading support." ON)
option(LIBUNWIND_USE_COMPILER_RT "Use compiler-rt instead of libgcc" OFF)
option(LIBUNWIND_INCLUDE_DOCS "Build the libunwind documentation."
${LLVM_INCLUDE_DOCS})
+option(LIBUNWIND_BAREMETAL "Build libunwind for baremetal targets." OFF)
set(LIBUNWIND_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING
"Define suffix of library directory name (32/64)")
@@ -332,6 +333,10 @@ if (WIN32 AND LIBUNWIND_ENABLE_STATIC AND NOT
LIBUNWIND_ENABLE_SHARED)
add_definitions(-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS)
endif()
+if (LIBUNWIND_BAREMETAL)
+ list(APPEND LIBUNWIND_COMPILE_FLAGS -D_LIBUNWIND_IS_BAREMETAL)
+endif()
+
#===
# Setup Source Code
#===
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 2b74728 - Add Hightec toolchain description
Author: Konstantin Schwarz
Date: 2019-01-17T09:43:28+01:00
New Revision: 2b747283621473751ef40c0f2ea1fdf50c14453f
URL:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f
DIFF:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f.diff
LOG: Add Hightec toolchain description
Added:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
Modified:
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
Removed:
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 2b03c9f7001f7..637907aa91fe3 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,6 +45,7 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
+ ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 952a716cb6e61..1caf63bf354f7 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -26,6 +26,7 @@
#include "ToolChains/HIP.h"
#include "ToolChains/Haiku.h"
#include "ToolChains/Hexagon.h"
+#include "ToolChains/HighTec.h"
#include "ToolChains/Lanai.h"
#include "ToolChains/Linux.h"
#include "ToolChains/MSVC.h"
@@ -4282,6 +4283,12 @@ const ToolChain &Driver::getToolChain(const ArgList
&Args,
auto &TC = ToolChains[Target.str()];
if (!TC) {
+
+if (toolchains::HighTec::handlesTarget(Target)) {
+ TC = llvm::make_unique(*this, Target, Args);
+ return *TC;
+}
+
switch (Target.getOS()) {
case llvm::Triple::Haiku:
TC = llvm::make_unique(*this, Target, Args);
diff --git a/clang/lib/Driver/ToolChains/HighTec.cpp
b/clang/lib/Driver/ToolChains/HighTec.cpp
new file mode 100644
index 0..367137f771b08
--- /dev/null
+++ b/clang/lib/Driver/ToolChains/HighTec.cpp
@@ -0,0 +1,311 @@
+//===--- HighTec.cpp - HighTec ToolChain Implementation *- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===--===//
+
+#include "HighTec.h"
+#include "Arch/ARM.h"
+#include "clang/Basic/Version.h"
+#include "clang/Basic/VirtualFileSystem.h"
+#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Driver.h"
+#include "clang/Driver/DriverDiagnostic.h"
+#include "clang/Driver/Options.h"
+#include "llvm/Option/ArgList.h"
+#include "llvm/Support/Path.h"
+#include "llvm/Support/TargetParser.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm::opt;
+using namespace clang;
+using namespace clang::driver;
+using namespace clang::driver::tools;
+using namespace clang::driver::toolchains;
+
+static std::string getArchitecture(llvm::Triple Triple) {
+
+ llvm::StringRef Arch = llvm::Triple::getArchTypePrefix(Triple.getArch());
+ if (Arch != "")
+return Arch;
+
+ llvm_unreachable("Unknown architecture specified.");
+}
+
+static std::string getArchVersionString(StringRef Arch) {
+
+ switch (llvm::ARM::parseArch(llvm::ARM::getCanonicalArchName(Arch))) {
+default:
+ // For now, only support v7 & v8
+ return "";
+case llvm::ARM::ArchKind::ARMV8A:
+ return "v8-a";
+case llvm::ARM::ArchKind::ARMV8_1A:
+ return "v8.1-a";
+case llvm::ARM::ArchKind::ARMV8_2A:
+ return "v8-2-a";
+case llvm::ARM::ArchKind::ARMV8_3A:
+ return "v8-3-a";
+case llvm::ARM::ArchKind::ARMV8R:
+ return "v8-r";
+case llvm::ARM::ArchKind::ARMV8MBaseline:
+ return "v8-m.base";
+case llvm::ARM::ArchKind::ARMV8MMainline:
+ return "v8-m.main";
+case llvm::ARM::ArchKind::ARMV7A:
+ return "v7-a";
+case llvm::ARM::ArchKind::ARMV7R:
+ return "v7-r";
+case llvm::ARM::ArchKind::ARMV7EM:
+ return "v7e-m";
+case llvm::ARM::ArchKind::ARMV7M:
+ return "v7-m";
+case llvm::ARM::ArchKind::ARMV7S:
+ return "v7-s";
+case llvm::ARM::ArchKind::ARMV7K:
+ return "v7-k";
+case llvm::ARM::ArchKind::ARMV7VE:
+ return "v7ve";
+case llvm::ARM::ArchKind::ARMV6M:
+ return "v6-m";
+ }
+}
+
+static std::string getArchVersion(llvm::Triple Triple, const
llvm::opt::ArgList &Args) {
+
+
+ if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
+ return getArchVersionString(A->getValue());
+ } else {
+
+
[llvm-branch-commits] [clang] 043b898 - [LLVMARM-13] Add function for defining HighTec specific macros, call it from ARM targets.
Author: Konstantin Schwarz
Date: 2019-01-17T11:35:06+01:00
New Revision: 043b8986368f76ba8fa2c5e34db83537e8af6d47
URL:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47
DIFF:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47.diff
LOG: [LLVMARM-13] Add function for defining HighTec specific macros, call it
from ARM targets.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
Removed:
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1ef2fe3b81416..5ee68fd92ce2a 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,6 +112,10 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
+void addHighTecDefines(MacroBuilder &Builder) {
+ Builder.defineMacro("__HIGHTEC__");
+}
+
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index d450aa3f37ed6..3c31890c8e15b 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,6 +46,9 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
+
+LLVM_LIBRARY_VISIBILITY
+void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index 3444591ac5933..ddca8369b7423 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,6 +211,8 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+
+ addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 19fcc5abea97e..8d49f124c854a 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,6 +752,8 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
+
+ addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lld] 716de1c - Remove repository URL from version string
Author: Konstantin Schwarz
Date: 2019-01-17T11:36:16+01:00
New Revision: 716de1cb582ea2676e1a00ed135085229d88e615
URL:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615
DIFF:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615.diff
LOG: Remove repository URL from version string
Added:
Modified:
clang/lib/Basic/Version.cpp
lld/Common/Version.cpp
Removed:
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index c2b7753d41288..bef40f9f1201c 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,6 +25,7 @@
namespace clang {
std::string getClangRepositoryPath() {
+ return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -55,6 +56,7 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
+ return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/lld/Common/Version.cpp b/lld/Common/Version.cpp
index 6226c9a2fac69..3ef83bbeddd18 100644
--- a/lld/Common/Version.cpp
+++ b/lld/Common/Version.cpp
@@ -30,6 +30,8 @@ static std::string getRepository() {
std::string Repo = getRepositoryPath();
std::string Rev = LLD_REVISION_STRING;
+ return " (" + Rev + ")";
+
if (Repo.empty() && Rev.empty())
return "";
if (!Repo.empty() && !Rev.empty())
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 043b898 - [LLVMARM-13] Add function for defining HighTec specific macros, call it from ARM targets.
Author: Konstantin Schwarz
Date: 2019-01-17T11:35:06+01:00
New Revision: 043b8986368f76ba8fa2c5e34db83537e8af6d47
URL:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47
DIFF:
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47.diff
LOG: [LLVMARM-13] Add function for defining HighTec specific macros, call it
from ARM targets.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
Removed:
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1ef2fe3b81416..5ee68fd92ce2a 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,6 +112,10 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
+void addHighTecDefines(MacroBuilder &Builder) {
+ Builder.defineMacro("__HIGHTEC__");
+}
+
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index d450aa3f37ed6..3c31890c8e15b 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,6 +46,9 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
+
+LLVM_LIBRARY_VISIBILITY
+void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index 3444591ac5933..ddca8369b7423 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,6 +211,8 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+
+ addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 19fcc5abea97e..8d49f124c854a 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,6 +752,8 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
+
+ addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] 2b74728 - Add Hightec toolchain description
Author: Konstantin Schwarz
Date: 2019-01-17T09:43:28+01:00
New Revision: 2b747283621473751ef40c0f2ea1fdf50c14453f
URL:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f
DIFF:
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f.diff
LOG: Add Hightec toolchain description
Added:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
Modified:
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
Removed:
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 2b03c9f7001f7..637907aa91fe3 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,6 +45,7 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
+ ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 952a716cb6e61..1caf63bf354f7 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -26,6 +26,7 @@
#include "ToolChains/HIP.h"
#include "ToolChains/Haiku.h"
#include "ToolChains/Hexagon.h"
+#include "ToolChains/HighTec.h"
#include "ToolChains/Lanai.h"
#include "ToolChains/Linux.h"
#include "ToolChains/MSVC.h"
@@ -4282,6 +4283,12 @@ const ToolChain &Driver::getToolChain(const ArgList
&Args,
auto &TC = ToolChains[Target.str()];
if (!TC) {
+
+if (toolchains::HighTec::handlesTarget(Target)) {
+ TC = llvm::make_unique(*this, Target, Args);
+ return *TC;
+}
+
switch (Target.getOS()) {
case llvm::Triple::Haiku:
TC = llvm::make_unique(*this, Target, Args);
diff --git a/clang/lib/Driver/ToolChains/HighTec.cpp
b/clang/lib/Driver/ToolChains/HighTec.cpp
new file mode 100644
index 0..367137f771b08
--- /dev/null
+++ b/clang/lib/Driver/ToolChains/HighTec.cpp
@@ -0,0 +1,311 @@
+//===--- HighTec.cpp - HighTec ToolChain Implementation *- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===--===//
+
+#include "HighTec.h"
+#include "Arch/ARM.h"
+#include "clang/Basic/Version.h"
+#include "clang/Basic/VirtualFileSystem.h"
+#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Driver.h"
+#include "clang/Driver/DriverDiagnostic.h"
+#include "clang/Driver/Options.h"
+#include "llvm/Option/ArgList.h"
+#include "llvm/Support/Path.h"
+#include "llvm/Support/TargetParser.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm::opt;
+using namespace clang;
+using namespace clang::driver;
+using namespace clang::driver::tools;
+using namespace clang::driver::toolchains;
+
+static std::string getArchitecture(llvm::Triple Triple) {
+
+ llvm::StringRef Arch = llvm::Triple::getArchTypePrefix(Triple.getArch());
+ if (Arch != "")
+return Arch;
+
+ llvm_unreachable("Unknown architecture specified.");
+}
+
+static std::string getArchVersionString(StringRef Arch) {
+
+ switch (llvm::ARM::parseArch(llvm::ARM::getCanonicalArchName(Arch))) {
+default:
+ // For now, only support v7 & v8
+ return "";
+case llvm::ARM::ArchKind::ARMV8A:
+ return "v8-a";
+case llvm::ARM::ArchKind::ARMV8_1A:
+ return "v8.1-a";
+case llvm::ARM::ArchKind::ARMV8_2A:
+ return "v8-2-a";
+case llvm::ARM::ArchKind::ARMV8_3A:
+ return "v8-3-a";
+case llvm::ARM::ArchKind::ARMV8R:
+ return "v8-r";
+case llvm::ARM::ArchKind::ARMV8MBaseline:
+ return "v8-m.base";
+case llvm::ARM::ArchKind::ARMV8MMainline:
+ return "v8-m.main";
+case llvm::ARM::ArchKind::ARMV7A:
+ return "v7-a";
+case llvm::ARM::ArchKind::ARMV7R:
+ return "v7-r";
+case llvm::ARM::ArchKind::ARMV7EM:
+ return "v7e-m";
+case llvm::ARM::ArchKind::ARMV7M:
+ return "v7-m";
+case llvm::ARM::ArchKind::ARMV7S:
+ return "v7-s";
+case llvm::ARM::ArchKind::ARMV7K:
+ return "v7-k";
+case llvm::ARM::ArchKind::ARMV7VE:
+ return "v7ve";
+case llvm::ARM::ArchKind::ARMV6M:
+ return "v6-m";
+ }
+}
+
+static std::string getArchVersion(llvm::Triple Triple, const
llvm::opt::ArgList &Args) {
+
+
+ if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
+ return getArchVersionString(A->getValue());
+ } else {
+
+
[llvm-branch-commits] [lld] 716de1c - Remove repository URL from version string
Author: Konstantin Schwarz
Date: 2019-01-17T11:36:16+01:00
New Revision: 716de1cb582ea2676e1a00ed135085229d88e615
URL:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615
DIFF:
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615.diff
LOG: Remove repository URL from version string
Added:
Modified:
clang/lib/Basic/Version.cpp
lld/Common/Version.cpp
Removed:
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index c2b7753d41288..bef40f9f1201c 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,6 +25,7 @@
namespace clang {
std::string getClangRepositoryPath() {
+ return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -55,6 +56,7 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
+ return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/lld/Common/Version.cpp b/lld/Common/Version.cpp
index 6226c9a2fac69..3ef83bbeddd18 100644
--- a/lld/Common/Version.cpp
+++ b/lld/Common/Version.cpp
@@ -30,6 +30,8 @@ static std::string getRepository() {
std::string Repo = getRepositoryPath();
std::string Rev = LLD_REVISION_STRING;
+ return " (" + Rev + ")";
+
if (Repo.empty() && Rev.empty())
return "";
if (!Repo.empty() && !Rev.empty())
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt] 550c750 - Add support for building compiler-rt for bare metal.
Author: Konstantin Schwarz
Date: 2019-01-17T12:15:24+01:00
New Revision: 550c750e922efcd0960498f876b28de71eb1657b
URL:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b
DIFF:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b.diff
LOG: Add support for building compiler-rt for bare metal.
Added:
Modified:
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
Removed:
diff --git a/compiler-rt/cmake/builtin-config-ix.cmake
b/compiler-rt/cmake/builtin-config-ix.cmake
index a5704e5fed537..17311bcd8661a 100644
--- a/compiler-rt/cmake/builtin-config-ix.cmake
+++ b/compiler-rt/cmake/builtin-config-ix.cmake
@@ -23,8 +23,8 @@ int foo(int x, int y) {
")
-set(ARM64 aarch64)
-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
+set(ARM64 aarch64 aarch64v8a)
+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8r armv8a)
set(HEXAGON hexagon)
set(X86 i386)
set(X86_64 x86_64)
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt
b/compiler-rt/lib/builtins/CMakeLists.txt
index 82332967b1047..7a1b74d0c7e0e 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -207,11 +207,11 @@ if (HAVE_UNWIND_H)
gcc_personality_v0.c)
endif ()
-if (NOT FUCHSIA)
- set(GENERIC_SOURCES
-${GENERIC_SOURCES}
-clear_cache.c)
-endif()
+#if (NOT FUCHSIA)
+# set(GENERIC_SOURCES
+#${GENERIC_SOURCES}
+#clear_cache.c)
+#endif()
# These sources work on all x86 variants, but only x86 variants.
set(x86_ARCH_SOURCES
@@ -394,11 +394,18 @@ set(arm_Thumb1_VFPv2_SOURCES
arm/unordsf2vfp.S)
set(arm_Thumb1_icache_SOURCES
arm/sync_synchronize.S)
-set(arm_Thumb1_SOURCES
- ${arm_Thumb1_JT_SOURCES}
- ${arm_Thumb1_SjLj_EH_SOURCES}
- ${arm_Thumb1_VFPv2_SOURCES}
- ${arm_Thumb1_icache_SOURCES})
+
+if(APPLE)
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_SjLj_EH_SOURCES}
+${arm_Thumb1_VFPv2_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+else()
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+endif()
if(MINGW)
set(arm_SOURCES
@@ -453,6 +460,12 @@ set(armhf_SOURCES ${arm_SOURCES})
set(armv7_SOURCES ${arm_SOURCES})
set(armv7s_SOURCES ${arm_SOURCES})
set(armv7k_SOURCES ${arm_SOURCES})
+
+set(armv8a_SOURCES ${arm_SOURCES})
+set(armv8r_SOURCES ${arm_SOURCES})
+
+set(aarch64v8a_SOURCES ${aarch64_SOURCES})
+
set(arm64_SOURCES ${aarch64_SOURCES})
# macho_embedded archs
@@ -565,8 +578,13 @@ else ()
set(_arch "arm|armv6m")
elseif("${arch}" MATCHES "^(armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
set(_arch "arm")
+ elseif("${arch}" MATCHES "^(armv8a|armv8r)$")
+set(_arch "arm")
+ elseif("${arch}" MATCHES "^(aarch64v8a)$")
+set(_arch "aarch64")
endif()
+ message(WARNING "supposed to work for target: " ${arch})
# For ARM archs, exclude any VFP builtins if VFP is not supported
if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
string(REPLACE ";" " " _TARGET_${arch}_CFLAGS
"${TARGET_${arch}_CFLAGS}")
@@ -589,8 +607,9 @@ else ()
# Needed for clear_cache on debug mode, due to r7's usage in inline asm.
# Release mode already sets it via -O2/3, Debug mode doesn't.
+ set(BUILTIN_HF_CFLAGS "")
if (${arch} STREQUAL "armhf")
-list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
+list(APPEND BUILTIN_HF_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
endif()
# For RISCV32, we must force enable int128 for compiling long
@@ -604,7 +623,7 @@ else ()
ARCHS ${arch}
SOURCES ${${arch}_SOURCES}
DEFS ${BUILTIN_DEFS}
- CFLAGS ${BUILTIN_CFLAGS}
+ CFLAGS ${BUILTIN_CFLAGS} ${BUILTIN_HF_CFLAGS}
PARENT_TARGET builtins)
endif ()
endforeach ()
diff --git a/compiler-rt/lib/builtins/int_util.c
b/compiler-rt/lib/builtins/int_util.c
index de87410dbca28..b7e6a1c90741f 100644
--- a/compiler-rt/lib/builtins/int_util.c
+++ b/compiler-rt/lib/builtins/int_util.c
@@ -45,7 +45,7 @@ void compilerrt_abort_impl(const char *file, int line, const
char *function) {
__assert_rtn(function, file, line, "libcompiler_rt abort");
}
-#elif __Fuchsia__
+#elif 1
#ifndef _WIN32
__attribute__((weak))
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt] 550c750 - Add support for building compiler-rt for bare metal.
Author: Konstantin Schwarz
Date: 2019-01-17T12:15:24+01:00
New Revision: 550c750e922efcd0960498f876b28de71eb1657b
URL:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b
DIFF:
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b.diff
LOG: Add support for building compiler-rt for bare metal.
Added:
Modified:
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
Removed:
diff --git a/compiler-rt/cmake/builtin-config-ix.cmake
b/compiler-rt/cmake/builtin-config-ix.cmake
index a5704e5fed537..17311bcd8661a 100644
--- a/compiler-rt/cmake/builtin-config-ix.cmake
+++ b/compiler-rt/cmake/builtin-config-ix.cmake
@@ -23,8 +23,8 @@ int foo(int x, int y) {
")
-set(ARM64 aarch64)
-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
+set(ARM64 aarch64 aarch64v8a)
+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8r armv8a)
set(HEXAGON hexagon)
set(X86 i386)
set(X86_64 x86_64)
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt
b/compiler-rt/lib/builtins/CMakeLists.txt
index 82332967b1047..7a1b74d0c7e0e 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -207,11 +207,11 @@ if (HAVE_UNWIND_H)
gcc_personality_v0.c)
endif ()
-if (NOT FUCHSIA)
- set(GENERIC_SOURCES
-${GENERIC_SOURCES}
-clear_cache.c)
-endif()
+#if (NOT FUCHSIA)
+# set(GENERIC_SOURCES
+#${GENERIC_SOURCES}
+#clear_cache.c)
+#endif()
# These sources work on all x86 variants, but only x86 variants.
set(x86_ARCH_SOURCES
@@ -394,11 +394,18 @@ set(arm_Thumb1_VFPv2_SOURCES
arm/unordsf2vfp.S)
set(arm_Thumb1_icache_SOURCES
arm/sync_synchronize.S)
-set(arm_Thumb1_SOURCES
- ${arm_Thumb1_JT_SOURCES}
- ${arm_Thumb1_SjLj_EH_SOURCES}
- ${arm_Thumb1_VFPv2_SOURCES}
- ${arm_Thumb1_icache_SOURCES})
+
+if(APPLE)
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_SjLj_EH_SOURCES}
+${arm_Thumb1_VFPv2_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+else()
+ set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+endif()
if(MINGW)
set(arm_SOURCES
@@ -453,6 +460,12 @@ set(armhf_SOURCES ${arm_SOURCES})
set(armv7_SOURCES ${arm_SOURCES})
set(armv7s_SOURCES ${arm_SOURCES})
set(armv7k_SOURCES ${arm_SOURCES})
+
+set(armv8a_SOURCES ${arm_SOURCES})
+set(armv8r_SOURCES ${arm_SOURCES})
+
+set(aarch64v8a_SOURCES ${aarch64_SOURCES})
+
set(arm64_SOURCES ${aarch64_SOURCES})
# macho_embedded archs
@@ -565,8 +578,13 @@ else ()
set(_arch "arm|armv6m")
elseif("${arch}" MATCHES "^(armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
set(_arch "arm")
+ elseif("${arch}" MATCHES "^(armv8a|armv8r)$")
+set(_arch "arm")
+ elseif("${arch}" MATCHES "^(aarch64v8a)$")
+set(_arch "aarch64")
endif()
+ message(WARNING "supposed to work for target: " ${arch})
# For ARM archs, exclude any VFP builtins if VFP is not supported
if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
string(REPLACE ";" " " _TARGET_${arch}_CFLAGS
"${TARGET_${arch}_CFLAGS}")
@@ -589,8 +607,9 @@ else ()
# Needed for clear_cache on debug mode, due to r7's usage in inline asm.
# Release mode already sets it via -O2/3, Debug mode doesn't.
+ set(BUILTIN_HF_CFLAGS "")
if (${arch} STREQUAL "armhf")
-list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
+list(APPEND BUILTIN_HF_CFLAGS -fomit-frame-pointer
-DCOMPILER_RT_ARMHF_TARGET)
endif()
# For RISCV32, we must force enable int128 for compiling long
@@ -604,7 +623,7 @@ else ()
ARCHS ${arch}
SOURCES ${${arch}_SOURCES}
DEFS ${BUILTIN_DEFS}
- CFLAGS ${BUILTIN_CFLAGS}
+ CFLAGS ${BUILTIN_CFLAGS} ${BUILTIN_HF_CFLAGS}
PARENT_TARGET builtins)
endif ()
endforeach ()
diff --git a/compiler-rt/lib/builtins/int_util.c
b/compiler-rt/lib/builtins/int_util.c
index de87410dbca28..b7e6a1c90741f 100644
--- a/compiler-rt/lib/builtins/int_util.c
+++ b/compiler-rt/lib/builtins/int_util.c
@@ -45,7 +45,7 @@ void compilerrt_abort_impl(const char *file, int line, const
char *function) {
__assert_rtn(function, file, line, "libcompiler_rt abort");
}
-#elif __Fuchsia__
+#elif 1
#ifndef _WIN32
__attribute__((weak))
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] 344c7a1 - Add basic C++ library support.
Author: Konstantin Schwarz
Date: 2019-01-17T12:24:02+01:00
New Revision: 344c7a13c1e0d48c89165365d9637dc0bef408a2
URL:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2
DIFF:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2.diff
LOG: Add basic C++ library support.
Added:
libcxx/include/support/hightec/locale_htc.h
Modified:
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
Removed:
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index d9def18d725c4..80663b1631232 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -168,6 +168,7 @@ if(LIBCXX_INSTALL_SUPPORT_HEADERS)
${files}
support/android/locale_bionic.h
support/fuchsia/xlocale.h
+support/hightec/locale_htc.h
support/ibm/limits.h
support/ibm/locale_mgmt_aix.h
support/ibm/support.h
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 639d06c9f5d70..840da61978a36 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -307,6 +307,8 @@
# define _LIBCPP_USING_NACL_RANDOM
#elif defined(_LIBCPP_WIN32API)
# define _LIBCPP_USING_WIN32_RANDOM
+#elif defined(__HIGHTEC__)
+// Do not define anything here for HighTec
#else
# define _LIBCPP_USING_DEV_RANDOM
#endif
@@ -979,6 +981,10 @@ template struct __static_assert_check {};
#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
#endif
+#if defined(__HIGHTEC__)
+#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#endif
+
#if defined(__APPLE__)
# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
diff --git a/libcxx/include/__locale b/libcxx/include/__locale
index f43e7b4303d34..2a71c7d279e9a 100644
--- a/libcxx/include/__locale
+++ b/libcxx/include/__locale
@@ -37,6 +37,8 @@
# include
#elif defined(_LIBCPP_HAS_MUSL_LIBC)
# include
+#elif defined(__HIGHTEC__)
+# include
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/math.h b/libcxx/include/math.h
index 3cc72aa2791e3..d28194c2992a9 100644
--- a/libcxx/include/math.h
+++ b/libcxx/include/math.h
@@ -298,6 +298,8 @@ long doubletruncl(long double x);
#pragma GCC system_header
#endif
+#include
+
#include_next
#ifdef __cplusplus
@@ -306,7 +308,7 @@ long doubletruncl(long double x);
// back to C++ linkage before including these C++ headers.
extern "C++" {
-#include
+
#include
// signbit
diff --git a/libcxx/include/support/hightec/locale_htc.h
b/libcxx/include/support/hightec/locale_htc.h
new file mode 100644
index 0..7f06f8e243633
--- /dev/null
+++ b/libcxx/include/support/hightec/locale_htc.h
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//=== support/hightec/locale_htc.h -===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===--===//
+
+#ifndef _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+#define _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+
+#include
+
+// Add definition for isascii function, which is not part of ISO C
+static inline int isascii(int c) {
+ return c == (c & 0x7f);
+}
+
+// Patch over lack of extended locale support
+typedef void *locale_t;
+
+static inline locale_t duplocale(locale_t) {
+ return NULL;
+}
+
+static inline void freelocale(locale_t) {
+}
+
+static inline locale_t newlocale(int, const char *, locale_t) {
+ return NULL;
+}
+
+static inline locale_t uselocale(locale_t) {
+ return NULL;
+}
+
+#define LC_COLLATE_MASK (LC_COLLATE)
+#define LC_CTYPE_MASK(LC_CTYPE)
+#define LC_MESSAGES_MASK (LC_MESSAGES)
+#define LC_MONETARY_MASK (LC_MONETARY)
+#define LC_NUMERIC_MASK (LC_NUMERIC)
+#define LC_TIME_MASK (LC_TIME)
+#define LC_ALL_MASK (LC_COLLATE_MASK|\
+ LC_CTYPE_MASK|\
+ LC_MONETARY_MASK|\
+ LC_NUMERIC_MASK|\
+ LC_TIME_MASK|\
+ LC_MESSAGES_MASK)
+
+#include
+#include
+
+
+#endif // _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp
index b9c701137df2d..0a23aba354697 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -31,6 +31,8 @@
#include "__sso_allocator"
#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
#include "support/win32/locale_win32.h"
+#elif defined(__HIGHTEC__)
+
#elif !defined(__BIONIC__)
#include
#endif
diff --git a/libcxx/src/random.cpp b/libcxx/src/random.cpp
index 4a2468368d065..90a822d9a247c 100644
--- a/libcxx/src/random.cpp
+++ b/libcxx/src/random.cpp
@@ -166,6 +166
[llvm-branch-commits] [libcxx] 344c7a1 - Add basic C++ library support.
Author: Konstantin Schwarz
Date: 2019-01-17T12:24:02+01:00
New Revision: 344c7a13c1e0d48c89165365d9637dc0bef408a2
URL:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2
DIFF:
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2.diff
LOG: Add basic C++ library support.
Added:
libcxx/include/support/hightec/locale_htc.h
Modified:
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
Removed:
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index d9def18d725c4..80663b1631232 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -168,6 +168,7 @@ if(LIBCXX_INSTALL_SUPPORT_HEADERS)
${files}
support/android/locale_bionic.h
support/fuchsia/xlocale.h
+support/hightec/locale_htc.h
support/ibm/limits.h
support/ibm/locale_mgmt_aix.h
support/ibm/support.h
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 639d06c9f5d70..840da61978a36 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -307,6 +307,8 @@
# define _LIBCPP_USING_NACL_RANDOM
#elif defined(_LIBCPP_WIN32API)
# define _LIBCPP_USING_WIN32_RANDOM
+#elif defined(__HIGHTEC__)
+// Do not define anything here for HighTec
#else
# define _LIBCPP_USING_DEV_RANDOM
#endif
@@ -979,6 +981,10 @@ template struct __static_assert_check {};
#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
#endif
+#if defined(__HIGHTEC__)
+#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#endif
+
#if defined(__APPLE__)
# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
diff --git a/libcxx/include/__locale b/libcxx/include/__locale
index f43e7b4303d34..2a71c7d279e9a 100644
--- a/libcxx/include/__locale
+++ b/libcxx/include/__locale
@@ -37,6 +37,8 @@
# include
#elif defined(_LIBCPP_HAS_MUSL_LIBC)
# include
+#elif defined(__HIGHTEC__)
+# include
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/math.h b/libcxx/include/math.h
index 3cc72aa2791e3..d28194c2992a9 100644
--- a/libcxx/include/math.h
+++ b/libcxx/include/math.h
@@ -298,6 +298,8 @@ long doubletruncl(long double x);
#pragma GCC system_header
#endif
+#include
+
#include_next
#ifdef __cplusplus
@@ -306,7 +308,7 @@ long doubletruncl(long double x);
// back to C++ linkage before including these C++ headers.
extern "C++" {
-#include
+
#include
// signbit
diff --git a/libcxx/include/support/hightec/locale_htc.h
b/libcxx/include/support/hightec/locale_htc.h
new file mode 100644
index 0..7f06f8e243633
--- /dev/null
+++ b/libcxx/include/support/hightec/locale_htc.h
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//=== support/hightec/locale_htc.h -===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===--===//
+
+#ifndef _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+#define _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+
+#include
+
+// Add definition for isascii function, which is not part of ISO C
+static inline int isascii(int c) {
+ return c == (c & 0x7f);
+}
+
+// Patch over lack of extended locale support
+typedef void *locale_t;
+
+static inline locale_t duplocale(locale_t) {
+ return NULL;
+}
+
+static inline void freelocale(locale_t) {
+}
+
+static inline locale_t newlocale(int, const char *, locale_t) {
+ return NULL;
+}
+
+static inline locale_t uselocale(locale_t) {
+ return NULL;
+}
+
+#define LC_COLLATE_MASK (LC_COLLATE)
+#define LC_CTYPE_MASK(LC_CTYPE)
+#define LC_MESSAGES_MASK (LC_MESSAGES)
+#define LC_MONETARY_MASK (LC_MONETARY)
+#define LC_NUMERIC_MASK (LC_NUMERIC)
+#define LC_TIME_MASK (LC_TIME)
+#define LC_ALL_MASK (LC_COLLATE_MASK|\
+ LC_CTYPE_MASK|\
+ LC_MONETARY_MASK|\
+ LC_NUMERIC_MASK|\
+ LC_TIME_MASK|\
+ LC_MESSAGES_MASK)
+
+#include
+#include
+
+
+#endif // _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp
index b9c701137df2d..0a23aba354697 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -31,6 +31,8 @@
#include "__sso_allocator"
#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
#include "support/win32/locale_win32.h"
+#elif defined(__HIGHTEC__)
+
#elif !defined(__BIONIC__)
#include
#endif
diff --git a/libcxx/src/random.cpp b/libcxx/src/random.cpp
index 4a2468368d065..90a822d9a247c 100644
--- a/libcxx/src/random.cpp
+++ b/libcxx/src/random.cpp
@@ -166,6 +166
[llvm-branch-commits] [libunwind] 5f46db7 - Add CMake option for configuring libunwind bare-metal build
Author: Konstantin Schwarz
Date: 2019-01-17T12:37:40+01:00
New Revision: 5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
URL:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
DIFF:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14.diff
LOG: Add CMake option for configuring libunwind bare-metal build
Added:
Modified:
libunwind/CMakeLists.txt
Removed:
diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt
index e460a72d45c07..a49e482807e7d 100644
--- a/libunwind/CMakeLists.txt
+++ b/libunwind/CMakeLists.txt
@@ -134,6 +134,7 @@ option(LIBUNWIND_ENABLE_ARM_WMMX "Enable unwinding support
for ARM WMMX register
option(LIBUNWIND_ENABLE_THREADS "Build libunwind with threading support." ON)
option(LIBUNWIND_USE_COMPILER_RT "Use compiler-rt instead of libgcc" OFF)
option(LIBUNWIND_INCLUDE_DOCS "Build the libunwind documentation."
${LLVM_INCLUDE_DOCS})
+option(LIBUNWIND_BAREMETAL "Build libunwind for baremetal targets." OFF)
set(LIBUNWIND_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING
"Define suffix of library directory name (32/64)")
@@ -332,6 +333,10 @@ if (WIN32 AND LIBUNWIND_ENABLE_STATIC AND NOT
LIBUNWIND_ENABLE_SHARED)
add_definitions(-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS)
endif()
+if (LIBUNWIND_BAREMETAL)
+ list(APPEND LIBUNWIND_COMPILE_FLAGS -D_LIBUNWIND_IS_BAREMETAL)
+endif()
+
#===
# Setup Source Code
#===
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libunwind] 5f46db7 - Add CMake option for configuring libunwind bare-metal build
Author: Konstantin Schwarz
Date: 2019-01-17T12:37:40+01:00
New Revision: 5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
URL:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
DIFF:
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14.diff
LOG: Add CMake option for configuring libunwind bare-metal build
Added:
Modified:
libunwind/CMakeLists.txt
Removed:
diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt
index e460a72d45c07..a49e482807e7d 100644
--- a/libunwind/CMakeLists.txt
+++ b/libunwind/CMakeLists.txt
@@ -134,6 +134,7 @@ option(LIBUNWIND_ENABLE_ARM_WMMX "Enable unwinding support
for ARM WMMX register
option(LIBUNWIND_ENABLE_THREADS "Build libunwind with threading support." ON)
option(LIBUNWIND_USE_COMPILER_RT "Use compiler-rt instead of libgcc" OFF)
option(LIBUNWIND_INCLUDE_DOCS "Build the libunwind documentation."
${LLVM_INCLUDE_DOCS})
+option(LIBUNWIND_BAREMETAL "Build libunwind for baremetal targets." OFF)
set(LIBUNWIND_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING
"Define suffix of library directory name (32/64)")
@@ -332,6 +333,10 @@ if (WIN32 AND LIBUNWIND_ENABLE_STATIC AND NOT
LIBUNWIND_ENABLE_SHARED)
add_definitions(-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS)
endif()
+if (LIBUNWIND_BAREMETAL)
+ list(APPEND LIBUNWIND_COMPILE_FLAGS -D_LIBUNWIND_IS_BAREMETAL)
+endif()
+
#===
# Setup Source Code
#===
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lld] 2ca7535 - Revert all changes done on the htc/master branch.
Author: Konstantin Schwarz
Date: 2019-09-03T11:55:46+02:00
New Revision: 2ca7535d6caa77de04bf3d80171376d26bde3729
URL:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729
DIFF:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729.diff
LOG: Revert all changes done on the htc/master branch.
For upcoming toolchains, we need a new concept for RLM license checks.
Moreover, the HighTec driver was mostly rewritten on the htc/release/7.x branch.
The changes are still available for later (partial) reuse.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
clang/lib/Basic/Version.cpp
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
libunwind/CMakeLists.txt
lld/Common/Version.cpp
Removed:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
libcxx/include/support/hightec/locale_htc.h
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 5ee68fd92ce2a..1ef2fe3b81416 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,10 +112,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
-void addHighTecDefines(MacroBuilder &Builder) {
- Builder.defineMacro("__HIGHTEC__");
-}
-
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index 3c31890c8e15b..d450aa3f37ed6 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,9 +46,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
-
-LLVM_LIBRARY_VISIBILITY
-void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index ddca8369b7423..3444591ac5933 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,8 +211,6 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
-
- addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 8d49f124c854a..19fcc5abea97e 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,8 +752,6 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
-
- addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index bef40f9f1201c..c2b7753d41288 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,7 +25,6 @@
namespace clang {
std::string getClangRepositoryPath() {
- return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -56,7 +55,6 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
- return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 637907aa91fe3..2b03c9f7001f7 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,7 +45,6 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
- ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cp
[llvm-branch-commits] [lld] 2ca7535 - Revert all changes done on the htc/master branch.
Author: Konstantin Schwarz
Date: 2019-09-03T11:55:46+02:00
New Revision: 2ca7535d6caa77de04bf3d80171376d26bde3729
URL:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729
DIFF:
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729.diff
LOG: Revert all changes done on the htc/master branch.
For upcoming toolchains, we need a new concept for RLM license checks.
Moreover, the HighTec driver was mostly rewritten on the htc/release/7.x branch.
The changes are still available for later (partial) reuse.
Added:
Modified:
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
clang/lib/Basic/Version.cpp
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
libunwind/CMakeLists.txt
lld/Common/Version.cpp
Removed:
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
libcxx/include/support/hightec/locale_htc.h
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 5ee68fd92ce2a..1ef2fe3b81416 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,10 +112,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
LangOptions &Opts,
addCygMingDefines(Opts, Builder);
}
-void addHighTecDefines(MacroBuilder &Builder) {
- Builder.defineMacro("__HIGHTEC__");
-}
-
//===--===//
// Driver code
//===--===//
diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index 3c31890c8e15b..d450aa3f37ed6 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,9 +46,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const
clang::LangOptions &Opts,
LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
-
-LLVM_LIBRARY_VISIBILITY
-void addHighTecDefines(clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
diff --git a/clang/lib/Basic/Targets/AArch64.cpp
b/clang/lib/Basic/Targets/AArch64.cpp
index ddca8369b7423..3444591ac5933 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,8 +211,6 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
-
- addHighTecDefines(Builder);
}
ArrayRef AArch64TargetInfo::getTargetBuiltins() const {
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 8d49f124c854a..19fcc5abea97e 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,8 +752,6 @@ void ARMTargetInfo::getTargetDefines(const LangOptions
&Opts,
getTargetDefinesARMV82A(Opts, Builder);
break;
}
-
- addHighTecDefines(Builder);
}
const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index bef40f9f1201c..c2b7753d41288 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,7 +25,6 @@
namespace clang {
std::string getClangRepositoryPath() {
- return "clang:";
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
@@ -56,7 +55,6 @@ std::string getClangRepositoryPath() {
}
std::string getLLVMRepositoryPath() {
- return "llvm: ";
#ifdef LLVM_REPOSITORY
StringRef URL(LLVM_REPOSITORY);
#else
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 637907aa91fe3..2b03c9f7001f7 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,7 +45,6 @@ add_clang_library(clangDriver
ToolChains/Fuchsia.cpp
ToolChains/Gnu.cpp
ToolChains/Haiku.cpp
- ToolChains/HighTec.cpp
ToolChains/HIP.cpp
ToolChains/Hexagon.cpp
ToolChains/Linux.cpp
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cp
