Files
gdb/gdb.spec
Tom de Vries c8226c1e04 Accepting request 991863 from home:tomdevries:branches:devel:gcc-gdb-gdb-12-1-update
- Maintenance script qa.sh:
  * Add SLE-12/x86_64 to "known clean configs".
  * Add fail for PR29405.
  * Add fail for PR26915.
- Patches added:
  * gdb-testsuite-fix-gdb.threads-killed-outside.exp-on-aarch64.patch
- Maintenance script qa.sh:
  * Remove PR29247 internal-error.
  * Add SLE-15/aarch64 to "known clean configs".
- Patches added:
  * gdb-fix-watchpoints-triggered.patch
- Maintenance script qa.sh:
  * Add kfails for PR25038, PR29253, and PR29423.
  * Remove gdb.mi/mi-var-invalidate-shlib.exp kfails.
- Mention qa-local.sh, qa-remote.sh and README.qa as sources.
- Maintenance script qa-local.sh:
  * Use have_combo consistently.
- Maintenance script qa.sh:
  * Add kfail_aarch64.
  * Add PR29419/PR29409 kfails.
  * Update PR29247 kfails.
- Patches added:
  * make-gdb.ada-float-bits.exp-more-generic.patch
  * gdb-testsuite-fix-gdb.ada-literals.exp-with-aarch64.patch
- Actually apply fixup-gdb-test-bt-cfi-without-die.patch and
  fixup-2-gdb-rhbz1553104-s390x-arch12-test.patch.
- Also remove gdb-6.5-readline-long-line-crash-test.patch from
  patches list in gdb.spec.
- Patches added:
  * powerpc-add-support-for-ieee-128-bit-format.patch
  * powerpc-correct-the-gdb-ioctl-values-for-tcgets-tcsets-tcsetsw-and-tcsetsf.patch
  * gdb-testsuite-remove-target-limits-in-gdb.base-catch-syscall.exp.patch
  * powerpc-fix-for-gdb.base-eh_return.exp.patch
  * fix-comparison-of-unsigned-long-int-to-int-in-record_linux_system_call.patch
  * gdb-testsuite-fix-gdb.reverse-test_ioctl_tcsetsw.exp-with-libc-debuginfo.patch
  * fixup-gdb-test-bt-cfi-without-die.patch
  * fix-core-file-detach-crash-corefiles-29275.patch
  * gdb-testsuite-fix-gdb.dwarf2-dw2-out-of-range-end-of-seq.exp-on-aarch64.patch
  * gdb-testsuite-fix-gdb.base-catch-syscall.exp-without-enable-targets.patch
  * gdb-testsuite-fix-gdb.base-catch-syscall.exp-with-with-expat-no.patch
  * fix-for-gdb.base-solib-search.exp-test.patch
- Patch removed:
  * gdb-6.7-ppc-clobbered-registers-O2-test.patch
  * gdb-6.5-readline-long-line-crash-test.patch
- Patches updated:
  * gdb-tdep-update-syscalls-ppc64-ppc-linux.xml.patch
  * gdb-testsuite-handle-pipe2-syscall-in-gdb.base-catch-syscall.exp.patch
- Maintenance script qa.sh:
  * Add PR28504 KFAILs.
  * Make .sum file matching less complex.
  * Add fedora test-case kfail.
- Maintenance script qa-local.sh:
  * Fix incorrect path name.
- Update comments in gdb.spec.
- Patches added:
  * powerpc-update-expected-floating-point-output-for-gdb.arch-altivec-regs.exp-and-gdb.arch-vsx-regs.exp.patch
- Patches updated:
  * gdb-testsuite-support-recording-of-getrandom.patch
    (add aarch64 part)
- Maintenance script qa.sh:
  * Add i586 to known clean configs.
- Patches added:
  * gdb-testsuite-enable-some-test-cases-for-x86_64-m32.patch
  * gdb-testsuite-fix-gdb.reverse-i387-env-reverse.exp-for-pie.patch
  * gdb-testsuite-support-recording-of-getrandom.patch
- Patches updated:
  * gdb-record-handle-statx-system-call.patch
- Maintenance script qa.sh:
  * Allow only two summary files, for i586.
  * Add i586 KFAILs. 
- Maintenance script qa-local.sh:
  * Add i586.
- Maintenance script qa-local.sh:
  * Fix rpm pathname.
- Maintenance script qa-remote.sh:
  * Skip stale config openSUSE_Leap_15.2.
- Maintenance script qa.sh:
  * Drop known clean config: Leap 15.2 x86_64.
- Maintenance script qa-local.sh:
  * Add cleanup step.
  * Add "build all configs without testsuite" step.
  * For "build all configs with testsuite" step, redirect output
    to log and produce PASS/FAIL line, and make sure buildroot is
    removed also in case of missing rpm.
  * Use "--clean --trust-all-projects" for osc build commands.
* Drop openSUSE_Leap_15.2.
- Maintenance script qa.sh:
  * Rename argument 6 to -local.
  * Add PR29247 KFAILs.
  * Update internal-error regexps.
- New maintenance script qa-remote.sh.
- Add "build all configs without testsuite" step in README.qa.
- Patches added (backport from trunk):
  * gdb-testsuite-remove-attach-test-from-can_spawn_for_attach.patch
- README.qa:
  * Add remote qa entry.
  * Update local qa entry:
    * Add notes entry.
    * Other updates to match changes in qa-local.sh.
- Fix installed but unpackaged /usr/share/info/ctf-spec.info.gz.
- Rebase to 12.1 release (as in fedora 36 @ 89947a7):
  * DBX mode is deprecated, and will be removed in GDB 13.
  * GDB 12 is the last release of GDB that will support building against
    Python 2.  From GDB 13, it will only be possible to build GDB itself
    with Python 3 support.
  * Improved C++ template support:
    GDB now treats functions/types involving C++ templates like it does function
    overloads.  Users may omit parameter lists to set breakpoints on families of
    template functions, including types/functions composed of multiple template types:
      (gdb) break template_func(template_1, int)
    The above will set breakpoints at every function `template_func' where
    the first function parameter is any template type named `template_1' and
    the second function parameter is `int'.
    TAB completion also gains similar improvements.
  * New commands:
    maint set backtrace-on-fatal-signal on|off
    maint show backtrace-on-fatal-signal
    This setting is 'on' by default.  When 'on' GDB will print a limited
    backtrace to stderr in the situation where GDB terminates with a
    fatal signal.  This only supported on some platforms where the
    backtrace and backtrace_symbols_fd functions are available.
    set source open on|off
    show source open
    This setting, which is on by default, controls whether GDB will try
    to open source code files.  Switching this off will stop GDB trying
    to open and read source code files, which can be useful if the files
    are located over a slow network connection.
    set varsize-limit
    show varsize-limit
    These are now deprecated aliases for "set max-value-size" and
    "show max-value-size".
    task apply [all | TASK-IDS...] [FLAG]... COMMAND
    Like "thread apply", but applies COMMAND to Ada tasks.
    watch [...] task ID
    Watchpoints can now be restricted to a specific Ada task.
    maint set internal-error backtrace on|off
    maint show internal-error backtrace
    maint set internal-warning backtrace on|off
    maint show internal-warning backtrace
    GDB can now print a backtrace of itself when it encounters either an
    internal-error, or an internal-warning.  This is on by default for
    internal-error and off by default for internal-warning.
    set logging on|off
    Deprecated and replaced by "set logging enabled on|off".
    set logging enabled on|off
    show logging enabled
    These commands set or show whether logging is enabled or disabled.
    exit
    You can now exit GDB by using the new command "exit", in addition to
    the existing "quit" command.
    set debug threads on|off
    show debug threads
    Print additional debug messages about thread creation and deletion.
    set debug linux-nat on|off
    show debug linux-nat
    These new commands replaced the old 'set debug lin-lwp' and 'show
    debug lin-lwp' respectively.  Turning this setting on prints debug
    messages relating to GDB's handling of native Linux inferiors.
    maint flush source-cache
    Flush the contents of the source code cache.
    maint set gnu-source-highlight enabled on|off
    maint show gnu-source-highlight enabled
    Whether GDB should use the GNU Source Highlight library for adding
    styling to source code.  When off, the library will not be used, even
    when available.  When GNU Source Highlight isn't used, or can't add
    styling to a particular source file, then the Python Pygments
    library will be used instead.
    set suppress-cli-notifications (on|off)
    show suppress-cli-notifications
    This controls whether printing the notifications is suppressed for CLI.
    CLI notifications occur when you change the selected context
    (i.e., the current inferior, thread and/or the frame), or when
    the program being debugged stops (e.g., because of hitting a
    breakpoint, completing source-stepping, an interrupt, etc.).
    set style disassembler enabled on|off
    show style disassembler enabled
    If GDB is compiled with Python support, and the Python Pygments
    package is available, then, when this setting is on, disassembler
    output will have styling applied.
    set ada source-charset
    show ada source-charset
    Set the character set encoding that is assumed for Ada symbols.  Valid
    values for this follow the values that can be passed to the GNAT
    compiler via the '-gnati' option.  The default is ISO-8859-1.
  * Changed commands:
    print
    Printing of floating-point values with base-modifying formats like
    /x has been changed to display the underlying bytes of the value in
    the desired base.  This was GDB's documented behavior, but was never
    implemented correctly.
    maint packet
    This command can now print a reply, if the reply includes
    non-printable characters.  Any non-printable characters are printed
    as escaped hex, e.g. \x?? where '??' is replaces with the value of
    the non-printable character.
    clone-inferior
    The clone-inferior command now ensures that the TTY, CMD and ARGS
    settings are copied from the original inferior to the new one.
    All modifications to the environment variables done using the 'set
    environment' or 'unset environment' commands are also copied to the new
    inferior.
    set debug lin-lwp on|off
    show debug lin-lwp
    These commands have been removed from GDB.  The new command 'set
    debug linux-nat' and 'show debug linux-nat' should be used
    instead.
    info win
    This command now includes information about the width of the tui
    windows in its output.
  * GDB's Ada parser now supports an extension for specifying the exact
    byte contents of a floating-point literal.  This can be useful for
    setting floating-point registers to a precise value without loss of
    precision.  The syntax is an extension of the based literal syntax.
    Use, e.g., "16lf#0123abcd#" -- the number of "l"s controls the width
    of the floating-point type, and the "f" is the marker for floating
    point.
  * MI changes:
   ** The '-add-inferior' with no option flags now inherits the
      connection of the current inferior, this restores the behaviour of
      GDB as it was prior to GDB 10.
   ** The '-add-inferior' command now accepts a '--no-connection'
      option, which causes the new inferior to start without a
      connection.
  * Python API:
    ** New function gdb.add_history(), which takes a gdb.Value object
       and adds the value it represents to GDB's history list.  An
       integer, the index of the new item in the history list, is
       returned.
    ** New function gdb.history_count(), which returns the number of
       values in GDB's value history.
    ** New gdb.events.gdb_exiting event.  This event is called with a
       gdb.GdbExitingEvent object which has the read-only attribute
       'exit_code', which contains the value of the GDB exit code.  This
       event is triggered once GDB decides it is going to exit, but
       before GDB starts to clean up its internal state.
    ** New function gdb.architecture_names(), which returns a list
       containing all of the possible Architecture.name() values.  Each
       entry is a string.
    ** New function gdb.Architecture.integer_type(), which returns an
       integer type given a size and a signed-ness.
    ** New gdb.TargetConnection object type that represents a connection
       (as displayed by the 'info connections' command).  A sub-class,
       gdb.RemoteTargetConnection, is used to represent 'remote' and
       'extended-remote' connections.
    ** The gdb.Inferior type now has a 'connection' property which is an
       instance of gdb.TargetConnection, the connection used by this
       inferior.  This can be None if the inferior has no connection.
    ** New 'gdb.events.connection_removed' event registry, which emits a
       'gdb.ConnectionEvent' when a connection is removed from GDB.
       This event has a 'connection' property, a gdb.TargetConnection
       object for the connection being removed.
    ** New gdb.connections() function that returns a list of all
       currently active connections.
    ** New gdb.RemoteTargetConnection.send_packet(PACKET) method.  This
       is equivalent to the existing 'maint packet' CLI command; it
       allows a user specified packet to be sent to the remote target.
    ** New function gdb.host_charset(), returns a string, which is the
       name of the current host charset.
    ** New gdb.set_parameter(NAME, VALUE).  This sets the gdb parameter
       NAME to VALUE.
    ** New gdb.with_parameter(NAME, VALUE).  This returns a context
       manager that temporarily sets the gdb parameter NAME to VALUE,
       then resets it when the context is exited.
    ** The gdb.Value.format_string method now takes a 'styling'
       argument, which is a boolean.  When true, the returned string can
       include escape sequences to apply styling.  The styling will only
       be present if styling is otherwise turned on in GDB (see 'help
       set styling').  When false, which is the default if the argument
       is not given, then no styling is applied to the returned string.
    ** New read-only attribute gdb.InferiorThread.details, which is
       either a string, containing additional, target specific thread
       state information, or None, if there is no such additional
       information.
    ** New read-only attribute gdb.Type.is_scalar, which is True for
       scalar types, and False for all other types.
    ** New read-only attribute gdb.Type.is_signed.  This attribute
       should only be read when Type.is_scalar is True, and will be True
       for signed types, and False for all other types.  Attempting to
       read this attribute for non-scalar types will raise a ValueError.
    ** It is now possible to add GDB/MI commands implemented in Python.
- Update libipt to v2.0.5.
- Patches added:
  * gdb-6.3-rh-testversion-20041202.patch
  * gdb-6.5-BEA-testsuite.patch
  * gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
  * gdb-6.7-charsign-test.patch
  * gdb-6.8-bz466901-backtrace-full-prelinked.patch
  * gdb-fix-for-gdb.base-eof-exit.exp-test-failures.patch
  * gdb-improved-eof-handling-when-using-readline-7.patch
  * gdb-libexec-add-index.patch
  * gdb-tdep-detect-get_pc_thunk-call-in-i386-prologue.patch
  * gdb-testsuite-address-test-failures-in-gdb.mi-mi-multi-commands.exp.patch
  * gdb-testsuite-detect-change-instead-of-init-in-gdb.mi-mi-var-block.exp.patch
  * gdb-testsuite-fix-gdb.opt-clobbered-registers-o2.exp-with-gcc-12.patch
  * gdb-testsuite-fix-occasional-failure-in-gdb.mi-mi-multi-commands.exp.patch
  * gdb-testsuite-fix-test-failure-when-building-against-readline-v7.patch
  * gdb-testsuite-handle-older-python-in-gdb.python-py-send-packet.py.patch
  * gdb-testsuite-handle-quotes-in-gdb_py_module_available.patch
  * gdb-testsuite-handle-unordered-dict-in-gdb.python-py-mi-cmd.exp.patch
  * gdb-testsuite-skip-gdb.fortran-namelist.exp-for-gfortran-4.8.patch
  * gdb-testsuite-workaround-unnecessary-.s-file-with-gfortran-4.8.patch
- Patches dropped:
  * aarch64-make-gdbserver-register-set-selection-dynamic.patch
  * fix-build-with-current-gcc-el_explicit-location-always-non-null.patch
  * fix-gdb.base-sigstep.exp-test-for-ppc.patch
  * fix-gdb.multi-multi-term-settings.exp-race.patch
  * fixup-2-gdb-6.6-buildid-locate.patch
  * fixup-gdb-6.6-buildid-locate.patch
  * gdb-6.3-inferior-notification-20050721.patch
  * gdb-ada-fix-assert-in-ada_is_unconstrained_packed_array_type.patch
  * gdb-build-add-cxx_dialect-to-cxx.patch
  * gdb-build-make-c-exp.y-work-with-bison-3.8.patch
  * gdb-doc-fix-print-inferior-events-default.patch
  * gdb-exp-improve-error-reading-variable-message.patch
  * gdb-fortran-handle-dw-at-string-length-with-loclistptr.patch
  * gdb-r_version-check.patch
  * gdb-rhbz1976887-field-location-kind.patch
  * gdb-rhbz2012976-paper-over-fortran-lex-problems.patch
  * gdb-symtab-add-call_site_eq-and-call_site_hash.patch
  * gdb-symtab-c-ify-call_site.patch
  * gdb-symtab-fix-htab_find_slot-call-in-read_call_site_scope.patch
  * gdb-symtab-fix-segfault-in-search_one_symtab.patch
  * gdb-symtab-remove-compunit_call_site_htab.patch
  * gdb-symtab-use-unrelocated-addresses-in-call_site.patch
  * gdb-tdep-fix-avx512-m32-support-in-gdbserver.patch
  * gdb-tdep-rs6000-don-t-skip-system-call-in-skip_prologue.patch
  * gdb-test-for-rhbz1976887.patch
  * gdb-testsuite-add-gdb.arch-ppc64-break-on-_exit.exp.patch
  * gdb-testsuite-add-gdb.opt-break-on-_exit.exp.patch
  * gdb-testsuite-add-gdb.testsuite-dump-system-info.exp.patch
  * gdb-testsuite-add-missing-wait-in-gdb.base-signals-state-child.exp.patch
  * gdb-testsuite-add-nopie-in-two-test-cases.patch
  * gdb-testsuite-detect-no-mpx-support.patch
  * gdb-testsuite-disable-inferior-output-in-gdb.base-foll-vfork.exp.patch
  * gdb-testsuite-don-t-error-when-trying-to-unset-last_spawn_tty_name.patch
  * gdb-testsuite-factor-out-dump_info-in-gdb.testsuite-dump-system-info.exp.patch
  * gdb-testsuite-fix-assembly-comments-in-gdb.dwarf2-clang-debug-names.exp.tcl.patch
  * gdb-testsuite-fix-data-alignment-in-gdb.arch-i386-avx-sse-.exp.patch
  * gdb-testsuite-fix-fail-in-gdb.base-annota1.exp.patch
  * gdb-testsuite-fix-fail-in-gdb.tui-basic.exp.patch
  * gdb-testsuite-fix-fail-in-gdb.tui-corefile-run.exp.patch
  * gdb-testsuite-fix-gdb.ada-big_packed_array.exp-xfail-for-m32.patch
  * gdb-testsuite-fix-gdb.arch-i386-pkru.exp-on-linux.patch
  * gdb-testsuite-fix-gdb.base-annota1.exp-with-pie.patch
  * gdb-testsuite-fix-gdb.base-dcache-flush.exp.patch
  * gdb-testsuite-fix-gdb.gdb-selftest.exp.patch
  * gdb-testsuite-fix-gdb.guile-scm-type.exp-with-gcc-4.8.patch
  * gdb-testsuite-fix-gdb.python-py-events.exp.patch
  * gdb-testsuite-fix-gdb.server-server-kill.exp-with-m32.patch
  * gdb-testsuite-fix-gdb.threads-check-libthread-db.exp-with-glibc-2.34.patch
  * gdb-testsuite-fix-gdb.threads-linux-dp.exp.patch
  * gdb-testsuite-fix-gdb.threads-thread-specific-bp.exp.patch
  * gdb-testsuite-fix-port-detection-in-gdb.debuginfod-fetch_src_and_symbols.exp.patch
  * gdb-testsuite-fix-regexp-in-gdb.base-foll-vfork.exp.patch
  * gdb-testsuite-fix-stepi-test-cases-with-unix-m32-fpie-pie.patch
  * gdb-testsuite-handle-recursive-internal-problem-in-gdb_internal_error_resync.patch
  * gdb-testsuite-handle-runto-fail-in-gdb.mi-mi-var-cp.exp.patch
  * gdb-testsuite-handle-sigill-in-two-gdb.arch-powerpc-test-cases.patch
  * gdb-testsuite-handle-supports_memtag-in-gdb.base-gdb-caching-proc.exp.patch
  * gdb-testsuite-make-gdb.base-annota1.exp-more-robust.patch
  * gdb-testsuite-refactor-regexp-in-gdb.base-annota1.exp.patch
  * gdb-testsuite-support-fpie-fno-pie-pie-no-pie-in-gdb_compile_rust.patch
  * gdb-testsuite-update-test-gdb.base-step-over-syscall.exp.patch
  * gdb-testsuite-use-compiler-generated-instead-of-gas-generated-stabs.patch
  * gdb-tui-fix-breakpoint-display-functionality.patch
  * ibm-z-add-another-arch14-instruction.patch
  * ibm-z-remove-lpswey-parameter.patch
- Patched updated:
  * gdb-6.3-gstack-20050411.patch
  * gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
  * gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
  * gdb-6.6-buildid-locate-rpm-scl.patch
  * gdb-6.6-buildid-locate-rpm.patch
  * gdb-6.6-buildid-locate-solib-missing-ids.patch
  * gdb-6.6-buildid-locate.patch
  * gdb-cli-add-ignore-errors-command.patch
  * gdb-container-rh-pkg.patch
  * gdb-core-open-vdso-warning.patch
  * gdb-fedora-libncursesw.patch
  * gdb-gcore-bash.patch
  * gdb-linux_perf-bundle.patch
  * gdb-testsuite-handle-init-errors-in-gdb.mi-user-selected-context-sync.exp.patch
- Add BuildRequires python-xml.
- Maintenance script qa.sh:
  * Add -sle-12 and -factory options.
  * Handle *.-fPIE.-pie.sum files.
  * Add KFAILs for PRs 26292, 29238, 25059, 29240, 29241, 29244,
    29245, 29160, 29196.
  * Move PR27539 KFAILs from kfail_factory to kfail.
- New maintenance script qa-local.sh.
- New file README.qa.

OBS-URL: https://build.opensuse.org/request/show/991863
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=325
2022-07-31 08:10:33 +00:00

1380 lines
41 KiB
RPMSpec

#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2012 RedHat
#
# 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 https://bugs.opensuse.org/
#
%define flavor @BUILD_FLAVOR@%{nil}
%bcond_with ringdisabled
%if "%flavor" == "testsuite"
%if %{with ringdisabled}
ExclusiveArch: do_not_build
%endif
%if 0%{?qemu_user_space_build}
# In a qemu_user_space_build ptrace is not supported, so we can't test gdb.
ExclusiveArch: do_not_build
%endif
# Disable big-endian ppc testing.
ExcludeArch: ppc ppc64
%define build_main 0
%define build_testsuite 1
%else
%define build_main 1
%define build_testsuite 0
%endif
%if %{build_testsuite}
%define debug_package %{nil}
%endif
%if %{build_main}
%define name_suffix %{nil}
%else
%if %{build_testsuite}
%define name_suffix -testresults
%else
%define name_suffix -%{flavor}
%endif
%endif
%bcond_without fpc
%if %{build_main}
Summary: A GNU source-level debugger for C, C++, Fortran and other languages
License: SUSE-Public-Domain
Group: Development/Languages/C and C++
%endif
%if %{build_testsuite}
Summary: GDB testsuite results
License: SUSE-Public-Domain
Group: Development/Languages/C and C++
%endif
Name: gdb%{name_suffix}
Version: 12.1
Release: 0
# 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.
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# Do not provide URL for snapshots as the file lasts there only for 2 days.
# ftp://sourceware.org/pub/gdb/releases/gdb-%%{version}.tar.gz
Source: gdb-%{version}.tar.bz2
URL: http://gnu.org/software/gdb/
%if "%{scl}" == "devtoolset-1.1"
Obsoletes: devtoolset-1.0-%{pkg_name}
%endif
# For our convenience
%global gdb_src gdb-%{version}
%global gdb_build build-%{_target_platform}
%global gdb_docdir %{_docdir}/gdb-doc
%global have_inproctrace 0
%ifarch %{ix86} x86_64
%global have_inproctrace 1
%endif # %%{ix86} x86_64
# Choose python version
%if 0%{?suse_version} >= 1320
%define python python3
%else
%define python python
%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).
#=
#push=Should be pushed upstream.
#maybepush=Should be pushed upstream unless it got obsoleted there.
#fedora=Should stay as a Fedora patch.
#ia64=Drop after RHEL-5 rebases and rebuilds are no longer meaningful.
#fedoratest=Keep it in Fedora only as a regression test safety.
#+ppc=Specific for ppc32/ppc64/ppc*
#+work=Requires some nontrivial work.
# Cleanup any leftover testsuite processes as it may stuck mock(1) builds.
#=push
Source2: gdb-orphanripper.c
# Man page for gstack(1).
#=push
Source3: gdb-gstack.man
# /etc/gdbinit (from Debian but with Fedora compliant location).
#=fedora
Source4: gdbinit
Source5: gdbinit.without-python
# libipt: Intel Processor Trace Decoder Library
%global libipt_version 2.0.5
Source7: v%{libipt_version}.tar.gz
# Infrastructure to sync patches from the Fedora rpm
Source10: patchlist.pl
Source11: patchname_get.sh
Source12: baselibs.conf
Source13: gdb-rpmlintrc
# Infrastructure to maintain package.
Source14: clean.sh
Source15: import-patches.sh
Source16: qa.sh
Source17: qa-local.sh
Source18: qa-remote.sh
Source19: README.qa
%if %{build_testsuite}
NoSource: 0
NoSource: 2
NoSource: 3
NoSource: 4
NoSource: 5
NoSource: 7
NoSource: 10
NoSource: 11
NoSource: 12
NoSource: 13
NoSource: 14
NoSource: 15
NoSource: 16
NoSource: 17
NoSource: 18
NoSource: 19
%endif
# Fedora import from branch f36, commit 89947a7 "Rebase to FSF GDB 12.1."
#Fedora Packages begin
Patch2: gdb-6.3-gstack-20050411.patch
Patch3: gdb-6.3-test-dtorfix-20050121.patch
Patch4: gdb-6.3-test-movedir-20050125.patch
Patch5: gdb-6.3-threaded-watchpoints2-20050225.patch
Patch6: gdb-6.3-inheritancetest-20050726.patch
Patch7: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
Patch8: gdb-6.5-sharedlibrary-path.patch
Patch10: gdb-6.5-last-address-space-byte-test.patch
Patch12: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
Patch13: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
Patch14: gdb-6.3-bz140532-ppc-unwinding-test.patch
Patch15: gdb-6.3-bz202689-exec-from-pthread-test.patch
Patch16: gdb-6.6-bz230000-power6-disassembly-test.patch
Patch17: gdb-6.6-bz229517-gcore-without-terminal.patch
Patch18: gdb-6.6-testsuite-timeouts.patch
Patch19: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
Patch20: gdb-6.3-attach-see-vdso-test.patch
Patch21: gdb-6.5-bz243845-stale-testing-zombie-test.patch
Patch22: gdb-6.6-buildid-locate.patch
Patch23: gdb-6.6-buildid-locate-solib-missing-ids.patch
Patch24: gdb-6.6-buildid-locate-rpm.patch
Patch27: gdb-6.7-testsuite-stable-results.patch
Patch28: gdb-6.5-ia64-libunwind-leak-test.patch
Patch29: gdb-6.5-missed-trap-on-step-test.patch
Patch30: gdb-6.5-gcore-buffer-limit-test.patch
Patch31: gdb-6.3-mapping-zero-inode-test.patch
Patch32: gdb-6.3-focus-cmd-prev-test.patch
Patch33: gdb-6.8-bz442765-threaded-exec-test.patch
Patch34: gdb-6.5-section-num-fixup-test.patch
Patch36: gdb-simultaneous-step-resume-breakpoint-test.patch
Patch37: gdb-core-open-vdso-warning.patch
Patch38: gdb-ccache-workaround.patch
Patch39: gdb-lineno-makeup-test.patch
Patch40: gdb-ppc-power7-test.patch
Patch41: gdb-archer-next-over-throw-cxx-exec.patch
Patch42: gdb-bz601887-dwarf4-rh-test.patch
Patch43: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
Patch44: gdb-test-bt-cfi-without-die.patch
Patch45: gdb-bz634108-solib_address.patch
Patch46: gdb-test-pid0-core.patch
Patch47: gdb-test-dw2-aranges.patch
Patch48: gdb-test-expr-cumulative-archer.patch
Patch49: gdb-physname-pr11734-test.patch
Patch50: gdb-physname-pr12273-test.patch
Patch51: gdb-test-ivy-bridge.patch
Patch52: gdb-runtest-pie-override.patch
Patch53: gdb-glibc-strstr-workaround.patch
Patch54: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
Patch55: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
Patch56: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
Patch57: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
Patch59: gdb-fortran-frame-string.patch
Patch60: gdb-rhbz1156192-recursive-dlopen-test.patch
Patch61: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
Patch62: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
Patch63: gdb-rhbz1350436-type-printers-error.patch
Patch64: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
Patch65: gdb-fedora-libncursesw.patch
Patch66: gdb-opcodes-clflushopt-test.patch
Patch67: gdb-6.6-buildid-locate-rpm-scl.patch
Patch68: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
Patch69: gdb-container-rh-pkg.patch
Patch70: gdb-rhbz1325795-framefilters-test.patch
Patch71: gdb-linux_perf-bundle.patch
Patch73: gdb-rhbz1398387-tab-crash-test.patch
Patch74: gdb-rhbz1553104-s390x-arch12-test.patch
#Fedora Packages end
# Fedora Packages not copied:
#
# Not applicable for openSUSE:
# - gdb-libexec-add-index.patch
# - gdb-6.3-rh-testversion-20041202.patch
# - gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
# - gdb-6.8-bz466901-backtrace-full-prelinked.patch
#
# Broken:
# - gdb-6.5-BEA-testsuite.patch
# over-specific test-case in a shell script
# - gdb-6.5-readline-long-line-crash-test.patch
# Hangs for horizontal-scroll-mode on, times out after 10 minutes.
#
# Obsolete:
# - gdb-6.7-charsign-test.patch
# - gdb-6.7-ppc-clobbered-registers-O2-test.patch
# Fedora patches fixup
Patch500: fixup-gdb-linux_perf-bundle.patch
Patch501: fixup-gdb-rhbz1325795-framefilters-test.patch
Patch502: fixup-gdb-rhbz1553104-s390x-arch12-test.patch
Patch503: fixup-gdb-glibc-strstr-workaround.patch
Patch504: fixup-gdb-6.5-bz243845-stale-testing-zombie-test.patch
Patch505: fixup-gdb-test-bt-cfi-without-die.patch
Patch506: fixup-2-gdb-rhbz1553104-s390x-arch12-test.patch
# openSUSE specific
# Hardcodes /bin/bash, given that path is known.
Patch1000: gdb-gcore-bash.patch
# Make gdb emit zypper install hints, rather than debuginfo-install hints.
Patch1001: gdb-6.6-buildid-locate-rpm-suse.patch
# openSUSE specific -- testsuite
# Silences ada pie compilation FAILs. Todo: Fix ada pie compilation.
Patch1100: gdb-testsuite-ada-pie.patch
# Strictly speaking, not a testsuite patch, but purpose is to enable gdb.gdb
# testcases.
Patch1101: gdb-fix-selftest-fails-with-gdb-build-with-O2-flto.patch
# The test-case expects init or systemd as process, but we run into a case
# where it's bash instead. This doesn't look harmful, so allow it.
# It would be nice to upstream this, but in order to do that I'd like to have
# an explanation of why this happens, so for now, park this here.
Patch1102: gdb-testsuite-fix-gdb-server-ext-run-exp-for-obs.patch
# Tests the zypper install hints.
Patch1103: gdb-testsuite-add-gdb.suse-zypper-hint.exp.patch
# Patches to upstream
# https://sourceware.org/bugzilla/show_bug.cgi?id=25703
Patch1500: gdb-symtab-set-default-dwarf-max-cache-age-1000.patch
# https://bugzilla.suse.com/show_bug.cgi?id=1179210
Patch1501: gdb-tui-enable-work-around-libncurses-segfault.patch
# Fixes: gdb.x86_64: W: potential-bashisms /usr/bin/gdb-add-index
Patch1503: gdb-add-index.sh-fix-bashism.patch
# Fixes:
# FAIL: gdb.mi/new-ui-mi-sync.exp: sync-command=run: add-inferior (timeout)
Patch1504: fix-gdb.mi-new-ui-mi-sync.exp.patch
# Fixes:
# FAIL: gdb.base/step-over-syscall.exp: fork: displaced=off: \
# pc after stepi matches insn addr after syscall
Patch1505: gdb-testsuite-fix-gdb.base-step-over-syscall.exp-with-m32-amd-case.patch
# Fixes:
# FAIL: gdb.threads/detach-step-over.exp: \
# breakpoint-condition-evaluation=host: target-non-stop=off: non-stop=off: \
# displaced=off: iter 1: all threads running
Patch1506: gdb-testsuite-fix-race-in-gdb.threads-detach-step-over.exp.patch
# Backports from release branch
Patch1700: fix-core-file-detach-crash-corefiles-29275.patch
# Backports from master, available in next release.
Patch2000: gdb-testsuite-fix-gdb.opt-clobbered-registers-o2.exp-with-gcc-12.patch
Patch2001: gdb-testsuite-detect-change-instead-of-init-in-gdb.mi-mi-var-block.exp.patch
Patch2002: gdb-fix-for-gdb.base-eof-exit.exp-test-failures.patch
Patch2003: gdb-testsuite-handle-init-errors-in-gdb.mi-user-selected-context-sync.exp.patch
Patch2004: gdb-add-gdb-syscalls-makefile.patch
Patch2005: gdb-record-handle-statx-system-call.patch
Patch2006: gdb-tdep-handle-pipe2-syscall-for-amd64.patch
Patch2007: gdb-testsuite-handle-pipe2-syscall-in-gdb.base-catch-syscall.exp.patch
Patch2008: gdb-tdep-support-catch-syscall-pipe2-for-i386.patch
Patch2009: gdb-update-syscalls-amd64-i386-linux.xml.patch
Patch2010: gdb-testsuite-address-test-failures-in-gdb.mi-mi-multi-commands.exp.patch
Patch2011: gdb-testsuite-fix-occasional-failure-in-gdb.mi-mi-multi-commands.exp.patch
Patch2012: gdb-testsuite-fix-test-failure-when-building-against-readline-v7.patch
Patch2013: gdb-improved-eof-handling-when-using-readline-7.patch
Patch2014: gdb-testsuite-remove-attach-test-from-can_spawn_for_attach.patch
Patch2015: powerpc-update-expected-floating-point-output-for-gdb.arch-altivec-regs.exp-and-gdb.arch-vsx-regs.exp.patch
Patch2016: powerpc-add-support-for-ieee-128-bit-format.patch
Patch2017: powerpc-correct-the-gdb-ioctl-values-for-tcgets-tcsets-tcsetsw-and-tcsetsf.patch
Patch2018: gdb-testsuite-remove-target-limits-in-gdb.base-catch-syscall.exp.patch
Patch2019: gdb-tdep-update-syscalls-ppc64-ppc-linux.xml.patch
Patch2020: powerpc-fix-for-gdb.base-eh_return.exp.patch
Patch2021: fix-comparison-of-unsigned-long-int-to-int-in-record_linux_system_call.patch
Patch2022: gdb-testsuite-fix-gdb.reverse-test_ioctl_tcsetsw.exp-with-libc-debuginfo.patch
Patch2023: gdb-testsuite-fix-gdb.dwarf2-dw2-out-of-range-end-of-seq.exp-on-aarch64.patch
Patch2024: gdb-testsuite-support-recording-of-getrandom.patch
Patch2025: gdb-testsuite-fix-gdb.base-catch-syscall.exp-without-enable-targets.patch
Patch2026: gdb-testsuite-fix-gdb.base-catch-syscall.exp-with-with-expat-no.patch
Patch2027: fix-for-gdb.base-solib-search.exp-test.patch
Patch2028: make-gdb.ada-float-bits.exp-more-generic.patch
Patch2029: gdb-testsuite-fix-gdb.threads-killed-outside.exp-on-aarch64.patch
# Backports from master, not yet available in next release.
#
# Backport from gdb-patches
# https://sourceware.org/pipermail/gdb-patches/2021-September/182226.html
Patch2100: gdb-python-finishbreakpoint-update.patch
# https://sourceware.org/pipermail/gdb-patches/2021-October/182444.html
Patch2101: gdb-testsuite-prevent-compilation-fails-with-unix-fpie-pie.patch
# https://sourceware.org/pipermail/gdb-patches/2021-October/182847.html
Patch2102: gdb-testsuite-fix-fail-in-gdb.threads-fork-and-threads.exp.patch
# https://sourceware.org/pipermail/gdb-patches/2021-October/182846.html
Patch2103: gdb-testsuite-add-kfail-in-gdb.threads-fork-plus-threads.exp.patch
# https://sourceware.org/pipermail/gdb-patches/2021-October/182919.html
Patch2104: gdb-testsuite-work-around-skip_prologue-problems-in-gdb.threads-process-dies-while-detaching.exp.patch
# https://sourceware.org/pipermail/gdb-patches/2021-May/178990.html
Patch2105: gdb-cli-add-ignore-errors-command.patch
# https://sourceware.org/pipermail/gdb-patches/2022-June/189994.html
Patch2106: gdb-testsuite-skip-gdb.fortran-namelist.exp-for-gfortran-4.8.patch
# https://sourceware.org/pipermail/gdb-patches/2022-June/189995.html
Patch2107: gdb-testsuite-workaround-unnecessary-.s-file-with-gfortran-4.8.patch
# https://sourceware.org/pipermail/gdb-patches/2022-June/190045.html
Patch2108: gdb-testsuite-handle-quotes-in-gdb_py_module_available.patch
# https://sourceware.org/pipermail/gdb-patches/2022-June/190046.html
Patch2109: gdb-testsuite-handle-unordered-dict-in-gdb.python-py-mi-cmd.exp.patch
# https://sourceware.org/pipermail/gdb-patches/2022-June/190054.html
Patch2110: gdb-testsuite-handle-older-python-in-gdb.python-py-send-packet.py.patch
# https://sourceware.org/pipermail/gdb-patches/2022-June/190248.html
Patch2111: gdb-testsuite-enable-some-test-cases-for-x86_64-m32.patch
# https://sourceware.org/pipermail/gdb-patches/2022-June/190249.html
Patch2112: gdb-testsuite-fix-gdb.reverse-i387-env-reverse.exp-for-pie.patch
# https://sourceware.org/pipermail/gdb-patches/2022-July/191107.html
Patch2113: gdb-testsuite-fix-gdb.ada-literals.exp-with-aarch64.patch
# https://sourceware.org/bugzilla/show_bug.cgi?id=29423#c8
Patch2114: gdb-fix-watchpoints-triggered.patch
# Debug patches.
#
BuildRequires: bison
BuildRequires: flex
%if 0%{suse_version} > 1110
%define gcc gcc
%else
%define gcc gcc48
%endif
BuildRequires: %{gcc}
BuildRequires: %{gcc}-c++
BuildRequires: gettext
BuildRequires: glibc-devel
%if 0%{suse_version} > 1110 && 0%{suse_version} < 1330
# GDB supports guile 2.0, but not guile 2.2 (swo#21104). Disable guile
# support for newer distro versions in anticipation of a move to guile 2.2.
BuildRequires: guile-devel
%endif
BuildRequires: libexpat-devel
%if 0%{suse_version} >= 1200
BuildRequires: makeinfo
%else
BuildRequires: texinfo
%endif
BuildRequires: expect
# Dependency is there for SLE-11, but configure test fails.
BuildRequires: mpfr-devel
BuildRequires: ncurses-devel
BuildRequires: pkg-config
BuildRequires: readline-devel
BuildRequires: rpm-devel
# SLE-10 doesn't have xz-devel.
%if 0%{suse_version} >= 1110
BuildRequires: xz-devel
%endif
BuildRequires: zlib-devel
%if 0%{!?_without_python:1}
Requires: %{python}-base
BuildRequires: %{python}-devel
%endif # 0%{!?_without_python:1}
%global have_libdebuginfod 0
%if 0%{?suse_version} > 1500
%ifarch %{ix86} x86_64 aarch64 armv7l ppc64 ppc64le s390x
%global have_libdebuginfod 1
%endif
%endif
%if 0%{have_libdebuginfod}
BuildRequires: libdebuginfod-devel
BuildRequires: libdebuginfod1
%endif
%global have_libipt 0
%if 0%{suse_version} > 1110
%ifarch %{ix86} x86_64
%global have_libipt 1
BuildRequires: cmake
%endif
%endif
# BuildArch would break RHEL-5 by overriding arch and not building noarch.
%if 0%{?el5:1}
ExclusiveArch: noarch i386 x86_64 ppc ppc64 ia64 s390 s390x
%endif # 0%{?el5:1}
%ifarch s390x
%if %{suse_version} > 1500
BuildRequires: babeltrace-devel
%endif
%endif
%ifarch i386 x86_64 ppc64 ppc64le aarch64 riscv64
%if %{suse_version} >= 1500
BuildRequires: babeltrace-devel
%endif
%endif
%if 0%{?suse_version} >= 1500
BuildRequires: libboost_regex-devel
BuildRequires: libsource-highlight-devel
%endif
%if %{build_testsuite}
# Copied from gcc9/gcc.spec.in
# Ada currently fails to build on a few platforms, enable it only
# on those that work
%if %{suse_version} >= 1310
%if %{suse_version} >= 1330
%define ada_arch %ix86 x86_64 ppc ppc64 ppc64le s390 s390x ia64 aarch64 riscv64
%else
%define ada_arch %ix86 x86_64 ppc ppc64 s390 ia64
%endif
%else
%define ada_arch %ix86 x86_64 ppc s390 ia64
%endif
# Ensure the devel libraries are installed for both multilib arches.
%global bits_local %{?_isa}
%global bits_other %{?_isa}
%if 0%{!?el5:1}
%ifarch s390x
%global bits_other (%{__isa_name}-32)
%else #!s390x
%ifarch ppc
%global bits_other (%{__isa_name}-64)
%else #!ppc
%ifarch sparc64 ppc64 s390x x86_64
%global bits_other (%{__isa_name}-32)
%endif #sparc64 ppc64 s390x x86_64
%endif #!ppc
%endif #!s390x
%endif #!el5
BuildRequires: dejagnu
BuildRequires: sharutils
# gcc-objc++ is not covered by the GDB testsuite.
BuildRequires: %{gcc}-fortran
BuildRequires: %{gcc}-objc
%ifarch %ada_arch
BuildRequires: %{gcc}-ada
%endif
%define supported_32bit_arch x86_64 ppc64
%if 0%{!?disable_32bit:1}
%ifarch %{supported_32bit_arch}
%if 0%{suse_version} >= 1330
# Older distros miss this pseudo package, the Ada
# testsuite won't work completely
BuildRequires: %{gcc}-ada-32bit
%endif
%if 0%{suse_version} > 1110
BuildRequires: %{gcc}-c++-32bit
%endif
%if 0%{suse_version} >= 1210 && 0%{suse_version} != 1315
BuildRequires: glibc-devel-static-32bit
%endif
%endif # supported_32bit_arch
%endif # !disable_32bit
%if 0%{suse_version} >= 1210
BuildRequires: glibc-devel-static
%endif
%if 0%{?suse_version} > 1500
# The gccgo command is used by make check for some gdb.go test-cases, so we
# need the gcc-go package. However, the gccgo command was missing from the
# gcc-go package (bsc#1096677), so we only require it for known fixed
# versions.
BuildRequires: gcc-go
%endif
%if %{with fpc} && 0%{?is_opensuse}
%ifarch x86_64 aarch64 armv7l
# Tumbleweed and Leap 15.x.
%if 0%{?suse_version} >= 1500
BuildRequires: fpc
%endif
%ifarch %{ix86}
# Tumbleweed and Leap 15.{0,1,2}.
# fpc seems to be unavailable for Leap 15.{3,4}/i586.
%if 0%{?suse_version} > 1500 || (0%{?sle_version} >= 150000 && 0%{?sle_version} <= 150200)
BuildRequires: fpc
%endif
%endif
%endif
%endif
%if 0%{?suse_version} >= 1200
%ifnarch s390
# s390 (for SLE12) doesn't have valgrind
BuildRequires: valgrind
%endif
%endif
%if 0%{?suse_version} >= 1200
BuildRequires: systemtap-sdt-devel
%endif
%if 0%{have_libdebuginfod}
BuildRequires: curl
BuildRequires: elfutils-debuginfod
%endif
# SLE-10 doesn't have xz.
%if 0%{suse_version} >= 1110
# Missing on SLE-11
BuildRequires: xz
%endif
# Provide python package xml.etree.ElementTree, used by test-case
# gdb.python/py-send-packet.exp.
BuildRequires: python-xml
%endif # %%{build_testsuite}
%ifarch ia64
BuildRequires: libunwind-devel
Requires: libunwind
%endif
%if %{build_main}
%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.
%package -n gdbserver
Summary: A standalone server for GDB (the GNU source-level debugger)
License: GPL-3.0-only WITH GCC-exception-3.1 AND GPL-3.0-or-later AND LGPL-2.1-or-later AND LGPL-3.0-or-later
Group: Development/Tools/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.
%package doc
Summary: Documentation for GDB (the GNU source-level debugger)
License: GFDL-1.3-only
Group: Documentation/Other
PreReq: %{install_info_prereq}
%if "%{scl}" == "devtoolset-1.1"
Obsoletes: devtoolset-1.0-%{pkg_name}-doc
%endif
%description doc
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 INFO, HTML and PDF user manual for GDB.
%endif
%if %{build_testsuite}
%description
Results from running the GDB testsuite.
%endif
%prep
%setup -q -n %{gdb_src}
%if 0%{?rhel:1} && 0%{?rhel} <= 6
# libstdc++ pretty printers.
tar xjf %{SOURCE5}
%endif # 0%{?rhel:1} && 0%{?rhel} <= 6
# 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 gdb/go-exp.c
# *.info* is needlessly split in the distro tar; also it would not get used as
# we build in %%{gdb_build}, just to be sure.
find -name "*.info*"|xargs rm -f
#Fedora patching start
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch10 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch45 -p1
%patch46 -p1
%patch47 -p1
%patch48 -p1
%patch49 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1
%patch53 -p1
%patch54 -p1
%patch55 -p1
%patch56 -p1
%patch57 -p1
%patch59 -p1
%patch60 -p1
%patch61 -p1
%patch62 -p1
%patch63 -p1
%patch64 -p1
%patch65 -p1
%patch66 -p1
%patch67 -p1
%patch68 -p1
%patch69 -p1
%patch70 -p1
%patch71 -p1
%patch73 -p1
%patch74 -p1
#Fedora patching end
%patch500 -p1
%patch501 -p1
%patch502 -p1
%patch503 -p1
%patch504 -p1
%patch505 -p1
%patch506 -p1
%patch1000 -p1
%patch1001 -p1
%patch1100 -p1
%patch1101 -p1
%patch1102 -p1
%patch1103 -p1
%patch1500 -p1
%patch1501 -p1
%patch1503 -p1
%patch1504 -p1
%patch1505 -p1
%patch1506 -p1
%patch1700 -p1
%patch2000 -p1
%patch2001 -p1
%patch2002 -p1
%patch2003 -p1
%patch2004 -p1
%patch2005 -p1
%patch2006 -p1
%patch2007 -p1
%patch2008 -p1
%patch2009 -p1
%patch2010 -p1
%patch2011 -p1
%patch2012 -p1
%patch2013 -p1
%patch2014 -p1
%patch2015 -p1
%patch2016 -p1
%patch2017 -p1
%patch2018 -p1
%patch2019 -p1
%patch2020 -p1
%patch2021 -p1
%patch2022 -p1
%patch2023 -p1
%patch2024 -p1
%patch2025 -p1
%patch2026 -p1
%patch2027 -p1
%patch2028 -p1
%patch2029 -p1
%patch2100 -p1
%patch2101 -p1
%patch2102 -p1
%patch2103 -p1
%patch2104 -p1
%patch2105 -p1
%patch2106 -p1
%patch2107 -p1
%patch2108 -p1
%patch2109 -p1
%patch2110 -p1
%patch2111 -p1
%patch2112 -p1
%patch2113 -p1
%patch2114 -p1
#unpack libipt
%if 0%{have_libipt}
tar xzf %{SOURCE7}
mv libipt-%{libipt_version} processor-trace-%{libipt_version}
%endif
find -name "*.orig" | xargs rm -f
! find -name "*.rej" # Should not happen.
# 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-*
# Fixes problem building release tarball with --with-system-readline.
# Reported here:
# - https://sourceware.org/pipermail/gdb/2021-July/049552.html
# - https://sourceware.org/bugzilla/show_bug.cgi?id=27808
rm -f gdb/doc/GDBvn.texi
%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
%if 0%{suse_version} > 1110
CC=gcc
CXX=g++
%else
CC=gcc-4.8
CXX=g++-4.8
%endif
export CC
export CXX
export CFLAGS="$RPM_OPT_FLAGS"
# Add your -Wno-x/-Wno-error=y options here:
for opt in -Wno-error=odr; do
# checking for acceptance of -Wno-foo is a bit wieldy: GCC doesn't
# warn about unknown -Wno- flags, _except_ if there are other
# diagnostics as well, so let's force an uninitialized use warning
# and grep for the diagnostic about the -Wno flag:
if ! echo "int foo(void) { int a; return a;} " | \
$CC -x c -c - -o /dev/null -W ${opt} 2>&1 | \
grep -E "Wno|no option" >/dev/null; then
CFLAGS="$CFLAGS ${opt}"
fi
done
%if %{have_libipt}
CFLAGS="$CFLAGS -DPERF_ATTR_SIZE_VER5_BUNDLE"
(
mkdir processor-trace-%{libipt_version}-root
mkdir processor-trace-%{libipt_version}-build
cd processor-trace-%{libipt_version}-build
# -DPTUNIT:BOOL=ON has no effect on ctest.
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DBUILD_SHARED_LIBS=OFF \
-DPTUNIT:BOOL=OFF \
-DDEVBUILD:BOOL=ON \
../../processor-trace-%{libipt_version}
make VERBOSE=1 %{?_smp_mflags}
ctest -V %{?_smp_mflags}
make install DESTDIR=../processor-trace-%{libipt_version}-root
)
# There is also: --with-libipt-prefix
CFLAGS="$CFLAGS -I$PWD/processor-trace-%{libipt_version}-root%{_includedir}"
LDFLAGS="$LDFLAGS -L$PWD/processor-trace-%{libipt_version}-root%{_libdir}"
%endif
export CXXFLAGS="$CFLAGS"
export LIBRPM=$(ldd /bin/rpm \
| grep librpm.so \
| awk '{print $3}')
if [ "$LIBRPM" != "" ]; then
[ -f "$LIBRPM" ]
else
export LIBRPM=no
fi
%ifarch %ix86 ia64 ppc ppc64 ppc64le s390 s390x x86_64 aarch64 riscv64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define extra_target_list_common i686 powerpc64le s390x x86_64 aarch64
%if 0%{?is_opensuse}
%define extra_target_list %{extra_target_list_common} powerpc powerpc64 s390 arm m68k ia64 riscv64
%define have_elf_extra_target_list 1
%define elf_extra_target_list avr pru spu
%else
%define extra_target_list %{extra_target_list_common}
%define have_elf_extra_target_list 0
%endif
%define DIST %(echo '%distribution' | sed 's, /.*,,')
%if %build_multitarget
EXTRA_TARGETS="%(printf ,%%s-suse-linux %{extra_target_list})"
%if %{have_elf_extra_target_list}
EXTRA_TARGETS="$EXTRA_TARGETS%(printf ,%%s-elf %{elf_extra_target_list})"
%endif
%else
EXTRA_TARGETS=
%endif
../configure \
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--sysconfdir=%{_sysconfdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--htmldir=%{gdb_docdir} \
--pdfdir=%{gdb_docdir} \
--with-system-gdbinit=%{_sysconfdir}/gdbinit \
--with-gdb-datadir=%{_datadir}/gdb \
--enable-gdb-build-warnings=,-Wno-unused \
%ifnarch %{ix86} alpha ia64 ppc s390 s390x x86_64 ppc64 ppc64le sparc sparcv9 sparc64 riscv64 aarch64
--disable-werror \
%else
%if %{suse_version} <= 1110
--disable-werror \
%else
--enable-werror \
%endif
%endif
--with-separate-debug-dir=/usr/lib/debug \
--disable-sim \
--disable-rpath \
--with-system-zlib \
%if %{suse_version} >= 1500
--with-system-readline \
%else
--without-system-readline \
%endif
--with-expat \
$(: ppc64 host build crashes on ppc variant of libexpat.so ) \
--without-libexpat-prefix \
--enable-tui \
%if 0%{!?_without_python:1}
--with-python=%{_bindir}/%{python} \
%else
--without-python \
%endif
%if %{suse_version} >= 1130
--with-rpm=$LIBRPM \
%else
--without-rpm \
%endif
%ifarch ia64
--with-libunwind-ia64 \
%else
--without-libunwind \
%endif
%ifarch sparc sparcv9 sparc64
--without-mmap \
%endif
--enable-64-bit-bfd \
%if %{have_inproctrace}
--enable-inprocess-agent \
%else
--disable-inprocess-agent \
%endif
%if %{have_libipt}
--with-intel-pt \
%else
--without-intel-pt \
%endif
--with-bugurl=http://bugs.opensuse.org/ \
--with-pkgversion="GDB; %{DIST}" \
$(: ia64 is obsolete. ) \
--enable-obsolete \
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} \
%ifarch sparc sparcv9
--build=sparc-%{_vendor}-%{_target_os}%{?_gnu}
%else
$(: It breaks RHEL-5 by %{_target_platform} being noarch-redhat-linux-gnu ) \
%ifarch noarch
$(:)
%else
--build=%{_target_platform}
%endif
%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
# Prepare gdb/config.h first.
make %{?_smp_mflags} V=1 CFLAGS="$CFLAGS $FPROFILE_CFLAGS" LDFLAGS="$LDFLAGS $FPROFILE_CFLAGS" maybe-configure-gdb
perl -i.relocatable -pe 's/^(D\[".*_RELOCATABLE"\]=" )1(")$/${1}0$2/' gdb/config.status
make %{?_smp_mflags} V=1 CFLAGS="$CFLAGS $FPROFILE_CFLAGS" LDFLAGS="$LDFLAGS $FPROFILE_CFLAGS"
! grep '_RELOCATABLE.*1' gdb/config.h
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} -C gdb/doc {gdb,annotate}{.info,/index.html,.pdf} MAKEHTMLFLAGS=--no-split
# 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 !%{build_testsuite}
echo ====================TESTSUITE DISABLED=========================
%else
echo ====================TESTING=========================
cd gdb
%if 0%{suse_version} > 1110
CC=gcc
CXX=g++
%else
CC=gcc-4.8
CXX=g++-4.8
mkdir progs
for i in gcc g++ gcj gfortran gnat gnatbind gnatmake; do
test -f /usr/bin/${i}-4.8 && ln -sf /usr/bin/${i}-4.8 progs/$i
done
PATH="`pwd`"/progs:${PATH}
%endif
export CC
export CXX
$CC -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 ! $CC $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.
$CC $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.
DISABLE_TESTS=
DISABLE_TESTS="$DISABLE_TESTS gdb.base/bigcore.exp"
DISABLE_TESTS="$DISABLE_TESTS gdb.threads/attach-many-short-lived-threads.exp"
%if 0%{suse_version} == 1110
DISABLE_TESTS="$DISABLE_TESTS gdb.base/break-interp.exp"
%endif
for test in $DISABLE_TESTS; do
mv -f ../../gdb/testsuite/$test ../../gdb/testsuite/$test-DISABLED || :
done
# Run all the scheduled testsuite runs also in the PIE mode.
# See also: gdb-runtest-pie-override.exp
if rpm -q gcc-PIE; then
CHECK="$(echo $CHECK | sed 's#check//unix/[^ ]*#& &/-fno-PIE/-no-pie#g')"
else
CHECK="$(echo $CHECK | sed 's#check//unix/[^ ]*#& &/-fPIE/-pie#g')"
fi
./orphanripper make %{?_smp_mflags} -k $CHECK || :
)
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
# Strip dates and completion times from the log to make build-compare happy
sed -i -e '/Test Run By abuild on/d' -e 's/completed in [0-9]* seconds//' *.{sum,log}
cd ../..
echo ====================TESTING END=====================
%endif
%install
# Initially we're in the %%{gdb_src} directory.
cd %{gdb_build}
# It would break RHEL-5 by leaving excessive files for the doc subpackage.
%ifnarch noarch
make %{?_smp_mflags} install DESTDIR=$RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit.d
touch -r %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit.d
%if 0%{!?_without_python:1}
sed 's#%%{_sysconfdir}#%{_sysconfdir}#g' <%{SOURCE4} >$RPM_BUILD_ROOT%{_sysconfdir}/gdbinit
touch -r %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit
%else
sed 's#%%{_sysconfdir}#%{_sysconfdir}#g' <%{SOURCE5} >$RPM_BUILD_ROOT%{_sysconfdir}/gdbinit
touch -r %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit
%endif
for i in `find $RPM_BUILD_ROOT%{_datadir}/gdb/python/gdb -name "*.py"`
do
# Files could be also patched getting the current time.
touch -r $RPM_BUILD_DIR/%{gdb_src}/gdb/version.in $i
done
%if 0%{?_enable_debug_packages:1} && 0%{!?_without_python:1}
mkdir -p $RPM_BUILD_ROOT/usr/lib/debug%{_bindir}
cp -p $RPM_BUILD_DIR/%{gdb_src}/gdb/gdb-gdb.py $RPM_BUILD_ROOT/usr/lib/debug%{_bindir}/
for pyo in "" "-O";do
# RHEL-5: AttributeError: 'module' object has no attribute 'compile_file'
%{python} $pyo -c 'import compileall, re, sys; sys.exit (not compileall.compile_dir("'"$RPM_BUILD_ROOT/usr/lib/debug%{_bindir}"'", 1, "'"/usr/lib/debug%{_bindir}"'"))'
done
%endif # 0%{?_enable_debug_packages:1} && 0%{!?_without_python:1}
mkdir $RPM_BUILD_ROOT%{_datadir}/gdb/auto-load
%if 0%{?rhel:1} && 0%{?rhel} <= 6
%if 0%{!?_without_python:1}
# Temporarily now:
for LIB in lib lib64;do
LIBPATH="$RPM_BUILD_ROOT%{_datadir}/gdb/auto-load%{_root_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@,%{_root_prefix}/'"$LIB," \
< $RPM_BUILD_DIR/%{gdb_src}/%{libstdcxxpython}/hook.in \
> $LIBPATH/$(basename %{_root_prefix}/%{_lib}/libstdc++.so.6.*)-gdb.py
# Test the filename 'libstdc++.so.6.*' has matched.
test -f $LIBPATH/libstdc++.so.6.[0-9]*-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
for i in `find $RPM_BUILD_ROOT%{_datadir}/gdb/python -name "*.py"` \
`find $RPM_BUILD_ROOT%{_datadir}/gdb/auto-load%{_prefix} -name "*.py"` \
; do
# Files come from gdb-archer.patch and can be also further patched.
touch -r $RPM_BUILD_DIR/%{gdb_src}/gdb/version.in $i
done
%endif # 0%{!?_without_python:1}
%endif # 0%{?rhel:1} && 0%{?rhel} <= 6
# 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}/configure*
rm -rf $RPM_BUILD_ROOT%{_includedir}
rm -rf $RPM_BUILD_ROOT/%{_libdir}/lib{bfd*,opcodes*,iberty*,ctf*}
%if %{build_testsuite}
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit
rm -rf $RPM_BUILD_ROOT%{_bindir}
rm -rf $RPM_BUILD_ROOT%{_libdir}
rm -rf $RPM_BUILD_ROOT%{_datadir}/gdb
rm -rf $RPM_BUILD_ROOT%{_infodir}
rm -rf $RPM_BUILD_ROOT%{_mandir}
rm -rf $RPM_BUILD_ROOT/usr/src
%endif
# pstack obsoletion
%if %{build_main}
cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_mandir}/man1/gstack.1
%endif
%endif # 0%{!?_with_upstream:1}
%if %{build_main}
# Packaged GDB is not a cross-target one.
(cd $RPM_BUILD_ROOT%{_datadir}/gdb/syscalls
rm -f mips*.xml
%ifnarch sparc sparcv9 sparc64
rm -f sparc*.xml
%endif
%ifnarch x86_64
rm -f amd64-linux.xml
%endif
%ifnarch %{ix86} x86_64
rm -f i386-linux.xml
%endif
%ifnarch ppc ppc64
rm -f ppc{,64}-linux.xml
%endif
%ifnarch ppc64le
rm -f ppc64le-linux.xml
%endif
)
# It would break RHEL-5 by leaving excessive files for the doc subpackage.
%if 0%{?el5:1}
rm -f $RPM_BUILD_ROOT%{_infodir}/annotate.info*
rm -f $RPM_BUILD_ROOT%{_infodir}/gdb.info*
%endif # 0%{?el5:1}
# -j1: There is some race resulting in:
# /usr/bin/texi2dvi: texinfo.tex appears to be broken, quitting.
make -j1 -C gdb/doc install DESTDIR=$RPM_BUILD_ROOT
# Documentation only for development; keep 'rm's here after "noarch" above.
rm -f $RPM_BUILD_ROOT%{_infodir}/gdbint*
rm -f $RPM_BUILD_ROOT%{_infodir}/stabs*
rm -f $RPM_BUILD_ROOT%{_infodir}/ctf-spec*
# 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
%endif
%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
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
fi
fi
%if %{build_main}
%files
%defattr(-,root,root)
%doc README NEWS
%if 0%{suse_version} >= 1320
%license COPYING3 COPYING COPYING.LIB
%else
%doc COPYING3 COPYING COPYING.LIB
%endif
%{_bindir}/gcore
%{_mandir}/*/gcore.1*
%{_bindir}/gdb
%config(noreplace) %{_sysconfdir}/gdbinit
%{_sysconfdir}/gdbinit.d
%{_mandir}/*/gdb.1*
%{_bindir}/gstack
%{_mandir}/*/gstack.1*
%{_bindir}/gdb-add-index
%{_mandir}/*/gdb-add-index.1*
%{_mandir}/*/gdbinit.5*
%{_datadir}/gdb
%{_infodir}/annotate.info*
%{_infodir}/gdb.info*
%endif
%if %{build_testsuite}
%files
%defattr(-,root,root)
%doc %{gdb_build}/gdb/gdb-*.sum
%doc %{gdb_build}/gdb/gdb-*.log
%endif
# don't include the files in include, they are part of binutils
%if %{build_main}
%ifnarch sparcv9 hppa
%files -n gdbserver
%defattr(-,root,root)
%{_bindir}/gdbserver
%{_mandir}/*/gdbserver.1*
%if %{have_inproctrace}
%{_libdir}/libinproctrace.so
%endif # %%{have_inproctrace}
%endif
%endif
%if %{build_main}
%post doc
# 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
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
fi
%preun doc
if [ $1 = 0 ]
then
# For --excludedocs:
if [ -e %{_infodir}/gdb.info.gz ]
then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
fi
fi
%endif
%changelog