diff --git a/.gitignore b/.gitignore index cc47929..fd46eee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/hans-gpg-key.asc -SOURCES/lldb-11.0.0.src.tar.xz +SOURCES/lldb-12.0.0.src.tar.xz +SOURCES/tstellar-gpg-key.asc diff --git a/.lldb.metadata b/.lldb.metadata index 4d1285a..8616084 100644 --- a/.lldb.metadata +++ b/.lldb.metadata @@ -1,2 +1,2 @@ -32fa4b0193960f05064f2ab31b5a89c7cf48a0b9 SOURCES/hans-gpg-key.asc -6bdb22e6b5e4700269f23452d66b0bddee93e008 SOURCES/lldb-11.0.0.src.tar.xz +00ca5a5e20b228df1022669a08d40ac3b5eef6c3 SOURCES/lldb-12.0.0.src.tar.xz +b8d2648a01d36ed0186fd2c5af325fd28797f9a0 SOURCES/tstellar-gpg-key.asc diff --git a/SOURCES/0001-PATCH-lldb-Portable-asm-ptrace.h-include.patch b/SOURCES/0001-PATCH-lldb-Portable-asm-ptrace.h-include.patch new file mode 100644 index 0000000..b98082e --- /dev/null +++ b/SOURCES/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/SOURCES/0002-PATCH-lldb-Support-DWARF-5-DW_FORM_line_strp-used-by.patch b/SOURCES/0002-PATCH-lldb-Support-DWARF-5-DW_FORM_line_strp-used-by.patch new file mode 100644 index 0000000..bd1f694 --- /dev/null +++ b/SOURCES/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/SOURCES/lldb-11.0.0.src.tar.xz.sig b/SOURCES/lldb-11.0.0.src.tar.xz.sig deleted file mode 100644 index b0e362a..0000000 Binary files a/SOURCES/lldb-11.0.0.src.tar.xz.sig and /dev/null differ diff --git a/SOURCES/lldb-12.0.0.src.tar.xz.sig b/SOURCES/lldb-12.0.0.src.tar.xz.sig new file mode 100644 index 0000000..a4da544 Binary files /dev/null and b/SOURCES/lldb-12.0.0.src.tar.xz.sig differ diff --git a/SPECS/lldb.spec b/SPECS/lldb.spec index af40163..253f7e4 100644 --- a/SPECS/lldb.spec +++ b/SPECS/lldb.spec @@ -1,20 +1,16 @@ -#%%global rc_ver 6 -%global baserelease 1 +#%%global rc_ver 5 %global lldb_srcdir %{name}-%{version}%{?rc_ver:rc%{rc_ver}}.src -# Too many threads causes OOM errors. -%global _smp_mflags -j8 - Name: lldb -Version: 11.0.0 -Release: %{baserelease}%{?rc_ver:.rc%{rc_ver}}%{?dist} +Version: 12.0.0%{?rc_ver:~rc%{rc_ver}} +Release: 1%{?dist} Summary: Next generation high-performance debugger License: NCSA URL: http://lldb.llvm.org/ Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{lldb_srcdir}.tar.xz Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{lldb_srcdir}.tar.xz.sig -Source2: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc +Source2: tstellar-gpg-key.asc BuildRequires: gcc BuildRequires: gcc-c++ @@ -35,6 +31,10 @@ BuildRequires: multilib-rpm-config Requires: python3-lldb + +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 of reusable components which highly leverage existing libraries in the @@ -52,6 +52,7 @@ The package contains header files for the LLDB debugger. %{?python_provide:%python_provide python3-lldb} Summary: Python module for LLDB BuildRequires: python3-devel +BuildRequires: python3-setuptools Requires: python3-six Requires: %{name}%{?_isa} = %{version}-%{release} @@ -63,11 +64,8 @@ The package contains the LLDB Python module. %build -mkdir -p _build -cd _build - -## Python version detection is broken -#LDFLAGS="%{__global_ldflags} -lpthread -ldl" +mkdir -p %{_vpath_builddir} +cd %{_vpath_builddir} CFLAGS="%{optflags} -Wno-error=format-security" CXXFLAGS="%{optflags} -Wno-error=format-security" @@ -95,11 +93,11 @@ CXXFLAGS="%{optflags} -Wno-error=format-security" -DLLVM_LIT_ARGS="-sv \ --path %{_libdir}/llvm" \ -%ninja_build +%cmake_build %install -cd _build -%ninja_install +cd %{_vpath_builddir} +%cmake_install %multilib_fix_c_header --file %{_includedir}/lldb/Host/Config.h @@ -133,6 +131,9 @@ rm -f %{buildroot}%{python3_sitearch}/six.* %{python3_sitearch}/lldb %changelog +* Thu May 6 2021 sguelton@redhat.com - 12.0.0-1 +- 12.0.0 + * Thu Oct 29 2020 sguelton@redhat.com - 11.0.0-1 - 11.0.0 final