From cc92f09aa16a7ab52db514968d2b0c5001fbab5e Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Thu, 19 Jan 2012 21:44:54 +0100 Subject: [PATCH] Enable smaller %{_bindir}/gdb in future by no longer using -rdynamic. Make --enablerepo to use '*-debug*' for RHEL compatibility (BZ 781571). On older RHELs make readline bundled again (BZ 701131). Fix build compatibility with RHEL-5 due to false noarch build. --- gdb-6.6-buildid-locate-rpm.patch | 6 ++--- gdb-python-rdynamic.patch | 44 ++++++++++++++++++++++++++++++++ gdb.spec | 24 ++++++++++++++--- 3 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 gdb-python-rdynamic.patch diff --git a/gdb-6.6-buildid-locate-rpm.patch b/gdb-6.6-buildid-locate-rpm.patch index 4490df3..5602e7c 100644 --- a/gdb-6.6-buildid-locate-rpm.patch +++ b/gdb-6.6-buildid-locate-rpm.patch @@ -258,7 +258,7 @@ Index: gdb-7.4.50.20111218/gdb/elfread.c + + /* Base package name for `debuginfo-install'. We do not use the + `yum' command directly as the line -+ yum --disablerepo='*' --enablerepo='*-debuginfo' \ ++ yum --disablerepo='*' --enablerepo='*-debug*' \ + install NAME-debuginfo.ARCH + would be more complicated than just: + debuginfo-install NAME-VERSION-RELEASE.ARCH @@ -399,7 +399,7 @@ Index: gdb-7.4.50.20111218/gdb/elfread.c + /* This MISSING_FILEPAIR_HASH tracker is used only for the duplicite messages - Try to install the hash file ... -+ yum --disablerepo='*' --enablerepo='*-debuginfo' install ... ++ yum --disablerepo='*' --enablerepo='*-debug*' install ... avoidance. */ struct missing_filepair @@ -458,7 +458,7 @@ Index: gdb-7.4.50.20111218/gdb/elfread.c + _("Missing separate debuginfo for %s\n"), binary); + if (debug != NULL) + fprintf_unfiltered (gdb_stdlog, _("Try: %s %s\n"), -+ "yum --disablerepo='*' --enablerepo='*-debuginfo'" ++ "yum --disablerepo='*' --enablerepo='*-debug*'" + " install", debug); + } } diff --git a/gdb-python-rdynamic.patch b/gdb-python-rdynamic.patch new file mode 100644 index 0000000..a576b72 --- /dev/null +++ b/gdb-python-rdynamic.patch @@ -0,0 +1,44 @@ +--- a/gdb/configure ++++ b/gdb/configure +@@ -14631,6 +14631,10 @@ rm -f core conftest.err conftest.$ac_objext \ + # Problem does not happen for the recommended libpythonX.Y.so linkage. + old_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PYTHON_CFLAGS" ++ old_CPPFLAGS="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" ++ old_LIBS="$LIBS" ++ LIBS="$LIBS $PYTHON_LIBS" + if test "$cross_compiling" = yes; then : + true + else +@@ -14657,6 +14661,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + fi + + CFLAGS="$old_CFLAGS" ++ CPPFLAGS="$old_CPPFLAGS" ++ LIBS="$old_LIBS" + fi + LDFLAGS="$old_LDFLAGS" + fi +--- a/gdb/configure.ac ++++ b/gdb/configure.ac +@@ -1576,6 +1576,10 @@ if test "${gdb_native}" = yes; then + # Problem does not happen for the recommended libpythonX.Y.so linkage. + old_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PYTHON_CFLAGS" ++ old_CPPFLAGS="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" ++ old_LIBS="$LIBS" ++ LIBS="$LIBS $PYTHON_LIBS" + AC_RUN_IFELSE( + AC_LANG_PROGRAM( + [#include "]${have_libpython}[/Python.h"], +@@ -1586,6 +1590,8 @@ if test "${gdb_native}" = yes; then + return err == 0 ? 0 : 1;]), + [dynamic_list=true], [], [true]) + CFLAGS="$old_CFLAGS" ++ CPPFLAGS="$old_CPPFLAGS" ++ LIBS="$old_LIBS" + fi + LDFLAGS="$old_LDFLAGS" + fi diff --git a/gdb.spec b/gdb.spec index bd1be4a..70e4c24 100644 --- a/gdb.spec +++ b/gdb.spec @@ -28,7 +28,7 @@ Version: 7.4.50.%{snap} # 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%{?_with_upstream:.upstream}%{?dist} +Release: 9%{?_with_upstream:.upstream}%{?dist} License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain Group: Development/Debuggers @@ -538,13 +538,15 @@ Patch641: gdb-build-libgdb-3of3.patch #=fedora Patch642: gdb-readline62-ask-more-rh.patch +# Enable smaller %{_bindir}/gdb in future by no longer using -rdynamic. +#=push +Patch643: gdb-python-rdynamic.patch + %if 0%{!?rhel:1} || 0%{?rhel} > 6 # RL_STATE_FEDORA_GDB would not be found for: # Patch642: gdb-readline62-ask-more-rh.patch # --with-system-readline BuildRequires: readline-devel%{?_isa} >= 6.2-4.fc17 -%else -BuildRequires: readline-devel%{?_isa} %endif # 0%{!?rhel:1} || 0%{?rhel} > 6 BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa} @@ -664,7 +666,10 @@ machine than the one which is running the program being debugged. Summary: Documentation for GDB (the GNU source-level debugger) License: GFDL Group: Documentation +# It breaks RHEL-5 by %{_target_platform} being noarch-redhat-linux-gnu. +%if 0%{!?el5:1} BuildArch: noarch +%endif # 0%{!?el5:1} %description doc GDB, the GNU debugger, allows you to debug programs written in C, C++, @@ -805,6 +810,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch639 -p1 %patch640 -p1 %patch641 -p1 +%patch643 -p1 %patch393 -p1 %patch335 -p1 @@ -897,7 +903,11 @@ CFLAGS="$CFLAGS -O0 -ggdb2" --with-separate-debug-dir=/usr/lib/debug \ --disable-sim \ --disable-rpath \ - --with-system-readline \ +%if 0%{!?rhel:1} || 0%{?rhel} > 6 + --with-system-readline \ +%else # 0%{!?rhel:1} || 0%{?rhel} > 6 + --without-system-readline \ +%endif # 0%{!?rhel:1} || 0%{?rhel} > 6 --with-expat \ $(: ppc64 host build crashes on ppc variant of libexpat.so ) \ --without-libexpat-prefix \ @@ -1240,6 +1250,12 @@ fi %{_infodir}/gdb.info* %changelog +* Thu Jan 19 2012 Jan Kratochvil - 7.4.50.20120103-9.fc17 +- Enable smaller %{_bindir}/gdb in future by no longer using -rdynamic. +- Make --enablerepo to use '*-debug*' for RHEL compatibility (BZ 781571). +- On older RHELs make readline bundled again (BZ 701131). +- Fix build compatibility with RHEL-5 due to false noarch build. + * Wed Jan 11 2012 Jan Kratochvil - 7.4.50.20120103-8.fc17 - Disable unexpected GDB directories relocatability.