SHA256
1
0
forked from pool/elfutils
elfutils/elfutils.spec

242 lines
7.2 KiB
RPMSpec
Raw Normal View History

#
# spec file for package elfutils
#
Accepting request 676936 from home:marxin:branches:Base:System - Update to version 0.176 build: Add new --enable-install-elfh option. Do NOT use this for system installs (it overrides glibc elf.h). backends: riscv improved core file and return value location support. Fixes CVE-2019-7146, CVE-2019-7148, CVE-2019-7149, CVE-2019-7150, CVE-2019-7664, CVE-2019-7665 - Update to version 0.175 readelf: Handle mutliple .debug_macro sections. Recognize and parse GNU Property, NT_VERSION and GNU Build Attribute ELF Notes. strip: Handle SHT_GROUP correctly. Add strip --reloc-debug-sections-only option. Handle relocations against GNU compressed sections. libdwelf: New function dwelf_elf_begin. libcpu: Recognize bpf jump variants BPF_JLT, BPF_JLE, BPF_JSLT and BPF_JSLE. backends: RISCV handles ADD/SUB relocations. Handle SHT_X86_64_UNWIND. Fixes CVE-2018-18310, CVE-2018-18520 and CVE-2018-18521. - remove disable-backtrace-dwarf-test.patch patch - the test works now - Add disable-backtrace-dwarf-test.patch in order to work around: https://sourceware.org/bugzilla/show_bug.cgi?id=23673. - Update to version 0.174 libelf, libdw and all tools now handle extended shnum and shstrndx correctly. elfcompress: Don't rewrite input file if no section data needs updating. Try harder to keep same file mode bits (suid) on rewrite. strip: Handle mixed (out of order) allocated/non-allocated sections. unstrip: Handle SHT_GROUP sections. backends: RISCV and M68K now have backend implementations to generate CFI based backtraces. - Don't make elfutils recommend elfutils-lang as elfutils-lang already supplements elfutils. - Fix typo in the recommends name bsc#1104264 - Update to version 0.173 More fixes for crashes and hangs found by afl-fuzz. In particular various functions now detect and break infinite loops caused by bad DIE tree cycles. readelf: Will now lookup the size and signedness of constant value types to display them correctly (and not just how they were encoded). libdw: New function dwarf_next_lines to read CU-less .debug_line data. dwarf_begin_elf now accepts ELF files containing just .debug_line or .debug_frame sections (which can be read without needing a DIE tree from the .debug_info section). Removed dwarf_getscn_info, which was never implemented. backends: Handle BPF simple relocations. The RISCV backends now handles ABI specific CFI and knows about RISCV register types and names. - add cfi-fix.patch: make build green on arm target - Update to versio 0.172 No functional changes compared to 0.171. Various bug fixes in libdw and eu-readelf dealing with bad DWARF5 data. Thanks to running the afl fuzzer on eu-readelf and various testcases. - disable-tests-with-ptrace.patch: Rediff - Update to version 0.171 DWARF5 and split dwarf, including GNU DebugFission, are supported now. Data can be read from the new DWARF sections .debug_addr, .debug_line_str, .debug_loclists, .debug_str_offsets and .debug_rnglists. Plus the new DWARF5 and GNU DebugFission encodings of the existing .debug sections. Also in split DWARF .dwo (DWARF object) files. This support is mostly handled by existing functions (dwarf_getlocation*, dwarf_getsrclines, dwarf_ranges, dwarf_form*, etc.) now returning the data from the new sections and data formats. But some new functions have been added to more easily get information about skeleton and split compile units (dwarf_get_units and dwarf_cu_info), handle new attribute data (dwarf_getabbrevattr_data) and to keep references to Dwarf_Dies that might come from different sections or files (dwarf_die_addr_die). Not yet supported are .dwp (Dwarf Package) and .sup (Dwarf Supplementary) files, the .debug_names index, the .debug_cu_index and .debug_tu_index sections. Only a single .debug_info (and .debug_types) section are currently handled. readelf: Handle all new DWARF5 sections. --debug-dump=info+ will show split unit DIEs when found. --dwarf-skeleton can be used when inspecting a .dwo file. Recognizes GNU locviews with --debug-dump=loc. libdw: New functions dwarf_die_addr_die, dwarf_get_units, dwarf_getabbrevattr_data and dwarf_cu_info. libdw will now try to resolve the alt file on first use of an alt attribute FORM when not set yet with dwarf_set_alt. dwarf_aggregate_size() now works with multi-dimensional arrays. libdwfl: Use process_vm_readv when available instead of ptrace. backends: Add a RISC-V backend. There were various improvements to build on Windows. The sha1 and md5 implementations have been removed, they weren't used. - Remove patches: elfutils-0.170-Wpackednotaligned.patch, elfutils-0.170-stripnothing.patch, gcc8-disable-test.patch - make package with V=1 to print verbose command line - Add gcc8-disable-test.patch in order to fix boo#1084637: temporarily disable a test-case. - disable-tests-with-ptrace.patch: Rediff - Update to version 0.170 libdw: Added new DWARF5 attribute, tag, character encoding, language code, calling convention, defaulted member function and macro constants to dwarf.h. New functions dwarf_default_lower_bound and dwarf_line_file. dwarf_peel_type now handles DWARF5 immutable, packed and shared tags. dwarf_getmacros now handles DWARF5 .debug_macro sections. strip: Add -R, --remove-section=SECTION and --keep-section=SECTION. backends: The bpf disassembler is now always build on all platforms. - Includes changes in 0.169 backends: Add support for EM_PPC64 GNU_ATTRIBUTES. Frame pointer unwinding fallback support for i386, x86_64, aarch64. translations: Update Polish translation. - Remove obsolete 0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch and ppc-machine-flags.patch - Add elfutils-0.170-stripnothing.patch to robustify test and avoid a FAIL. - Add elfutils-0.170-Wpackednotaligned.patch to fix build with GCC 8. (boo#1084637) - Use %license (boo#1082318) - Restore obsolete on libebl. - Update package descriptions. - Rename libebl1 to libebl-plugins as these are not linked, but dlopened using their unversioned libebl_$ARCH.so name. - Have libelf1 require libebl-plugins (libebl.a, which does the dlopen call, is staticly built into libelf1). This is necessary for pahole to display its results. [boo#1049871] - ppc-machine-flags.patch: support EM_PPC machine flags - disable-tests-with-ptrace.patch: disable more tests - Update Git-Clone URL - Add 0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch unconditionally in the spec file. As we can't support binary diff, a newly added test-case is removed from the patch. - Add 0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch: fix .gnu.attributes checking on ppc64{,le}. - Add missing ldconfig calls for libasm1 - make tests pass when user does not want debuginfo (boo#1031556) - Update to version 0.168: libelf: gelf_newehdr and gelf_newehdr now return void *. libdw: dwarf.h corrected the DW_LANG_PLI constant name (was DW_LANG_PL1). readelf: Add optional --symbols[=SECTION] argument to select section name. - Includes changes from 0001-Add-GCC7-Wimplicit-fallthrough-support-fixes.patch and 0001-ar-Fix-GCC7-Wformat-length-issues.patch. - Remove elfutils-0.137-dwarf-header-check-fix.diff which is no longer required after a debugedit fix. - Add 0001-Add-GCC7-Wimplicit-fallthrough-support-fixes.patch: fix new warning introduced in GCC 7. - Add 0001-ar-Fix-GCC7-Wformat-length-issues.patch: fix -Wformat-length warning introduced in GCC 7. - Update to version 0.167: libasm: Add eBPF disassembler for EM_BPF files. backends: Add m68k and BPF backends. ld: Removed. dwelf: Add ELF/DWARF string table creation functions. dwelf_strtab_init, dwelf_strtab_add, dwelf_strtab_add_len, dwelf_strtab_finalize, dwelf_strent_off, dwelf_strent_str and dwelf_strtab_free. Support compressed sections from binutils 2.27. - Remove patch elfutils-0.166-elfcmp-comp-gcc6.patch: included upstream. - disable-tests-with-ptrace.patch: disable tests that use ptrace when running under qemu-linux-user - Update to version 0.166: + config: The default program prefix for the installed tools is now eu-. Use configure --program-prefix="" to not use a program prefix. + Various bugfixes. - Drop elfutils-0.164-dt-ppc-opt.patch and elfutils-0.164-gcc6.patch (merged upstream) - Add patch elfutils-0.166-elfcmp-comp-gcc6.patch: fix self-comparison error with GCC 6. - Changes from 0.165: + Add eu-elfcompress + Add pkg-config files for libelf and libdw. - add elfutils-0.164-gcc6.patch - rename dt-ppc-opt.patch as elfutils-0.164-dt-ppc-opt.patch and add reference to upstream commit id - dt-ppc-opt.patch: add support for DT_PPC_OPT - Update to version 0.164 Drop the following patches, fixed upstream: * elfutils-portability-0.163.patch * elfutils-revert-portability-scanf.patch * elfutils-uninitialized.diff * libebl-prototype-fix.diff Changelog: - strip, unstrip: * Handle ELF files with merged strtab/shstrtab tables. * Handle missing SHF_INFO_LINK section flags. - libelf: * Use int64_t for offsets in libelf.h instead of loff_t. - libdw: * dwarf.h Add preliminary DWARF5 DW_LANG_Haskell. - libdwfl: * dwfl_standard_find_debuginfo now searches any subdir of the binary path under the debuginfo root when the separate debug file couldn't be found by build-id. * dwfl_linux_proc_attach can now be called before any Dwfl_Modules have been reported. - Implement %check - Update to version 0.163 Drop patch elfutils-fix-dir-traversal-vuln-in-ar-extraction.patch Drop patch elfutils-0.148-dont-crash.diff (fixed by 9ceebe69) Drop patch elfutils-portability-0.161.patch Add patch elfutils-portability-0.163.patch Changelog: 0.163: - Bug fixes only, no new features. 0.162: -libdw: Install new header elfutils/known-dwarf.h. dwarf.h Add preliminary DWARF5 constants DW_TAG_atomic_type, DW_LANG_Fortran03, DW_LANG_Fortran08. dwarf_peel_type now also handles DW_TAG_atomic_type. - addr2line: Input addresses are now always interpreted as hexadecimal numbers, never as octal or decimal numbers. New option -a, --addresses to print address before each entry. New option -C, --demangle to show demangled symbols. New option --pretty-print to print all information on one line. - ar: CVE-2014-9447 Directory traversal vulnerability in ar extraction. - backends: x32 support. - Make ebl modversion predictable to allow build-compare (bnc#916043) - CVE-2014-9447: elfutils: Directory traversal vulnerability (bnc#911662) Add patch: elfutils-fix-dir-traversal-vuln-in-ar-extraction.patch - Update to version 0.161 + libdw: New function dwarf_peel_type. dwarf_aggregate_size now uses dwarf_peel_type to also provide the sizes of qualified types. dwarf_getmacros will now serve either of .debug_macro and .debug_macinfo transparently. New interfaces dwarf_getmacros_off, dwarf_macro_getsrcfiles, dwarf_macro_getparamcnt, and dwarf_macro_param are available for more generalized inspection of macros and their parameters. dwarf.h: Add DW_AT_GNU_deleted, DW_AT_noreturn, DW_LANG_C11, DW_LANG_C_plus_plus_11 and DW_LANG_C_plus_plus_14. - Remove merged patches + elfutils-robustify.patch + elfutils-no-po-test-build.diff + elfutils-check-for-overflow-before-calling-malloc-to-uncompress-data.patch - Refreshed patch (from Fedora sources) + elfutils-portability.patch > elfutils-portability-0.161.patch - Add a lang subpackage - Update homepage URL and improve RPM group classification - Package changes file to support local rpmbuild (bnc#879011) - Fix integer overflow in check_section (CVE-2014-0172, bnc#872785) Add patch: elfutils-check-for-overflow-before-calling-malloc-to-uncompress-data.patch - SPARC build requires the large PIC model (or else build fails) - Update to 0.158: - libdwfl: - dwfl_core_file_report has new parameter executable. - New functions dwfl_module_getsymtab_first_global, dwfl_module_getsym_info and dwfl_module_addrinfo. - Added unwinder with type Dwfl_Thread_Callbacks, opaque types Dwfl_Thread and Dwfl_Frame and functions dwfl_attach_state, dwfl_pid, dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread, dwfl_thread_state_registers, dwfl_thread_state_register_pc, dwfl_getthread_frames, dwfl_getthreads, dwfl_thread_getframes and dwfl_frame_pc. - addr2line: New option -x to show the section an address was found in. - stack: New utility that uses the new unwinder for processes and cores. - backends: Unwinder support for i386, x86_64, s390, s390x, ppc and ppc64. aarch64 support. - update to 0.157: libdw: Add new functions dwarf_getlocations, dwarf_getlocation_attr and dwarf_getlocation_die. readelf: Show contents of NT_SIGINFO and NT_FILE core notes. addr2line: Support -i, --inlines output option. backends: abi_cfi hook for arm, ppc and s390. - update to 0.156: lib: New macro COMPAT_VERSION_NEWPROTO. libdw: Handle GNU extension opcodes in dwarf_getlocation. libdwfl: Fix STB_GLOBAL over STB_WEAK preference in dwfl_module_addrsym. Add minisymtab support. Add parameter add_p_vaddr to dwfl_report_elf. Use DT_DEBUG library search first. libebl: Handle new core note types in EBL. backends: Interpret NT_ARM_VFP. Implement core file registers parsing for s390/s390x. readelf: Add --elf-section input option to inspect an embedded ELF file. Add -U, --unresolved-address-offsets output control. Add --debug-dump=decodedline support. Accept version 8 .gdb_index section format. Adjust output formatting width. When highpc is in constant form print it also as address. Display raw .debug_aranges. Use libdw only for decodedaranges. elflint: Add __bss_start__ to the list of allowed symbols. tests: Add configure --enable-valgrind option to run all tests under valgrind. Enable automake parallel-tests for make check. translations: Updated Polish translation. Updates for Automake 1.13. - remove elfutils-aarch64.patch and elfutils-sizeof-pointer-memaccess.patch (fixed by upstream) - rebase elfutils-robustify.patch and elfutils-portability.patch, they are provided by ustream - elfutils-sizeof-pointer-memaccess.patch: Fix sizeof-pointer-memaccess warnings - Added url as source. Please see http://en.opensuse.org/SourceUrls - add elfutils-aarch64.patch to support aarch64 - update to 0.155 libelf: elf*_xlatetomd now works for cross-endian ELF note data. elf_getshdr now works consistently on non-mmaped ELF files after calling elf_cntl(ELF_C_FDREAD). Implement support for ar archives with 64-bit symbol table. [g]elf[32|64]_offscn() do not match SHT_NOBITS sections at OFFSET. libdw: dwarf.h corrected the DW_LANG_ObjC constant name (was DW_LANG_Objc). Any existing sources using the old name will have to be updated. Add DW_MACRO_GNU .debug_macro type encodings constants, DW_ATE_UTF and DW_OP_GNU_parameter_ref to dwarf.h. Experimental support for DWZ multifile forms DW_FORM_GNU_ref_alt and DW_FORM_GNU_strp_alt. Disabled by default. Use configure --enable-dwz to test it. dwarf_highpc function now handles DWARF 4 DW_AT_high_pc constant form. Fix bug using dwarf_next_unit to iterate over .debug_types. elflint: Now accepts gold linker produced executables. readelf: Add .debug_macro parsing support. Add .gdb_index version 7 parsing support. Recognize DW_OP_GNU_parameter_ref. backends: Add support for Tilera TILE-Gx processor. translations: Updated Ukrainian translation. The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone programs. There is now also a formal CONTRIBUTING document describing how to submit patches. - Fix baselibs.conf: elfutils-devel -> libelf-devel - license update: SUSE-GPL-2.0-with-OSI-exception Use a license available on the spreadsheet linked at license.opensuse.org - avoid automake dependency - Update to 0.153: * Fix building with gcc 4.7 * New --disable-werror for portability. * Support for .zdebug sections * type_units and DW_AT_GNU_odr_signature support * low level support DW_OP_GNU_entry_value and DW_TAG_GNU_call_site - Revert scanf changes in portability patch since C99 gives %a a new meaning. - license update: GPL-2.0-with-osi-exception elfutils is GPL-2.0 (only) with an exception for osi approved licenses. Also, use SPDX format - add automake as buildrequire to avoid implicit dependency - Remove redundant/obsolete tags/sections from specfile (cf. packaging guidelines) - Add elfutils-devel to baselibs - Remote timestamps on binaries, breaks build compare - Add missing build requires on zlib, bzip2 and lzma . - Upgrade to 0.152, upstream changelog: - Various build and warning nits fixed for newest GCC and Autoconf. - libdwfl: Yet another prelink-related fix for another regression. Look for Linux kernel images in files named with compression suffixes. - elfcmp: New flag --ignore-build-id to ignore differing build ID bits. New flag -l/--verbose to print all differences. - Update to 0.151 - Upstream changelog for 0.151/0.150 - libdwfl: Fix for more prelink cases with separate debug file. - eu-strip: New flag --strip-sections to remove section headers entirely. - libdwfl: Remove bogus assert. - libdw: Fix for handling huge .debug_aranges section. - libdwfl: Fix for handling prelinked DSO with separate debug file. - findtextrel: Fix diagnostics to work with usual section ordering. - libebl: i386 backend fix for multi-register integer return value location - Update to 0.149 - Upstream changelog - libdwfl: Fix Linux kernel module search when dwfl_build_id_find_elf and dwfl_build_id_find_debuginfo close fd on success - readelf: Use symbolic printing for FDE initial_location address - readelf: Print .debug_loc/.debug_ranges with cognizance of actual DIE pointers into them. - readelf: Fix crash in .debug_loc with garbage data. - readelf: Fix DW_OP_call_ref printing for version 2 CUs. - Handle DW_OP_GNU_implicit_pointer. - Add dwfl_dwarf_line, addr2line -F to print out more line info bits. - Add missing size entries for ELF_T_LIB and ELF_T_GNUHASH. - Fix dwarf_formref_die DW_FORM_ref_sig8 hash table insertion. - Consider .gdb_index as a debugging section - Misc intendation, typo, translation and cleanup fixes - add small patch to avoid crash in systemtap while building preload - Update to 0.148 - Upstream changelog - libdw: Accept DWARF 4 format: new functions dwarf_next_unit, dwarf_offdie_types. New functions dwarf_lineisa, dwarf_linediscriminator, dwarf_lineop_index. - libdwfl: Fixes in core-file handling, support cores from PIEs. When working from build IDs, don't open a named file that mismatches. - readelf: Handle DWARF 4 formats. - use %_smp_mflags - update to version 0.147 (fix bnc#588293) - dropped patches for 10.3 and older - dropped elfutils-0.97-ftruncate-mmap-fix, libelf-ignore-NOBITS, test and build patches. According to jbl these were mistakenly checked in from home:janblunck:debuginfo:libs/elfutils and the purpose of this project is no longer known. Absense of any patch header makes confirmation difficult. - Upstream changelog: 0.147 - libdw: Fixes in CFI handling, best possible handling of bogus CFA ops. - libdwfl: Ignore R_*_NONE relocs, works around old (binutils) ld -r bugs. 0.146 - libdwfl: New function dwfl_core_file_report. 0.145 - Fix build with --disable-dependency-tracking. - Fix build with most recent glibc headers. - libelf: More robust to bogus section headers. - libdw: Fix CFI decoding. - libdwfl: Fix address bias returned by CFI accessors. Fix core file module layout identification. - readelf: Fix CFI decoding. 0.144 - libelf: New function elf_getphdrnum. Now support using more than 65536 program headers in a file. - libdw: New function dwarf_aggregate_size for computing (constant) type sizes, including array_type cases with nontrivial calculation. - readelf: Don't give errors for missing info under -a. Handle Linux "VMCOREINFO" notes under -n. 0.143 - libdw: Various convenience functions for individual attributes now use dwarf_attr_integrate to look up indirect inherited attributes. Location expression handling now supports DW_OP_implicit_value. - libdwfl: Support automatic decompression of files in XZ format, and of Linux kernel images made with bzip2 or LZMA (as well as gzip). - Fix uninitialized variable. - Enable parallel building - add baselibs.conf as a source - Fix elfutils-old-scanf-fix.diff patch. - updated to 0.142: - Fix handling filling caps between sections in libelf - Add elf_getshdrnum alias for elf_getshnum and elf_getshdrstrndx alias for elf_getshstrndx and deprecate original names. - Add support for STB_GNU_UNIQUE - Add -N option to readelf, speeds up DWARF printing without address->name lookups - Add support for decoding DWARF CFI into location description form to libdw. Some new DWARF 3 expression operations. Basic handling of some new encodings slated for DWARF 4. - updated to 0.141: - libebl: sparc backend fixes some more arm backend support - libdwfl: fix dwfl_module_build_id for prelinked DSO case fixes in core file support dwfl_module_getsym interface improved for non-address symbols - eu-strip: fix infinite loop on strange inputs with -f - eu-addr2line: take -j/--section=NAME option for binutils compatibility (same effect as '(NAME)0x123' syntax already supported) - Update to 0.139 - libcpu: Add Intel SSE4 disassembler support - readelf: Implement call frame information and exception handling dumping. Add -e option. Enable it implicitly for -a. - elflint: Check PT_GNU_EH_FRAME program header entry. - libdwfl: Support automatic gzip/bzip2 decompression of ELF files. - updated to 0.140: - libelf: Fix regression in creation of section header. - Misc bug fixes - revert the ET_DYN address fix patch; causing a regression (bnc#468814) - Fix the header size check in dwarf_getsrclines() (bnc#455992) - Backport the fix for ET_DYN addresses - Fix dwfl_getmodules(), assert in systemtap (bnc#448331) - Fix libebl1 dependency - Fix crashes of elfutils binaries, backports from upstream - fix libdwfl regression with realloc DWFL->lookup_module in the fix patch (bnc#448331, likely bnc#445783) - added baselibs.conf for 32bit libs (bnc#439582) - renamed to libebl1 - provides libasm1 package - fix provides and obsolets of libebl1 - updated to version 0.137: * libdwfl: bug fixes - updated to version 0.135: * libdwfl: bug fixes - updated to version 0.134: * libdwfl, libelf: bug fixes - updated to version 0.133: * readelf, elflint, libebl: SHT_GNU_ATTRIBUTE section handling (readelf -A) * libdwfl: bug fixes and optimization in relocation handling - updated to version 0.132: * libcpu: Implement x86 and x86-64 disassembler. * libasm: Add interface for disassembler. - fixed post scripts - fix build for older distributions - fix compile errors regarding missing prototypes. - fix off64_t in libelf.h again... - updated to version 0.131 * libdw: DW_FORM_ref_addr support dwarf_formref entry point now deprecated bug fixes for oddly-formatted DWARF * libdwfl: bug fixes in offline archive support apply partial relocations for dwfl_module_address_section on ET_REL * libebl: powerpc backend support for Altivec registers - fix comiple errors regarding missing off64_t definitions in libelf.h - updated to version 0.129: readelf: new options --hex-dump (or -x), --strings (or -p) - updated to version 0.130 * readelf: -p option can take an argument like -x for one section * libelf: new function elf_getdata_rawchunk, replaces gelf_rawchunk; new functions gelf_getnote, gelf_getauxv, gelf_update_auxv * libdwfl: new functions dwfl_build_id_find_elf, dwfl_build_id_find_debuginfo, dwfl_module_build_id, dwfl_module_report_build_id; support dynamic symbol tables found via phdrs; dwfl_standard_find_debuginfo now uses build IDs when available * libebl: backend improvements for sparc, alpha, powerpc - fix build with gcc-4.3, same patch as for the copy in rpm - updated to version 0.128 * auto-tool fixes - use __attribute__ ((gnu_inline)) to fix build with gcc-4.2 - initial packages, built from elfutils-0.127. A problematic file regarding the license is removed from the tarball. OBS-URL: https://build.opensuse.org/request/show/676936 OBS-URL: https://build.opensuse.org/package/show/Base:System/elfutils?expand=0&rev=124
2019-02-18 09:21:13 +01:00
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: elfutils
Version: 0.177
Release: 0
Summary: Higher-level library to access ELF files
License: GPL-3.0-or-later
Group: Development/Tools/Building
URL: https://sourceware.org/elfutils/
#Git-Clone: git://sourceware.org/git/elfutils
Source: https://fedorahosted.org/releases/e/l/%{name}/%{version}/%{name}-%{version}.tar.bz2
Source4: https://fedorahosted.org/releases/e/l/%{name}/%{version}/%{name}-%{version}.tar.bz2.sig
Source1: README-BEFORE-ADDING-PATCHES
Source2: baselibs.conf
Source3: %{name}.changes
Source5: %{name}.keyring
Patch1: disable-tests-with-ptrace.patch
Patch2: cfi-fix.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: flex
BuildRequires: libbz2-devel
BuildRequires: xz-devel
BuildRequires: zlib-devel
%description
elfutils is a collection of utilities and libraries to read, create
and modify ELF binary files, find and handle DWARF debug data,
symbols, thread state and stacktraces for processes and core files.
%package -n libasm1
Summary: A collection of utilities and DSOs to handle compiled objects
Group: System/Libraries
%description -n libasm1
libasm contains the "asm" and "disasm" functions to assemble and
disassamble instructions. (There is only partial support for i686 and
BPF instructions.) This is part of the elfutils package.
%package -n libasm-devel
Summary: A collection of utilities and DSOs to handle compiled objects
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libasm1 = %{version}
%description -n libasm-devel
This package contains the headers and libraries needed to build
applications that require libasm.
%package -n libebl-plugins
Summary: Architecture backends for libebl
Group: System/Libraries
Provides: libebl = %{version}-%{release}
Obsoletes: libebl < %{version}-%{release}
Provides: libebl1 = %{version}-%{release}
Obsoletes: libebl1 < %{version}-%{release}
%description -n libebl-plugins
This subpackage contains the plugins to read architecture-specific
debug info. This is part of the elfutils package.
%package -n libebl-devel
Summary: Development files for libebl and for EBL plugins
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libdw-devel = %{version}
%description -n libebl-devel
This package contains the headers and libraries needed to build
applications that require libebl, or to build additional EBL
architecutre backend plugins.
%package -n libelf1
Summary: Library to read and write ELF files
Group: System/Libraries
Requires: libebl-plugins = %{version}
%description -n libelf1
This package provides a high-level library to read and write ELF files.
This is part of the elfutils package.
%package -n libelf-devel
Summary: Development files for libelf
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libelf1 = %{version}
Conflicts: libelf0-devel
%description -n libelf-devel
This package contains the headers and libraries needed to build
applications that require libelf.
%package -n libdw1
Summary: Library to access DWARF debugging information
Group: System/Libraries
%description -n libdw1
This package provides a high-level library to access the DWARF debugging
information. This is part of the elfutils package.
%package -n libdw-devel
Summary: Development files for libdw
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libdw1 = %{version}
Requires: libelf-devel = %{version}
%description -n libdw-devel
This package contains the headers and libraries needed to build
applications that require libdw.
%lang_package
%prep
%setup -q
%if 0%{?qemu_user_space_build}
# qemu does not support ptrace
%patch1 -p1
%endif
%patch2 -p1
%build
%define _lto_cflags %{nil}
# Change DATE/TIME macros to use last change time of elfutils.changes
# See http://lists.opensuse.org/opensuse-factory/2011-05/msg00304.html
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
TIME="\"$(date -d "${modified}" "+%%R")\""
find . -type f -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
# Set modversion used to verify dynamically loaded ebl backend matches to
# similarly predictable value [upstream default is hostname + date]
MODVERSION="suse-build `eval echo ${DATE} ${TIME}`"
sed --in-place "s/^MODVERSION=.*\$/MODVERSION=\"${MODVERSION}\"/" configure.ac
export CFLAGS="%optflags"
CFLAGS+=" -g" # make tests pass when user does not want debuginfo (boo#1031556)
%ifarch %sparc
# Small PIC model not sufficient
CFLAGS+=" -fPIC"
%endif
autoreconf -fi
# some patches create new test scripts, which are created 644 by default
chmod a+x tests/run*.sh
%configure --program-prefix=eu-
%make_build
%install
%make_install
# remove unneeded files
rm -f %{buildroot}/%{_libdir}/*.la
ls -lR %{buildroot}/%{_libdir}/libelf*
%find_lang %{name}
%post -n libasm1 -p /sbin/ldconfig
%post -n libelf1 -p /sbin/ldconfig
%post -n libdw1 -p /sbin/ldconfig
%postun -n libasm1 -p /sbin/ldconfig
%postun -n libelf1 -p /sbin/ldconfig
%postun -n libdw1 -p /sbin/ldconfig
%check
%make_build check
%files
%license COPYING
%doc AUTHORS ChangeLog NEWS NOTES README THANKS TODO
%{_bindir}/*
%files -n libasm1
%{_libdir}/libasm.so.*
%{_libdir}/libasm-%{version}.so
%files -n libasm-devel
%{_libdir}/libasm.so
%{_libdir}/libasm.a
%dir %{_includedir}/elfutils
%{_includedir}/elfutils/libasm.h
%files -n libebl-plugins
%{_libdir}/elfutils
%files -n libebl-devel
%{_libdir}/libebl.a
%dir %{_includedir}/elfutils
%{_includedir}/elfutils/libebl.h
%files -n libelf1
%{_libdir}/libelf.so.*
%{_libdir}/libelf-%{version}.so
%files -n libelf-devel
%{_libdir}/libelf.so
%{_libdir}/libelf.a
%{_includedir}/libelf.h
%{_includedir}/gelf.h
%{_includedir}/nlist.h
%dir %{_includedir}/elfutils
%{_includedir}/elfutils/elf-knowledge.h
%{_includedir}/elfutils/version.h
%{_libdir}/pkgconfig/libelf.pc
%files -n libdw1
%{_libdir}/libdw.so.*
%{_libdir}/libdw-%{version}.so
%files -n libdw-devel
%{_libdir}/libdw.a
%{_libdir}/libdw.so
%{_includedir}/dwarf.h
%dir %{_includedir}/elfutils
%{_includedir}/elfutils/libdw.h
%{_includedir}/elfutils/libdwelf.h
%{_includedir}/elfutils/libdwfl.h
%{_includedir}/elfutils/known-dwarf.h
%{_libdir}/pkgconfig/libdw.pc
%files lang -f %{name}.lang
%changelog