| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Only libelf.a is needed by Android now.
Bug: 17281788
Change-Id: I4ae340884c8d19a42bece72f31edb59c193746b1
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* git merge 203f0a3
* See all upstream changes since the previous merge
in branch aosp/upstream-master:
git diff 9d1e236..203f0a3
* Android relevant upstream changes:
* Version number changed from 0.164 to 0.165
* libelf now depends on zlib
* Changed version number in generated files:
version.h, config.h
* No change to generated files:
libdw/known-dwarf.h
* Updated libelf/Android.mk:
* added new source files:
gelf_getchdr.c elf{32,64}_getchdr.c elf_compress.c
* added LOCAL_STATIC_LIBRARIES := libz
Change-Id: Ieb306d84ffcaf680ad6e74da28fcc8efbf00592a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* git merge 9d1e236
* See all upstream changes since the previous merge
in branch aosp/upstream-master:
git diff b47fb23..9d1e236
* Android relevant upstream changes:
Move nested functions to file scope to compile with clang/llvm:
libdw/dwarf_entry_breakpoints.c
libdw/libdw_visit_scopes.c
libdwfl/core-file.c
libdwfl/dwfl_module_addrsym.c
libdwfl/dwfl_module_getdwarf.c
libdwfl/link_map.c
libdwfl/linux-proc-maps.c
* Other upstream changes:
backends: sparc: support for live backtraces
elfcmp: Fix leaking Ebl handles.
libdw: Don't leak fake_loc_cu.
libdw: Don't leak duplicate FDEs.
libdw: Don't use a FDE if it doesn't actually cover a real code range.
libdw: Make sure Ebl is always freed from cfi frame cache.
libdwfl: Don't leak core Elf and core file descriptor from argp-std.
libdwfl: Fix memory leak in link_map.c dwfl_link_map_report.
libdwfl: make the unwinder aware of the backend defined ra_offset.
libebl: new backend attribute ra_offset.
nm: Don't leak duplicate Dwarf local names.
nm: If the file is ET_REL and we need Dwarf use libdwfl to get it relocated.
tests: Fix some memory leaks in testcases.
tests: Use valgrind --leak-check=full.
unstrip: Don't leak new section data.
* No changes to the following generated files:
version.h, config.h, libdw/known-dwarf.h
* Post merge change:
Enable clang compilation in the libdw directory.
Change-Id: Ifa9e60b1d5ab1c70da69410509cc9f3abdf58661
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| | |
* libdwelf, libebl, libelf can compile cleanly with clang now.
* libdw and libdwfl still have some nested functions only compiled by gcc.
Change-Id: Id43585c6d11f521ef0ccebe9cae4db9de436cdc0
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
git merge 86ed7f7
Include upstream changes up to Thu Oct 8 00:16:03 2015.
Previous clang compilation errors about union of VLA
should be fixed with this merge.
* Allocate exact amount of bytes for phdrs and shdrs.
* Do without union of variable length arrays.
* Other changes from upstream, not all used for Android:
AM_SILENT_RULES coverage, sparc check_object_attribute ebl hook,
Use -fPIC in PIC code.
* No change of generated files such as:
./config.h, libdw/known-dwarf.h, ./version.h
Change-Id: Iac63519112c4a92b57344f4a43bf0e9a6c4baa13
|
| |
| |
| |
| |
| |
| |
| | |
This avoids relocation overflows in sparc/sparc64 targets while
linking, where the reachable data using -fpic is only 4kb.
Signed-off-by: Jose E. Marchesi <jose.marchesi@oracle.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
git merge d8698e55cbe95e56c3a4cbd67c320048ea4f087a
Include upstream changes up to Wed Sep 23 20:44:06 2015.
Update generated files:
./config.h
./libdw/known-dwarf.h
./version.h
Change-Id: Ica2510edda846659a0c89703aeafe85bd62abab8
|
| |
| |
| |
| |
| |
| |
| | |
We already require -std=gnu99 and old-style function definitions might
hide some compiler warnings.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
GCC6 and Clang give warnings on redundant NULL tests of parameters
that are declared with __nonnull_attribute__.
Signed-off-by: Chih-Hung Hsieh <chh@google.com>
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| | |
Signed-off-by: Chih-Hung Hsieh <chh@google.com>
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| | |
Seen in run-elflint-self.sh for size.o when build with --enable-gcov.
https://bugzilla.redhat.com/show_bug.cgi?id=1230798
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| | |
Normally an NT_GNU_ABI_TAG is large, just 4 words (16 bytes).
Only use stack allocated conversion buf for small (max 16 words) notes.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Help the compiler see we stack allocate a small array. Add assert to check
no machine prefix is ever larger than 16. Current maximum number is 7.
This prevents gcc warning about possible unbounded stack usage with
-Wstack-usage.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| | |
Make it really, really clear that the libebl interface is NOT source and
NOT abi compatible and we will break any users.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| | |
Using elf_getphdrnum lets us handle ELF files that use more than PN_XNUM
phdrs. And guards against some corrupt files.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Since elf_strptr can fail and return NULL we should always check the result
before usage. Debug sections are only handled by section name, so make sure
the name actually exists.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The ARM EABI says that the zero bit of function symbol st_value indicates
whether the symbol points to a THUMB or ARM function. Also the return
value address in an unwind will contain the same extra bit to indicate
whether to return to a regular ARM or THUMB function. Add a new ebl
function to mask off such bits and turn a function value into a function
address so that we get the actual value that a function symbol or return
address points to. It isn't easily possible to reuse the existing
ebl_resolve_sym_value for this purpose, so we end up with another hook
that can be used from dwfl_module_getsym, handle_cfi and elflint.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
And implement for arm and ia64. Both have special section types that
are valid targets for a reloc. Both refer to unwind data. elflint now
just calls ebl_check_reloc_target_type instead of hard coding the
expected section types.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some arches like ppc64 use function descriptor values instead of function
addresses causing matching of names and addresses to fail when using
dwfl_module_getsym or dwfl_module_addrsym.
Add ebl hook to resolve any function descriptor values found in non-ET_REL
modules.
The new function dwfl_module_getsym_info doesn't adjust the symbol value
in any way, but returns the adjusted and/or resolved address associated
with the symbol separately. The new function dwfl_module_addrinfo resolves
against both the address associated with the symbol (which could be the
function entry address) value and the adjusted st_value. So that it is
easy to resolve and match either function descriptors and/or function
entry addresses.
Since these new functions also return more information they replace the
dwfl_module_getsym_elf and dwfl_module_addrsym_elf functions that never
made it into a released elfutils version.
addr2line and readelf now use the new functions when looking up functions
names. addr2line will now also display the section the address was found
in when given -x.
Extra testcases were added for both addr2line and the dwflsyms testscase.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Petr Machata <pmachata@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
|
| |
| |
| |
| |
| | |
Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Register rules using expressions are stored using an offset from the
start of the .eh_frame or .debug_frame ELF section data. Since abi_cfi
rules aren't stored in those ELF sections they should use neither
DW_CFA_expression nor DW_CFA_val_expression. The only backend that used
DW_CFA_val_expression was ppc_cfi.c. It was easier to express the same
rule using DW_CFA_val_offset than to change the code to handle register
rules using expressions. On most architectures this did work by accident.
See the definition of struct dwarf_frame_register value in libdw/cfi.h to
see why. But on ia64 the abi_cfi data and actual frame data were placed
too far apart and caused a crash in tests/run-addrcfi.sh for ppc32.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Petr Machata <pmachata@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| | |
autoreconf will install config/test-driver, ignore it.
Update gettext m4 and po files to version 0.18.2.
Use AM_CPPFLAGS instead of INCLUDES.
All changes are backward compatible with Automake 1.11.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
2012-10-12 Jan Kratochvil <jan.kratochvil@redhat.com>
* ebl-hooks.h (abi_cfi): Extend its comment for return value.
* eblopenbackend.c (default_abi_cfi): Return -1.
* libebl.h (ebl_abi_cfi): Extend its comment for return value.
Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Petr Machata <pmachata@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Jeff Kenton <jkenton@tilera.com>
|
| |
| |
| |
| | |
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Change name from "Red Hat elfutils" to "elfutils".
* Update license of standalone tools and test from GPLv2 to GPLv3+.
* Change license of libraries from GPLv2+exception to GPLv2/LGPLv3+.
* Add Developer Certificate of Origin based contributor policy.
top-level:
- COPYING: Upgraded from GPLv2 to GPLv3.
- CONTRIBUTING, COPYING-GPLv2, COPYING-LGPLv3: New files.
- NEWS: Added note about new contribution and license policy.
- Makefile.am: Updated to GPLv3, added new files to EXTRA_DIST.
- configure.ac: Update to GPLv3, changed AC_INIT name to 'elfutils'.
backends, lib, libasm, libcpu, libdw, libdwfl, libebl, libelf:
- All files updated to GPLv2/LGPLv3+. Except some very small files
(<5 lines) which didn't have any headers at all before, the linker
.maps files and the libcpu/defs files which only contain data and
libelf/elf.h which comes from glibc and is under LGPLv2+.
config:
- elfutils.spec.in: Add new License: headers and new %doc files.
- Update all license headers to GPLv2/LGPLv3+ for files used by libs.
src, tests:
- All files updated to GPLv3+. Except for the test bz2 data files, the
linker maps and script files and some very small files (<5 lines)
that don't have any headers.
Signed-off-by: Richard Fontana <rfontana@redhat.com>
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
| |
| |
| |
| | |
We use .gitignore these days.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
libebl/
* libebl.h (ebl_object_note_type_name): Add const char *name arg.
* eblhooks.h (object_note_type_name): Likewise.
* eblopenbackend.c (default_object_note_type_name): Likewise.
* eblobjnotetypename.c (ebl_object_note_type_name): Likewise.
And print version if name is "stapsdt".
* eblobjnote.c (ebl_object_note): Add output for "stapsdt" notes.
src/
* readelf.c (handle_notes_data): Call ebl_object_note_type_name
with note name.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
with --disable-dependency-tracking.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
(cherry picked from commit a3a81e8352571f8aa9721a8940fbe54543029958)
|
| | |
|