From d9daa262a422d9c1234f342403f988ce9d583ef3954313ae2994ce720dfab269 Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Tue, 10 Sep 2019 15:34:12 +0000 Subject: [PATCH] Accepting request 726802 from home:tomdevries:branches:devel:gcc-librpm - Enable librpm for version > librpm.so.3 [bsc#1145692]: * Allow any librpm.so.x * Fix unused variables in HAVE_LIBRPM code in gdb-6.6-buildid-locate-rpm-suse.patch * Add %build test to check for "zypper install " message OBS-URL: https://build.opensuse.org/request/show/726802 OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=221 --- gdb-6.6-buildid-locate-rpm-suse.patch | 16 +++++ gdb.changes | 10 +++ gdb.spec | 89 ++++++++++++++++++++++++--- 3 files changed, 106 insertions(+), 9 deletions(-) diff --git a/gdb-6.6-buildid-locate-rpm-suse.patch b/gdb-6.6-buildid-locate-rpm-suse.patch index 0644e5c..b92b444 100644 --- a/gdb-6.6-buildid-locate-rpm-suse.patch +++ b/gdb-6.6-buildid-locate-rpm-suse.patch @@ -110,3 +110,19 @@ Index: gdb-7.12.1/gdb/build-id.c } } +diff --git a/gdb/build-id.c b/gdb/build-id.c +index b9ff15a..75d501a 100644 +--- a/gdb/build-id.c ++++ b/gdb/build-id.c +@@ -864,10 +864,8 @@ missing_rpm_enlist_1 (const char *filename, int verify_vendor) + #endif + { + Header h; +- char *debuginfo, **slot, *s, *s2; ++ char *debuginfo, **slot; + errmsg_t err; +- size_t srcrpmlen = sizeof (".src.rpm") - 1; +- size_t debuginfolen = sizeof ("-debuginfo") - 1; + rpmdbMatchIterator mi_debuginfo; + + h = rpmdbNextIterator_p (mi); diff --git a/gdb.changes b/gdb.changes index 0497807..2ce71b8 100644 --- a/gdb.changes +++ b/gdb.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Aug 23 16:00:18 UTC 2019 - Tom de Vries + +- Enable librpm for version > librpm.so.3 [bsc#1145692]: + * Allow any librpm.so.x + * Fix unused variables in HAVE_LIBRPM code in + gdb-6.6-buildid-locate-rpm-suse.patch + * Add %build test to check for "zypper install " + message + ------------------------------------------------------------------- Tue Aug 6 21:36:49 UTC 2019 - Tom de Vries diff --git a/gdb.spec b/gdb.spec index 2edf979..a568207 100644 --- a/gdb.spec +++ b/gdb.spec @@ -18,6 +18,7 @@ %if 0%{?qemu_user_space_build} +# In a qemu_user_space_build ptrace is not supported, so we can't test gdb. %global _without_testsuite 1 %endif %bcond_without testsuite @@ -275,6 +276,7 @@ BuildRequires: makeinfo %else BuildRequires: texinfo %endif +BuildRequires: expect BuildRequires: mpfr-devel BuildRequires: ncurses-devel BuildRequires: pkg-config @@ -664,16 +666,17 @@ LDFLAGS="$LDFLAGS -L$PWD/processor-trace-%{libipt_version}-root%{_libdir}" export CXXFLAGS="$CFLAGS" -export LIBRPM=no -if test -f /usr/%{_lib}/librpm.so.1; then - export LIBRPM=librpm.so.1 -fi -if test -f /usr/%{_lib}/librpm.so.2; then - export LIBRPM=librpm.so.2 -fi -if test -f /usr/%{_lib}/librpm.so.3; then - export LIBRPM=librpm.so.3 +export LIBRPM=$(ls -1 /usr/%{_lib}/ \ + | grep '^librpm.so.[0-9][0-9]*$' \ + | sort -V -r \ + | head -n 1) +if [ "$LIBRPM" != "" ]; then + export LIBRPM="/usr/%{_lib}/$LIBRPM" + [ -f "$LIBRPM" ] +else + export LIBRPM=no fi + %ifarch %ix86 ia64 ppc ppc64 ppc64le s390 s390x x86_64 aarch64 riscv64 %define build_multitarget 1 %else @@ -814,6 +817,74 @@ then cd .. fi +# This is a build-time test, but still a test. So, skip if we don't do tests. +# This is relevant for %qemu_user_space_build == 1 builds, which atm is +# the case for riscv64. +%if %{with testsuite} +if [ "$LIBRPM" != "no" ]; then + cd gdb + cat \ + > hello.c \ + < +int +main (void) +{ + printf ("hello\n"); + return 0; +} +EOF + $CC hello.c + libc=$(ldd a.out \ + | grep libc.so \ + | awk '{print $3}') + if readelf -SW $libc \ + | grep -q "\.gnu_debuglink"; then + cat \ + > test.exp \ + <