From b2003eae67053683814b5ef893d0b134aa36cd3e Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Jun 09 2020 14:54:16 +0000 Subject: Rebase to FSF GDB 9.2 and fix a bunch of issues. --- diff --git a/.gitignore b/.gitignore index 3e874dd..4661874 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/binutils-gdb /gdb-libstdc++-v3-python-8.1.1-20180626.tar.xz /v2.0.1.tar.gz -/gdb-9.1.tar.xz +/gdb-9.2.tar.xz diff --git a/_gdb.spec.Patch.include b/_gdb.spec.Patch.include index 917558b..78fb0dd 100644 --- a/_gdb.spec.Patch.include +++ b/_gdb.spec.Patch.include @@ -404,3 +404,7 @@ Patch099: gdb-rhbz1822715-fix-python-deprecation.patch # Kevin Buettner and Keith Seitz Patch100: gdb-rhbz1829702-fix-python39.patch +# Fix fput?_unfiltered functions +# RH BZ 1844458 (Sergio Durigan Junior and Tom Tromey) +Patch101: gdb-rhbz1844458-use-fputX_unfiltered.patch + diff --git a/_gdb.spec.patch.include b/_gdb.spec.patch.include index fd3cf02..202a5cc 100644 --- a/_gdb.spec.patch.include +++ b/_gdb.spec.patch.include @@ -98,3 +98,4 @@ %patch098 -p1 %patch099 -p1 %patch100 -p1 +%patch101 -p1 diff --git a/_git_upstream_commit b/_git_upstream_commit index 07da3f2..751b241 100644 --- a/_git_upstream_commit +++ b/_git_upstream_commit @@ -1 +1 @@ -899016d49d289757372459f72d642a4c6b3b7732 +e7fe0803b6427d3906e991bbb3b7fd2f0fd05e00 diff --git a/_patch_order b/_patch_order index e56faa4..4f06800 100644 --- a/_patch_order +++ b/_patch_order @@ -98,3 +98,4 @@ gdb-rhbz1553104-s390x-arch12-test.patch gdb-rhbz1818011-bfd-gcc10-error.patch gdb-rhbz1822715-fix-python-deprecation.patch gdb-rhbz1829702-fix-python39.patch +gdb-rhbz1844458-use-fputX_unfiltered.patch diff --git a/gdb-6.3-inferior-notification-20050721.patch b/gdb-6.3-inferior-notification-20050721.patch index b94b432..d09fe1e 100644 --- a/gdb-6.3-inferior-notification-20050721.patch +++ b/gdb-6.3-inferior-notification-20050721.patch @@ -262,7 +262,7 @@ new file mode 100644 +} + +set GDBFLAGS_orig $GDBFLAGS -+set GDBFLAGS "--pid=$testpid" ++set GDBFLAGS "-iex \"set height 0\" --pid=$testpid" +gdb_start +set GDBFLAGS $GDBFLAGS_orig + @@ -284,7 +284,7 @@ new file mode 100644 +} + +set GDBFLAGS_orig $GDBFLAGS -+set GDBFLAGS "--pid=$testpid" ++set GDBFLAGS "-iex \"set height 0\" --pid=$testpid" +gdb_start +set GDBFLAGS $GDBFLAGS_orig + diff --git a/gdb-rhbz1844458-use-fputX_unfiltered.patch b/gdb-rhbz1844458-use-fputX_unfiltered.patch new file mode 100644 index 0000000..e3763fe --- /dev/null +++ b/gdb-rhbz1844458-use-fputX_unfiltered.patch @@ -0,0 +1,123 @@ +From FEDORA_PATCHES Mon Sep 17 00:00:00 2001 +From: Keith Seitz +Date: Mon, 8 Jun 2020 11:33:47 -0700 +Subject: gdb-rhbz1844458-use-fputX_unfiltered.patch + +;; Fix fput?_unfiltered functions +;; RH BZ 1844458 (Sergio Durigan Junior and Tom Tromey) + +From 9effb44ccbf50c16da66aaab5fd535fe17e38e32 Mon Sep 17 00:00:00 2001 +From: Sergio Durigan Junior +Date: Wed, 19 Feb 2020 16:40:48 -0500 +Subject: [PATCH] Make '{putchar,fputc}_unfiltered' use 'fputs_unfiltered' + +There is currently a regression when using +'{putchar,fputc}_unfiltered' with 'puts_unfiltered' which was +introduced by one of the commits that reworked the unfiltered print +code. + +The regression makes it impossible to use '{putchar,fputc}_unfiltered' +with 'puts_unfiltered', because the former writes directly to the +ui_file stream using 'stream->write', while the latter uses a buffered +mechanism (see 'wrap_buffer') and delays the printing. + +If you do a quick & dirty hack on e.g. top.c:show_gdb_datadir: + + @@ -2088,6 +2088,13 @@ static void + show_gdb_datadir (struct ui_file *file, int from_tty, + struct cmd_list_element *c, const char *value) + { + + putchar_unfiltered ('\n'); + + puts_unfiltered ("TEST"); + + putchar_unfiltered ('>'); + + puts_unfiltered ("PUTS"); + + puts_unfiltered ("PUTS"); + + putchar_unfiltered ('\n'); + +rebuild GDB and invoke the "show data-directory" command, you will +see: + + (gdb) show data-directory + + > + TESTPUTSGDB's data directory is "/usr/local/share/gdb". + +Note how the '>' was printed before the output, and "TEST" and "PUTS" +were printed together. + +My first attempt to fix this was to always call 'flush_wrap_buffer' at +the end of 'fputs_maybe_filtered', since it seemed to me that the +function should always print what was requested. But I wasn't sure +this was the right thing to do, so I talked to Tom on IRC and he gave +me another, simpler idea: make '{putchar,fputc}_unfiltered' call into +the already existing 'fputs_unfiltered' function. + +This patch implements the idea. I regtested it on the Buildbot, and +no regressions were detected. + +gdb/ChangeLog: +2020-02-20 Sergio Durigan Junior + Tom Tromey + + * utils.c (fputs_maybe_filtered): Call 'stream->puts' instead + of 'fputc_unfiltered'. + (putchar_unfiltered): Call 'fputc_unfiltered'. + (fputc_unfiltered): Call 'fputs_unfiltered'. + +diff --git a/gdb/utils.c b/gdb/utils.c +--- a/gdb/utils.c ++++ b/gdb/utils.c +@@ -1783,7 +1783,12 @@ fputs_maybe_filtered (const char *linebuffer, struct ui_file *stream, + newline -- if chars_per_line is right, we + probably just overflowed anyway; if it's wrong, + let us keep going. */ +- fputc_unfiltered ('\n', stream); ++ /* XXX: The ideal thing would be to call ++ 'stream->putc' here, but we can't because it ++ currently calls 'fputc_unfiltered', which ends up ++ calling us, which generates an infinite ++ recursion. */ ++ stream->puts ("\n"); + } + else + { +@@ -1828,7 +1833,12 @@ fputs_maybe_filtered (const char *linebuffer, struct ui_file *stream, + wrap_here ((char *) 0); /* Spit out chars, cancel + further wraps. */ + lines_printed++; +- fputc_unfiltered ('\n', stream); ++ /* XXX: The ideal thing would be to call ++ 'stream->putc' here, but we can't because it ++ currently calls 'fputc_unfiltered', which ends up ++ calling us, which generates an infinite ++ recursion. */ ++ stream->puts ("\n"); + lineptr++; + } + } +@@ -1923,10 +1933,7 @@ fputs_highlighted (const char *str, const compiled_regex &highlight, + int + putchar_unfiltered (int c) + { +- char buf = c; +- +- ui_file_write (gdb_stdout, &buf, 1); +- return c; ++ return fputc_unfiltered (c, gdb_stdout); + } + + /* Write character C to gdb_stdout using GDB's paging mechanism and return C. +@@ -1941,9 +1948,11 @@ putchar_filtered (int c) + int + fputc_unfiltered (int c, struct ui_file *stream) + { +- char buf = c; ++ char buf[2]; + +- ui_file_write (stream, &buf, 1); ++ buf[0] = c; ++ buf[1] = 0; ++ fputs_unfiltered (buf, stream); + return c; + } + diff --git a/gdb.spec b/gdb.spec index ec4f2c9..b437f10 100644 --- a/gdb.spec +++ b/gdb.spec @@ -11,6 +11,9 @@ # workload gets run it decreases the general performance now. # --define 'scl somepkgname': Independent packages by scl-utils-build. +# Turn off the brp-python-bytecompile automagic +%global _python_bytecompile_extra 0 + %{?scl:%scl_package gdb} %{!?scl: %global pkg_name %{name} @@ -31,11 +34,11 @@ Name: %{?scl_prefix}gdb # See timestamp of source gnulib installed into gnulib/ . %global snapgnulib 20191216 %global tarname gdb-%{version} -Version: 9.1 +Version: 9.2 # 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: 8%{?dist} +Release: 1%{?dist} License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL # Do not provide URL for snapshots as the file lasts there only for 2 days. @@ -199,9 +202,9 @@ Patch1119: gdb-testsuite-readline63-sigint-revert.patch # Include the auto-generated file containing the "Patch:" directives. # See README.local-patches for more details. -Source8: _gdb.spec.Patch.include -Source9: _gdb.spec.patch.include -%include %{SOURCE8} +Patch9998: _gdb.spec.Patch.include +Patch9999: _gdb.spec.patch.include +%include %{PATCH9998} %if 0%{!?rhel:1} || 0%{?rhel} > 6 # RL_STATE_FEDORA_GDB would not be found for: @@ -463,7 +466,7 @@ find -name "*.info*"|xargs rm -f # Include the auto-generated "%patch" directives. # See README.local-patches for more details. -%include %{SOURCE9} +%include %{PATCH9999} %if 0%{!?el6:1} for i in \ @@ -950,6 +953,11 @@ for pyo in "" "-O";do done %endif # 0%{?_enable_debug_packages:1} && 0%{!?_without_python:1} +# Compile python files +%if 0%{!?_without_python:1} +%py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/python/gdb +%endif + %if 0%{!?_without_python:1} %if 0%{!?rhel:1} || 0%{?rhel} > 6 # BZ 999645: /usr/share/gdb/auto-load/ needs filesystem symlinks @@ -1155,6 +1163,12 @@ fi %endif %changelog +* Tue Jun 9 2020 Keith Seitz - 9.2-1 +- Rebase to FSF GDB 9.2. +- Add explicit python bytecode compilation. +- Change included files to patches to quell error from rpminspect. +- Fix attach-32.exp from gdb-6.3-inferior-notification-20050721.patch. + * Fri Jun 5 2020 Keith Seitz - 9.1-8 - Add patch for Python 3.9 and re-enable python. - Update generate-*.sh to include stgit support. diff --git a/generate-git-repo-from-patches.sh b/generate-git-repo-from-patches.sh index 012480d..6f454cc 100755 --- a/generate-git-repo-from-patches.sh +++ b/generate-git-repo-from-patches.sh @@ -55,11 +55,18 @@ cd $1 git name-rev $last_ancestor_commit test $? -eq 0 || die "Could not find $last_ancestor_commit in the repository $1. Did you run 'git fetch'?" -# Create a branch for the checkout; use the distro name in -# the name of this branch. f=`cd .. && pwd` -name=devel-`basename $f` -git checkout -b $name $last_ancestor_commit + +# Create a branch for the checkout if using stgit; use the distro name in +# the name of this branch. +if (($uncommit)); then + name=devel-`basename $f` + branch="-b $name" +else + branch="" +fi +git checkout $branch $last_ancestor_commit + echo "Applying patches..." for p in `cat ../_patch_order` ; do git am ../$p diff --git a/sources b/sources index 16b9bed..4c89a9f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (gdb-libstdc++-v3-python-8.1.1-20180626.tar.xz) = a8b1c54dd348cfeb37da73f968742896be3dd13a4215f8d8519870c2abea915f5176c3fa6989ddd10f20020a16f0fab20cbae68ee8d58a82234d8778023520f8 SHA512 (v2.0.1.tar.gz) = e38e93908c3fbf1f2384cfca381eaf4bf667033de678041bd440adac8bbce4757b77304868896256ed72c202ee22ba1646aada90125029f14f5bffaf828a7df4 -SHA512 (gdb-9.1.tar.xz) = 84cdd408d80a3fc5779de459c5b26154d31b329ebde7e3aa78799fb1eb245d8b64b8c8ee7242382a1dbd95b4e6f9d84fef41d12a0646aa75d3dee4709ea1f6e7 +SHA512 (gdb-9.2.tar.xz) = 73635f00f343117aa5e2436f1e1597099e2bfb31ef7bb162b273fa1ea282c3fa9b0f52762e70bfc7ad0334addb8d159e9ac7cbe5998ca4f755ea8cf90714d274