Index: projects/clang700-import/contrib/compiler-rt =================================================================== --- projects/clang700-import/contrib/compiler-rt (revision 338729) +++ projects/clang700-import/contrib/compiler-rt (revision 338730) Property changes on: projects/clang700-import/contrib/compiler-rt ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /vendor/compiler-rt/dist-release_70:r338597-338729 Index: projects/clang700-import/contrib/libc++ =================================================================== --- projects/clang700-import/contrib/libc++ (revision 338729) +++ projects/clang700-import/contrib/libc++ (revision 338730) Property changes on: projects/clang700-import/contrib/libc++ ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /vendor/libc++/dist-release_70:r338597-338729 Index: projects/clang700-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp =================================================================== --- projects/clang700-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp (revision 338729) +++ projects/clang700-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp (revision 338730) @@ -1,151 +1,151 @@ //===- Version.cpp - Clang Version Number -----------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines several version-related utility functions for Clang. // //===----------------------------------------------------------------------===// #include "clang/Basic/Version.h" #include "clang/Basic/LLVM.h" #include "clang/Config/config.h" #include "llvm/Support/raw_ostream.h" #include #include #ifdef HAVE_SVN_VERSION_INC # include "SVNVersion.inc" #endif namespace clang { std::string getClangRepositoryPath() { #if defined(CLANG_REPOSITORY_STRING) return CLANG_REPOSITORY_STRING; #else #ifdef SVN_REPOSITORY StringRef URL(SVN_REPOSITORY); #else StringRef URL(""); #endif // If the SVN_REPOSITORY is empty, try to use the SVN keyword. This helps us // pick up a tag in an SVN export, for example. - StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/branches/release_70/lib/Basic/Version.cpp $"); + StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_700/final/lib/Basic/Version.cpp $"); if (URL.empty()) { URL = SVNRepository.slice(SVNRepository.find(':'), SVNRepository.find("/lib/Basic")); } // Strip off version from a build from an integration branch. URL = URL.slice(0, URL.find("/src/tools/clang")); // Trim path prefix off, assuming path came from standard cfe path. size_t Start = URL.find("cfe/"); if (Start != StringRef::npos) URL = URL.substr(Start + 4); return URL; #endif } std::string getLLVMRepositoryPath() { #ifdef LLVM_REPOSITORY StringRef URL(LLVM_REPOSITORY); #else StringRef URL(""); #endif // Trim path prefix off, assuming path came from standard llvm path. // Leave "llvm/" prefix to distinguish the following llvm revision from the // clang revision. size_t Start = URL.find("llvm/"); if (Start != StringRef::npos) URL = URL.substr(Start); return URL; } std::string getClangRevision() { #ifdef SVN_REVISION return SVN_REVISION; #else return ""; #endif } std::string getLLVMRevision() { #ifdef LLVM_REVISION return LLVM_REVISION; #else return ""; #endif } std::string getClangFullRepositoryVersion() { std::string buf; llvm::raw_string_ostream OS(buf); std::string Path = getClangRepositoryPath(); std::string Revision = getClangRevision(); if (!Path.empty() || !Revision.empty()) { OS << '('; if (!Path.empty()) OS << Path; if (!Revision.empty()) { if (!Path.empty()) OS << ' '; OS << Revision; } OS << ')'; } // Support LLVM in a separate repository. std::string LLVMRev = getLLVMRevision(); if (!LLVMRev.empty() && LLVMRev != Revision) { OS << " ("; std::string LLVMRepo = getLLVMRepositoryPath(); if (!LLVMRepo.empty()) OS << LLVMRepo << ' '; OS << LLVMRev << ')'; } return OS.str(); } std::string getClangFullVersion() { return getClangToolFullVersion("clang"); } std::string getClangToolFullVersion(StringRef ToolName) { std::string buf; llvm::raw_string_ostream OS(buf); #ifdef CLANG_VENDOR OS << CLANG_VENDOR; #endif OS << ToolName << " version " CLANG_VERSION_STRING " " << getClangFullRepositoryVersion(); // If vendor supplied, include the base LLVM version as well. #ifdef CLANG_VENDOR OS << " (based on " << BACKEND_PACKAGE_STRING << ")"; #endif return OS.str(); } std::string getClangFullCPPVersion() { // The version string we report in __VERSION__ is just a compacted version of // the one we report on the command line. std::string buf; llvm::raw_string_ostream OS(buf); #ifdef CLANG_VENDOR OS << CLANG_VENDOR; #endif OS << "Clang " CLANG_VERSION_STRING " " << getClangFullRepositoryVersion(); return OS.str(); } } // end namespace clang Index: projects/clang700-import/contrib/llvm/tools/clang =================================================================== --- projects/clang700-import/contrib/llvm/tools/clang (revision 338729) +++ projects/clang700-import/contrib/llvm/tools/clang (revision 338730) Property changes on: projects/clang700-import/contrib/llvm/tools/clang ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /vendor/clang/dist-release_70:r338597-338728 Index: projects/clang700-import/contrib/llvm/tools/lld/docs/ReleaseNotes.rst =================================================================== --- projects/clang700-import/contrib/llvm/tools/lld/docs/ReleaseNotes.rst (revision 338729) +++ projects/clang700-import/contrib/llvm/tools/lld/docs/ReleaseNotes.rst (revision 338730) @@ -1,102 +1,114 @@ ======================= LLD 7.0.0 Release Notes ======================= .. contents:: :local: Introduction ============ lld is a high-performance linker that supports ELF (Unix), COFF (Windows), Mach-O (macOS), MinGW and WebAssembly. lld is command-line-compatible with GNU -linkers and Microsoft link.exe, and is significantly faster than these system +linkers and Microsoft link.exe, and is significantly faster than the system default linkers. -lld 7 for ELF and COFF are production-ready. lld/ELF can build the entire -FreeBSD/AMD64 and will be the default linker of the next version of the -operating system. lld/COFF is being used to build popular large programs such as -the Chrome web browser. Mach-O, MinGW and WebAssembly supports are still -experimental. +lld 7 for ELF, COFF and MinGW are production-ready. +* lld/ELF can build the entire FreeBSD/{AMD64,ARMv7} and will be the default + linker of the next version of the operating system. + +* lld/COFF is being used to create official builds of large popular programs + such as Chrome and Firefox. + +* lld/MinGW is being used by Firefox for their MinGW builds. lld/MinGW still + needs a sysroot specifically built for lld, with llvm-dlltool, though. + +* lld/WebAssembly is used as the default (only) linker in Emscripten when using + the upstream LLVM compiler. + +* lld/Mach-O is still experimental. + Non-comprehensive list of changes in this release ================================================= ELF Improvements ---------------- * Fixed a lot of long-tail compatibility issues with GNU linkers. * Added ``-z retpolineplt`` to emit a PLT entry that doesn't contain an indirect jump instruction to mitigate Spectre v2 vulnerability. * Added experimental support for `SHT_RELR sections `_ to create a compact dynamic relocation table. * Added support for `split stacks `_. * Added support for address significance table (section with type SHT_LLVM_ADDRSIG) to improve Identical Code Folding (ICF). Combined with the ``-faddrsig`` compiler option added to Clang 7, lld's ``--icf=all`` can now safely merge functions and data to generate smaller outputs than before. * Improved ``--gdb-index`` so that it is faster (`r336790 `_) and uses less memory (`r336672 `_). * Reduced memory usage of ``--compress-debug-sections`` (`r338913 `_). * Added linker script OVERLAY support (`r335714 `_). * Added ``--warn-backref`` to make it easy to identify command line option order that doesn't work with GNU linkers (`r329636 `_) * Added ld.lld.1 man page (`r324512 `_). * Added support for multi-GOT. * Added support for MIPS position-independent executable (PIE). * Fixed MIPS TLS GOT entries for local symbols in shared libraries. * Fixed calculation of MIPS GP relative relocations in case of relocatable output. * Added support for PPCv2 ABI. * Removed an incomplete support of PPCv1 ABI. * Added support for Qualcomm Hexagon ISA. * Added the following flags: ``--apply-dynamic-relocs``, ``--check-sections``, ``--cref``, ``--just-symbols``, ``--keep-unique``, ``--no-allow-multiple-definition``, ``--no-apply-dynamic-relocs``, ``--no-check-sections``, ``--no-gnu-unique, ``--no-pic-executable``, ``--no-undefined-version``, ``--no-warn-common``, ``--pack-dyn-relocs=relr``, ``--pop-state``, ``--print-icf-sections``, ``--push-state``, ``--thinlto-index-only``, ``--thinlto-object-suffix-replace``, ``--thinlto-prefix-replace``, ``--warn-backref``, ``-z combreloc``, ``-z copyreloc``, ``-z initfirst``, ``-z keep-text-section-prefix``, ``-z lazy``, ``-z noexecstack``, ``-z relro``, ``-z retpolineplt``, ``-z text`` COFF Improvements ----------------- * Improved correctness of exporting mangled stdcall symbols. * Completed support for ARM64 relocations. * Added support for outputting PDB debug info for MinGW targets. * Improved compatibility of output binaries with GNU binutils objcopy/strip. * Sped up PDB file creation. * Changed section layout to improve compatibility with link.exe. + +* `/subsystem` inference is improved to cover more corner cases. * Added the following flags: ``--color-diagnostics={always,never,auto}``, ``--no-color-diagnostics``, ``/brepro``, ``/debug:full``, ``/debug:ghash``, ``/guard:cf``, ``/guard:longjmp``, ``/guard:nolongjmp``, ``/integritycheck``, ``/order``, ``/pdbsourcepath``, ``/timestamp`` Index: projects/clang700-import/contrib/llvm/tools/lld =================================================================== --- projects/clang700-import/contrib/llvm/tools/lld (revision 338729) +++ projects/clang700-import/contrib/llvm/tools/lld (revision 338730) Property changes on: projects/clang700-import/contrib/llvm/tools/lld ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /vendor/lld/dist-release_70:r338597-338728 Index: projects/clang700-import/contrib/llvm/tools/lldb =================================================================== --- projects/clang700-import/contrib/llvm/tools/lldb (revision 338729) +++ projects/clang700-import/contrib/llvm/tools/lldb (revision 338730) Property changes on: projects/clang700-import/contrib/llvm/tools/lldb ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /vendor/lldb/dist-release_70:r338597-338728 Index: projects/clang700-import/contrib/llvm =================================================================== --- projects/clang700-import/contrib/llvm (revision 338729) +++ projects/clang700-import/contrib/llvm (revision 338730) Property changes on: projects/clang700-import/contrib/llvm ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /vendor/llvm/dist-release_70:r338597-338726 Index: projects/clang700-import/lib/clang/include/clang/Basic/Version.inc =================================================================== --- projects/clang700-import/lib/clang/include/clang/Basic/Version.inc (revision 338729) +++ projects/clang700-import/lib/clang/include/clang/Basic/Version.inc (revision 338730) @@ -1,11 +1,11 @@ /* $FreeBSD$ */ #define CLANG_VERSION 7.0.0 #define CLANG_VERSION_STRING "7.0.0" #define CLANG_VERSION_MAJOR 7 #define CLANG_VERSION_MINOR 0 #define CLANG_VERSION_PATCHLEVEL 0 #define CLANG_VENDOR "FreeBSD " -#define SVN_REVISION "341916" +#define SVN_REVISION "342383" Index: projects/clang700-import/lib/clang/include/lld/Common/Version.inc =================================================================== --- projects/clang700-import/lib/clang/include/lld/Common/Version.inc (revision 338729) +++ projects/clang700-import/lib/clang/include/lld/Common/Version.inc (revision 338730) @@ -1,10 +1,10 @@ // $FreeBSD$ #define LLD_VERSION 7.0.0 #define LLD_VERSION_STRING "7.0.0" #define LLD_VERSION_MAJOR 7 #define LLD_VERSION_MINOR 0 #define LLD_REPOSITORY_STRING "FreeBSD" // - -#define LLD_REVISION_STRING "341916-1200005" +#define LLD_REVISION_STRING "342383-1200005" Index: projects/clang700-import/lib/clang/include/llvm/Support/VCSRevision.h =================================================================== --- projects/clang700-import/lib/clang/include/llvm/Support/VCSRevision.h (revision 338729) +++ projects/clang700-import/lib/clang/include/llvm/Support/VCSRevision.h (revision 338730) @@ -1,2 +1,2 @@ /* $FreeBSD$ */ -#define LLVM_REVISION "svn-r341916" +#define LLVM_REVISION "svn-r342383"