Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
gdb
gdb.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gdb.spec of Package gdb
# # spec file # # Copyright (c) 2024 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-<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 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 Patch5: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch Patch6: gdb-6.6-bz229517-gcore-without-terminal.patch Patch7: gdb-6.6-testsuite-timeouts.patch Patch8: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch Patch9: gdb-6.3-attach-see-vdso-test.patch Patch10: gdb-6.5-bz243845-stale-testing-zombie-test.patch Patch11: gdb-6.6-buildid-locate.patch Patch12: gdb-6.6-buildid-locate-solib-missing-ids.patch Patch13: gdb-6.6-buildid-locate-rpm.patch Patch15: gdb-6.5-gcore-buffer-limit-test.patch Patch16: gdb-6.3-mapping-zero-inode-test.patch Patch17: gdb-6.5-section-num-fixup-test.patch Patch19: gdb-simultaneous-step-resume-breakpoint-test.patch Patch20: gdb-core-open-vdso-warning.patch Patch21: gdb-archer-next-over-throw-cxx-exec.patch Patch22: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch Patch23: gdb-test-bt-cfi-without-die.patch Patch24: gdb-bz634108-solib_address.patch Patch25: gdb-test-dw2-aranges.patch Patch26: gdb-glibc-strstr-workaround.patch Patch27: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch Patch28: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch Patch29: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch Patch32: gdb-rhbz1149205-catch-syscall-after-fork-test.patch Patch33: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch Patch34: gdb-fedora-libncursesw.patch Patch35: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch Patch37: gdb-linux_perf-bundle.patch Patch39: gdb-binutils29988-read_indexed_address.patch Patch40: gdb-rhbz2192105-ftbs-dangling-pointer Patch41: gdb-rhbz2160211-excessive-core-file-warnings.patch Patch42: gdb-bz2196395-debuginfod-legacy-openssl-crash.patch Patch43: gdb-bz2237515-debuginfod-double-free.patch Patch44: gdb-bz2237392-dwarf-obstack-allocation.patch Patch45: gdb-rhbz2233961-CVE-2022-4806.patch Patch46: gdb-rhbz2233965-memory-leak.patch Patch47: gdb-rhbz1773651-gdb-index-internal-error.patch Patch48: gdb-rhbz2232086-refactor-selftest-support.patch Patch49: gdb-rhbz-2232086-reduce-size-of-gdb-index.patch Patch50: gdb-rhbz-2232086-cpp-ify-mapped-symtab.patch Patch51: gdb-rhbz-2232086-generate-gdb-index-consistently.patch Patch52: gdb-rhbz-2232086-generate-dwarf-5-index-consistently.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 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 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 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 # 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 (GDB 14). 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 (GDB 15). 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 Patch2075: gdb-testsuite-add-missing-no-prompt-anchor-in-gdb.ba.patch Patch2076: gdb-testsuite-remove-spurious-in-save_vars.patch Patch2077: make-pascal_language-print_type-handle-varstring-nul.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 BuildRequires: gcc-c++ %else BuildRequires: gcc48 BuildRequires: gcc48-c++ %endif 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} %if %{build_testsuite} BuildRequires: %{python}-base %else Requires: %{python}-base %endif BuildRequires: %{python}-devel %endif # 0%{!?_without_python:1} %global have_libdebuginfod 0 # Enable for SLE15-SP4/Leap-15.4, ALP/Factory. %if 0%{?sle_version} >= 150400 || 0%{?suse_version} >= 1600 %global have_libdebuginfod 1 %endif %if 0%{have_libdebuginfod} BuildRequires: libdebuginfod-devel # Indicate that we prefer libdebuginfod1 over libdebuginfod1-dummy. 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 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. 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 %else # Use system g++ for testing for SLE-11. BuildRequires: gcc-c++ %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 # Fix: unresolvable: have choice for debuginfod-client needed by # elfutils-debuginfod: debuginfod-client debuginfod-dummy-client. BuildRequires: debuginfod-client %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 `# <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 %patch -P 2 -p1 %patch -P 3 -p1 %patch -P 5 -p1 %patch -P 6 -p1 %patch -P 7 -p1 %patch -P 8 -p1 %patch -P 9 -p1 %patch -P 10 -p1 %patch -P 11 -p1 %patch -P 12 -p1 %patch -P 13 -p1 %patch -P 15 -p1 %patch -P 16 -p1 %patch -P 17 -p1 %patch -P 19 -p1 %patch -P 20 -p1 %patch -P 21 -p1 %patch -P 22 -p1 %patch -P 23 -p1 %patch -P 24 -p1 %patch -P 25 -p1 %patch -P 26 -p1 %patch -P 27 -p1 %patch -P 28 -p1 %patch -P 29 -p1 %patch -P 32 -p1 %patch -P 33 -p1 %patch -P 34 -p1 %patch -P 35 -p1 %patch -P 37 -p1 %patch -P 39 -p1 %patch -P 40 -p1 %patch -P 41 -p1 %patch -P 42 -p1 %patch -P 43 -p1 %patch -P 44 -p1 %patch -P 45 -p1 %patch -P 46 -p1 %patch -P 47 -p1 %patch -P 48 -p1 %patch -P 49 -p1 %patch -P 50 -p1 %patch -P 51 -p1 %patch -P 52 -p1 #Fedora patching end %patch -P 1000 -p1 %patch -P 1003 -p1 %patch -P 1004 -p1 %patch -P 1005 -p1 %patch -P 1007 -p1 %patch -P 1008 -p1 %patch -P 1009 -p1 %patch -P 1010 -p1 %patch -P 1012 -p1 %patch -P 1100 -p1 %patch -P 1101 -p1 %patch -P 1200 -p1 %patch -P 1202 -p1 %patch -P 1203 -p1 %patch -P 1204 -p1 %patch -P 1500 -p1 %patch -P 1501 -p1 %patch -P 1503 -p1 %patch -P 1504 -p1 %patch -P 1505 -p1 %patch -P 2000 -p1 %patch -P 2001 -p1 %patch -P 2002 -p1 %patch -P 2003 -p1 %patch -P 2004 -p1 %patch -P 2005 -p1 %patch -P 2006 -p1 %patch -P 2007 -p1 %patch -P 2008 -p1 %patch -P 2009 -p1 %patch -P 2010 -p1 %patch -P 2011 -p1 %patch -P 2012 -p1 %patch -P 2013 -p1 %patch -P 2014 -p1 %patch -P 2015 -p1 %patch -P 2016 -p1 %patch -P 2017 -p1 %patch -P 2018 -p1 %patch -P 2019 -p1 %patch -P 2020 -p1 %patch -P 2021 -p1 %patch -P 2022 -p1 %patch -P 2023 -p1 %patch -P 2024 -p1 %patch -P 2025 -p1 %patch -P 2026 -p1 %patch -P 2027 -p1 %patch -P 2028 -p1 %patch -P 2029 -p1 %patch -P 2030 -p1 %patch -P 2031 -p1 %patch -P 2032 -p1 %patch -P 2033 -p1 %patch -P 2034 -p1 %patch -P 2035 -p1 %patch -P 2036 -p1 %patch -P 2037 -p1 %patch -P 2038 -p1 %patch -P 2039 -p1 %patch -P 2040 -p1 %patch -P 2041 -p1 %patch -P 2042 -p1 %patch -P 2043 -p1 %patch -P 2044 -p1 %patch -P 2045 -p1 %patch -P 2046 -p1 %patch -P 2047 -p1 %patch -P 2048 -p1 %patch -P 2049 -p1 %patch -P 2070 -p1 %patch -P 2071 -p1 %patch -P 2072 -p1 %patch -P 2073 -p1 %patch -P 2074 -p1 %patch -P 2075 -p1 %patch -P 2076 -p1 %patch -P 2077 -p1 %patch -P 2100 -p1 %patch -P 2101 -p1 %patch -P 2104 -p1 %patch -P 2105 -p1 %patch -P 2106 -p1 %patch -P 2107 -p1 %patch -P 2108 -p1 %patch -P 2109 -p1 %patch -P 2120 -p1 %patch -P 2121 -p1 %patch -P 2122 -p1 %patch -P 2123 -p1 %patch -P 2124 -p1 %patch -P 2125 -p1 %patch -P 2126 -p1 %patch -P 2127 -p1 %patch -P 2128 -p1 %patch -P 2129 -p1 %patch -P 2130 -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 \ %if 0%{have_libdebuginfod} --with-debuginfod=yes \ %endif --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 CC=gcc CXX=g++ 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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor