pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

llvm-project-netbsd: Drop local LLD patches



Module Name:	pkgsrc-wip
Committed By:	Kamil Rytarowski <n54%gmx.com@localhost>
Pushed By:	kamil
Date:		Sat Feb 8 12:34:22 2020 +0100
Changeset:	30bed693419cdb6d4bfe15b0b3b5dc8513ea81c0

Modified Files:
	llvm-project-netbsd/distinfo
Removed Files:
	llvm-project-netbsd/patches/patch-lld_CMakeLists.txt
	llvm-project-netbsd/patches/patch-lld_ELF_Arch_AArch64.cpp
	llvm-project-netbsd/patches/patch-lld_ELF_Config.h
	llvm-project-netbsd/patches/patch-lld_ELF_Driver.cpp
	llvm-project-netbsd/patches/patch-lld_ELF_Options.td

Log Message:
llvm-project-netbsd: Drop local LLD patches

They no longer apply and may be done differently.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=30bed693419cdb6d4bfe15b0b3b5dc8513ea81c0

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 llvm-project-netbsd/distinfo                       |   5 -
 .../patches/patch-lld_CMakeLists.txt               |  12 --
 .../patches/patch-lld_ELF_Arch_AArch64.cpp         |  20 ---
 llvm-project-netbsd/patches/patch-lld_ELF_Config.h |  31 ----
 .../patches/patch-lld_ELF_Driver.cpp               | 199 ---------------------
 .../patches/patch-lld_ELF_Options.td               |  23 ---
 6 files changed, 290 deletions(-)

diffs:
diff --git a/llvm-project-netbsd/distinfo b/llvm-project-netbsd/distinfo
index 33bdc59337..7deed2dd0a 100644
--- a/llvm-project-netbsd/distinfo
+++ b/llvm-project-netbsd/distinfo
@@ -12,8 +12,3 @@ SHA1 (patch-clang_lib_Basic_Targets_OSTargets.h) = 435a8b95936b37827fb9eed515faa
 SHA1 (patch-clang_lib_Driver_ToolChains_NetBSD.cpp) = 3783663621709052758c7e41af34bdbc35680606
 SHA1 (patch-clang_test_Sema_128bitfloat.cpp) = 4c9bec849623d24cbd9e1deb01a05251b7ba57f8
 SHA1 (patch-clang_tools_clang-format_CMakeLists.txt) = d9c64d5dd140e04b6375a927555fb06750789641
-SHA1 (patch-lld_CMakeLists.txt) = c6113b515c50a3fd71d4d64ad76c63a96d396300
-SHA1 (patch-lld_ELF_Arch_AArch64.cpp) = 9f12e997e423a7356b43a2f717d06e079674e4bb
-SHA1 (patch-lld_ELF_Config.h) = 9c674c6a1cfb55aa25941715afa1abefb38bdf39
-SHA1 (patch-lld_ELF_Driver.cpp) = bbe40591fc4160b14b8350016a16d9d55a217d95
-SHA1 (patch-lld_ELF_Options.td) = 573c1e79cee468192803e2deeeed30d3183f6ef0
diff --git a/llvm-project-netbsd/patches/patch-lld_CMakeLists.txt b/llvm-project-netbsd/patches/patch-lld_CMakeLists.txt
deleted file mode 100644
index 78dc8e2064..0000000000
--- a/llvm-project-netbsd/patches/patch-lld_CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- lld/CMakeLists.txt.orig	2019-10-23 20:24:31.000000000 +0000
-+++ lld/CMakeLists.txt
-@@ -85,7 +85,6 @@ Please install Python or specify the PYT
-       endif()
-       set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest)
-       if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h
--          AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}
-           AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt)
-         add_subdirectory(${UNITTEST_DIR} utils/unittest)
-       endif()
diff --git a/llvm-project-netbsd/patches/patch-lld_ELF_Arch_AArch64.cpp b/llvm-project-netbsd/patches/patch-lld_ELF_Arch_AArch64.cpp
deleted file mode 100644
index bd51592582..0000000000
--- a/llvm-project-netbsd/patches/patch-lld_ELF_Arch_AArch64.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- lld/ELF/Arch/AArch64.cpp.orig	2019-10-23 20:24:31.000000000 +0000
-+++ lld/ELF/Arch/AArch64.cpp
-@@ -67,9 +67,12 @@ AArch64::AArch64() {
-   pltHeaderSize = 32;
-   defaultMaxPageSize = 65536;
- 
--  // Align to the 2 MiB page size (known as a superpage or huge page).
--  // FreeBSD automatically promotes 2 MiB-aligned allocations.
--  defaultImageBase = 0x200000;
-+  if (config->targetTriple.isOSNetBSD())
-+    defaultImageBase = 0x200100000;
-+  else
-+    // Align to the 2 MiB page size (known as a superpage or huge page).
-+    // FreeBSD automatically promotes 2 MiB-aligned allocations.
-+    defaultImageBase = 0x200000;
- 
-   needsThunks = true;
- }
diff --git a/llvm-project-netbsd/patches/patch-lld_ELF_Config.h b/llvm-project-netbsd/patches/patch-lld_ELF_Config.h
deleted file mode 100644
index cdb6b665c1..0000000000
--- a/llvm-project-netbsd/patches/patch-lld_ELF_Config.h
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- lld/ELF/Config.h.orig	2019-11-01 18:04:25.969170065 +0000
-+++ lld/ELF/Config.h
-@@ -13,6 +13,7 @@
- #include "llvm/ADT/MapVector.h"
- #include "llvm/ADT/StringRef.h"
- #include "llvm/ADT/StringSet.h"
-+#include "llvm/ADT/Triple.h"
- #include "llvm/BinaryFormat/ELF.h"
- #include "llvm/Support/CachePruning.h"
- #include "llvm/Support/CodeGen.h"
-@@ -150,6 +151,7 @@ struct Configuration {
-   bool enableNewDtags;
-   bool executeOnly;
-   bool exportDynamic;
-+  bool fixCortexA53Errata835769;
-   bool fixCortexA53Errata843419;
-   bool fixCortexA8;
-   bool forceBTI;
-@@ -311,6 +313,10 @@ struct Configuration {
- 
-   // 4 for ELF32, 8 for ELF64.
-   int wordsize;
-+
-+  // Target triple, inferred from program name or defaulted to LLVM
-+  // default target.
-+  llvm::Triple targetTriple;
- };
- 
- // The only instance of Configuration struct.
diff --git a/llvm-project-netbsd/patches/patch-lld_ELF_Driver.cpp b/llvm-project-netbsd/patches/patch-lld_ELF_Driver.cpp
deleted file mode 100644
index 93cc0e956e..0000000000
--- a/llvm-project-netbsd/patches/patch-lld_ELF_Driver.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-$NetBSD$
-
---- lld/ELF/Driver.cpp.orig	2019-11-01 18:04:25.969815957 +0000
-+++ lld/ELF/Driver.cpp
-@@ -55,6 +55,7 @@
- #include "llvm/Support/LEB128.h"
- #include "llvm/Support/Path.h"
- #include "llvm/Support/TarWriter.h"
-+#include "llvm/Support/TargetRegistry.h"
- #include "llvm/Support/TargetSelect.h"
- #include "llvm/Support/raw_ostream.h"
- #include <cstdlib>
-@@ -74,6 +75,8 @@ LinkerDriver *driver;
- 
- static void setConfigs(opt::InputArgList &args);
- static void readConfigs(opt::InputArgList &args);
-+static void appendDefaultSearchPaths(void);
-+static void setTargetTriple(StringRef argv0, opt::InputArgList &args);
- 
- bool link(ArrayRef<const char *> args, bool canExitEarly, raw_ostream &error) {
-   errorHandler().logName = args::getFilenameWithoutExe(args[0]);
-@@ -129,7 +132,7 @@ static std::tuple<ELFKind, uint16_t, uin
-   std::pair<ELFKind, uint16_t> ret =
-       StringSwitch<std::pair<ELFKind, uint16_t>>(s)
-           .Cases("aarch64elf", "aarch64linux", "aarch64_elf64_le_vec",
--                 {ELF64LEKind, EM_AARCH64})
-+		 "aarch64nbsd", {ELF64LEKind, EM_AARCH64})
-           .Cases("armelf", "armelf_linux_eabi", {ELF32LEKind, EM_ARM})
-           .Case("elf32_x86_64", {ELF32LEKind, EM_X86_64})
-           .Cases("elf32btsmip", "elf32btsmipn32", {ELF32BEKind, EM_MIPS})
-@@ -296,6 +299,9 @@ static void checkOptions() {
-   if (config->emachine == EM_MIPS && config->gnuHash)
-     error("the .gnu.hash section is not compatible with the MIPS target");
- 
-+  if (config->fixCortexA53Errata835769 && config->emachine != EM_AARCH64)
-+    error("--fix-cortex-a53-835769 is only supported on AArch64 targets");
-+
-   if (config->fixCortexA53Errata843419 && config->emachine != EM_AARCH64)
-     error("--fix-cortex-a53-843419 is only supported on AArch64 targets");
- 
-@@ -344,6 +350,9 @@ static void checkOptions() {
- 
-     if (config->singleRoRx && !script->hasSectionsCommand)
-       error("-execute-only and -no-rosegment cannot be used together");
-+  } else if (config->targetTriple.isOSNetBSD()) {
-+    // force-disable RO segment on NetBSD due to ld.elf_so limitations
-+    config->singleRoRx = true;
-   }
- 
-   if (config->zRetpolineplt && config->requireCET)
-@@ -431,6 +440,56 @@ static void checkZOptions(opt::InputArgL
-       error("unknown -z value: " + StringRef(arg->getValue()));
- }
- 
-+static void appendDefaultSearchPaths() {
-+  if (config->targetTriple.isOSNetBSD()) {
-+    // NetBSD driver relies on the linker knowing the default search paths.
-+    // Please keep this in sync with clang/lib/Driver/ToolChains/NetBSD.cpp
-+    // (NetBSD::NetBSD constructor)
-+    switch (config->targetTriple.getArch()) {
-+    case llvm::Triple::x86:
-+      config->searchPaths.push_back("=/usr/lib/i386");
-+      break;
-+    case llvm::Triple::arm:
-+    case llvm::Triple::armeb:
-+    case llvm::Triple::thumb:
-+    case llvm::Triple::thumbeb:
-+      switch (config->targetTriple.getEnvironment()) {
-+      case llvm::Triple::EABI:
-+      case llvm::Triple::GNUEABI:
-+        config->searchPaths.push_back("=/usr/lib/eabi");
-+        break;
-+      case llvm::Triple::EABIHF:
-+      case llvm::Triple::GNUEABIHF:
-+        config->searchPaths.push_back("=/usr/lib/eabihf");
-+        break;
-+      default:
-+        config->searchPaths.push_back("=/usr/lib/oabi");
-+        break;
-+      }
-+      break;
-+#if 0 // TODO
-+    case llvm::Triple::mips64:
-+    case llvm::Triple::mips64el:
-+      if (tools::mips::hasMipsAbiArg(Args, "o32"))
-+        config->searchPaths.push_back("=/usr/lib/o32");
-+      else if (tools::mips::hasMipsAbiArg(Args, "64"))
-+        config->searchPaths.push_back("=/usr/lib/64");
-+      break;
-+#endif
-+    case llvm::Triple::ppc:
-+      config->searchPaths.push_back("=/usr/lib/powerpc");
-+      break;
-+    case llvm::Triple::sparc:
-+      config->searchPaths.push_back("=/usr/lib/sparc");
-+      break;
-+    default:
-+      break;
-+    }
-+
-+    config->searchPaths.push_back("=/usr/lib");
-+  }
-+}
-+
- void LinkerDriver::main(ArrayRef<const char *> argsArr) {
-   ELFOptTable parser;
-   opt::InputArgList args = parser.parse(argsArr.slice(1));
-@@ -445,6 +504,8 @@ void LinkerDriver::main(ArrayRef<const c
-     return;
-   }
- 
-+  setTargetTriple(argsArr[0], args);
-+
-   // Handle -v or -version.
-   //
-   // A note about "compatible with GNU linkers" message: this is a hack for
-@@ -460,8 +521,10 @@ void LinkerDriver::main(ArrayRef<const c
-   // lot of "configure" scripts out there that are generated by old version
-   // of Libtool. We cannot convince every software developer to migrate to
-   // the latest version and re-generate scripts. So we have this hack.
--  if (args.hasArg(OPT_v) || args.hasArg(OPT_version))
-+  if (args.hasArg(OPT_v) || args.hasArg(OPT_version)) {
-     message(getLLDVersion() + " (compatible with GNU linkers)");
-+    message("Target: " + config->targetTriple.str());
-+  }
- 
-   if (const char *path = getReproduceOption(args)) {
-     // Note that --reproduce is a debug option so you can ignore it
-@@ -479,6 +542,8 @@ void LinkerDriver::main(ArrayRef<const c
- 
-   readConfigs(args);
- 
-+  appendDefaultSearchPaths();
-+
-   // The behavior of -v or --version is a bit strange, but this is
-   // needed for compatibility with GNU linkers.
-   if (args.hasArg(OPT_v) && !args.hasArg(OPT_INPUT))
-@@ -826,6 +891,34 @@ static void parseClangOption(StringRef o
-   error(msg + ": " + StringRef(err).trim());
- }
- 
-+static void setTargetTriple(StringRef argv0, opt::InputArgList &args) {
-+  std::string targetError;
-+
-+  // Firstly, see if user specified explicit --target
-+  StringRef targetOpt = args.getLastArgValue(OPT_target);
-+  if (!targetOpt.empty()) {
-+    if (llvm::TargetRegistry::lookupTarget(targetOpt, targetError)) {
-+      config->targetTriple = llvm::Triple(targetOpt);
-+      return;
-+    } else
-+      error("Unsupported --target=" + targetOpt + ": " + targetError);
-+  }
-+
-+  // Secondly, try to get it from program name prefix
-+  std::string ProgName = llvm::sys::path::stem(argv0);
-+  size_t lastComponent = ProgName.rfind('-');
-+  if (lastComponent != std::string::npos) {
-+    std::string prefix = ProgName.substr(0, lastComponent);
-+    if (llvm::TargetRegistry::lookupTarget(prefix, targetError)) {
-+      config->targetTriple = llvm::Triple(prefix);
-+      return;
-+    }
-+  }
-+
-+  // Finally, use the default target triple
-+  config->targetTriple = llvm::Triple(getDefaultTargetTriple());
-+}
-+
- // Initializes Config members by the command line options.
- static void readConfigs(opt::InputArgList &args) {
-   errorHandler().verbose = args.hasArg(OPT_verbose);
-@@ -865,7 +958,8 @@ static void readConfigs(opt::InputArgLis
-   config->callGraphProfileSort = args.hasFlag(
-       OPT_call_graph_profile_sort, OPT_no_call_graph_profile_sort, true);
-   config->enableNewDtags =
--      args.hasFlag(OPT_enable_new_dtags, OPT_disable_new_dtags, true);
-+      args.hasFlag(OPT_enable_new_dtags, OPT_disable_new_dtags,
-+		   !config->targetTriple.isOSNetBSD());
-   config->entry = args.getLastArgValue(OPT_entry);
-   config->executeOnly =
-       args.hasFlag(OPT_execute_only, OPT_no_execute_only, false);
-@@ -873,6 +967,7 @@ static void readConfigs(opt::InputArgLis
-       args.hasFlag(OPT_export_dynamic, OPT_no_export_dynamic, false);
-   config->filterList = args::getStrings(args, OPT_filter);
-   config->fini = args.getLastArgValue(OPT_fini, "_fini");
-+  config->fixCortexA53Errata835769 = args.hasArg(OPT_fix_cortex_a53_843419);
-   config->fixCortexA53Errata843419 = args.hasArg(OPT_fix_cortex_a53_843419);
-   config->fixCortexA8 = args.hasArg(OPT_fix_cortex_a8);
-   config->forceBTI = args.hasArg(OPT_force_bti);
-@@ -1286,7 +1381,7 @@ void LinkerDriver::inferMachineType() {
- // each target.
- static uint64_t getMaxPageSize(opt::InputArgList &args) {
-   uint64_t val = args::getZOptionValue(args, OPT_z, "max-page-size",
--                                       target->defaultMaxPageSize);
-+                                       lld::elf::target->defaultMaxPageSize);
-   if (!isPowerOf2_64(val))
-     error("max-page-size: value isn't a power of 2");
-   if (config->nmagic || config->omagic) {
diff --git a/llvm-project-netbsd/patches/patch-lld_ELF_Options.td b/llvm-project-netbsd/patches/patch-lld_ELF_Options.td
deleted file mode 100644
index fda4cc45e4..0000000000
--- a/llvm-project-netbsd/patches/patch-lld_ELF_Options.td
+++ /dev/null
@@ -1,23 +0,0 @@
-$NetBSD$
-
---- lld/ELF/Options.td.orig	2019-11-01 18:04:25.971104878 +0000
-+++ lld/ELF/Options.td
-@@ -168,6 +168,9 @@ defm filter: Eq<"filter", "Set DT_FILTER
- 
- defm fini: Eq<"fini", "Specify a finalizer function">, MetaVarName<"<symbol>">;
- 
-+def fix_cortex_a53_835769: F<"fix-cortex-a53-835769">,
-+  HelpText<"Apply fixes for AArch64 Cortex-A53 erratum 835769">;
-+
- def fix_cortex_a53_843419: F<"fix-cortex-a53-843419">,
-   HelpText<"Apply fixes for AArch64 Cortex-A53 erratum 843419">;
- 
-@@ -350,6 +353,8 @@ defm symbol_ordering_file:
- 
- defm sysroot: Eq<"sysroot", "Set the system root">;
- 
-+defm target: Eq<"target", "Apply configuration defaults for a given target">;
-+
- def target1_rel: F<"target1-rel">, HelpText<"Interpret R_ARM_TARGET1 as R_ARM_REL32">;
- 
- def target1_abs: F<"target1-abs">, HelpText<"Interpret R_ARM_TARGET1 as R_ARM_ABS32 (default)">;


Home | Main Index | Thread Index | Old Index