[llvm-branch-commits] [clang] 2b74728 - Add Hightec toolchain description

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-07-09 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-09-30 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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.

2021-12-21 Thread Konstantin Schwarz via llvm-branch-commits

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