# # spec file # # Copyright (c) 2023 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 %bcond_with for_chroot %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: 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/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: 13.2 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} >= 1200 %define python python3 %else # Skip for SLE-11 due to lack of python3. %define _without_python 1 %endif # GDB patches have the format `gdb--bz-.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 Source20: import-fedora.sh %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 NoSource: 20 %endif # Fedora import from branch f38, commit 82cc8e0. #Fedora Packages begin Patch2: gdb-6.3-gstack-20050411.patch Patch3: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch Patch4: gdb-6.5-sharedlibrary-path.patch Patch6: gdb-6.5-last-address-space-byte-test.patch Patch8: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch Patch9: gdb-6.5-bz109921-DW_AT_decl_file-test.patch Patch11: gdb-6.3-bz202689-exec-from-pthread-test.patch Patch12: gdb-6.6-bz229517-gcore-without-terminal.patch Patch13: gdb-6.6-testsuite-timeouts.patch Patch14: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch Patch15: gdb-6.3-attach-see-vdso-test.patch Patch16: gdb-6.5-bz243845-stale-testing-zombie-test.patch Patch17: gdb-6.6-buildid-locate.patch Patch18: gdb-6.6-buildid-locate-solib-missing-ids.patch Patch19: gdb-6.6-buildid-locate-rpm.patch Patch22: gdb-6.7-testsuite-stable-results.patch Patch23: gdb-6.5-ia64-libunwind-leak-test.patch Patch24: gdb-6.5-missed-trap-on-step-test.patch Patch25: gdb-6.5-gcore-buffer-limit-test.patch Patch26: gdb-6.3-mapping-zero-inode-test.patch Patch27: gdb-6.8-bz442765-threaded-exec-test.patch Patch28: gdb-6.5-section-num-fixup-test.patch Patch30: gdb-simultaneous-step-resume-breakpoint-test.patch Patch31: gdb-core-open-vdso-warning.patch Patch32: gdb-ccache-workaround.patch Patch33: gdb-lineno-makeup-test.patch Patch35: gdb-archer-next-over-throw-cxx-exec.patch Patch36: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch Patch37: gdb-test-bt-cfi-without-die.patch Patch38: gdb-bz634108-solib_address.patch Patch39: gdb-test-pid0-core.patch Patch40: gdb-test-dw2-aranges.patch Patch42: gdb-glibc-strstr-workaround.patch Patch43: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch Patch44: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch Patch45: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch Patch46: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch Patch49: gdb-rhbz1149205-catch-syscall-after-fork-test.patch Patch50: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch Patch51: gdb-rhbz1350436-type-printers-error.patch Patch52: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch Patch53: gdb-fedora-libncursesw.patch Patch54: gdb-opcodes-clflushopt-test.patch Patch55: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch Patch57: gdb-linux_perf-bundle.patch Patch59: gdb-rhbz1553104-s390x-arch12-test.patch Patch60: gdb-binutils29988-read_indexed_address.patch Patch61: gdb-rhbz2192105-ftbs-dangling-pointer Patch62: gdb-rhbz2160211-excessive-core-file-warnings.patch Patch63: gdb-rhbz2196395-debuginfod-legacy-openssl-crash.patch Patch64: gdb-bz2237515-debuginfod-double-free.patch Patch65: gdb-bz2237392-dwarf-obstack-allocation.patch Patch66: gdb-rhbz2233961-CVE-2022-4806.patch Patch67: gdb-rhbz2233965-memory-leak.patch Patch68: gdb-rhbz1773651-gdb-index-internal-error.patch #Fedora Packages end # Fedora patches fixup # These need a number with at least four digits, otherwise patchlist.pl removes # them when upgrading. Patch1000: fixup-gdb-linux_perf-bundle.patch Patch1002: fixup-gdb-rhbz1553104-s390x-arch12-test.patch Patch1003: fixup-gdb-glibc-strstr-workaround.patch Patch1004: fixup-gdb-6.5-bz243845-stale-testing-zombie-test.patch Patch1005: fixup-gdb-test-bt-cfi-without-die.patch Patch1006: fixup-2-gdb-rhbz1553104-s390x-arch12-test.patch Patch1007: fixup-gdb-test-dw2-aranges.patch Patch1008: fixup-gdb-bz634108-solib_address.patch Patch1009: fixup-gdb-6.3-gstack-20050411.patch Patch1010: fixup-gdb-6.3-attach-see-vdso-test.patch Patch1011: fixup-gdb-lineno-makeup-test.patch Patch1012: fixup-gdb-rhbz1261564-aarch64-hw-watchpoint-test.pat.patch # openSUSE specific # Hardcodes /bin/bash, given that path is known. Patch1100: gdb-gcore-bash.patch # Make gdb emit zypper install hints, rather than debuginfo-install hints. Patch1101: gdb-6.6-buildid-locate-rpm-suse.patch # openSUSE specific -- testsuite # Silences ada pie compilation FAILs. Todo: Fix ada pie compilation. Patch1200: gdb-testsuite-ada-pie.patch # Strictly speaking, not a testsuite patch, but purpose is to enable gdb.gdb # testcases. ##Patch1201: 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. Patch1202: gdb-testsuite-fix-gdb-server-ext-run-exp-for-obs.patch # Tests the zypper install hints. Patch1203: gdb-testsuite-add-gdb.suse-zypper-hint.exp.patch # Tests that no branding is leaked from sourcing the fedora package. Patch1204: gdb-testsuite-add-gdb.suse-debranding.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 # Backports from release branch # # Backports from master, available in next release. Patch2000: remove-some-unnecessary-includes-from-exp.y.patch Patch2001: gdb-testsuite-fix-gdb.gdb-python-helper.exp-with-o2-.patch Patch2002: gdb-testsuite-simplify-gdb.base-unwind-on-each-insn..patch Patch2003: gdb-testsuite-handle-output-after-prompt-in-gdb.thre.patch Patch2004: gdb-testsuite-add-xfail-in-gdb.arch-i386-pkru.exp.patch Patch2005: gdb-testsuite-factor-out-proc-linux_kernel_version.patch Patch2006: gdb-testsuite-add-xfail-in-gdb.python-py-record-btra.patch Patch2007: gdb-testsuite-fix-gdb.threads-schedlock.exp-on-fast-.patch Patch2008: gdb-testsuite-simplify-gdb.arch-amd64-disp-step-avx..patch Patch2009: gdb-testsuite-fix-gdb.threads-schedlock.exp-for-gcc-.patch Patch2010: gdb-testsuite-add-xfail-case-in-gdb.python-py-record.patch Patch2011: aarch64-avoid-initializers-for-vlas.patch Patch2012: gdb-tdep-aarch64-fix-frame-address-of-last-insn.patch Patch2013: fix-pr30369-regression-on-aarch64-arm-pr30506.patch Patch2014: gdb-testsuite-fix-breakpoint-regexp-in-gdb.ada-out_o.patch Patch2015: gdb-testsuite-relax-breakpoint-count-check-in-gdb.py.patch Patch2016: gdb-testsuite-fix-buffer-overflow-in-gdb.base-signed.patch Patch2017: gdb-testsuite-require-syscall-time-in-gdb.reverse-ti.patch Patch2018: gdb-testsuite-handle-missing-gdc-in-gdb.dlang-dlang-.patch Patch2019: gdb-testsuite-add-basic-lmap-for-tcl-8.6.patch Patch2020: gdb-testsuite-fix-gdb.rust-watch.exp-on-ppc64le.patch Patch2021: gdb-testsuite-fix-gdb.python-py-breakpoint.exp-timeo.patch Patch2022: powerpc-fix-for-gdb.reverse-finish-precsave.exp-and-.patch Patch2023: powerpc-regression-fix-for-reverse-finish-command.patch Patch2024: gdb-testsuite-don-t-use-string-cat-in-gdb.dwarf2-dw2.patch Patch2025: move-step_until-procedure.patch Patch2026: gdb-testsuite-fix-gdb.arch-i386-signal.exp-on-x86_64.patch Patch2027: gdb-testsuite-fix-regexps-in-gdb.base-step-over-sysc.patch Patch2028: gdb-testsuite-add-kfail-for-pr-ada-30908.patch Patch2029: gdb-testsuite-fix-gdb.ada-mi_task_arg.exp-with-newer.patch Patch2030: gdb-testsuite-fix-gdb.cp-m-static.exp-regression-on-.patch Patch2031: gdb-symtab-fix-line-number-of-static-const-class-mem.patch Patch2032: gdb-symtab-handle-pu-in-iterate_over_some_symtabs.patch Patch2033: gdb-testsuite-fix-gdb.dwarf2-nullptr_t.exp-with-cc-w.patch Patch2034: gdb-symtab-fix-too-many-symbols-in-gdbpy_lookup_stat.patch Patch2035: gdb-support-rseq-auxvs.patch Patch2036: gdb-testsuite-add-xfail-for-gdb-29965-in-gdb.threads.patch Patch2037: gdb-cli-handle-pending-c-after-rl_callback_read_char.patch Patch2038: gdb-testsuite-add-have_host_locale.patch Patch2039: gdb-symtab-find-main-language-without-symtab-expansi.patch Patch2040: gdb-symtab-don-t-deduplicate-variables-in-gdb-index.patch Patch2041: xcoffread.c-fix-werror-dangling-pointer-issue-with-m.patch Patch2042: avoid-manual-memory-management-in-go-lang.c.patch Patch2043: gdb-go-handle-v3-go_0-mangled-prefix.patch Patch2044: gdb-symtab-handle-self-reference-die.patch Patch2045: gdb-symtab-handle-self-reference-in-inherit_abstract.patch Patch2046: gdb-symtab-add-optimized-out-static-var-to-cooked-in.patch Patch2047: gdb-testsuite-fix-gdb.python-py-breakpoint.exp-with-.patch Patch2048: gdb-tui-fix-segfault-in-tui_find_disassembly_address.patch # Part of upstream commit deb1ba4e38b ("[gdb/tui] Fix TUI resizing for TERM=ansi"). Patch2049: gdb-testsuite-add-wait_for_msg-arg-to-term-resize-fi.patch # Backports from master, not yet available in next release. Patch2070: gdb-symtab-work-around-pr-gas-29517.patch Patch2071: gdb-symtab-add-producer_is_gas.patch Patch2072: gdb-symtab-work-around-gas-pr28629.patch Patch2073: gdb-tdep-fix-nr-array-elements-in-ppc64_aggregate_ca.patch Patch2074: gdb-tui-fix-wmaybe-uninitialized-in-tui_find_disasse.patch # 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/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/2023-November/203942.html Patch2106: gdb-fix-segfault-in-for_each_block-part-2.patch # https://sourceware.org/pipermail/gdb-patches/2023-November/203928.html Patch2107: gdb-tui-allow-command-window-of-1-or-2-lines.patch # https://sourceware.org/pipermail/gdb-patches/2023-November/203929.html Patch2108: gdb-tui-fix-resizing-of-terminal-to-1-or-2-lines.patch # https://sourceware.org/pipermail/gdb-patches/2023-November/203943.html Patch2109: gdb-fix-segfault-in-for_each_block-part-1.patch # https://sourceware.org/pipermail/gdb-patches/2023-December/205054.html Patch2120: gdb-symtab-refactor-condition-in-scan_attributes.patch Patch2121: gdb-symtab-factor-out-m_die_range_map-usage.patch Patch2122: gdb-symtab-handle-nullptr-parent-in-parent_map-set_p.patch Patch2123: gdb-symtab-factor-out-m_deferred_entries-usage.patch Patch2124: gdb-symtab-resolve-deferred-entries-inter-shard-case.patch Patch2125: gdb-symtab-keep-track-of-processed-dies-in-shard.patch Patch2126: gdb-symtab-resolve-deferred-entries-intra-shard-case.patch Patch2127: gdb-symtab-don-t-defer-backward-refs-inter-cu-intra-.patch Patch2128: gdb-symtab-recurse-into-c-dw_tag_subprogram-dies-for.patch Patch2129: gdb-symtab-keep-track-of-all-parents-for-cooked-inde.patch Patch2130: gdb-symtab-fix-dw_tag_inlined_subroutine-entries-in-.patch # Debug patches. # # Other. Needs comment for each patch. # # End of 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 %global have_libdebuginfod 1 %endif %if 0%{have_libdebuginfod} BuildRequires: libdebuginfod-devel %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 0%{?suse_version} >= 1500 BuildRequires: libzstd-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. %if 0%{?suse_version} >= 1200 # Skip for SLE-11 due to: # unresolvable: conflict for providers of libquadmath0 # needed by libgfortran3 # (provider libquadmath0-gcc5 is in conflict with libquadmath0) BuildRequires: %{gcc}-fortran %endif 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 %if 0%{!?_without_python:1} # Provide python package xml.etree.ElementTree, used by test-case # gdb.python/py-send-packet.exp. BuildRequires: %{python}-xml %endif %endif # %%{build_testsuite} %ifarch ia64 BuildRequires: libunwind-devel Requires: libunwind %endif %if %{build_main} %if 0%{!?_without_python:1} %if 0%{?suse_version} >= 1500 # For SLE-15 and later, we use source-highlight by default, and # pygments as fallback. So, suggests rather than recommends is what we want. # Don't bother older releases with this. Suggests: %{python}-Pygments %endif %endif %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 `# ' 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 %patch6 -p1 %patch8 -p1 %patch9 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 %patch16 -p1 %patch17 -p1 %patch18 -p1 %patch19 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 %patch25 -p1 %patch26 -p1 %patch27 -p1 %patch28 -p1 %patch30 -p1 %patch31 -p1 %patch32 -p1 %patch33 -p1 %patch35 -p1 %patch36 -p1 %patch37 -p1 %patch38 -p1 %patch39 -p1 %patch40 -p1 %patch42 -p1 %patch43 -p1 %patch44 -p1 %patch45 -p1 %patch46 -p1 %patch49 -p1 %patch50 -p1 %patch51 -p1 %patch52 -p1 %patch53 -p1 %patch54 -p1 %patch55 -p1 %patch57 -p1 %patch59 -p1 %patch60 -p1 %patch61 -p1 %patch62 -p1 %patch63 -p1 %patch64 -p1 %patch65 -p1 %patch66 -p1 %patch67 -p1 %patch68 -p1 #Fedora patching end %patch1000 -p1 %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 %patch1008 -p1 %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 %patch1012 -p1 %patch1100 -p1 %patch1101 -p1 %patch1200 -p1 #%patch1201 -p1 %patch1202 -p1 %patch1203 -p1 %patch1204 -p1 %patch1500 -p1 %patch1501 -p1 %patch1503 -p1 %patch1504 -p1 %patch1505 -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 %patch2030 -p1 %patch2031 -p1 %patch2032 -p1 %patch2033 -p1 %patch2034 -p1 %patch2035 -p1 %patch2036 -p1 %patch2037 -p1 %patch2038 -p1 %patch2039 -p1 %patch2040 -p1 %patch2041 -p1 %patch2042 -p1 %patch2043 -p1 %patch2044 -p1 %patch2045 -p1 %patch2046 -p1 %patch2047 -p1 %patch2048 -p1 %patch2049 -p1 %patch2070 -p1 %patch2071 -p1 %patch2072 -p1 %patch2073 -p1 %patch2074 -p1 %patch2100 -p1 %patch2101 -p1 %patch2104 -p1 %patch2105 -p1 %patch2106 -p1 %patch2107 -p1 %patch2108 -p1 %patch2109 -p1 %patch2120 -p1 %patch2121 -p1 %patch2122 -p1 %patch2123 -p1 %patch2124 -p1 %patch2125 -p1 %patch2126 -p1 %patch2127 -p1 %patch2128 -p1 %patch2129 -p1 %patch2130 -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 -Wno-error=enum-int-mismatch; 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 # Reenable enable-werror on tumbleweed when upgrading to 13.1 (bsc#1211052) ../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 || %{suse_version} > 1500 --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 /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 %if %{with for_chroot} # When we want to chroot into a local osc build and run a test-case, we # need -M testsuite to add all the buildrequires, but there's no need # to run the testsuite. Instead, fail %check to make sure %clean doesn't # remove buildroot. false %else ./orphanripper make %{?_smp_mflags} -k $CHECK || : %endif ) for t in sum log do for file in testsuite*/gdb.$t do suffix="${file#testsuite.unix.}" suffix="${suffix%/gdb.$t}" ln $file gdb-%{_target_platform}$suffix.$t || : done done # `tar | bzip2 | uuencode' may have some piping problems in Brew. #tar cjf gdb-%%{_target_platform}.tar.bz2 gdb-%%{_target_platform}*.{sum,log} #uuencode gdb-%%{_target_platform}.tar.bz2 gdb-%%{_target_platform}.tar.bz2 # 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 -f $RPM_BUILD_ROOT%{_infodir}/sframe-spec* rm -rf $RPM_BUILD_ROOT%{_includedir} rm -rf $RPM_BUILD_ROOT/%{_libdir}/lib{bfd*,opcodes*,iberty*,ctf*,sframe*} %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