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 <rpm-packagename>" 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
This commit is contained in:
parent
27ab902d16
commit
d9daa262a4
@ -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);
|
||||
|
10
gdb.changes
10
gdb.changes
@ -1,3 +1,13 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 23 16:00:18 UTC 2019 - Tom de Vries <tdevries@suse.com>
|
||||
|
||||
- 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 <rpm-packagename>"
|
||||
message
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 6 21:36:49 UTC 2019 - Tom de Vries <tdevries@suse.de>
|
||||
|
||||
|
89
gdb.spec
89
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 \
|
||||
<<EOF
|
||||
#include <stdio.h>
|
||||
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 \
|
||||
<<EOF
|
||||
expect {
|
||||
"(gdb) " {
|
||||
puts "\nPASS: first prompt"
|
||||
send "start\n"
|
||||
}
|
||||
default {
|
||||
puts "\nFAIL: first prompt (eof or timeout)"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
expect {
|
||||
-re {Missing separate debuginfos, use: zypper install glibc-debuginfo-.*\(gdb\) } {
|
||||
puts "\nPASS: zypper install message"
|
||||
send "quit\n"
|
||||
exit 0
|
||||
}
|
||||
"(gdb) " {
|
||||
puts "\nFAIL: zypper install message"
|
||||
send "quit\n"
|
||||
exit 1
|
||||
}
|
||||
default {
|
||||
puts "\nFAIL: zypper install message (eof or timeout)"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
EOF
|
||||
gdb="./gdb -q -nw -nx -data-directory $(pwd -P)/data-directory"
|
||||
# Due to bsc#1146899 "gdb's zypper install message disappears with
|
||||
# -batch", we need to use an expect test.
|
||||
expect -c "spawn $gdb ./a.out" -f test.exp
|
||||
rm ./test.exp
|
||||
else
|
||||
# If packages are not build with debuginfo, we cannot expect a zypper
|
||||
# install message.
|
||||
echo "UNSUPPORTED: zypper install message"
|
||||
fi
|
||||
rm ./hello.c ./a.out
|
||||
cd ..
|
||||
fi
|
||||
%endif
|
||||
|
||||
cd ..
|
||||
|
||||
done # fprofile
|
||||
|
Loading…
x
Reference in New Issue
Block a user