From 866111a4cee5fdd97fb48e13b6b3e75a9a1155ee Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Mar 28 2017 12:26:55 +0000 Subject: lldb 4.0.0 --- diff --git a/.gitignore b/.gitignore index 1e23dbf..1ffdaf3 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /lldb-3.8.0.src.tar.xz /lldb-3.9.0.src.tar.xz /lldb-3.9.1.src.tar.xz +/lldb-4.0.0.src.tar.xz diff --git a/0001-Remove-MIUtilParse-no-longer-used.patch b/0001-Remove-MIUtilParse-no-longer-used.patch deleted file mode 100644 index 5bb734d..0000000 --- a/0001-Remove-MIUtilParse-no-longer-used.patch +++ /dev/null @@ -1,214 +0,0 @@ -From 988829f74cfe3c9085c097387f7b8d56b64d3d00 Mon Sep 17 00:00:00 2001 -From: Pavel Labath -Date: Tue, 13 Sep 2016 10:39:12 +0000 -Subject: [PATCH] Remove MIUtilParse (no longer used) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Summary: follow-up to https://reviews.llvm.org/D23882 - -Reviewers: dawn, krytarowski, labath, ki.stfu - -Subscribers: beanz, mgorny, labath, ki.stfu, lldb-commits - -Differential Revision: https://reviews.llvm.org/D23883 -Author: Michał Górny - -git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@281317 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - tools/lldb-mi/CMakeLists.txt | 1 - - tools/lldb-mi/MIUtilParse.cpp | 74 ----------------------------------------- - tools/lldb-mi/MIUtilParse.h | 77 ------------------------------------------- - 3 files changed, 152 deletions(-) - delete mode 100644 tools/lldb-mi/MIUtilParse.cpp - delete mode 100644 tools/lldb-mi/MIUtilParse.h - -diff --git a/tools/lldb-mi/CMakeLists.txt b/tools/lldb-mi/CMakeLists.txt -index 79f657a..01ad483 100644 ---- a/tools/lldb-mi/CMakeLists.txt -+++ b/tools/lldb-mi/CMakeLists.txt -@@ -65,7 +65,6 @@ set(LLDB_MI_SOURCES - MIDriverBase.cpp - MIDriverMain.cpp - MIDriverMgr.cpp -- MIUtilParse.cpp - MIUtilDateTimeStd.cpp - MIUtilDebug.cpp - MIUtilFileStd.cpp -diff -up lldb-3.9.0.src/tools/lldb-mi/MIUtilParse.cpp.dave lldb-3.9.0.src/tools/lldb-mi/MIUtilParse.cpp ---- lldb-3.9.0.src/tools/lldb-mi/MIUtilParse.cpp.dave 2016-10-27 07:14:11.484573321 +1000 -+++ lldb-3.9.0.src/tools/lldb-mi/MIUtilParse.cpp 2016-10-27 07:14:58.914009161 +1000 -@@ -1,75 +0,0 @@ --//===-- MIUtilParse.cpp ----------------------------------------*- C++ -*-===// --// --// The LLVM Compiler Infrastructure --// --// This file is distributed under the University of Illinois Open Source --// License. See LICENSE.TXT for details. --// --//===----------------------------------------------------------------------===// -- --// Third party headers: --#include -- --// In-house headers: --#include "MIUtilParse.h" -- --//++ ------------------------------------------------------------------------------------ --// Details: CRegexParser constructor. --// Type: Method. --// Args: regexStr - Pointer to the regular expression to compile. --// Return: None. --// Throws: None. --//-- --MIUtilParse::CRegexParser::CRegexParser(const char *regexStr) -- : m_isValid(llvm_regcomp(&m_emma, regexStr, REG_EXTENDED) == 0) --{ --} -- --//++ ------------------------------------------------------------------------------------ --// Details: CRegexParser destructor. --// Type: Method. --// Args: None. --// Return: None. --// Throws: None. --//-- --MIUtilParse::CRegexParser::~CRegexParser() --{ -- // Free up memory held within regex. -- if (m_isValid) -- llvm_regfree(&m_emma); --} -- --//++ ------------------------------------------------------------------------------------ --// Details: CRegexParser regex executer. --// Match the input against the regular expression. Return an error --// if the number of matches is less than minMatches. If the default --// minMatches value of 0 is passed, an error will be returned if --// the number of matches is less than the maxMatches value used to --// initialize Match. --// Type: Method. --// Args: input (R) - Pointer to UTF8 text data to be parsed. --// match (RW) - Reference to Match class. --// minMatches (R) - Minimum number of regex matches expected. --// Return: bool - True = minimum matches were met, --// false = minimum matches were not met or regex failed. --// Throws: None. --//-- --bool --MIUtilParse::CRegexParser::Execute(const char *input, Match& match, size_t minMatches) --{ -- if (!m_isValid) -- return false; -- -- std::unique_ptr matches(new llvm_regmatch_t[match.m_maxMatches]); // Array of matches -- -- if (llvm_regexec(&m_emma, input, match.m_maxMatches, matches.get(), 0) != 0) -- return false; -- -- size_t i; -- for (i = 0; i < match.m_maxMatches && matches[i].rm_so >= 0; i++) -- { -- const int n = matches[i].rm_eo - matches[i].rm_so; -- match.m_matchStrs[i].assign(input + matches[i].rm_so, n); -- } -- return i >= minMatches; --} -diff -up lldb-3.9.0.src/tools/lldb-mi/MIUtilParse.h.dave lldb-3.9.0.src/tools/lldb-mi/MIUtilParse.h ---- lldb-3.9.0.src/tools/lldb-mi/MIUtilParse.h.dave 2016-10-27 07:14:19.814649866 +1000 -+++ lldb-3.9.0.src/tools/lldb-mi/MIUtilParse.h 2016-10-27 07:14:57.395995227 +1000 -@@ -1,93 +0,0 @@ --//===-- MIUtilParse.h ------------------------------------------*- C++ -*-===// --// --// The LLVM Compiler Infrastructure --// --// This file is distributed under the University of Illinois Open Source --// License. See LICENSE.TXT for details. --// --//===----------------------------------------------------------------------===// -- --#pragma once -- --// Third party headers: --#include "../lib/Support/regex_impl.h" -- --// In-house headers: --#include "MIUtilString.h" -- --namespace MIUtilParse --{ -- --//++ ============================================================================ --// Details: MI common code utility class. Used to parse the output --// returned from lldb commands using regex. --//-- --class CRegexParser --{ -- public: -- // Helper class for keeping track of regex matches. -- class Match -- { -- friend CRegexParser; -- public: -- /* ctor */ explicit Match(size_t nmatches) -- : m_matchStrs(nmatches), m_maxMatches(nmatches) -- { -- } -- size_t -- GetMatchCount() const -- { -- return m_matchStrs.size(); -- } -- CMIUtilString -- GetMatchAtIndex(size_t i) const -- { -- if (m_matchStrs.size() > i) -- return m_matchStrs[i]; -- return CMIUtilString(); -- } -- private: -- CMIUtilString::VecString_t m_matchStrs; -- const size_t m_maxMatches; -- }; -- -- // Methods: -- // Compile the regular expression. -- /* ctor */ explicit CRegexParser(const char *regexStr); -- -- // Free the memory used by the regular expression. -- /* dtor */ ~CRegexParser(); -- -- // No copies -- CRegexParser(const CRegexParser&) = delete; -- void operator=(CRegexParser&) = delete; -- -- // Return the match at the index. -- int -- GetMatchCount(const Match& match) const -- { -- if (m_isValid) -- return match.GetMatchCount(); -- return 0; -- } -- -- bool -- IsValid() const -- { -- return m_isValid; -- } -- -- // Match the input against the regular expression. Return an error -- // if the number of matches is less than minMatches. If the default -- // minMatches value of 0 is passed, an error will be returned if -- // the number of matches is less than the maxMatches value used to -- // initialize Match. -- bool -- Execute(const char *input, Match& match, size_t minMatches = 0); -- -- private: -- llvm_regex_t m_emma; -- const bool m_isValid; --}; -- --} diff --git a/0001-Replace-uses-of-MIUtilParse-CRegexParser-with-llvm-R.patch b/0001-Replace-uses-of-MIUtilParse-CRegexParser-with-llvm-R.patch deleted file mode 100644 index 71bd67f..0000000 --- a/0001-Replace-uses-of-MIUtilParse-CRegexParser-with-llvm-R.patch +++ /dev/null @@ -1,167 +0,0 @@ -From 96868d29541c046cf85ed0423cfee4ebf64b341a Mon Sep 17 00:00:00 2001 -From: Pavel Labath -Date: Mon, 5 Sep 2016 15:15:12 +0000 -Subject: [PATCH] Replace uses of MIUtilParse::CRegexParser with llvm::Regex -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Summary: -Replace uses of the local MIUtilParse::CRegexParser class with the LLVM support class llvm::Regex. This reduces duplication of code, and makes it possible to remove the MIUtilParse::CRegexParser class that requires LLVM internal implementation headers. - -Bug: https://llvm.org/bugs/show_bug.cgi?id=29138 - -Reviewers: dawn, abidh, ki.stfu - -Subscribers: labath, ki.stfu, lldb-commits - -Differential Revision: https://reviews.llvm.org/D23882 -Author: Michał Górny - -git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@280662 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - tools/lldb-mi/MICmdCmdData.cpp | 28 +++++++++++++++------------- - tools/lldb-mi/MICmdCmdSymbol.cpp | 38 ++++++++++++++++++++------------------ - 2 files changed, 35 insertions(+), 31 deletions(-) - -diff --git a/tools/lldb-mi/MICmdCmdData.cpp b/tools/lldb-mi/MICmdCmdData.cpp -index a46fb55..7f4c2e8 100644 ---- a/tools/lldb-mi/MICmdCmdData.cpp -+++ b/tools/lldb-mi/MICmdCmdData.cpp -@@ -25,6 +25,9 @@ - #include "lldb/API/SBInstruction.h" - #include "lldb/API/SBInstructionList.h" - #include "lldb/API/SBStream.h" -+#include "llvm/ADT/SmallVector.h" -+#include "llvm/ADT/StringRef.h" -+#include "llvm/Support/Regex.h" - - // In-house headers: - #include "MICmdCmdData.h" -@@ -42,7 +45,6 @@ - #include "MICmdArgValConsume.h" - #include "MICmnLLDBDebugSessionInfoVarObj.h" - #include "MICmnLLDBUtilSBValue.h" --#include "MIUtilParse.h" - - //++ ------------------------------------------------------------------------------------ - // Details: CMICmdCmdDataEvaluateExpression constructor. -@@ -1651,24 +1653,24 @@ ParseLLDBLineEntry(const char *input, CMIUtilString &start, CMIUtilString &end, - // is remains is assumed to be the filename. - - // Match LineEntry using regex. -- static MIUtilParse::CRegexParser g_lineentry_nocol_regex( -- "^ *LineEntry: \\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+)$"); -- static MIUtilParse::CRegexParser g_lineentry_col_regex( -- "^ *LineEntry: \\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+):[0-9]+$"); -- // ^1=start ^2=end ^3=f ^4=line ^5=:col(opt) -+ static llvm::Regex g_lineentry_nocol_regex( -+ llvm::StringRef("^ *LineEntry: \\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+)$")); -+ static llvm::Regex g_lineentry_col_regex( -+ llvm::StringRef("^ *LineEntry: \\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+):[0-9]+$")); -+ // ^1=start ^2=end ^3=f ^4=line ^5=:col(opt) - -- MIUtilParse::CRegexParser::Match match(6); -+ llvm::SmallVector match; - - // First try matching the LineEntry with the column, - // then try without the column. -- const bool ok = g_lineentry_col_regex.Execute(input, match) || -- g_lineentry_nocol_regex.Execute(input, match); -+ const bool ok = g_lineentry_col_regex.match(input, &match) || -+ g_lineentry_nocol_regex.match(input, &match); - if (ok) - { -- start = match.GetMatchAtIndex(1); -- end = match.GetMatchAtIndex(2); -- file = match.GetMatchAtIndex(3); -- line = match.GetMatchAtIndex(4); -+ start = match[1]; -+ end = match[2]; -+ file = match[3]; -+ line = match[4]; - } - return ok; - } -diff --git a/tools/lldb-mi/MICmdCmdSymbol.cpp b/tools/lldb-mi/MICmdCmdSymbol.cpp -index abaa392..b2519af 100644 ---- a/tools/lldb-mi/MICmdCmdSymbol.cpp -+++ b/tools/lldb-mi/MICmdCmdSymbol.cpp -@@ -11,6 +11,9 @@ - - // Third Party Headers: - #include "lldb/API/SBCommandInterpreter.h" -+#include "llvm/ADT/SmallVector.h" -+#include "llvm/ADT/StringRef.h" -+#include "llvm/Support/Regex.h" - - // In-house headers: - #include "MICmdArgValFile.h" -@@ -19,7 +22,6 @@ - #include "MICmnMIResultRecord.h" - #include "MICmnMIValueList.h" - #include "MICmnMIValueTuple.h" --#include "MIUtilParse.h" - - //++ ------------------------------------------------------------------------------------ - // Details: CMICmdCmdSymbolListLines constructor. -@@ -105,15 +107,15 @@ static bool - ParseLLDBLineAddressHeader(const char *input, CMIUtilString &file) - { - // Match LineEntry using regex. -- static MIUtilParse::CRegexParser g_lineentry_header_regex( -- "^ *Lines found for file (.+) in compilation unit (.+) in `(.+)$"); -- // ^1=file ^2=cu ^3=module -+ static llvm::Regex g_lineentry_header_regex( -+ llvm::StringRef("^ *Lines found for file (.+) in compilation unit (.+) in `(.+)$")); -+ // ^1=file ^2=cu ^3=module - -- MIUtilParse::CRegexParser::Match match(4); -+ llvm::SmallVector match; - -- const bool ok = g_lineentry_header_regex.Execute(input, match); -+ const bool ok = g_lineentry_header_regex.match(input, &match); - if (ok) -- file = match.GetMatchAtIndex(1); -+ file = match[1]; - return ok; - } - -@@ -141,23 +143,23 @@ ParseLLDBLineAddressEntry(const char *input, CMIUtilString &addr, - // is remains is assumed to be the filename. - - // Match LineEntry using regex. -- static MIUtilParse::CRegexParser g_lineentry_nocol_regex( -- "^ *\\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+)$"); -- static MIUtilParse::CRegexParser g_lineentry_col_regex( -- "^ *\\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+):[0-9]+$"); -- // ^1=start ^2=end ^3=f ^4=line ^5=:col(opt) -+ static llvm::Regex g_lineentry_nocol_regex( -+ llvm::StringRef("^ *\\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+)$")); -+ static llvm::Regex g_lineentry_col_regex( -+ llvm::StringRef("^ *\\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+):[0-9]+$")); -+ // ^1=start ^2=end ^3=f ^4=line ^5=:col(opt) - -- MIUtilParse::CRegexParser::Match match(6); -+ llvm::SmallVector match; - - // First try matching the LineEntry with the column, - // then try without the column. -- const bool ok = g_lineentry_col_regex.Execute(input, match) || -- g_lineentry_nocol_regex.Execute(input, match); -+ const bool ok = g_lineentry_col_regex.match(input, &match) || -+ g_lineentry_nocol_regex.match(input, &match); - if (ok) - { -- addr = match.GetMatchAtIndex(1); -- file = match.GetMatchAtIndex(3); -- line = match.GetMatchAtIndex(4); -+ addr = match[1]; -+ file = match[3]; -+ line = match[4]; - } - return ok; - } --- -2.5.5 - diff --git a/lldb.spec b/lldb.spec index 3b741e8..1298c7b 100644 --- a/lldb.spec +++ b/lldb.spec @@ -1,6 +1,6 @@ Name: lldb -Version: 3.9.1 -Release: 4%{?dist} +Version: 4.0.0 +Release: 1%{?dist} Summary: Next generation high-performance debugger License: NCSA @@ -9,9 +9,7 @@ Source0: http://llvm.org/releases/%{version}/%{name}-%{version}.src.tar.xz ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 # Patch to remove use of private llvm headers -Patch1: 0001-Replace-uses-of-MIUtilParse-CRegexParser-with-llvm-R.patch -Patch2: 0001-Remove-MIUtilParse-no-longer-used.patch -Patch3: 0001-Fix-build-with-gcc-7.patch +Patch0: 0001-Fix-build-with-gcc-7.patch BuildRequires: cmake BuildRequires: llvm-devel = %{version} @@ -50,9 +48,7 @@ The package contains the LLDB Python module. %prep %setup -q -n %{name}-%{version}.src -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 +%patch0 -p1 # HACK so that lldb can find its custom readline.so, because we move it # after install. @@ -60,7 +56,6 @@ sed -i -e "s~import sys~import sys\nsys.path.insert\(1, '%{python_sitearch}/lldb %build -rm tools/lldb-mi/MIUtilParse.* mkdir -p _build cd _build @@ -68,8 +63,8 @@ cd _build LDFLAGS="%{__global_ldflags} -lpthread -ldl" -CFLAGS="%{optflags} -fno-strict-aliasing -Wno-error=format-security -fno-rtti" -CXXFLAGS="%{optflags} -fno-strict-aliasing -Wno-error=format-security -fno-rtti" +CFLAGS="%{optflags} -Wno-error=format-security" +CXXFLAGS="%{optflags} -Wno-error=format-security" %cmake .. \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ @@ -124,6 +119,9 @@ rm -f %{buildroot}%{python_sitearch}/six.* %{python_sitearch}/lldb %changelog +* Fri Mar 24 2017 Tom Stellard - 4.0.0-1 +- lldb 4.0.0 + * Tue Mar 21 2017 Tom Stellard - 3.9.1-4 - Add explicit Requires for llvm-libs and clang-libs diff --git a/sources b/sources index d84f78d..d77672c 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (lldb-3.9.1.src.tar.xz) = e2957a1da60284595b21c205b07fa3db5c474bfad1935ab8e1bc832f30af497e9eb709efeb703591ef62e7dd73a28d22fc21398097a232c8a729946d72eb5df7 +SHA512 (lldb-4.0.0.src.tar.xz) = 931e8c6e74b66c4ac1c56c9d067309a319aa9a9f4c72d4ed9703be3decefeb8730084ad8c3581e4e31d61cdd4074518d2ed72bacce1e689e087b2f62ad4bb2e8