a0925cfe35
Copy from devel:gcc/gdb based on submit request 47984 from user rguenther OBS-URL: https://build.opensuse.org/request/show/47984 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdb?expand=0&rev=81
996 lines
31 KiB
RPMSpec
996 lines
31 KiB
RPMSpec
#
|
|
# spec file for package gdb (Version 7.2)
|
|
#
|
|
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
Summary: A GNU source-level debugger for C, C++, Java and other languages
|
|
|
|
Name: gdb
|
|
|
|
# Set version to contents of gdb/version.in.
|
|
# NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3
|
|
# and, since January 2005, X.Y.Z.date for daily snapshots, like 6.3.50.20050112 # (daily snapshot from mailine), or 6.3.0.20040112 (head of the release branch).
|
|
Version: 7.2
|
|
Release: 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.
|
|
|
|
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
|
|
Group: Development/Debuggers
|
|
# Do not provide URL for snapshots as the file lasts there only for 2 days.
|
|
# ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-%{version}.tar.bz2
|
|
# ftp://sourceware.org/pub/gdb/releases/gdb-%{version}.tar.bz2
|
|
Source: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-%{version}.tar.bz2
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
Url: http://gnu.org/software/gdb/
|
|
|
|
# For our convenience
|
|
%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
|
|
Obsoletes: gdb64 < 5.3.91
|
|
%endif
|
|
|
|
# GDB patches have the format `gdb-<version>-bz<red-hat-bz-#>-<desc>.patch'.
|
|
# They should be created using patch level 1: diff -up ./gdb (or gdb-6.3/gdb).
|
|
|
|
# Cleanup any leftover testsuite processes as it may stuck mock(1) builds.
|
|
Source2: gdb-orphanripper.c
|
|
|
|
# Man page for gstack(1).
|
|
Source3: gdb-gstack.man
|
|
|
|
# Work around out-of-date dejagnu that does not have KFAIL
|
|
Patch1: gdb-6.3-rh-dummykfail-20041202.patch
|
|
|
|
# Match the Fedora's version info.
|
|
Patch2: gdb-6.3-rh-testversion-20041202.patch
|
|
|
|
# Check that libunwind works - new test then fix
|
|
Patch3: gdb-6.3-rh-testlibunwind-20041202.patch
|
|
|
|
# Use convert_from_func_ptr_addr on the solib breakpoint address;
|
|
# simplifies and makes more consistent the logic.
|
|
Patch104: gdb-6.3-ppcdotsolib-20041022.patch
|
|
|
|
# Better parse 64-bit PPC system call prologues.
|
|
Patch105: gdb-6.3-ppc64syscall-20040622.patch
|
|
|
|
# Stop a backtrace when a zero PC is encountered.
|
|
Patch106: gdb-6.3-framepczero-20040927.patch
|
|
|
|
# Include the pc's section when doing a symbol lookup so that the
|
|
# correct symbol is found.
|
|
Patch111: gdb-6.3-ppc64displaysymbol-20041124.patch
|
|
|
|
# Fix upstream `set scheduler-locking step' vs. upstream PPC atomic seqs.
|
|
Patch112: gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch
|
|
# Make upstream `set scheduler-locking step' as default.
|
|
Patch260: gdb-6.6-scheduler_locking-step-is-default.patch
|
|
|
|
# Add a wrapper script to GDB that implements pstack using the
|
|
# --readnever option.
|
|
Patch118: gdb-6.3-gstack-20050411.patch
|
|
|
|
# VSYSCALL and PIE
|
|
Patch122: gdb-6.3-test-pie-20050107.patch
|
|
Patch389: gdb-archer-pie-addons.patch
|
|
Patch394: gdb-archer-pie-addons-keep-disabled.patch
|
|
|
|
# Get selftest working with sep-debug-info
|
|
Patch125: gdb-6.3-test-self-20050110.patch
|
|
|
|
# Test support of multiple destructors just like multiple constructors
|
|
Patch133: gdb-6.3-test-dtorfix-20050121.patch
|
|
|
|
# Fix to support executable moving
|
|
Patch136: gdb-6.3-test-movedir-20050125.patch
|
|
|
|
# Fix gcore for threads
|
|
Patch140: gdb-6.3-gcore-thread-20050204.patch
|
|
|
|
# Stop while intentionally stepping and the thread exit is met.
|
|
Patch141: gdb-6.6-step-thread-exit.patch
|
|
Patch259: gdb-6.3-step-thread-exit-20050211-test.patch
|
|
|
|
# Prevent gdb from being pushed into background
|
|
Patch142: gdb-6.3-terminal-fix-20050214.patch
|
|
|
|
# Test sibling threads to set threaded watchpoints for x86 and x86-64
|
|
Patch145: gdb-6.3-threaded-watchpoints2-20050225.patch
|
|
|
|
# Fix printing of inherited members
|
|
Patch148: gdb-6.3-inheritance-20050324.patch
|
|
|
|
# Do not issue warning message about first page of storage for ia64 gcore
|
|
Patch153: gdb-6.3-ia64-gcore-page0-20050421.patch
|
|
|
|
# Security errata for untrusted .gdbinit
|
|
Patch157: gdb-6.3-security-errata-20050610.patch
|
|
|
|
# IA64 sigtramp prev register patch
|
|
Patch158: gdb-6.3-ia64-sigtramp-frame-20050708.patch
|
|
|
|
# IA64 gcore speed-up patch
|
|
Patch160: gdb-6.3-ia64-gcore-speedup-20050714.patch
|
|
|
|
# Notify observers that the inferior has been created
|
|
Patch161: gdb-6.3-inferior-notification-20050721.patch
|
|
|
|
# Fix ia64 info frame bug
|
|
Patch162: gdb-6.3-ia64-info-frame-fix-20050725.patch
|
|
|
|
# Verify printing of inherited members test
|
|
Patch163: gdb-6.3-inheritancetest-20050726.patch
|
|
|
|
# Add readnever option
|
|
Patch164: gdb-6.3-readnever-20050907.patch
|
|
|
|
# Fix ia64 gdb problem with user-specified SIGILL handling
|
|
Patch169: gdb-6.3-ia64-sigill-20051115.patch
|
|
|
|
# Allow option to continue backtracing past a zero pc value
|
|
Patch170: gdb-6.3-bt-past-zero-20051201.patch
|
|
|
|
# Use bigger numbers than int.
|
|
Patch176: gdb-6.3-large-core-20051206.patch
|
|
|
|
# Fix debuginfo addresses resolving for --emit-relocs Linux kernels (BZ 203661).
|
|
Patch188: gdb-6.5-bz203661-emit-relocs.patch
|
|
|
|
# Security patch: avoid stack overflows in dwarf expression computation.
|
|
# CVE-2006-4146
|
|
Patch190: gdb-6.5-dwarf-stack-overflow.patch
|
|
|
|
# Support TLS symbols (+`errno' suggestion if no pthread is found) (BZ 185337).
|
|
Patch194: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
|
|
|
|
# Fix TLS symbols resolving for shared libraries with a relative pathname.
|
|
# The testsuite needs `gdb-6.5-tls-of-separate-debuginfo.patch'.
|
|
Patch196: gdb-6.5-sharedlibrary-path.patch
|
|
|
|
# Suggest fixing your target architecture for gdbserver(1) (BZ 190810).
|
|
# FIXME: It could be autodetected.
|
|
Patch199: gdb-6.5-bz190810-gdbserver-arch-advice.patch
|
|
|
|
# Testcase for deadlocking on last address space byte; for corrupted backtraces.
|
|
Patch211: gdb-6.5-last-address-space-byte-test.patch
|
|
|
|
# Improved testsuite results by the testsuite provided by the courtesy of BEA.
|
|
Patch208: gdb-6.5-BEA-testsuite.patch
|
|
|
|
# Fix readline segfault on excessively long hand-typed lines.
|
|
Patch209: gdb-6.5-readline-long-line-crash.patch
|
|
Patch213: gdb-6.5-readline-long-line-crash-test.patch
|
|
|
|
# Fix bogus 0x0 unwind of the thread's topmost function clone(3) (BZ 216711).
|
|
Patch214: gdb-6.5-bz216711-clone-is-outermost.patch
|
|
|
|
# Test sideeffects of skipping ppc .so libs trampolines (BZ 218379).
|
|
Patch216: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
|
|
|
|
# Fix lockup on trampoline vs. its function lookup; unreproducible (BZ 218379).
|
|
Patch217: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
|
|
|
|
# Find symbols properly at their original (included) file (BZ 109921).
|
|
Patch225: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
|
|
|
|
# Update PPC unwinding patches to their upstream variants (BZ 140532).
|
|
Patch229: gdb-6.3-bz140532-ppc-unwinding-test.patch
|
|
|
|
# Testcase for exec() from threaded program (BZ 202689).
|
|
Patch231: gdb-6.3-bz202689-exec-from-pthread-test.patch
|
|
|
|
# Backported fixups post the source tarball.
|
|
Patch232: gdb-upstream.patch
|
|
|
|
# Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
|
|
Patch234: gdb-6.6-bz230000-power6-disassembly-test.patch
|
|
|
|
# Temporary support for shared libraries >2GB on 64bit hosts. (BZ 231832)
|
|
Patch235: gdb-6.3-bz231832-obstack-2gb.patch
|
|
|
|
# Fix debugging GDB itself - the compiled in source files paths (BZ 225783).
|
|
Patch241: gdb-6.6-bz225783-gdb-debuginfo-paths.patch
|
|
|
|
# Allow running `/usr/bin/gcore' with provided but inaccessible tty (BZ 229517).
|
|
Patch245: gdb-6.6-bz229517-gcore-without-terminal.patch
|
|
|
|
# Notify user of a child forked process being detached (BZ 235197).
|
|
Patch247: gdb-6.6-bz235197-fork-detach-info.patch
|
|
|
|
# Avoid too long timeouts on failing cases of "annota1.exp annota3.exp".
|
|
Patch254: gdb-6.6-testsuite-timeouts.patch
|
|
|
|
# Support for stepping over PPC atomic instruction sequences (BZ 237572).
|
|
Patch258: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
|
|
|
|
# Link with libreadline provided by the operating system.
|
|
Patch261: gdb-6.6-readline-system.patch
|
|
|
|
# Test kernel VDSO decoding while attaching to an i386 process.
|
|
Patch263: gdb-6.3-attach-see-vdso-test.patch
|
|
|
|
# Do not hang on exit of a thread group leader (BZ 247354).
|
|
Patch265: gdb-6.6-bz247354-leader-exit-fix.patch
|
|
Patch266: gdb-6.6-bz247354-leader-exit-test.patch
|
|
|
|
# Test leftover zombie process (BZ 243845).
|
|
Patch271: gdb-6.5-bz243845-stale-testing-zombie-test.patch
|
|
|
|
# New locating of the matching binaries from the pure core file (build-id).
|
|
Patch274: gdb-6.6-buildid-locate.patch
|
|
Patch353: gdb-6.6-buildid-locate-rpm.patch
|
|
|
|
# Fix displaying of numeric char arrays as strings (BZ 224128).
|
|
Patch282: gdb-6.7-charsign-test.patch
|
|
|
|
# Test PPC hiding of call-volatile parameter register.
|
|
Patch284: gdb-6.7-ppc-clobbered-registers-O2-test.patch
|
|
|
|
# Testsuite fixes for more stable/comparable results.
|
|
Patch287: gdb-6.7-testsuite-stable-results.patch
|
|
|
|
# Test ia64 memory leaks of the code using libunwind.
|
|
Patch289: gdb-6.5-ia64-libunwind-leak-test.patch
|
|
|
|
# Test hiding unexpected breakpoints on intentional step commands.
|
|
Patch290: gdb-6.5-missed-trap-on-step-test.patch
|
|
|
|
# Support DW_TAG_interface_type the same way as DW_TAG_class_type (BZ 426600).
|
|
Patch293: gdb-6.7-bz426600-DW_TAG_interface_type-fix.patch
|
|
Patch294: gdb-6.7-bz426600-DW_TAG_interface_type-test.patch
|
|
|
|
# Test gcore memory and time requirements for large inferiors.
|
|
Patch296: gdb-6.5-gcore-buffer-limit-test.patch
|
|
|
|
# Test debugging statically linked threaded inferiors (BZ 239652).
|
|
# - It requires recent glibc to work in this case properly.
|
|
Patch298: gdb-6.6-threads-static-test.patch
|
|
|
|
# Fix #include <asm/ptrace.h> on kernel-headers-2.6.25-0.40.rc1.git2.fc9.x86_64.
|
|
Patch304: gdb-6.7-kernel-headers-compat.patch
|
|
|
|
# Test GCORE for shmid 0 shared memory mappings.
|
|
Patch309: gdb-6.3-mapping-zero-inode-test.patch
|
|
|
|
# Test a crash on `focus cmd', `focus prev' commands.
|
|
Patch311: gdb-6.3-focus-cmd-prev-test.patch
|
|
|
|
# Test various forms of threads tracking across exec() (BZ 442765).
|
|
Patch315: gdb-6.8-bz442765-threaded-exec-test.patch
|
|
|
|
# Silence memcpy check which returns false positive (sparc64)
|
|
Patch317: gdb-6.8-sparc64-silence-memcpy-check.patch
|
|
|
|
# Fix memory trashing on binaries from GCC Ada (workaround GCC PR 35998).
|
|
Patch318: gdb-6.8-gcc35998-ada-memory-trash.patch
|
|
|
|
# Test a crash on libraries missing the .text section.
|
|
Patch320: gdb-6.5-section-num-fixup-test.patch
|
|
|
|
# Fix compatibility with recent glibc headers.
|
|
Patch324: gdb-6.8-glibc-headers-compat.patch
|
|
|
|
# Create a single binary `gdb' autodetecting --tui by its argv[0].
|
|
Patch326: gdb-6.8-tui-singlebinary.patch
|
|
|
|
# Fix PRPSINFO in the core files dumped by gcore (BZ 254229).
|
|
Patch329: gdb-6.8-bz254229-gcore-prpsinfo.patch
|
|
|
|
# Fix register assignments with no GDB stack frames (BZ 436037).
|
|
Patch330: gdb-6.8-bz436037-reg-no-longer-active.patch
|
|
|
|
# Make the GDB quit processing non-abortable to cleanup everything properly.
|
|
Patch331: gdb-6.8-quit-never-aborts.patch
|
|
|
|
# Support DW_TAG_constant for Fortran in recent Fedora/RH GCCs.
|
|
Patch332: gdb-6.8-fortran-tag-constant.patch
|
|
|
|
# Fix attaching to stopped processes and/or pending signals.
|
|
Patch337: gdb-6.8-attach-signalled-detach-stopped.patch
|
|
|
|
# Test the watchpoints conditionals works.
|
|
Patch343: gdb-6.8-watchpoint-conditionals-test.patch
|
|
|
|
# Fix resolving of variables at locations lists in prelinked libs (BZ 466901).
|
|
Patch348: gdb-6.8-bz466901-backtrace-full-prelinked.patch
|
|
|
|
# The merged branch `archer' of: http://sourceware.org/gdb/wiki/ProjectArcher
|
|
Patch349: gdb-archer.patch
|
|
Patch420: gdb-archer-ada.patch
|
|
|
|
# Fix parsing elf64-i386 files for kdump PAE vmcore dumps (BZ 457187).
|
|
# - Turn on 64-bit BFD support, globally enable AC_SYS_LARGEFILE.
|
|
Patch360: gdb-6.8-bz457187-largefile-test.patch
|
|
|
|
# New test for step-resume breakpoint placed in multiple threads at once.
|
|
Patch381: gdb-simultaneous-step-resume-breakpoint-test.patch
|
|
|
|
# Fix GNU/Linux core open: Can't read pathname for load map: Input/output error.
|
|
Patch382: gdb-core-open-vdso-warning.patch
|
|
|
|
# Fix syscall restarts for amd64->i386 biarch.
|
|
Patch391: gdb-x86_64-i386-syscall-restart.patch
|
|
|
|
# Fix stepping with OMP parallel Fortran sections (BZ 533176).
|
|
Patch392: gdb-bz533176-fortran-omp-step.patch
|
|
|
|
# Fix regression by python on ia64 due to stale current frame.
|
|
Patch397: gdb-follow-child-stale-parent.patch
|
|
|
|
# Workaround ccache making lineno non-zero for command-line definitions.
|
|
Patch403: gdb-ccache-workaround.patch
|
|
|
|
# Implement `info common' for Fortran.
|
|
Patch404: gdb-fortran-common-reduce.patch
|
|
Patch405: gdb-fortran-common.patch
|
|
|
|
# Testcase for "Do not make up line information" fix by Daniel Jacobowitz.
|
|
Patch407: gdb-lineno-makeup-test.patch
|
|
|
|
# Test power7 ppc disassembly.
|
|
Patch408: gdb-ppc-power7-test.patch
|
|
|
|
# Revert: Add -Wunused-function to compile flags.
|
|
Patch412: gdb-unused-revert.patch
|
|
|
|
# Fix i386+x86_64 rwatch+awatch before run, regression against 6.8 (BZ 541866).
|
|
Patch417: gdb-bz541866-rwatch-before-run.patch
|
|
|
|
# Fix crash on C++ types in some debug info files (BZ 575292, Keith Seitz).
|
|
# Temporarily workaround the crash of BZ 575292 as there was now BZ 585445.
|
|
# Re-enable the BZ 575292 and BZ 585445 C++ fix using an updated patch.
|
|
Patch451: gdb-bz575292-delayed-physname.patch
|
|
|
|
# Fix crash when using GNU IFUNC call from breakpoint condition.
|
|
Patch454: gdb-bz539590-gnu-ifunc-fix-cond.patch
|
|
|
|
# Workaround non-stop moribund locations exploited by kernel utrace (BZ 590623).
|
|
Patch459: gdb-moribund-utrace-workaround.patch
|
|
|
|
# Remove core file when starting a process (BZ 594560).
|
|
Patch461: gdb-bz594560-core-vs-process.patch
|
|
|
|
# Fix follow-exec for C++ programs (bugreported by Martin Stransky).
|
|
Patch470: gdb-archer-next-over-throw-cxx-exec.patch
|
|
|
|
# Backport DWARF-4 support (BZ 601887, Tom Tromey).
|
|
Patch475: gdb-bz601887-dwarf4-rh-test.patch
|
|
|
|
# Print 2D C++ vectors as matrices (BZ 562763, sourceware10659, Chris Moller).
|
|
Patch486: gdb-bz562763-pretty-print-2d-vectors.patch
|
|
Patch487: gdb-bz562763-pretty-print-2d-vectors-libstdcxx.patch
|
|
|
|
# Fix prelinked executables with sepdebug and copy relocations (BZ 614659).
|
|
Patch489: gdb-bz614659-prelink-dynbss.patch
|
|
|
|
# Provide /usr/bin/gdb-add-index for rpm-build (Tom Tromey).
|
|
Patch491: gdb-gdb-add-index-script.patch
|
|
|
|
# Fix gcore from very small terminal windows (BZ 555076).
|
|
Patch493: gdb-bz555076-gcore-small-height.patch
|
|
|
|
# Out of memory is just an error, not fatal (uninitialized VLS vars, BZ 568248).
|
|
Patch496: gdb-bz568248-oom-is-error.patch
|
|
|
|
# Workaround false GCC warning(s).
|
|
Patch497: gdb-false-gcc-warning.patch
|
|
|
|
# Fix readline 5.1 warnings
|
|
Patch1000: readline-5.1-random.patch
|
|
# Upstream patch to fix gcc -Werror
|
|
Patch1002: gdb-6.6-buildid-locate-rpm-suse.patch
|
|
# Fix build on hppa
|
|
Patch1003: gdb-hppa.patch
|
|
|
|
BuildRequires: bison flex gettext glibc-devel ncurses-devel texinfo zlib-devel
|
|
%if %{suse_version} < 1020
|
|
BuildRequires: expat
|
|
%else
|
|
BuildRequires: libexpat-devel
|
|
%endif
|
|
BuildRequires: readline-devel
|
|
BuildRequires: zlib-devel
|
|
%if 0%{!?_without_python:1}
|
|
%if 0%{suse_version} > 1000
|
|
Requires: python-base
|
|
%endif
|
|
BuildRequires: python-devel
|
|
%endif # 0%{!?_without_python:1}
|
|
|
|
%if 0%{?_with_testsuite:1}
|
|
|
|
# Ensure the devel libraries are installed for both multilib arches.
|
|
%define bits_local %{?_isa}
|
|
%define bits_other %{?_isa}
|
|
%if 0%{!?el5:1}
|
|
%ifarch s390x
|
|
%define bits_other (%{__isa_name}-32)
|
|
%else #!s390x
|
|
%ifarch ppc
|
|
%define bits_other (%{__isa_name}-64)
|
|
%else #!ppc
|
|
%ifarch sparc64 ppc64 s390x x86_64
|
|
%define bits_other (%{__isa_name}-32)
|
|
%endif #sparc64 ppc64 s390x x86_64
|
|
%endif #!ppc
|
|
%endif #!s390x
|
|
%endif #!el5
|
|
|
|
BuildRequires: dejagnu sharutils
|
|
# 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.
|
|
%ifarch %{ix86} x86_64 ia64 ppc alpha
|
|
BuildRequires: gcc-ada
|
|
%endif
|
|
BuildRequires: glibc-devel-32bit
|
|
%if 0%{suse_version} > 1120
|
|
BuildRequires: gcc-c++-32bit
|
|
%endif
|
|
|
|
%endif # 0%{?_with_testsuite:1}
|
|
|
|
%ifarch ia64
|
|
BuildRequires: libunwind-devel
|
|
Requires: libunwind
|
|
%endif
|
|
|
|
PreReq: %install_info_prereq
|
|
|
|
%description
|
|
GDB, the GNU debugger, allows you to debug programs written in C, C++,
|
|
Java, and other languages, by executing them in a controlled fashion
|
|
and printing their data.
|
|
|
|
%if %{suse_version} > 1010
|
|
|
|
%package -n gdbserver
|
|
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
|
|
Summary: A standalone server for GDB (the GNU source-level debugger)
|
|
Group: Development/Debuggers
|
|
|
|
%description -n gdbserver
|
|
GDB, the GNU debugger, allows you to debug programs written in C, C++,
|
|
Java, and other languages, by executing them in a controlled fashion
|
|
and printing their data.
|
|
|
|
This package provides a program that allows you to run GDB on a different
|
|
machine than the one which is running the program being debugged.
|
|
%endif
|
|
|
|
%prep
|
|
|
|
# This allows the tarball name to be different from our
|
|
# version-release name.
|
|
|
|
%setup -q -n %{gdb_src}
|
|
|
|
# libstdc++ pretty printers.
|
|
# Disabled now for F-14 before rebase.
|
|
#tar xjf %{SOURCE4}
|
|
|
|
# Files have `# <number> <file>' statements breaking VPATH / find-debuginfo.sh .
|
|
rm -f gdb/ada-exp.c gdb/ada-lex.c gdb/c-exp.c gdb/cp-name-parser.c gdb/f-exp.c
|
|
rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
|
|
|
|
# Apply patches defined above.
|
|
|
|
# Match the Fedora's version info.
|
|
%patch2 -p1
|
|
|
|
%if 0%{!?_with_upstream:1}
|
|
|
|
%patch232 -p1
|
|
%patch349 -p1
|
|
%patch420 -p1
|
|
%patch1 -p1
|
|
%patch3 -p1
|
|
|
|
%patch104 -p1
|
|
%patch105 -p1
|
|
%patch106 -p1
|
|
%patch111 -p1
|
|
%patch112 -p1
|
|
%patch118 -p1
|
|
%patch122 -p1
|
|
%patch125 -p1
|
|
%patch133 -p1
|
|
%patch136 -p1
|
|
%patch140 -p1
|
|
%patch141 -p1
|
|
%patch259 -p1
|
|
%patch142 -p1
|
|
%patch145 -p1
|
|
%patch148 -p1
|
|
%patch153 -p1
|
|
%patch157 -p1
|
|
%patch158 -p1
|
|
%patch160 -p1
|
|
%patch161 -p1
|
|
%patch162 -p1
|
|
%patch163 -p1
|
|
%patch164 -p1
|
|
%patch169 -p1
|
|
%patch170 -p1
|
|
%patch176 -p1
|
|
%patch188 -p1
|
|
%patch190 -p1
|
|
%patch194 -p1
|
|
%patch196 -p1
|
|
%patch199 -p1
|
|
%patch208 -p1
|
|
%patch209 -p1
|
|
%patch211 -p1
|
|
%patch213 -p1
|
|
%patch214 -p1
|
|
%patch216 -p1
|
|
%patch217 -p1
|
|
%patch225 -p1
|
|
%patch229 -p1
|
|
%patch231 -p1
|
|
%patch234 -p1
|
|
%patch235 -p1
|
|
%patch241 -p1
|
|
%patch245 -p1
|
|
%patch247 -p1
|
|
%patch254 -p1
|
|
%patch258 -p1
|
|
%patch260 -p1
|
|
%patch261 -p1
|
|
%patch263 -p1
|
|
%patch265 -p1
|
|
%patch266 -p1
|
|
%patch271 -p1
|
|
%patch274 -p1
|
|
%patch353 -p1
|
|
%patch282 -p1
|
|
%patch284 -p1
|
|
%patch287 -p1
|
|
%patch289 -p1
|
|
%patch290 -p1
|
|
%patch293 -p1
|
|
%patch294 -p1
|
|
%patch296 -p1
|
|
%patch298 -p1
|
|
%patch304 -p1
|
|
%patch309 -p1
|
|
%patch311 -p1
|
|
%patch315 -p1
|
|
%patch317 -p1
|
|
%patch318 -p1
|
|
%patch320 -p1
|
|
%patch324 -p1
|
|
%patch326 -p1
|
|
%patch329 -p1
|
|
%patch330 -p1
|
|
%patch331 -p1
|
|
%patch332 -p1
|
|
%patch337 -p1
|
|
%patch343 -p1
|
|
%patch348 -p1
|
|
%patch360 -p1
|
|
%patch381 -p1
|
|
%patch382 -p1
|
|
%patch391 -p1
|
|
%patch392 -p1
|
|
%patch397 -p1
|
|
%patch403 -p1
|
|
%patch404 -p1
|
|
%patch405 -p1
|
|
%patch389 -p1
|
|
%patch394 -p1
|
|
%patch407 -p1
|
|
%patch408 -p1
|
|
%patch412 -p1
|
|
%patch417 -p1
|
|
%patch451 -p1
|
|
%patch454 -p1
|
|
%patch459 -p1
|
|
%patch461 -p1
|
|
%patch470 -p1
|
|
%patch475 -p1
|
|
%patch486 -p1
|
|
# This patch should be applied to gcc-4.5+.src.rpm:
|
|
#patch487 -p1
|
|
%patch489 -p1
|
|
%patch491 -p1
|
|
%patch493 -p1
|
|
%patch496 -p1
|
|
%patch497 -p1
|
|
|
|
%patch1000
|
|
%patch1002 -p1
|
|
%patch1003
|
|
|
|
find -name "*.orig" | xargs rm -f
|
|
! find -name "*.rej" # Should not happen.
|
|
|
|
%endif # 0%{!?_with_upstream:1}
|
|
|
|
# Change the version that gets printed at GDB startup, so it is SUSE
|
|
# specific.
|
|
# Fedora (%{version}-%{release})
|
|
# Red Hat Enterprise Linux (%{version}-%{release})
|
|
cat > gdb/version.in << _FOO
|
|
SUSE (%{version}-%{release})
|
|
_FOO
|
|
|
|
# Remove the info and other generated files added by the FSF release
|
|
# process.
|
|
rm -f libdecnumber/gstdint.h
|
|
rm -f bfd/doc/*.info
|
|
rm -f bfd/doc/*.info-*
|
|
rm -f gdb/doc/*.info
|
|
rm -f gdb/doc/*.info-*
|
|
|
|
%build
|
|
|
|
# Identify the build directory with the version of gdb as well as the
|
|
# architecture, to allow for mutliple versions to be installed and
|
|
# built.
|
|
# Initially we're in the %{gdb_src} directory.
|
|
|
|
for fprofile in %{?_with_profile:-fprofile} ""
|
|
do
|
|
|
|
mkdir %{gdb_build}$fprofile
|
|
cd %{gdb_build}$fprofile
|
|
|
|
# g77 executable is no longer present in Fedora gcc-4.x+.
|
|
g77="`which gfortran 2>/dev/null || true`"
|
|
test -z "$g77" || ln -s "$g77" ./g77
|
|
|
|
export CFLAGS="$RPM_OPT_FLAGS"
|
|
|
|
%if 0%{?_with_debug:1}
|
|
# --enable-werror could conflict with `-Wall -O0' but this is no longer true
|
|
# for recent GCCs.
|
|
CFLAGS="$CFLAGS -O0 -ggdb2"
|
|
%endif
|
|
|
|
../configure \
|
|
--prefix=%{_prefix} \
|
|
--libdir=%{_libdir} \
|
|
--sysconfdir=%{_sysconfdir} \
|
|
--mandir=%{_mandir} \
|
|
--infodir=%{_infodir} \
|
|
--with-gdb-datadir=%{_datadir}/gdb \
|
|
--with-pythondir=%{_datadir}/gdb/python \
|
|
--enable-gdb-build-warnings=,-Wno-unused \
|
|
%ifnarch %{ix86} alpha ia64 ppc s390 s390x x86_64 ppc64 sparcv9 sparc64
|
|
--disable-werror \
|
|
%else
|
|
%if 0%{?_with_upstream:1}
|
|
--disable-werror \
|
|
%else
|
|
--enable-werror \
|
|
%endif
|
|
%endif
|
|
--with-separate-debug-dir=/usr/lib/debug \
|
|
--disable-sim \
|
|
--disable-rpath \
|
|
--with-system-readline \
|
|
--with-expat \
|
|
$(: ppc64 host build crashes on ppc variant of libexpat.so ) \
|
|
--without-libexpat-prefix \
|
|
--enable-tui \
|
|
%if 0%{!?_without_python:1}
|
|
--with-python \
|
|
%else
|
|
--without-python \
|
|
%endif
|
|
--without-rpm \
|
|
%ifarch ia64
|
|
--with-libunwind \
|
|
%else
|
|
--without-libunwind \
|
|
%endif
|
|
--enable-64-bit-bfd \
|
|
%if 0%{?_with_debug:1}
|
|
--enable-static --disable-shared --enable-debug \
|
|
%endif
|
|
%ifarch sparcv9
|
|
sparc-%{_vendor}-%{_target_os}%{?_gnu}
|
|
%else
|
|
%{_target_platform}
|
|
%endif
|
|
|
|
if [ -z "%{!?_with_profile:no}" ]
|
|
then
|
|
# Run all the configure tests being incompatible with $FPROFILE_CFLAGS.
|
|
make %{?_smp_mflags} configure-host configure-target
|
|
make %{?_smp_mflags} clean
|
|
|
|
# Workaround -fprofile-use:
|
|
# linux-x86-low.c:2225: Error: symbol `start_i386_goto' is already defined
|
|
make %{?_smp_mflags} -C gdb/gdbserver linux-x86-low.o
|
|
fi
|
|
|
|
# Global CFLAGS would fail on:
|
|
# conftest.c:1:1: error: coverage mismatch for function 'main' while reading counter 'arcs'
|
|
if [ "$fprofile" = "-fprofile" ]
|
|
then
|
|
FPROFILE_CFLAGS='-fprofile-generate'
|
|
elif [ -z "%{!?_with_profile:no}" ]
|
|
then
|
|
FPROFILE_CFLAGS='-fprofile-use'
|
|
# We cannot use -fprofile-dir as the bare filenames clash.
|
|
(cd ../%{gdb_build}-fprofile;
|
|
# It was 333 on x86_64.
|
|
test $(find -name "*.gcda"|wc -l) -gt 300
|
|
find -name "*.gcda" | while read -r i
|
|
do
|
|
ln $i ../%{gdb_build}/$i
|
|
done
|
|
)
|
|
else
|
|
FPROFILE_CFLAGS=""
|
|
fi
|
|
|
|
make %{?_smp_mflags} CFLAGS="$CFLAGS $FPROFILE_CFLAGS" LDFLAGS="$FPROFILE_CFLAGS"
|
|
|
|
if [ "$fprofile" = "-fprofile" ]
|
|
then
|
|
cd gdb
|
|
cp -p gdb gdb-withindex
|
|
PATH="$PWD:$PATH" sh ../../gdb/gdb-add-index $PWD/gdb-withindex
|
|
./gdb -nx -ex q ./gdb-withindex
|
|
./gdb -nx -readnow -ex q ./gdb-withindex
|
|
cd ..
|
|
fi
|
|
|
|
cd ..
|
|
|
|
done # fprofile
|
|
|
|
cd %{gdb_build}
|
|
|
|
make %{?_smp_mflags} info
|
|
|
|
grep '#define HAVE_ZLIB_H 1' gdb/config.h
|
|
|
|
# Copy the <sourcetree>/gdb/NEWS file to the directory above it.
|
|
cp $RPM_BUILD_DIR/%{gdb_src}/gdb/NEWS $RPM_BUILD_DIR/%{gdb_src}
|
|
|
|
%check
|
|
# Initially we're in the %{gdb_src} directory.
|
|
cd %{gdb_build}
|
|
|
|
%if 0%{!?_with_testsuite:1}
|
|
echo ====================TESTSUITE DISABLED=========================
|
|
%else
|
|
echo ====================TESTING=========================
|
|
cd gdb
|
|
gcc -o ./orphanripper %{SOURCE2} -Wall -lutil -ggdb2
|
|
# Need to use a single --ignore option, second use overrides first.
|
|
# No `%{?_smp_mflags}' here as it may race.
|
|
# WARNING: can't generate a core file - core tests suppressed - check ulimit
|
|
# "readline-overflow.exp" - Testcase is broken, functionality is OK.
|
|
(
|
|
# ULIMIT required for `gdb.base/auxv.exp'.
|
|
ulimit -H -c
|
|
ulimit -c unlimited || :
|
|
|
|
# Setup $CHECK as `check//unix/' or `check//unix/-m64' for explicit bitsize.
|
|
# Never use two different bitsizes as it fails on ppc64.
|
|
echo 'int main (void) { return 0; }' >biarch.c
|
|
CHECK=""
|
|
for BI in -m64 -m32 -m31 ""
|
|
do
|
|
# Do not use size-less options if any of the sizes works.
|
|
# On ia64 there is no -m64 flag while we must not leave a bare `check' here
|
|
# as it would switch over some testing scripts to the backward compatibility
|
|
# mode: when `make check' was executed from inside the testsuite/ directory.
|
|
if [ -z "$BI" -a -n "$CHECK" ];then
|
|
continue
|
|
fi
|
|
# Do not use $RPM_OPT_FLAGS as the other non-size options will not be used
|
|
# in the real run of the testsuite.
|
|
if ! gcc $BI -o biarch biarch.c
|
|
then
|
|
continue
|
|
fi
|
|
CHECK="$CHECK check//unix/$BI"
|
|
done
|
|
# Do not try -m64 inferiors for -m32 GDB as it cannot handle inferiors larger
|
|
# than itself.
|
|
# s390 -m31 still uses the standard ELF32 binary format.
|
|
gcc $RPM_OPT_FLAGS -o biarch biarch.c
|
|
RPM_SIZE="$(file ./biarch|sed -n 's/^.*: ELF \(32\|64\)-bit .*$/\1/p')"
|
|
if [ "$RPM_SIZE" != "64" ]
|
|
then
|
|
CHECK="$(echo " $CHECK "|sed 's# check//unix/-m64 # #')"
|
|
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/bigcore.exp \
|
|
; do
|
|
mv -f ../../gdb/testsuite/$test ../gdb/testsuite/$test-DISABLED || :
|
|
done
|
|
|
|
%if 0%{!?_with_upstream:1}
|
|
# Run all the scheduled testsuite runs also in the PIE mode.
|
|
# Upstream GDB would lock up the testsuite run for too long on its failures.
|
|
CHECK="$(echo $CHECK|sed 's#check//unix/[^ ]*#& &/-fPIE/-pie#g')"
|
|
%endif # 0%{!?_with_upstream:1}
|
|
|
|
./orphanripper make %{?_smp_mflags} -k $CHECK \
|
|
$(: Serialize the output to keep the order for regression checks. ) \
|
|
%if 0%{?el5:1}
|
|
RUNTESTFLAGS="--tool gdb" \
|
|
%endif
|
|
|| :
|
|
)
|
|
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}
|
|
uuencode gdb-%{_target_platform}.tar.bz2 gdb-%{_target_platform}.tar.bz2
|
|
cd ../..
|
|
echo ====================TESTING END=====================
|
|
%endif
|
|
|
|
%install
|
|
# Initially we're in the %{gdb_src} directory.
|
|
cd %{gdb_build}
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
|
make %{?_smp_mflags} install DESTDIR=$RPM_BUILD_ROOT
|
|
|
|
# install the gcore script in /usr/bin
|
|
cp $RPM_BUILD_DIR/%{gdb_src}/gdb/gdb_gcore.sh $RPM_BUILD_ROOT%{_bindir}/gcore
|
|
chmod 755 $RPM_BUILD_ROOT%{_bindir}/gcore
|
|
|
|
# Remove the gdb/gdbtui binaries duplicity.
|
|
test -x $RPM_BUILD_ROOT%{_prefix}/bin/gdbtui
|
|
ln -sf gdb $RPM_BUILD_ROOT%{_prefix}/bin/gdbtui
|
|
cmp $RPM_BUILD_ROOT%{_mandir}/*/gdb.1 $RPM_BUILD_ROOT%{_mandir}/*/gdbtui.1
|
|
ln -sf gdb.1 $RPM_BUILD_ROOT%{_mandir}/*/gdbtui.1
|
|
|
|
# Disabled now for F-14 before rebase.
|
|
#%if 0%{!?_without_python:1}
|
|
## Temporarily now:
|
|
#for LIB in lib lib64;do
|
|
# LIBPATH="$RPM_BUILD_ROOT%{_datadir}/gdb/auto-load%{_prefix}/$LIB"
|
|
# mkdir -p $LIBPATH
|
|
# # basename is being run only for the native (non-biarch) file.
|
|
# sed -e 's,@pythondir@,%{_datadir}/gdb/python,' \
|
|
# -e 's,@toolexeclibdir@,%{_prefix}/'"$LIB," \
|
|
# < $RPM_BUILD_DIR/%{gdb_src}/%{libstdcxxpython}/hook.in \
|
|
# > $LIBPATH/$(basename %{_prefix}/%{_lib}/libstdc++.so.6.*)-gdb.py
|
|
#done
|
|
#test ! -e $RPM_BUILD_ROOT%{_datadir}/gdb/python/libstdcxx
|
|
#cp -a $RPM_BUILD_DIR/%{gdb_src}/%{libstdcxxpython}/libstdcxx \
|
|
# $RPM_BUILD_ROOT%{_datadir}/gdb/python/libstdcxx
|
|
#%endif # 0%{!?_without_python:1}
|
|
|
|
# Remove the files that are part of a gdb build but that are owned and
|
|
# provided by other packages.
|
|
# These are part of binutils
|
|
|
|
rm -rf $RPM_BUILD_ROOT%{_datadir}/locale/
|
|
rm -f $RPM_BUILD_ROOT%{_infodir}/bfd*
|
|
rm -f $RPM_BUILD_ROOT%{_infodir}/standard*
|
|
rm -f $RPM_BUILD_ROOT%{_infodir}/mmalloc*
|
|
rm -f $RPM_BUILD_ROOT%{_infodir}/configure*
|
|
rm -rf $RPM_BUILD_ROOT%{_includedir}
|
|
rm -rf $RPM_BUILD_ROOT/%{_libdir}/lib{bfd*,opcodes*,iberty*,mmalloc*}
|
|
|
|
# Delete this too because the dir file will be updated at rpm install time.
|
|
# We don't want a gdb specific one overwriting the system wide one.
|
|
|
|
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
|
|
|
%if 0%{!?_with_upstream:1}
|
|
# pstack obsoletion
|
|
|
|
cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_mandir}/man1/gstack.1
|
|
%endif # 0%{!?_with_upstream:1}
|
|
|
|
%clean
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
|
%post
|
|
# This step is part of the installation of the RPM. Not to be confused
|
|
# with the 'make install ' of the build (rpmbuild) process.
|
|
|
|
# For --excludedocs:
|
|
if [ -e %{_infodir}/gdb.info.gz ]
|
|
then
|
|
%install_info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz
|
|
%install_info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz
|
|
%install_info --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz
|
|
%install_info --info-dir=%{_infodir} %{_infodir}/stabs.info.gz
|
|
fi
|
|
|
|
%preun
|
|
if [ $1 = 0 ]
|
|
then
|
|
# For --excludedocs:
|
|
if [ -e %{_infodir}/gdb.info.gz ]
|
|
then
|
|
%install_info_delete --delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz
|
|
%install_info_delete --delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz
|
|
%install_info_delete --delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz
|
|
%install_info_delete --delete --info-dir=%{_infodir} %{_infodir}/stabs.info.gz
|
|
fi
|
|
fi
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%doc COPYING3 COPYING COPYING.LIB README NEWS
|
|
%{_bindir}/gcore
|
|
%{_bindir}/gdb
|
|
%{_bindir}/gdbtui
|
|
%{_bindir}/gdb-add-index
|
|
%{_mandir}/*/gdb.1*
|
|
%{_mandir}/*/gdbtui.1*
|
|
%if 0%{!?_with_upstream:1}
|
|
%{_bindir}/gstack
|
|
%{_mandir}/*/gstack.1*
|
|
%endif # 0%{!?_with_upstream:1}
|
|
%{_datadir}/gdb
|
|
%{_infodir}/annotate.info*
|
|
%{_infodir}/gdb.info*
|
|
%{_infodir}/gdbint.info*
|
|
%{_infodir}/stabs.info*
|
|
# In SLE10 gdbserver is not in a separate package
|
|
%if %{suse_version} <= 1010
|
|
%{_bindir}/gdbserver
|
|
%{_mandir}/*/gdbserver.1*
|
|
%endif
|
|
|
|
# don't include the files in include, they are part of binutils
|
|
|
|
%if %{suse_version} > 1010
|
|
%ifnarch sparcv9 hppa
|
|
|
|
%files -n gdbserver
|
|
%defattr(-,root,root)
|
|
%{_bindir}/gdbserver
|
|
%{_mandir}/*/gdbserver.1*
|
|
%ifnarch s390 s390x ia64 ppc
|
|
%{_libdir}/libinproctrace.so
|
|
%endif
|
|
%endif
|
|
%endif
|
|
|
|
%changelog
|