From 213eccacf25cfb458ccfe2fc43428964e629d1e8 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Thu, 24 Sep 2015 09:18:32 +0200 Subject: [PATCH] [rhel6,rhel7] Keep pahole.py and make it Python2 compatible. --- gdb-archer.patch | 12 ++++----- ...thon3fix.patch => gdb-pahole-python2.patch | 25 +++++++------------ gdb.spec | 19 +++++++------- 3 files changed, 24 insertions(+), 32 deletions(-) rename gdb-pahole-python3fix.patch => gdb-pahole-python2.patch (68%) diff --git a/gdb-archer.patch b/gdb-archer.patch index aef1dcf..617cc0f 100644 --- a/gdb-archer.patch +++ b/gdb-archer.patch @@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher http://sourceware.org/gdb/wiki/ArcherBranchManagement GIT snapshot: -commit c8a8413e160d935c12cbc6e484dd8b7ab80f5f62 +commit f0ee78c5ccefe388a64273353ecd5c99dae62558 tromey/python @@ -304,7 +304,7 @@ index 0000000..6fa48ff +IgnoreErrorsCommand () diff --git a/gdb/python/lib/gdb/command/pahole.py b/gdb/python/lib/gdb/command/pahole.py new file mode 100644 -index 0000000..dee04f5 +index 0000000..e08eaf5 --- /dev/null +++ b/gdb/python/lib/gdb/command/pahole.py @@ -0,0 +1,81 @@ @@ -365,19 +365,19 @@ index 0000000..dee04f5 + fieldsize = 8 * ftype.sizeof + + # TARGET_CHAR_BIT -+ print (' /* %3d %3d */' % (int (bitpos / 8), int (fieldsize / 8))) ++ print (' /* %3d %3d */' % (int (bitpos / 8), int (fieldsize / 8)), end = "") + bitpos = bitpos + fieldsize + + if ftype.code == gdb.TYPE_CODE_STRUCT: + self.pahole (ftype, level + 1, field.name) + else: -+ print (' ' * (2 + 2 * level)) ++ print (' ' * (2 + 2 * level), end = "") + print ('%s %s' % (str (ftype), field.name)) + + if level == 0: + self.maybe_print_hole(bitpos, 8 * type.sizeof) + -+ print (' ' * (14 + 2 * level)) ++ print (' ' * (14 + 2 * level), end = "") + print ('} %s' % name) + + def invoke (self, arg, from_tty): @@ -385,7 +385,7 @@ index 0000000..dee04f5 + type = type.strip_typedefs () + if type.code != gdb.TYPE_CODE_STRUCT: + raise (TypeError, '%s is not a struct type' % arg) -+ print (' ' * 14) ++ print (' ' * 14, end = "") + self.pahole (type, 0, '') + +Pahole() diff --git a/gdb-pahole-python3fix.patch b/gdb-pahole-python2.patch similarity index 68% rename from gdb-pahole-python3fix.patch rename to gdb-pahole-python2.patch index 607af26..473a32e 100644 --- a/gdb-pahole-python3fix.patch +++ b/gdb-pahole-python2.patch @@ -1,34 +1,27 @@ -commit f0ee78c5ccefe388a64273353ecd5c99dae62558 -Author: Jan Kratochvil -Date: Fri Sep 18 20:54:22 2015 +0200 - - pahole.py: Fix the Python3 port. - - https://bugzilla.redhat.com/show_bug.cgi?id=1264532 - diff --git a/gdb/python/lib/gdb/command/pahole.py b/gdb/python/lib/gdb/command/pahole.py -index dee04f5..e08eaf5 100644 +index e08eaf5..56c1737 100644 --- a/gdb/python/lib/gdb/command/pahole.py +++ b/gdb/python/lib/gdb/command/pahole.py @@ -55,19 +55,19 @@ It prints the type and displays comments showing where holes are.""" fieldsize = 8 * ftype.sizeof # TARGET_CHAR_BIT -- print (' /* %3d %3d */' % (int (bitpos / 8), int (fieldsize / 8))) -+ print (' /* %3d %3d */' % (int (bitpos / 8), int (fieldsize / 8)), end = "") +- print (' /* %3d %3d */' % (int (bitpos / 8), int (fieldsize / 8)), end = "") ++ print (' /* %3d %3d */' % (int (bitpos / 8), int (fieldsize / 8))), bitpos = bitpos + fieldsize if ftype.code == gdb.TYPE_CODE_STRUCT: self.pahole (ftype, level + 1, field.name) else: -- print (' ' * (2 + 2 * level)) -+ print (' ' * (2 + 2 * level), end = "") +- print (' ' * (2 + 2 * level), end = "") ++ print (' ' * (2 + 2 * level)), print ('%s %s' % (str (ftype), field.name)) if level == 0: self.maybe_print_hole(bitpos, 8 * type.sizeof) -- print (' ' * (14 + 2 * level)) -+ print (' ' * (14 + 2 * level), end = "") +- print (' ' * (14 + 2 * level), end = "") ++ print (' ' * (14 + 2 * level)), print ('} %s' % name) def invoke (self, arg, from_tty): @@ -36,8 +29,8 @@ index dee04f5..e08eaf5 100644 type = type.strip_typedefs () if type.code != gdb.TYPE_CODE_STRUCT: raise (TypeError, '%s is not a struct type' % arg) -- print (' ' * 14) -+ print (' ' * 14, end = "") +- print (' ' * 14, end = "") ++ print (' ' * 14), self.pahole (type, 0, '') Pahole() diff --git a/gdb.spec b/gdb.spec index 4a75265..797c5b9 100644 --- a/gdb.spec +++ b/gdb.spec @@ -26,7 +26,7 @@ Version: 7.10 # The release always contains a leading reserved number, start it at 1. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing. -Release: 26%{?dist} +Release: 27%{?dist} License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL Group: Development/Debuggers @@ -544,7 +544,7 @@ Patch1030: gdb-probes-based-interface-robust-2of2.patch Patch1031: gdb-rhbz1260558-ppc64le-skip_trampoline_code.patch # Fix the pahole command breakage due to its Python3 port (RH BZ 1264532). -Patch1044: gdb-pahole-python3fix.patch +Patch1044: gdb-pahole-python2.patch %if 0%{!?rhel:1} || 0%{?rhel} > 6 # RL_STATE_FEDORA_GDB would not be found for: @@ -844,7 +844,6 @@ find -name "*.info*"|xargs rm -f %patch1029 -p1 %patch1030 -p1 %patch1031 -p1 -%patch1044 -p1 %patch848 -p1 %if 0%{!?el6:1} @@ -866,6 +865,10 @@ find -name "*.info*"|xargs rm -f %patch331 -p1 -R %patch337 -p1 -R %endif +%patch1044 -p1 +%if 0%{!?rhel:1} || 0%{?rhel} > 7 +%patch1044 -p1 -R +%endif find -name "*.orig" | xargs rm -f ! find -name "*.rej" # Should not happen. @@ -1261,13 +1264,6 @@ rm -f $RPM_BUILD_ROOT%{_datadir}/gdb/system-gdbinit/elinos.py rm -f $RPM_BUILD_ROOT%{_datadir}/gdb/system-gdbinit/wrs-linux.py rmdir $RPM_BUILD_ROOT%{_datadir}/gdb/system-gdbinit -%if 0%{!?_without_python:1} -%if 0%{?rhel:1} && 0%{?rhel} <= 7 -# python2? /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 -rm -f $RPM_BUILD_ROOT%{_datadir}/gdb/python/gdb/command/pahole.py* -%endif -%endif - %clean rm -rf $RPM_BUILD_ROOT @@ -1361,6 +1357,9 @@ then fi %changelog +* Thu Sep 24 2015 Jan Kratochvil - 7.10-27.fc23 +- [rhel6,rhel7] Keep pahole.py and make it Python2 compatible. + * Wed Sep 23 2015 Jan Kratochvil - 7.10-26.fc23 - [rhel7] Provide libstdc++-v3-python with C++11 even on RHEL-7 (RH BZ 1239290). - Do not provide libstdc++-v3-python lib64 files on 32-bit archs.