This commit is contained in:
committed by
Git OBS Bridge
parent
11cccbc678
commit
ca95d1dab0
750
gdb.spec
750
gdb.spec
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package gdb (Version 6.8.50.20090216)
|
||||
# spec file for package gdb (Version 6.8.50.20090302)
|
||||
#
|
||||
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
@@ -16,54 +16,306 @@
|
||||
#
|
||||
|
||||
|
||||
Summary: The GNU Debugger
|
||||
|
||||
Name: gdb
|
||||
Summary: The GNU Debugger
|
||||
Version: 6.8.50.20090216
|
||||
Release: 3
|
||||
BuildRequires: bison dejagnu flex gcc-c++ gcc-fortran gcc-java gcc-objc python-devel readline-devel zlib-devel
|
||||
%if 0%{?suse_version} > 1020
|
||||
BuildRequires: libexpat-devel
|
||||
%else
|
||||
BuildRequires: expat
|
||||
%endif
|
||||
%ifarch ia64
|
||||
BuildRequires: libunwind-devel
|
||||
%endif
|
||||
%ifnarch ppc64 s390x
|
||||
BuildRequires: gcc-ada
|
||||
%endif
|
||||
Url: http://www.gnu.org/software/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: 6.8.50.20090302
|
||||
Release: 1
|
||||
# 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: GNU Free Documentation License, Version 1.2 (GFDL 1.2); GPL v2 or later; GPL v3 or later
|
||||
Group: Development/Tools/Debuggers
|
||||
AutoReqProv: on
|
||||
%ifarch ppc64
|
||||
Obsoletes: gdb-64bit
|
||||
%endif
|
||||
PreReq: %{install_info_prereq}
|
||||
Recommends: python
|
||||
%define sss -cvs
|
||||
Source: ftp://sourceware.org/pub/gdb/releases/gdb-%{version}.tar.bz2
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Source: gdb-%{version}%{sss}.tar.bz2
|
||||
Patch: cell-combined.diff
|
||||
Patch1: find-pc-sect-line.diff
|
||||
Patch3: readline-5.1-random.patch
|
||||
Patch4: readnever.patch
|
||||
Patch5: gstack.patch
|
||||
Patch6: sect-index-text.diff
|
||||
Patch7: pie-relocate.diff
|
||||
Patch8: find-separate-debug-file.diff
|
||||
Patch9: fix-gdb-backtrace.diff
|
||||
Patch10: expand-line-sal-maybe.diff
|
||||
Patch11: gdb-readline6.patch
|
||||
# Patches from Fedora
|
||||
# Fix/implement the Fortran dynamic arrays support (BZ 377541).
|
||||
# Fix the variable-length-arrays support (BZ 468266, feature BZ 377541).
|
||||
Patch305: gdb-6.8-bz377541-vla.patch
|
||||
Url: http://www.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
|
||||
Patch4: gdb-6.3-rh-testlibunwind1fix-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
|
||||
# Fix to display base constructors from list and breakpoint commands
|
||||
Patch116: gdb-6.3-linespec-20041213.patch
|
||||
# Continue removing breakpoints even when failure occurs.
|
||||
Patch117: gdb-6.3-removebp-20041130.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
|
||||
Patch124: gdb-6.3-pie-20050110.patch
|
||||
# Get selftest working with sep-debug-info
|
||||
Patch125: gdb-6.3-test-self-20050110.patch
|
||||
# Fix for non-threaded watchpoints.
|
||||
Patch128: gdb-6.3-nonthreaded-wp-20050117.patch
|
||||
# Fix to support multiple destructors just like multiple constructors
|
||||
Patch133: gdb-6.3-test-dtorfix-20050121.patch
|
||||
Patch134: gdb-6.3-dtorfix-20050121.patch
|
||||
# Fix to support executable moving
|
||||
Patch136: gdb-6.3-test-movedir-20050125.patch
|
||||
# Fix to support unwinding syscalls in ia64 corefiles
|
||||
# Patch138: gdb-6.3-ia64-corefile-fix-20050127.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
|
||||
# Print a warning when the separate debug info's CRC doesn't match.
|
||||
Patch150: gdb-6.3-test-sepcrc-20050402.patch
|
||||
Patch151: gdb-6.3-sepcrc-20050402.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 frame pointer for ia64 sigtramp frame
|
||||
Patch166: gdb-6.3-ia64-sigtramp-fp-20050926.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
|
||||
# Hard-code executable names in gstack, such that it can run with a
|
||||
# corrupted or missing PATH.
|
||||
Patch177: gdb-6.3-gstack-without-path-20060414.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 objects with separate .debug file (-debuginfo).
|
||||
Patch195: gdb-6.5-tls-of-separate-debuginfo.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
|
||||
# Fix dereferencing registers for 32bit inferiors on 64bit hosts (BZ 181390).
|
||||
Patch200: gdb-6.5-bz181390-memory-address-width.patch
|
||||
# Fix `gcore' command for 32bit inferiors on 64bit hosts.
|
||||
Patch201: gdb-6.5-gcore-i386-on-amd64.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
|
||||
# Try to reduce sideeffects of skipping ppc .so libs trampolines (BZ 218379).
|
||||
Patch215: gdb-6.5-bz218379-ppc-solib-trampoline-fix.patch
|
||||
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 post gdb-6.8 release fixups.
|
||||
###Patch232: gdb-6.8-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 prelink(8) testcase for non-root $PATH missing `/usr/sbin' (BZ 225783).
|
||||
Patch240: gdb-6.6-bz225783-prelink-path.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
|
||||
# New testcase for gcore of 32bit inferiors on 64bit hosts.
|
||||
Patch249: gdb-6.6-gcore32-test.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 hardware watchpoints after inferior forks-off some process.
|
||||
# Threaded `set follow-fork-mode child' still not fixed there, glibc fixes reqd.
|
||||
# `set detach-on-fork off' not fixed there in general - it already assert-fails.
|
||||
Patch280: gdb-6.6-multifork-debugreg.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 crash on a sw watchpoint condition getting out of the scope.
|
||||
Patch314: gdb-6.3-watchpoint-cond-gone-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
|
||||
# Refuse creating watchpoints of an address value, suggested by Martin Stransky.
|
||||
Patch322: gdb-6.8-constant-watchpoints.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
|
||||
# Support transparent debugging of inlined functions for an optimized code.
|
||||
Patch327: gdb-6.8-inlining.patch
|
||||
Patch350: gdb-6.8-inlining-addon.patch
|
||||
Patch328: gdb-6.8-inlining-by-name.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
|
||||
# bare names of constructors and destructors should be unique for GDB-6.8+.
|
||||
Patch334: gdb-6.8-ctors-dtors-unique.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
|
||||
# Fix parsing elf64-i386 files for kdump PAE vmcore dumps (BZ 457187).
|
||||
# - Turn on 64-bit BFD support, globally enable AC_SYS_LARGEFILE.
|
||||
Patch352: gdb-6.8-bz457187-largefile.patch
|
||||
# Fix crash on pretty-printer reading uninitialized std::string (BZ 495781).
|
||||
Patch357: gdb-c_get_string-xfree.patch
|
||||
# Fix crash in the charset support.
|
||||
Patch359: gdb-charset-crash.patch
|
||||
# Fix readline 5.1 warnings
|
||||
Patch1000: readline-5.1-random.patch
|
||||
Patch1001: gdb-readline6.patch
|
||||
BuildRequires: bison flex gettext glibc-devel libexpat-devel ncurses-devel texinfo zlib-devel
|
||||
BuildRequires: readline-devel
|
||||
# dlopen() no longer makes rpm-libs a mandatory dependency.
|
||||
#Requires: rpm-libs
|
||||
BuildRequires: rpm-devel
|
||||
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
|
||||
BuildRequires: python-devel
|
||||
# Temporarily before it gets moved to libstdc++.rpm
|
||||
BuildRequires: libstdc++
|
||||
%if 0%{?_with_testsuite:1}
|
||||
BuildRequires: dejagnu sharutils
|
||||
# gcc-objc++ is not covered by the GDB testsuite.
|
||||
BuildRequires: gcc gcc-c++ gcc-gfortran gcc-java gcc-objc
|
||||
# Ensure the devel libraries are installed for both multilib arches.
|
||||
%define multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||
# Copied from gcc-4.1.2-32
|
||||
%ifarch %{ix86} x86_64 ia64 ppc alpha
|
||||
BuildRequires: gcc-ada
|
||||
%ifarch %{multilib_64_archs} ppc
|
||||
BuildRequires: %{_exec_prefix}/lib/libgnat-4.4.so %{_exec_prefix}/lib64/libgnat-4.4.so
|
||||
%endif
|
||||
%endif
|
||||
%ifarch %{multilib_64_archs} sparc sparcv9 ppc
|
||||
BuildRequires: %{_exec_prefix}/lib/libc.so %{_exec_prefix}/lib64/libc.so /lib/libc.so.6 /lib64/libc.so.6
|
||||
BuildRequires: /lib/libgcc_s.so.1 /lib64/libgcc_s.so.1
|
||||
BuildRequires: %{_exec_prefix}/lib/libstdc++.so.6 %{_exec_prefix}/lib64/libstdc++.so.6
|
||||
BuildRequires: %{_exec_prefix}/lib/libgcj.so.10 %{_exec_prefix}/lib64/libgcj.so.10
|
||||
%endif
|
||||
%endif
|
||||
%ifarch ia64
|
||||
BuildRequires: libunwind-devel
|
||||
Requires: libunwind
|
||||
%endif
|
||||
Requires(post): /sbin/install-info
|
||||
Requires(preun): /sbin/install-info
|
||||
|
||||
%description
|
||||
You can use GDB to debug programs written in C, C++, Ada, and Modula-2.
|
||||
@@ -93,8 +345,6 @@ Authors:
|
||||
License: GPL v2 or later; GPL v3 or later
|
||||
Summary: Remote Server for the GNU Debugger
|
||||
Group: Development/Tools/Debuggers
|
||||
AutoReqProv: on
|
||||
Provides: gdb:/usr/bin/gdbserver
|
||||
|
||||
%description -n gdbserver
|
||||
GDBSERVER is a program that allows you to run GDB on a different
|
||||
@@ -121,98 +371,388 @@ Authors:
|
||||
Stu Grossman <grossman@cygnus.com>
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}%{sss}
|
||||
%patch
|
||||
%patch1
|
||||
%patch3
|
||||
%patch4
|
||||
%patch5
|
||||
%patch6
|
||||
%patch7
|
||||
%patch8
|
||||
%patch9
|
||||
%patch10
|
||||
%patch11
|
||||
%patch305 -p1
|
||||
# This allows the tarball name to be different from our
|
||||
# version-release name.
|
||||
%setup -q -n %{gdb_src}
|
||||
# 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
|
||||
%patch1 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch104 -p1
|
||||
%patch105 -p1
|
||||
%patch106 -p1
|
||||
%patch111 -p1
|
||||
%patch112 -p1
|
||||
%patch116 -p1
|
||||
%patch117 -p1
|
||||
%patch118 -p1
|
||||
%patch122 -p1
|
||||
%patch125 -p1
|
||||
%patch128 -p1
|
||||
%patch133 -p1
|
||||
%patch134 -p1
|
||||
%patch136 -p1
|
||||
%patch140 -p1
|
||||
%patch141 -p1
|
||||
%patch259 -p1
|
||||
%patch142 -p1
|
||||
%patch145 -p1
|
||||
%patch148 -p1
|
||||
%patch150 -p1
|
||||
%patch151 -p1
|
||||
%patch153 -p1
|
||||
%patch157 -p1
|
||||
%patch158 -p1
|
||||
%patch160 -p1
|
||||
%patch161 -p1
|
||||
%patch162 -p1
|
||||
%patch163 -p1
|
||||
%patch164 -p1
|
||||
%patch166 -p1
|
||||
%patch169 -p1
|
||||
%patch170 -p1
|
||||
%patch176 -p1
|
||||
%patch177 -p1
|
||||
%patch188 -p1
|
||||
%patch190 -p1
|
||||
%patch194 -p1
|
||||
%patch195 -p1
|
||||
%patch196 -p1
|
||||
%patch199 -p1
|
||||
%patch200 -p1
|
||||
%patch201 -p1
|
||||
%patch208 -p1
|
||||
%patch209 -p1
|
||||
%patch211 -p1
|
||||
%patch213 -p1
|
||||
%patch214 -p1
|
||||
%patch215 -p1
|
||||
%patch216 -p1
|
||||
%patch217 -p1
|
||||
%patch225 -p1
|
||||
%patch229 -p1
|
||||
%patch231 -p1
|
||||
%patch234 -p1
|
||||
%patch235 -p1
|
||||
%patch240 -p1
|
||||
%patch241 -p1
|
||||
%patch245 -p1
|
||||
%patch247 -p1
|
||||
%patch249 -p1
|
||||
%patch254 -p1
|
||||
%patch258 -p1
|
||||
%patch260 -p1
|
||||
%patch261 -p1
|
||||
%patch263 -p1
|
||||
%patch265 -p1
|
||||
%patch266 -p1
|
||||
%patch271 -p1
|
||||
%patch274 -p1
|
||||
%patch353 -p1
|
||||
%patch280 -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
|
||||
%patch314 -p1
|
||||
%patch315 -p1
|
||||
%patch317 -p1
|
||||
%patch318 -p1
|
||||
%patch320 -p1
|
||||
%patch322 -p1
|
||||
%patch324 -p1
|
||||
%patch326 -p1
|
||||
%patch327 -p1
|
||||
%patch350 -p1
|
||||
%patch328 -p1
|
||||
%patch329 -p1
|
||||
%patch330 -p1
|
||||
%patch331 -p1
|
||||
%patch332 -p1
|
||||
%patch334 -p1
|
||||
%patch337 -p1
|
||||
%patch343 -p1
|
||||
%patch348 -p1
|
||||
%patch352 -p1
|
||||
%patch357 -p1
|
||||
%patch359 -p1
|
||||
%patch124 -p1
|
||||
%patch1000
|
||||
%if %{suse_version} > 1110
|
||||
%patch1001
|
||||
%endif
|
||||
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 Fedora
|
||||
# specific.
|
||||
cat > gdb/version.in << _FOO
|
||||
Fedora (%{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
|
||||
%ifarch %ix86 ia64 ppc ppc64 s390 s390x x86_64
|
||||
%define build_multitarget 1
|
||||
%else
|
||||
%define build_multitarget 0
|
||||
# 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.
|
||||
rm -fr %{gdb_build}
|
||||
mkdir %{gdb_build}
|
||||
cd %{gdb_build}
|
||||
# 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
|
||||
%define target_list i686 ia64 powerpc powerpc64 s390 s390x x86_64
|
||||
%define DIST %(echo '%distribution' | sed 's/ (.*)//')
|
||||
%if %build_multitarget
|
||||
EXTRA_TARGETS="%(printf ,%%s-suse-linux %target_list)"
|
||||
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
|
||||
../configure \
|
||||
--prefix=%{_prefix} \
|
||||
--libdir=%{_libdir} \
|
||||
--sysconfdir=%{_sysconfdir} \
|
||||
--mandir=%{_mandir} \
|
||||
--infodir=%{_infodir} \
|
||||
--with-gdb-datadir=%{_datadir}/gdb \
|
||||
--with-pythondir=%{python_sitelib} \
|
||||
--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
|
||||
EXTRA_TARGETS=
|
||||
--enable-werror \
|
||||
%endif
|
||||
./configure CFLAGS="$RPM_OPT_FLAGS" \
|
||||
--prefix=%{_prefix} --libdir=%{_libdir} --infodir=%{_infodir} \
|
||||
--mandir=%{_mandir} --with-system-readline \
|
||||
%endif
|
||||
--with-separate-debug-dir=/usr/lib/debug \
|
||||
--disable-sim \
|
||||
--disable-rpath \
|
||||
--with-system-readline \
|
||||
--with-expat \
|
||||
--enable-tui \
|
||||
--with-python \
|
||||
--without-rpm \
|
||||
%ifarch ia64
|
||||
--with-libunwind \
|
||||
--with-libunwind \
|
||||
%else
|
||||
--without-libunwind \
|
||||
--without-libunwind \
|
||||
%endif
|
||||
--with-separate-debug-dir=%{_prefix}/lib/debug \
|
||||
--enable-64-bit-bfd --disable-werror --disable-sim \
|
||||
--with-bugurl=http://bugs.opensuse.org/ --with-pkgversion="GDB; %{DIST}" \
|
||||
--build=%{_target_cpu}-suse-linux \
|
||||
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
|
||||
make %{?jobs:-j%jobs}
|
||||
make info
|
||||
--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
|
||||
make %{?_smp_mflags}
|
||||
make %{?_smp_mflags} info
|
||||
# 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
|
||||
ulimit -c $(ulimit -Hc)
|
||||
TERM=dumb \
|
||||
make -k 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
|
||||
# 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}
|
||||
for CURRENT in $CHECK
|
||||
do
|
||||
./orphanripper make -k $CURRENT || :
|
||||
done
|
||||
)
|
||||
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
|
||||
make install-gdb install-info-gdb DESTDIR="$RPM_BUILD_ROOT"
|
||||
install -m 755 gdb/gdb_gcore.sh $RPM_BUILD_ROOT%{_bindir}/gcore
|
||||
rm -f $RPM_BUILD_ROOT%{_bindir}/gdbtui
|
||||
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/gdbtui.1
|
||||
rm -f $RPM_BUILD_ROOT%{_infodir}/stabs.info*
|
||||
# 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
|
||||
# In the future:
|
||||
#%# A part of the libstdc++ rpm.
|
||||
#%rm -rf $RPM_BUILD_ROOT%{python_sitelib}/gdb/libstdcxx
|
||||
# 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,@dir@,%{python_sitelib}/gdb,' <$RPM_BUILD_DIR/%{gdb_src}/gdb/python/lib/gdb/libstdcxx/v6/hook.in \
|
||||
>$LIBPATH/$(basename %{_prefix}/%{_lib}/libstdc++.so.6.*)-gdb.py
|
||||
done
|
||||
# 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
|
||||
%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
|
||||
# This step is part of the installation of the RPM. Not to be confused
|
||||
# with the 'make install ' of the build (rpmbuild) process.
|
||||
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
|
||||
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
|
||||
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
|
||||
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
|
||||
|
||||
%postun
|
||||
%install_info_delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz
|
||||
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz
|
||||
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz
|
||||
%preun
|
||||
if [ $1 = 0 ]; then
|
||||
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
|
||||
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
|
||||
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
|
||||
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
|
||||
fi
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc COPYING COPYING.LIB gdb/README gdb/NEWS
|
||||
%{_bindir}/gdb
|
||||
%{_bindir}/gstack
|
||||
%doc COPYING COPYING.LIB README NEWS
|
||||
%{_bindir}/gcore
|
||||
%{_mandir}/man1/gdb.1.gz
|
||||
%{_infodir}/annotate.info*.gz
|
||||
%{_infodir}/gdb.info*.gz
|
||||
%{_infodir}/gdbint.info*.gz
|
||||
%ifnarch alpha sparc sparc64
|
||||
%{_bindir}/gdb
|
||||
%{_bindir}/gdbtui
|
||||
%{_mandir}/*/gdb.1*
|
||||
%{_mandir}/*/gdbtui.1*
|
||||
%if 0%{!?_with_upstream:1}
|
||||
%{_bindir}/gstack
|
||||
%{_mandir}/*/gstack.1*
|
||||
%{python_sitelib}/gdb
|
||||
%{_datadir}/gdb
|
||||
%endif # 0%{!?_with_upstream:1}
|
||||
%{_infodir}/annotate.info*
|
||||
%{_infodir}/gdb.info*
|
||||
%{_infodir}/gdbint.info*
|
||||
%{_infodir}/stabs.info*
|
||||
# don't include the files in include, they are part of binutils
|
||||
%ifnarch sparcv9
|
||||
|
||||
%files -n gdbserver
|
||||
%defattr(-,root,root)
|
||||
%doc gdb/gdbserver/README
|
||||
%{_bindir}/gdbserver
|
||||
%{_mandir}/man1/gdbserver.1.gz
|
||||
%{_mandir}/*/gdbserver.1*
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Apr 29 2009 rguenther@suse.de
|
||||
- Adjust package name and release to not contain macros.
|
||||
* Mon Apr 27 2009 rguenther@suse.de
|
||||
- Disable rpm support for locating debug info packages.
|
||||
* Mon Apr 27 2009 rguenther@suse.de
|
||||
- Switch to Fedora 11 source RPM.
|
||||
* includes partially merge from Archer. [bnc#329420, bnc#497141]
|
||||
* Tue Mar 10 2009 rguenther@suse.de
|
||||
- Add VLA support patch from Fedora to fix possible
|
||||
dwarf_expr_frame_base NULL checking regression.
|
||||
@@ -642,7 +1182,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
used it, and only gdbserver implemented it.
|
||||
* Sat Dec 02 2006 schwab@suse.de
|
||||
- Update to gdb 6.5.90.
|
||||
* Fri Oct 27 2006 schwab@suse.de
|
||||
* Sat Oct 28 2006 schwab@suse.de
|
||||
- Rename detach-fork to detach fork.
|
||||
* Tue Oct 24 2006 schwab@suse.de
|
||||
- Better fix for function descriptor handling on ppc64.
|
||||
@@ -667,7 +1207,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
- Fix a parallel build problem.
|
||||
* Tue Apr 04 2006 schwab@suse.de
|
||||
- Relocate PIEs.
|
||||
* Sun Mar 26 2006 schwab@suse.de
|
||||
* Mon Mar 27 2006 schwab@suse.de
|
||||
- Handle .eh_frame register encoding that is different from .dwarf_frame.
|
||||
- Remove obsolete patch.
|
||||
* Wed Jan 25 2006 mls@suse.de
|
||||
@@ -942,7 +1482,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
- add gdb-4.17.0.12 as /usr/bin/gdb-4.17
|
||||
* Wed Jul 07 1999 kukuk@suse.de
|
||||
- update to 4.18 using diff from jurix
|
||||
* Mon Feb 22 1999 ro@suse.de
|
||||
* Tue Feb 23 1999 ro@suse.de
|
||||
- update to 4.17.0.11 using diff from jurix
|
||||
* Thu Jan 21 1999 ro@suse.de
|
||||
- update to 4.17.0.8
|
||||
|
Reference in New Issue
Block a user