Compare commits

...

1 Commits

Author SHA1 Message Date
Tom Stellard 2052c4d0aa Build python module for python3 2018-10-04 02:23:20 +00:00
2 changed files with 185 additions and 17 deletions

View File

@ -0,0 +1,165 @@
From 660490d17fa1c649a7ad86da4a197c91090ce97a Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Wed, 3 Oct 2018 15:44:30 -0700
Subject: [PATCH] Convert symbolication.py to python3 using 2to3
---
examples/python/symbolication.py | 70 ++++++++++++++++++++--------------------
1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/examples/python/symbolication.py b/examples/python/symbolication.py
index b655ad0..313d724 100755
--- a/examples/python/symbolication.py
+++ b/examples/python/symbolication.py
@@ -27,7 +27,7 @@
#----------------------------------------------------------------------
import lldb
-import commands
+import subprocess
import optparse
import os
import plistlib
@@ -203,13 +203,13 @@ class Section:
if op == '+':
self.end_addr += self.start_addr
return True
- print 'error: invalid section info string "%s"' % s
- print 'Valid section info formats are:'
- print 'Format Example Description'
- print '--------------------- -----------------------------------------------'
- print '<name>=<base> __TEXT=0x123000 Section from base address only'
- print '<name>=<base>-<end> __TEXT=0x123000-0x124000 Section from base address and end address'
- print '<name>=<base>+<size> __TEXT=0x123000+0x1000 Section from base address and size'
+ print('error: invalid section info string "%s"' % s)
+ print('Valid section info formats are:')
+ print('Format Example Description')
+ print('--------------------- -----------------------------------------------')
+ print('<name>=<base> __TEXT=0x123000 Section from base address only')
+ print('<name>=<base>-<end> __TEXT=0x123000-0x124000 Section from base address and end address')
+ print('<name>=<base>+<size> __TEXT=0x123000+0x1000 Section from base address and size')
return False
def __str__(self):
@@ -261,21 +261,21 @@ class Image:
return obj
def dump(self, prefix):
- print "%s%s" % (prefix, self)
+ print("%s%s" % (prefix, self))
def debug_dump(self):
- print 'path = "%s"' % (self.path)
- print 'resolved_path = "%s"' % (self.resolved_path)
- print 'resolved = %i' % (self.resolved)
- print 'unavailable = %i' % (self.unavailable)
- print 'uuid = %s' % (self.uuid)
- print 'section_infos = %s' % (self.section_infos)
- print 'identifier = "%s"' % (self.identifier)
- print 'version = %s' % (self.version)
- print 'arch = %s' % (self.arch)
- print 'module = %s' % (self.module)
- print 'symfile = "%s"' % (self.symfile)
- print 'slide = %i (0x%x)' % (self.slide, self.slide)
+ print('path = "%s"' % (self.path))
+ print('resolved_path = "%s"' % (self.resolved_path))
+ print('resolved = %i' % (self.resolved))
+ print('unavailable = %i' % (self.unavailable))
+ print('uuid = %s' % (self.uuid))
+ print('section_infos = %s' % (self.section_infos))
+ print('identifier = "%s"' % (self.identifier))
+ print('version = %s' % (self.version))
+ print('arch = %s' % (self.arch))
+ print('module = %s' % (self.module))
+ print('symfile = "%s"' % (self.symfile))
+ print('slide = %i (0x%x)' % (self.slide, self.slide))
def __str__(self):
s = ''
@@ -428,12 +428,12 @@ class Image:
if self.has_section_load_info():
err = self.load_module(target)
if err:
- print 'ERROR: ', err
+ print('ERROR: ', err)
return target
else:
- print 'error: unable to create a valid target for (%s) "%s"' % (self.arch, self.path)
+ print('error: unable to create a valid target for (%s) "%s"' % (self.arch, self.path))
else:
- print 'error: unable to locate main executable (%s) "%s"' % (self.arch, self.path)
+ print('error: unable to locate main executable (%s) "%s"' % (self.arch, self.path))
return None
@@ -554,7 +554,7 @@ class Symbolicator:
if symbolicated_addresses:
return symbolicated_addresses
else:
- print 'error: no target in Symbolicator'
+ print('error: no target in Symbolicator')
return None
@@ -602,22 +602,22 @@ def disassemble_instructions(
end_idx = inst_idx
for i in range(start_idx, end_idx + 1):
if i == pc_index:
- print ' -> ', lines[i]
+ print(' -> ', lines[i])
else:
- print ' ', lines[i]
+ print(' ', lines[i])
def print_module_section_data(section):
- print section
+ print(section)
section_data = section.GetSectionData()
if section_data:
ostream = lldb.SBStream()
section_data.GetDescription(ostream, section.GetFileAddress())
- print ostream.GetData()
+ print(ostream.GetData())
def print_module_section(section, depth):
- print section
+ print(section)
if depth > 0:
num_sub_sections = section.GetNumSubSections()
for sect_idx in range(num_sub_sections):
@@ -632,7 +632,7 @@ def print_module_sections(module, depth):
def print_module_symbols(module):
for sym in module:
- print sym
+ print(sym)
def Symbolicate(command_args):
@@ -709,17 +709,17 @@ def Symbolicate(command_args):
target = symbolicator.create_target()
if options.verbose:
- print symbolicator
+ print(symbolicator)
if target:
for addr_str in args:
addr = int(addr_str, 0)
symbolicated_addrs = symbolicator.symbolicate(
addr, options.verbose)
for symbolicated_addr in symbolicated_addrs:
- print symbolicated_addr
- print
+ print(symbolicated_addr)
+ print()
else:
- print 'error: no target for %s' % (symbolicator)
+ print('error: no target for %s' % (symbolicator))
if __name__ == '__main__':
# Create a new debugger instance
--
1.8.3.1

View File

@ -1,12 +1,14 @@
Name: lldb
Version: 7.0.0
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Next generation high-performance debugger
License: NCSA
URL: http://lldb.llvm.org/
Source0: http://%{?rc_ver:pre}releases.llvm.org/%{version}/%{?rc_ver:rc%{rc_ver}}/%{name}-%{version}%{?rc_ver:rc%{rc_ver}}.src.tar.xz
Patch0: 0001-Convert-symbolication.py-to-python3-using-2to3.patch
BuildRequires: cmake
BuildRequires: llvm-devel = %{version}
BuildRequires: clang-devel = %{version}
@ -18,7 +20,7 @@ BuildRequires: zlib-devel
BuildRequires: libxml2-devel
BuildRequires: libedit-devel
Requires: python2-lldb
Requires: python3-lldb
%description
LLDB is a next generation, high-performance debugger. It is built as a set
@ -33,21 +35,21 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The package contains header files for the LLDB debugger.
%package -n python2-lldb
%{?python_provide:%python_provide python2-lldb}
%package -n python3-lldb
%{?python_provide:%python_provide python3-lldb}
Summary: Python module for LLDB
BuildRequires: python2-devel
Requires: python2-six
BuildRequires: python3-devel
Requires: python3-six
%description -n python2-lldb
%description -n python3-lldb
The package contains the LLDB Python module.
%prep
%setup -q -n %{name}-%{version}%{?rc_ver:rc%{rc_ver}}.src
%autosetup -n %{name}-%{version}%{?rc_ver:rc%{rc_ver}}.src -p1
# HACK so that lldb can find its custom readline.so, because we move it
# after install.
sed -i -e "s~import sys~import sys\nsys.path.insert\(1, '%{python2_sitearch}/lldb'\)~g" source/Interpreter/embedded_interpreter.py
sed -i -e "s~import sys~import sys\nsys.path.insert\(1, '%{python3_sitearch}/lldb'\)~g" source/Interpreter/embedded_interpreter.py
%build
@ -78,9 +80,7 @@ CXXFLAGS="%{optflags} -Wno-error=format-security"
-DLLVM_LIBDIR_SUFFIX= \
%endif
\
-DPYTHON_EXECUTABLE:STRING=%{__python2} \
-DPYTHON_VERSION_MAJOR:STRING=$(%{__python2} -c "import sys; print sys.version_info.major") \
-DPYTHON_VERSION_MINOR:STRING=$(%{__python2} -c "import sys; print sys.version_info.minor")
-DPYTHON_EXECUTABLE:STRING=%{__python3}
make %{?_smp_mflags}
@ -93,11 +93,11 @@ rm -fv %{buildroot}%{_libdir}/*.a
# python: fix binary libraries location
liblldb=$(basename $(readlink -e %{buildroot}%{_libdir}/liblldb.so))
ln -vsf "../../../${liblldb}" %{buildroot}%{python2_sitearch}/lldb/_lldb.so
mv -v %{buildroot}%{python2_sitearch}/readline.so %{buildroot}%{python2_sitearch}/lldb/readline.so
ln -vsf "../../../${liblldb}" %{buildroot}%{python3_sitearch}/lldb/_lldb.so
mv -v %{buildroot}%{python3_sitearch}/readline.so %{buildroot}%{python3_sitearch}/lldb/readline.so
# remove bundled six.py
rm -f %{buildroot}%{python2_sitearch}/six.*
rm -f %{buildroot}%{python3_sitearch}/six.*
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
@ -111,10 +111,13 @@ rm -f %{buildroot}%{python2_sitearch}/six.*
%{_includedir}/lldb
%{_libdir}/*.so
%files -n python2-lldb
%{python2_sitearch}/lldb
%files -n python3-lldb
%{python3_sitearch}/lldb
%changelog
* Wed Oct 03 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-2
- Build python module for python3
* Tue Sep 25 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-1
- 7.0.0 Release