diff --git a/0001-PATCH-lldb-Portable-asm-ptrace.h-include.patch b/0001-PATCH-lldb-Portable-asm-ptrace.h-include.patch new file mode 100644 index 0000000000000000000000000000000000000000..b98082e367df18cf35015533e8db2e9d5def9923 --- /dev/null +++ b/0001-PATCH-lldb-Portable-asm-ptrace.h-include.patch @@ -0,0 +1,26 @@ +From 6349965eccf12178cd4235e9f8996142d12ff607 Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Thu, 25 Feb 2021 14:27:43 +0100 +Subject: [PATCH 1/2] [PATCH][lldb] Portable asm/ptrace.h include + +--- + lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h +index 344eae2..c483abc 100644 +--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h ++++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h +@@ -14,7 +14,8 @@ + #include "Plugins/Process/Linux/NativeRegisterContextLinux.h" + #include "Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h" + +-#include ++#include ++#include + + namespace lldb_private { + namespace process_linux { +-- +1.8.3.1 + diff --git a/0002-PATCH-lldb-Support-DWARF-5-DW_FORM_line_strp-used-by.patch b/0002-PATCH-lldb-Support-DWARF-5-DW_FORM_line_strp-used-by.patch new file mode 100644 index 0000000000000000000000000000000000000000..bd1f694e3d90e11afa3f8e64cfc40f1c84169700 --- /dev/null +++ b/0002-PATCH-lldb-Support-DWARF-5-DW_FORM_line_strp-used-by.patch @@ -0,0 +1,131 @@ +From 2e94dca0c2cedf0bdbcf8517db2f3750ba95513b Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Tue, 2 Mar 2021 14:08:02 +0100 +Subject: [PATCH 2/2] [PATCH][lldb] Support DWARF-5 DW_FORM_line_strp (used by + GCC) + +--- + .../SymbolFile/DWARF/DWARFDebugInfoEntry.cpp | 1 + + .../Plugins/SymbolFile/DWARF/DWARFFormValue.cpp | 73 +++++++++++----------- + 2 files changed, 39 insertions(+), 35 deletions(-) + +diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp +index 4212988..bce2529 100644 +--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp ++++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp +@@ -173,6 +173,7 @@ bool DWARFDebugInfoEntry::Extract(const DWARFDataExtractor &data, + break; + + case DW_FORM_strp: ++ case DW_FORM_line_strp: + case DW_FORM_sec_offset: + data.GetU32(&offset); + break; +diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp +index 305f1cb..ec78c5b 100644 +--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp ++++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp +@@ -150,40 +150,40 @@ struct FormSize { + uint8_t valid:1, size:7; + }; + static FormSize g_form_sizes[] = { +- {0,0}, // 0x00 unused +- {0,0}, // 0x01 DW_FORM_addr +- {0,0}, // 0x02 unused +- {0,0}, // 0x03 DW_FORM_block2 +- {0,0}, // 0x04 DW_FORM_block4 +- {1,2}, // 0x05 DW_FORM_data2 +- {1,4}, // 0x06 DW_FORM_data4 +- {1,8}, // 0x07 DW_FORM_data8 +- {0,0}, // 0x08 DW_FORM_string +- {0,0}, // 0x09 DW_FORM_block +- {0,0}, // 0x0a DW_FORM_block1 +- {1,1}, // 0x0b DW_FORM_data1 +- {1,1}, // 0x0c DW_FORM_flag +- {0,0}, // 0x0d DW_FORM_sdata +- {1,4}, // 0x0e DW_FORM_strp +- {0,0}, // 0x0f DW_FORM_udata +- {0,0}, // 0x10 DW_FORM_ref_addr (addr size for DWARF2 and earlier, 4 bytes for +- // DWARF32, 8 bytes for DWARF32 in DWARF 3 and later +- {1,1}, // 0x11 DW_FORM_ref1 +- {1,2}, // 0x12 DW_FORM_ref2 +- {1,4}, // 0x13 DW_FORM_ref4 +- {1,8}, // 0x14 DW_FORM_ref8 +- {0,0}, // 0x15 DW_FORM_ref_udata +- {0,0}, // 0x16 DW_FORM_indirect +- {1,4}, // 0x17 DW_FORM_sec_offset +- {0,0}, // 0x18 DW_FORM_exprloc +- {1,0}, // 0x19 DW_FORM_flag_present +- {0,0}, // 0x1a +- {0,0}, // 0x1b +- {0,0}, // 0x1c +- {0,0}, // 0x1d +- {0,0}, // 0x1e +- {0,0}, // 0x1f +- {1,8}, // 0x20 DW_FORM_ref_sig8 ++ {0, 0}, // 0x00 unused ++ {0, 0}, // 0x01 DW_FORM_addr ++ {0, 0}, // 0x02 unused ++ {0, 0}, // 0x03 DW_FORM_block2 ++ {0, 0}, // 0x04 DW_FORM_block4 ++ {1, 2}, // 0x05 DW_FORM_data2 ++ {1, 4}, // 0x06 DW_FORM_data4 ++ {1, 8}, // 0x07 DW_FORM_data8 ++ {0, 0}, // 0x08 DW_FORM_string ++ {0, 0}, // 0x09 DW_FORM_block ++ {0, 0}, // 0x0a DW_FORM_block1 ++ {1, 1}, // 0x0b DW_FORM_data1 ++ {1, 1}, // 0x0c DW_FORM_flag ++ {0, 0}, // 0x0d DW_FORM_sdata ++ {1, 4}, // 0x0e DW_FORM_strp ++ {0, 0}, // 0x0f DW_FORM_udata ++ {0, 0}, // 0x10 DW_FORM_ref_addr (addr size for DWARF2 and earlier, 4 bytes ++ // for DWARF32, 8 bytes for DWARF32 in DWARF 3 and later ++ {1, 1}, // 0x11 DW_FORM_ref1 ++ {1, 2}, // 0x12 DW_FORM_ref2 ++ {1, 4}, // 0x13 DW_FORM_ref4 ++ {1, 8}, // 0x14 DW_FORM_ref8 ++ {0, 0}, // 0x15 DW_FORM_ref_udata ++ {0, 0}, // 0x16 DW_FORM_indirect ++ {1, 4}, // 0x17 DW_FORM_sec_offset ++ {0, 0}, // 0x18 DW_FORM_exprloc ++ {1, 0}, // 0x19 DW_FORM_flag_present ++ {0, 0}, // 0x1a DW_FORM_strx (ULEB128) ++ {0, 0}, // 0x1b DW_FORM_addrx (ULEB128) ++ {1, 4}, // 0x1c DW_FORM_ref_sup4 ++ {0, 0}, // 0x1d DW_FORM_strp_sup (4 bytes for DWARF32, 8 bytes for DWARF64) ++ {1, 16}, // 0x1e DW_FORM_data16 ++ {1, 4}, // 0x1f DW_FORM_line_strp ++ {1, 8}, // 0x20 DW_FORM_ref_sig8 + }; + + llvm::Optional +@@ -286,6 +286,7 @@ bool DWARFFormValue::SkipValue(dw_form_t form, + // 32 bit for DWARF 32, 64 for DWARF 64 + case DW_FORM_sec_offset: + case DW_FORM_strp: ++ case DW_FORM_line_strp: + *offset_ptr += 4; + return true; + +@@ -398,7 +399,8 @@ void DWARFFormValue::Dump(Stream &s) const { + case DW_FORM_udata: + s.PutULEB128(uvalue); + break; +- case DW_FORM_strp: { ++ case DW_FORM_strp: ++ case DW_FORM_line_strp: { + const char *dbg_str = AsCString(); + if (dbg_str) { + s.QuotedCString(dbg_str); +@@ -606,6 +608,7 @@ bool DWARFFormValue::FormIsSupported(dw_form_t form) { + case DW_FORM_flag: + case DW_FORM_sdata: + case DW_FORM_strp: ++ case DW_FORM_line_strp: + case DW_FORM_strx: + case DW_FORM_strx1: + case DW_FORM_strx2: +-- +1.8.3.1 + diff --git a/lldb-10.0.1.src.tar.xz b/lldb-12.0.1.src.tar.xz similarity index 54% rename from lldb-10.0.1.src.tar.xz rename to lldb-12.0.1.src.tar.xz index e357ad30c8a91a150171eaca89da5fc384473ec4..9ca2c079272779be1e0316b15d8a1c1e4c1fb0eb 100644 Binary files a/lldb-10.0.1.src.tar.xz and b/lldb-12.0.1.src.tar.xz differ diff --git a/lldb.spec b/lldb.spec index 7d205f40c1e5dffcafdf5219ba827cd31bc1970b..3b9ce7769ac158b37f3a31def603fcc096c8312d 100644 --- a/lldb.spec +++ b/lldb.spec @@ -1,17 +1,35 @@ -Name: lldb -Version: 10.0.1 -Release: 1 -Summary: Next generation high-performance debugger - -License: NCSA -URL: http://lldb.llvm.org/ -Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{name}-%{version}.src.tar.xz - -BuildRequires: cmake llvm-devel = %{version} llvm-test = %{version} clang-devel = %{version} -BuildRequires: ncurses-devel swig llvm-static = %{version} libffi-devel zlib-devel -BuildRequires: libxml2-devel libedit-devel python3-lit - -Requires: python3-lldb +Name: lldb +Version: 12.0.1 +Release: 1 +Summary: Next generation high-performance debugger + +License: NCSA +URL: http://lldb.llvm.org/ +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{name}-%{version}.src.tar.xz + +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: llvm-devel = %{version} +BuildRequires: llvm-test = %{version} +BuildRequires: clang-devel = %{version} +BuildRequires: ncurses-devel +BuildRequires: swig +BuildRequires: llvm-static = %{version} +BuildRequires: libffi-devel +BuildRequires: zlib-devel +BuildRequires: libxml2-devel +BuildRequires: libedit-devel +BuildRequires: python3-lit +BuildRequires: multilib-rpm-config + +Requires: python3-lldb + +# For origin certification +BuildRequires: gnupg2 + +Patch0: 0001-PATCH-lldb-Portable-asm-ptrace.h-include.patch +Patch1: 0002-PATCH-lldb-Support-DWARF-5-DW_FORM_line_strp-used-by.patch %description LLDB is a next generation, high-performance debugger. It is built as a set @@ -20,17 +38,19 @@ larger LLVM Project, such as the Clang expression parser and LLVM disassembler. %package devel -Summary: Development header files for LLDB -Requires: %{name} = %{version}-%{release} +Summary: Development header files for LLDB +Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The package contains header files for the LLDB debugger. %package -n python3-lldb %{?python_provide:%python_provide python3-lldb} -Summary: Python module for LLDB -BuildRequires: python3-devel -Requires: python3-six +Summary: Python module for LLDB +BuildRequires: python3-devel +BuildRequires: python3-setuptools +Requires: python3-six +Requires: %{name}%{?_isa} = %{version}-%{release} %description -n python3-lldb The package contains the LLDB Python module. @@ -49,27 +69,28 @@ LDFLAGS="%{__global_ldflags} -lpthread -ldl" CFLAGS="%{optflags} -Wno-error=format-security" CXXFLAGS="%{optflags} -Wno-error=format-security" -%cmake .. \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ - -DLLVM_CONFIG:FILEPATH=/usr/bin/llvm-config-%{__isa_bits} \ - \ - -DLLDB_DISABLE_CURSES:BOOL=OFF \ - -DLLDB_DISABLE_LIBEDIT:BOOL=OFF \ - -DLLDB_DISABLE_PYTHON:BOOL=OFF \ +%cmake .. \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_SKIP_RPATH:BOOL=ON \ + -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ + -DLLVM_CONFIG:FILEPATH=/usr/bin/llvm-config-%{__isa_bits} \ + \ + -DLLDB_DISABLE_CURSES:BOOL=OFF \ + -DLLDB_DISABLE_LIBEDIT:BOOL=OFF \ + -DLLDB_DISABLE_PYTHON:BOOL=OFF \ %if 0%{?__isa_bits} == 64 - -DLLVM_LIBDIR_SUFFIX=64 \ + -DLLVM_LIBDIR_SUFFIX=64 \ %else - -DLLVM_LIBDIR_SUFFIX= \ + -DLLVM_LIBDIR_SUFFIX= \ %endif - \ - -DPYTHON_EXECUTABLE:STRING=%{__python3} \ - -DPYTHON_VERSION_MAJOR:STRING=$(%{__python3} -c "import sys; print(sys.version_info.major)") \ - -DPYTHON_VERSION_MINOR:STRING=$(%{__python3} -c "import sys; print(sys.version_info.minor)") \ - -DLLVM_EXTERNAL_LIT=%{_bindir}/lit \ - -DCLANG_LINK_CLANG_DYLIB=ON \ - -DLLVM_LIT_ARGS="-sv \ - --path %{_libdir}/llvm" \ + \ + -DPYTHON_EXECUTABLE:STRING=%{__python3} \ + -DPYTHON_VERSION_MAJOR:STRING=$(%{__python3} -c "import sys; print(sys.version_info.major)") \ + -DPYTHON_VERSION_MINOR:STRING=$(%{__python3} -c "import sys; print(sys.version_info.minor)") \ + -DLLVM_EXTERNAL_LIT=%{_bindir}/lit \ + -DCLANG_LINK_CLANG_DYLIB=ON \ + -DLLVM_LIT_ARGS="-sv \ + --path %{_libdir}/llvm" \ make %{?_smp_mflags} @@ -90,7 +111,11 @@ rm -f %{buildroot}%{python3_sitearch}/six.* %ldconfig_scriptlets +%check + + %files +%license LICENSE.TXT %{_bindir}/lldb* %{_libdir}/liblldb.so.* %{_libdir}/liblldbIntelFeatures.so.* @@ -103,7 +128,11 @@ rm -f %{buildroot}%{python3_sitearch}/six.* %{python3_sitearch}/lldb %changelog +* Thu Jan 06 2022 Chen Chen - 12.0.1-1 +- upgrade lldb to 12.0.1 + * Mon Oct 12 2020 wangxiao - 10.0.1-1 - upgrade lldb to 10.0.1 + * Mon Dec 2 2019 likexin 7.0.0-2 - Package init