- New --with parameters `testsuite' and `debug'.

- Testsuite is now run during the build only on explicit `--with
    testsuite'.
- Testsuite now possibly produces two outputs for the two GDB target
    arches.
This commit is contained in:
Jan Kratochvil 2008-02-25 09:25:51 +00:00
parent 917a6fb9db
commit b3e4c8b04e
1 changed files with 76 additions and 15 deletions

View File

@ -1,9 +1,9 @@
# Define this if you want to skip the strip step and preserve debug info.
# Useful for testing.
#define __debug_install_post : > %{_builddir}/%{?buildsubdir}/debugfiles.list
# rpmbuild parameters:
# --with testsuite: Run the testsuite (biarch if possible). Default is without.
# --with debug: Build without optimizations and without splitting the debuginfo.
Summary: A GNU source-level debugger for C, C++, Java and other languages
Name: gdb
Name: gdb%{?_with_debug:-debug}
# Set version to contents of gdb/version.in.
# NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3
@ -11,7 +11,7 @@ Name: gdb
Version: 6.7.1
# The release always contains a leading reserved number, start it at 1.
Release: 14%{?dist}
Release: 15%{?dist}
License: GPL
Group: Development/Debuggers
@ -23,6 +23,13 @@ URL: http://gnu.org/software/gdb/
%define gdb_src gdb-%{version}
%define gdb_build build-%{_target_platform}
%if 0%{?_with_debug:1}
# Define this if you want to skip the strip step and preserve debug info.
# Useful for testing.
%define __debug_install_post : > %{_builddir}/%{?buildsubdir}/debugfiles.list
%define debug_package %{nil}
%endif
# Make sure we get rid of the old package gdb64, now that we have unified
# support for 32-64 bits in one single 64-bit gdb.
%ifarch ppc64
@ -368,9 +375,8 @@ BuildRequires: readline-devel
Requires: rpm-libs
BuildRequires: rpm-devel
# BuildRequires are provided here only for the complete testsuite run.
# Omit them on local user builds. %{_topdir} checks for mock (and so even Koji).
%if "%{_topdir}" == "/builddir/build"
# BuildRequires are set here only for the complete testsuite run.
%if 0%{?_with_testsuite:1}
# gcc-objc++ is not covered by the GDB testsuite.
BuildRequires: gcc gcc-c++ gcc-gfortran gcc-java gcc-objc
# Copied from gcc-4.1.2-32
@ -565,6 +571,9 @@ test -z "$g77" || ln -s "$g77" ./g77
# line needs to be cleaned up.
export CFLAGS="$RPM_OPT_FLAGS"
%if 0%{?_with_debug:1}
CFLAGS="$CFLAGS -O0 -ggdb2"
%endif
enable_build_warnings="--enable-gdb-build-warnings=,-Wno-unused"
%ifarch %{ix86} alpha ia64 ppc s390 s390x x86_64 ppc64
@ -586,6 +595,9 @@ enable_build_warnings="$enable_build_warnings,-Werror"
--with-libunwind \
%else
--without-libunwind \
%endif
%if 0%{?_with_debug:1}
--enable-static --disable-shared --enable-debug \
%endif
%{_target_platform}
@ -599,10 +611,11 @@ cp $RPM_BUILD_DIR/%{gdb_src}/gdb/NEWS $RPM_BUILD_DIR/%{gdb_src}
# Initially we're in the %{gdb_src} directory.
cd %{gdb_build}
# For now do testing only on these platforms.
%ifarch %{ix86} x86_64 s390x s390 ppc ia64 ppc64
%if 0%{!?_with_testsuite:1}
echo ====================TESTSUITE DISABLED=========================
%else
echo ====================TESTING=========================
cd gdb/testsuite
cd gdb
gcc -o ./orphanripper %{SOURCE2} -Wall -lutil
# Need to use a single --ignore option, second use overrides first.
# "chng-syms.exp" for possibly avoiding Linux kernel crash - Bug 207002.
@ -614,13 +627,56 @@ gcc -o ./orphanripper %{SOURCE2} -Wall -lutil
# ULIMIT required for `gdb.base/auxv.exp'.
ulimit -H -c
ulimit -c unlimited || :
./orphanripper make -k check RUNTESTFLAGS='--ignore "bigcore.exp chng-syms.exp checkpoint.exp threadcrash.exp readline-overflow.exp"' || :
# Setup $CHECK as `check//unix/' or `check//unix/-m64' for explicit bitsize.
# Simple `check' is not used for $CHECK as different escaping rules apply
# for the --ignore list delimiting spaces.
echo 'int main (void) { return 0; }' >biarch.c
gcc $RPM_OPT_FLAGS -o biarch biarch.c
mv -f biarch biarch-native
# Do not try -m64 for biarch as GDB cannot handle inferior larger than itself.
for BI in -m32 -m31 ""
do
if gcc 2>/dev/null $RPM_OPT_FLAGS $BI -o biarch biarch.c
then
break
fi
done
CHECK="check`echo " $RPM_OPT_FLAGS "|sed -n 's#^.* \(-m[36][241]\) .*$#//unix/\1#p'`"
if ! cmp -s biarch-native biarch
then
CHECK="$CHECK check//unix/$BI"
fi
# Disable some problematic testcases.
# RUNTESTFLAGS='--ignore ...' is not used below as it gets separated by the
# `check//...' target spawn and too much escaping there would be dense.
for test in \
gdb.base/readline-overflow.exp \
gdb.base/chng-syms.exp \
gdb.base/checkpoint.exp \
gdb.base/bigcore.exp \
gdb.threads/threadcrash.exp \
; do
mv -f ../../gdb/testsuite/$test ../gdb/testsuite/$test-DISABLED || :
done
for CURRENT in $CHECK
do
./orphanripper make -k $CURRENT || :
done
)
for t in sum log; do
ln gdb.$t gdb-%{_target_platform}.$t || :
for t in sum log
do
for file in testsuite*/gdb.$t
do
suffix="${file#testsuite.unix.}"
suffix="${suffix%/gdb.$t}"
ln $file gdb-%{_target_platform}$suffix.$t || :
done
done
# `tar | bzip2 | uuencode' may have some piping problems in Brew.
tar cjf gdb-%{_target_platform}.tar.bz2 gdb-%{_target_platform}.{sum,log}
tar cjf gdb-%{_target_platform}.tar.bz2 gdb-%{_target_platform}*.{sum,log}
uuencode gdb-%{_target_platform}.tar.bz2 gdb-%{_target_platform}.tar.bz2
cd ../..
echo ====================TESTING END=====================
@ -704,6 +760,11 @@ fi
%{_mandir}/*/gdbserver.1*
%changelog
* Mon Feb 25 2008 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.7.1-15
- New --with parameters `testsuite' and `debug'.
- Testsuite is now run during the build only on explicit `--with testsuite'.
- Testsuite now possibly produces two outputs for the two GDB target arches.
* Thu Feb 21 2008 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.7.1-14
- Rename `set debug build-id' as `set build-id-verbose', former level 1 moved
to level 2, default value is now 1, use `set build-id-verbose 0' now to