summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Regenerate .po files.elfutils-0.165Mark Wielaard2016-01-116-60/+64
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libebl: Fix missing brackets around if statement body.Mark Wielaard2016-01-092-180/+187
| | | | | | | | | | | | | | | | | | GCC6 [will have] a nice new warning that showed a real bug: elfutils/libebl/eblobjnote.c: In function ‘ebl_object_note’: elfutils/libebl/eblobjnote.c:135:5: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation] switch (type) ^~~~~~ elfutils/libebl/eblobjnote.c:45:3: note: ...this ‘if’ clause, but it is not if (! ebl->object_note (name, type, descsz, desc)) ^~ And indeed, it should have been under the if, but wasn't because of missing brackets. Added brackets (and reindent). Signed-off-by: Mark Wielaard <mjw@redhat.com>
* tests: Fix parentheses in elfputzdata strncmp test.Mark Wielaard2016-01-082-1/+5
| | | | | | We were checking strlen () == 0 instead of strncmp () == 0. Oops. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Fix build on 32bit systems.Mark Wielaard2016-01-085-3/+12
| | | | | | size_t has a different size on 32 and 64 bit systems. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Prepare 0.165 release.Mark Wielaard2016-01-0811-2967/+3330
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Simplify code and build now that zlib support is no longer optional.Mark Wielaard2016-01-086-25/+20
| | | | | | | Now that we always require zlib support we don't need to conditionally build or compile code that depends on it. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Updated Polish translationPiotr Drąg2016-01-081-723/+824
| | | | Signed-off-by: Piotr Drąg <piotrdrag@gmail.com>
* Updated Polish translationPiotr Drąg2016-01-071-659/+724
| | | | Signed-off-by: Piotr Drąg <piotrdrag@gmail.com>
* elfcompress: New utility.Mark Wielaard2016-01-066-3/+1440
| | | | | | | | | | | | | | | | | | | | | | | | | | | Usage: elfcompress [OPTION...] FILE... Compress or decompress sections in an ELF file. -f, --force Force compression of section even if it would become larger -n, --name=SECTION SECTION name to (de)compress, SECTION is an extended wildcard pattern (defaults to '.?(z)debug*') -o, --output=FILE Place (de)compressed output into FILE -p, --permissive Relax a few rules to handle slightly broken ELF files -q, --quiet Be silent when a section cannot be compressed -t, --type=TYPE What type of compression to apply. TYPE can be 'none' (decompress), 'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias) or 'zlib-gnu' (.zdebug GNU style compression, 'gnu' is an alias) -v, --verbose Print a message for each section being (de)compressed -?, --help Give this help list --usage Give a short usage message -V, --version Print program version Signed-off-by: Mark Wielaard <mjw@redhat.com>
* elflint: Recognize and check SHF_COMPRESSED section flag.Mark Wielaard2016-01-062-10/+43
| | | | | | | | SHF_COMPRESSED is a valid section flag, it can optionally be on any special section, but it cannot be used on NOBITS sections or together with SHF_ALLOC. A section that has SHF_COMPRESSED set must have a valid Chdr. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libelf: Make elf_strptr index correctly into compressed section data.Mark Wielaard2016-01-0610-59/+445
| | | | | | | | | elf_strptr indexes into the section data. This is defined as index into the uncompressed data of the section. If the section is compressed make sure the uncompressed data is available, but don't really decompress the section header (elf_getdata will still return compressed data). Signed-off-by: Mark Wielaard <mjw@redhat.com>
* readelf: Handle compressed sections and extend -z to cover -x and -p.Mark Wielaard2016-01-0610-23/+609
| | | | | | | | | | | | | | | When printing a (non-string, non-data) section use uncompressed data when possible. For dumping hex and string sections (-x and -p) -z will dump the uncompressed data (otherwise the compressed data is dumped). -z, --decompress Show compression information for compressed sections (when used with -S); decompress section before dumping data (when used with -p or -x) Includes test cases for ET_REL files using compressed relocation (target) debug sections to test libdwfl transparent uncompression of sections. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libdwfl: Use elf_compress[_gnu] to decompress string, symbol and reloc data.Mark Wielaard2016-01-065-32/+201
| | | | | | | | | This makes usage of the libdwfl symbol functions work out of the box even when some sections (string, symbol or xndx) are compressed. For ET_REL files this makes relocations just work by making sure the target section is decompressed first before relocations are applied. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libdw: Use elf_compress[_gnu] to uncompress debug section data.Mark Wielaard2016-01-064-137/+63
| | | | | | | | libdw used its own code for decompressing GNU style .zdebug sections. Using elf_compress and elf_compress_gnu instead makes it possible to transparently use either GNU style or ELF style compressed data. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libelf: Add elf_compress and elf_compress_gnu.Mark Wielaard2016-01-0620-26/+1822
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>
* readelf: Add -z,--decompress option.Mark Wielaard2016-01-065-4/+281
| | | | | | | -z, --decompress Show compression information for compressed sections (when used with -S). Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libelf: Add elf32_getchdr, elf64_getchdr and gelf_getchdr.Mark Wielaard2016-01-0626-18/+676
| | | | | | | | | Elf_Data of a compressed section has type ELF_T_CHDR. This type can be xlated to the file or memory representation. This will make sure the Chdr is in the correct endianess. The compressed data following the Chdr isn't translated. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libdwelf: Add dwelf_scn_gnu_compressed_size.Mark Wielaard2016-01-0614-6/+334
| | | | | | Helper function to get the size of a GNU compressed zdebug section. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* config: Add libelf and libdw pkg-config files.Mark Wielaard2016-01-057-3/+68
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>
* elflint: Add _edata and _end to the list of possibly dangling gnuld symbols.Mark Wielaard2016-01-052-1/+10
| | | | | | | | | | gnuld might keep dangling/unused symbols around (see sourceware PR13621). Add _edata (end of initialized data address) and _end (end of uninitialized data address) to that list. They might have been added by gnuld even if there is no such [un]initialized data. Also add the double underscore variants which are used on some architectures. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* tests: elfstrmerge warn about STT_SECTION symbol for shstrhndx.Mark Wielaard2016-01-054-4/+56
| | | | | | | | | | | | | | Old linkers might have created an STT_SECTION symbol for the section header string table section, which isn't actually used. For now just warn about such symbols. If such a symbol would actually really be used (but why?) then we would have to handle it by removing it and rewriting the symbol table. This is a testsuite only change, but includes an extra test with files that have such STT_SECTION symbols to make sure it will be handled in case we "upgrade" the elfstrmerge test to a real utility. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Make make more silent.Mark Wielaard2016-01-052-1/+9
| | | | | | | Silent rules already are the default, but automake and make both still tell which directory is being entered/build. Disable printing from make. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Move nested functions in linux-proc-maps.c to file scope.Chih-Hung Hsieh2016-01-032-14/+22
| | | | | | * Move nested function 'report' to file scope to compile with clang. Signed-off-by: Chih-Hung Hsieh <chh@google.com>
* Move nested functions in core-file.c to file scope.Chih-Hung Hsieh2016-01-032-42/+59
| | | | | | * Move nested functions 'fail', 'update_end', and 'more' to file scope. Signed-off-by: Chih-Hung Hsieh <chh@google.com>
* Move nested functions check64 and check32 in link_map.c to file scope.Chih-Hung Hsieh2016-01-032-47/+58
| | | | | | | | * In libdwfl/link_map.c, nested functions check64, check32, are moved to file scope to compile with clang. Signed-off-by: Chih-Hung Hsieh <chh@google.com> Signed-off-by: Mark Wielaard <mjw@redhat.com>
* backends: sparc: support for live backtracesJose E. Marchesi2016-01-034-1/+137
| | | | | | | This patch implements the set_initial_registers_tid hook for sparc. It works in both sparcv9-*-* and sparc64-*-* targets. Signed-off-by: Jose E. Marchesi <jose.marchesi@oracle.com>
* backends: sparc: support for core backtracesJose E. Marchesi2016-01-0310-3/+142
| | | | | | | | This patch adds sparc support to the unwinder, providing a default CFI program that works in both sparcv9-*-* and sparc64-*-* targets. Signed-off-by: Jose E. Marchesi <jose.marchesi@oracle.com> Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libdwfl: make the unwinder aware of the backend defined ra_offset.Jose E. Marchesi2016-01-033-2/+16
| | | | | | | | | Ebl backends can define an offset that must be applied to the value of the "return address register" defined in the CFI ABI information. This patch makes the unwinder to use that offset when reading the RA CFI register. Signed-off-by: Jose E. Marchesi <jose.marchesi@oracle.com>
* libebl: new backend attribute ra_offset.Jose E. Marchesi2016-01-034-0/+24
| | | | | | | | Some backends need to fine-tune the return address as fetched from the corresponding CFI register. This patch adds a new backend attribute ra_offset and the corresponding ebl_ra_offset getter function. Signed-off-by: Jose E. Marchesi <jose.marchesi@oracle.com>
* tests: Use valgrind --leak-check=full.Mark Wielaard2016-01-026-1/+50
| | | | | | | | | When --enable-valgrind is given run the testsuite with --leak-check=full treating any memory leak as a failure. Also disable valgrind for those tests that trigger a valgrind bug. https://bugs.kde.org/show_bug.cgi?id=327427 Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libdw: Don't leak duplicate FDEs.Mark Wielaard2016-01-022-1/+14
| | | | | | | | Although it isn't supposed to happen there could be FDEs that cover the same address range. Don't leak such FDEs and use an existing FDE for consistency. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* nm: If the file is ET_REL and we need Dwarf use libdwfl to get it relocated.Mark Wielaard2016-01-022-8/+116
| | | | | | | | | | | If we need Dwarf and the file is ET_REL use the same trick as in readelf to get a relocated Dwarf. Otherwise lots of references in the debug_info will come out as zero. This also explains the "bogus" Dwarf seen that caused the memory leak in the local_root that was fixed previously. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* nm: Don't leak duplicate Dwarf local names.Mark Wielaard2016-01-022-5/+14
| | | | | | | Badly formed DWARF can have duplicate local names. In which case we do want to detect those so we don't leak the memory. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* unstrip: Don't leak new section data.Mark Wielaard2016-01-022-2/+47
| | | | | | | When we copy elided sections some section data is newly allocated. Track those allocations so we can free them when done. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libdw: Don't use a FDE if it doesn't actually cover a real code range.Mark Wielaard2016-01-022-0/+12
| | | | | | | | | | If the FDE end <= start then it doesn't actually cover a valid code range. Don't use and cache such FDEs (it will cause memory leaks if there is another FDE that has the same start address and a valid code range). Such FDEs have been seen in the backtrace.ppc.exec testfile. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libdwfl: Fix memory leak in link_map.c dwfl_link_map_report.Mark Wielaard2016-01-022-2/+12
| | | | | | | | The phdrs buffer could come from the core file or through the executable. dwfl_link_map_report would leak the buffer if it came from the executable. Track where the buffer came from and free appropriately. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libdwfl: Don't leak core Elf and core file descriptor from argp-std.Mark Wielaard2016-01-027-17/+82
| | | | | | | | Our argp helper would leak the core Elf and core file descriptor when given by the user. Store both in the Dwfl as a new Dwfl_User_Core so they get cleaned up by dwfl_end. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* tests: Fix some memory leaks in testcases.Mark Wielaard2016-01-029-4/+36
| | | | | | | Make sure all structures allocated in the testcases are disposed so running them under valgrind will show no memory leaks. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libdw: Don't leak fake_loc_cu.Mark Wielaard2016-01-022-1/+9
| | | | | | | | The fake_loc_cu is used when synthesizing attributes for Dwarf_Ops that came from a location list entry in dwarf_getlocation_attr. Make sure we remove the loc cache stored in it when disposing of the fake_loc_cu. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* elfcmp: Fix leaking Ebl handles.Mark Wielaard2016-01-022-0/+6
| | | | | | | open_file () explicitly gets Ebl handles for both Elf files to compare. Make sure to close those when done. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Move nested functions in dwfl_module_getdwarf.c to file scope.Chih-Hung Hsieh2016-01-022-148/+165
| | | | | | | | * In dwfl_module_getdwarf.c, nested functions 'consider_shdr' and 'translate_offs' are moved to file scope to compile with clang. Signed-off-by: Chih-Hung Hsieh <chh@google.com> Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Move nested functions in dwfl_module_addrsym.c to file scope.Chih-Hung Hsieh2016-01-022-148/+193
| | | | | | | * Move nested functions 'same_section', 'binding_value', 'try_sym_value', and 'search_table'. Signed-off-by: Chih-Hung Hsieh <chh@google.com>
* Move nested functions in dwarf_entry_breakpoints.c to file scope.Chih-Hung Hsieh2016-01-022-51/+64
| | | | | | No nested functions to compile with clang/llvm. Signed-off-by: Chih-Hung Hsieh <chh@google.com>
* Move nested functions in libdw_visit_scopes.c to file scope.Chih-Hung Hsieh2016-01-022-71/+95
| | | | | | | * No nested functions to compile with clang/llvm. Signed-off-by: Chih-Hung Hsieh <chh@google.com> Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libdw: Make sure Ebl is always freed from cfi frame cache.Mark Wielaard2015-11-274-5/+35
| | | | | | | | | | | | | | libdwfl sets the Dwfl_Module Ebl for the eh_cfi and dwarf_cfi cache to save a bit of memory. It also calls ebl_closebackend on the ebl to free it. The Dwarf_CFI never frees the Ebl in the cache, even when it opened one itself. This means that if only libdw calls are used to access the Dwarf_CFI the Ebl might be leaked. Always destroy the Dwarf_CFI cache Ebl in __libdw_destroy_frame_cache. And in __libdwfl_module_free clear the Dwarf_CFI Ebl if it is the Dwfl_Module Ebl before calling dwarf_cfi_end and dwarf_end. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* libdw: initialize state early in read_srclinesDmitry V. Levin2015-11-162-19/+24
| | | | | | | | Starting with commit f8443bd09f8a8d3d84a63e5ce206a218e57dff7a, we might jump to "out" on error before initialization of "state". Initialize "state" early to fix this issue. Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
* No nested functions in dwarf_getsrclines.Chih-Hung Hsieh2015-11-132-105/+144
| | | | | | | Move nested functions in libdw/dwarf_getsrclines.c to file scope. Signed-off-by: Chih-Hung Hsieh <chh@google.com> Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Move nested functions in gzip.c to file scope.Chih-Hung Hsieh2015-11-132-120/+153
| | | | | | | | * libdwfl/gzip.c should now compile with clang. All local variables used by nested functions are passed in an unzip_state structure. Signed-off-by: Chih-Hung Hsieh <chh@google.com>
* No nested function in dwarf_getscopevar to file scope.Chih-Hung Hsieh2015-11-132-17/+27
| | | | | Signed-off-by: Chih-Hung Hsieh <chh@google.com> Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Move nested functions in dwfl_module_getsrc_file.c.Chih-Hung Hsieh2015-11-032-15/+28
| | | | | | | | | * Nested functions in this file are moved to file scope to compile with clang. Extra parameters are added to pass local variables. Signed-off-by: Chih-Hung Hsieh <chh@google.com> Signed-off-by: Mark Wielaard <mjw@redhat.com>