200 Commits

Author SHA1 Message Date
lizhenlin efba194008 update version to 0.193
Signed-off-by: lizhenlin <lizhenlin2@h-partners.com>
2025-11-12 14:48:40 +08:00
unknown 705c22626b update to v0.190
Signed-off-by: unknown <zhangchun39@huawei.com>
2024-12-06 15:48:16 +08:00
zhanghaibo e660ab2124 upgrade to v0.188
Signed-off-by: zhanghaibo <zhanghaibo0@huawei.com>
Change-Id: I83c8756f5ce0a464b037bc963cfdce43df82921b
2023-04-25 18:45:37 +08:00
Martin Liska adc201f819 Come up with startswith function.
New function in system.h that returns true if a string has a given
prefix, false otherwise.  Use it in place of strncmp.

Signed-off-by: Martin Liška <mliska@suse.cz>
2021-05-12 11:56:57 +02:00
Érico Rolim 8382833a25 backends/ppc_initreg.c: include <asm/ptrace.h>.
Necessary on musl for struct pt_regs definition, doesn't affect the
build on glibc, since <sys/user.h> includes the same header.

Signed-off-by: Érico Rolim <erico.erc@gmail.com>
2021-02-05 20:22:29 +01:00
Dmitry V. Levin 2eaae167f0 backends: fix spelling typos in comments
adress -> address
sigle -> single

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
2020-12-12 18:06:28 +01:00
Mark Wielaard 00a25cf38d backends: Handle SHT_X86_64_UNWIND as valid relocation target type.
The x86_64 abi defines a special section type for .eh_frame[_hdr],
SHT_X86_64_UNWIND, which is a valid relocation target type.

https://sourceware.org/bugzilla/show_bug.cgi?id=26878

Signed-off-by: Mark Wielaard <mark@klomp.org>
2020-11-17 15:09:57 +01:00
Mark Wielaard e14a5561f7 backends: Remove tilegx backend.
Support for the Tilera TILE-Gx processor has been removed or deprecated
in gcc and binutils already. There are no users and there is no way to
test it.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2020-10-26 22:44:07 +01:00
Mark Wielaard c505ddf9b1 libebl: Remove unused ebl_syscall_abi.
GCC11 -Warray-parameter warned about ebl_syscall_abi being inconsistently
declared (once with a pointer to int, once with an array of 6 int elements).
Since ebl_syscall_abi isn't actually used and was only implemented for
3 backends without any tests just remove it.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2020-10-26 22:44:07 +01:00
Mark Wielaard d0f3b596fd backends: Implement aarch64_dynamic_tag_name and aarch64_dynamic_tag_check
Signed-off-by: Mark Wielaard <mark@klomp.org>
2020-09-07 09:26:47 +02:00
Mark Wielaard 0d70fc0cb8 backends: Make the reloc_nametable zero element an one char array.
We are using the reloc_nametable zero element as an char array.
So make that element an actual array (we are actually after one
of the next string arrays in the table).

Signed-off-by: Mark Wielaard <mark@klomp.org>
2020-06-19 13:42:57 +02:00
Mark Wielaard 27a388bdd2 libebl: Remove Ebl struct size check and MODVERSION string.
We used to do several sanity checks when the ebl backend libraries
were loaded to make sure there was no version mismatch. When initializing
the backend we passed the current Ebl struct size so the library could
check it supported the given Ebl struct and we checked that the init
method returned the correct build time module version string. Neither
are necessary now that the backends are builtin.

Remove both the struct size check and the MODVERSION string (which
wasn't actually checked anymore). Make the init function return the
given Ebl handle or NULL on error (no init function currently indicates
any error).

Signed-off-by: Mark Wielaard <mark@klomp.org>
2020-06-10 21:01:33 +02:00
Ulrich Drepper fcab4f6587 Implement RISC-V disassembler 2019-09-06 23:49:54 +02:00
Omar Sandoval 4f937e24dc Don't use dlopen() for libebl modules
Currently, architecture-specific code for libebl exists in separate
libebl_$ARCH.so libraries which libebl loads with dlopen() at runtime.
This makes it impossible to have standalone, statically-linked binaries
which use libdwfl if they depend on any architecture-specific
functionality. Additionally, when these libraries cannot be found, the
failure modes are non-obvious. So, let's get rid of libebl_$arch.so and
move it all into libdw.so/libdw.a, which simplifies things considerably.

Signed-off-by: Omar Sandoval <osandov@fb.com>
2019-08-29 13:30:30 +02:00
Omar Sandoval 823ee0c48e Add PIC and non-PIC variants of libcpu and libebl
Currently, libcpu and libebl are always compiled as PIC. An upcoming
change will add the objects from libcpu.a and libebl.a to libdw.a, which
should not be PIC unless configured that way. So, make libcpu.a and
libebl.a non-PIC and add libcpu_pic.a and libebl_pic.a.

Signed-off-by: Omar Sandoval <osandov@fb.com>
2019-08-28 21:45:26 +02:00
Omar Sandoval 4fcb7ec9d7 libcpu: merge libcpu_{i386,x86_64,bpf} into one library
In preparation for combining the libebl backend modules, combine all of
the libcpu backends into libcpu.a.

Signed-off-by: Omar Sandoval <osandov@fb.com>
2019-08-28 21:29:18 +02:00
Mao Han 1b1433d567 Add backend support for C-SKY
C-SKY V2 ABI manual:
https://github.com/c-sky/csky-doc/blob/master/C-SKY_V2_CPU_Applications_Binary_Interface_Standards_Manual.pdf
C-SKY architecture user guide:
https://github.com/c-sky/csky-doc/blob/master/CSKY%20Architecture%20user_guide.pdf

Signed-off-by: Mao Han <han_mao@c-sky.com>
2019-07-17 11:48:35 +02:00
Mark Wielaard b323391407 libdwelf: Add dwelf_elf_e_machine_string and use it in readelf.
To print eh human readable description of the ELF e_machine header field
we used the ebl name. But this is not set for most EM constants. Introduce
a new function dwelf_elf_e_machine_string that does work for all known
EM values. Use that in eu-readelf to print a string representation of the
e_machine value.

Since this was the only usage of ebl->name, remove that from struct ebl.

Also add a testcase that makes sure dwelf_elf_e_machine_string works for
all EM values in the libelf/elf.h header so we will immediately notice
when a new value appears.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2019-07-10 14:08:33 +02:00
Mark Wielaard e6118f9720 backends: riscv_cfi.c had a bad BACKEND define.
BACKEND should have been defined as riscv_ (not aarch64_).

Reported-by: Mao Han <han_mao@c-sky.com>
Signed-off-by: Mark Wielaard <mark@klomp.org>
2019-04-14 22:40:53 +02:00
Mark Wielaard 1e52d4ce3a s390: elflint should check if _GLOBAL_OFFSET_TABLE_ points to .got.
The _GLOBAL_OFFSET_TABLE_ symbol might point to the DT_PLTGOT,
which is in the .got section, even if the symbol itself is
associated with the .got.plt section.

See https://sourceware.org/ml/binutils/2018-07/msg00200.html

Signed-off-by: Mark Wielaard <mark@klomp.org>
2019-02-15 14:39:57 +01:00
Jim Wilson dcd3704ee5 RISC-V: Add untested 32-bit core file support.
Adds 32-bit support exactly the same way that the sparc backend handles
32- and 64-bit core file support.  The 64-bit core file support was tested
and still works same as before.

Signed-off-by: Jim Wilson <jimw@sifive.com>
2019-01-13 11:08:42 +01:00
Jim Wilson 4f4b90c609 RISC-V: Add initial return value location support.
Started with the aarch64 support and modified it for RISC-V.  The
flattened structure support hasn't been written yet, but the rest of
it should be correct for the LP64D ABI.  We have potentially 6 different
ABIs to support, so this requires checking elf header flags in riscv_init
when setting the hook.

Signed-off-by: Jim Wilson <jimw@sifive.com>
2019-01-10 13:25:33 +01:00
Jim Wilson 1dabad36ee RISC-V: Improve riscv64 core file support.
This fixes two problems.  The offset for x1 is changed from 1 to 8 because
this is a byte offset not a register skip count.  Support for reading the
PC value is added.  This requires changing the testsuite to match the new
readelf output for coredumps.

Signed-off-by: Jim Wilson <jimw@sifive.com>
2019-01-08 23:52:11 +01:00
Mark Wielaard 4b0342b85b backends: Add x86_64 section_type_name for SHT_X86_64_UNWIND.
Makes sure that eu-readelf and eu-elflint recognize and show the
x86_64 specific section type correctly.

Signed-off-by: Mark Wielaard <mark@klomp.org>
Tested-by: Milian Wolff <milian.wolff@kdab.com>
2018-11-09 17:53:18 +01:00
Mark Wielaard 9a74c190a2 backends: ppc use define instead of const for size of dwarf_regs array.
The size of the dwarf_regs is a constant, but when building without
optimizations the compiler doesn't see that and will warn that it
cannot proof the stack size is bounded. Use a define instead of a
const, so the compiler will use a constant expression everywhere.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2018-10-20 13:20:30 +02:00
Andreas Schwab 2876b3b648 Handle ADD/SUB relocations
This adds support for ADD and SUB relocations as seen on RISC-V.

Signed-off-by: Andreas Schwab <schwab@suse.de>
2018-10-13 22:54:51 +02:00
Mark Wielaard 19756e7fb6 backends: Use elf_getshdrstrndx to find .odp section in ppc64_init
The .odp section is found by name. But ppc64_init used the e_shstrndx
Ehdr field for that. This is wrong if the file contains more than
SHN_LORESERVE sections. Use elf_getshdrstrndx instead to find the
shstrtab section.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2018-09-13 14:30:30 +02:00
Mark Wielaard ba2a7f4fa5 backends: Always use elf_getshdrstrndx in check_special_symbol.
The check_special_symbol backend functions used the Ehdr e_shstrndx
field to get at the name of sections. This is not correct if there
are more than SHN_LORESERVE sections. Always use elf_getshdrstrndx
to get the shstrtab section. And drop the Ehdr argument that isn't
necessary anymore.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2018-09-13 14:30:30 +02:00
Andreas Schwab df9053f67c backends: add abi_cfi and set_initial_registers_tid callbacks for M68K
This fixes all testsuite failures.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
2018-07-22 10:20:01 +02:00
Andreas Schwab 18c139b596 Fix typo in riscv_register_info
Signed-off-by: Andreas Schwab <schwab@suse.de>
2018-07-19 16:48:14 +02:00
Andreas Schwab 0eff4f2ae6 backends: add core_note callback for RISC-V
Signed-off-by: Andreas Schwab <schwab@suse.de>
2018-07-17 19:27:26 +02:00
Andreas Schwab eaa4ccbd6d backends: add set_initial_registers_tid callback for RISC-V
This fixes the backtrace-dwarf and deleted tests, and lets
backtrace-native run a bit further.

Signed-off-by: Andreas Schwab <schwab@suse.de>
2018-07-13 14:38:27 +02:00
Yonghong Song c1990d36cf backends,bpf: add proper relocation support
Due to libdw does not have proper BPF relocation support,
the pahole cannot display filenames correctly for objects
with default llvm options. So we have to invent
a special option "llc -march=bpf -mattr=dwarfris" to
prevent llvm from generating cross-section dwarf relocation
records (https://reviews.llvm.org/rL326505).
The pahole related discussion is in linux netdev
mailing list (http://lists.openwall.net/netdev/2018/06/15/38, etc.)

We would like to add proper BPF relocation support
to libdw so eventually we could retire the special llc bpf
flag "-mattr=dwarfris".

The bpf relocations are defined in
llvm_repo:include/llvm/BinaryFormat/ELFRelocs/BPF.def:
  ELF_RELOC(R_BPF_NONE,        0)
  ELF_RELOC(R_BPF_64_64,       1)
  ELF_RELOC(R_BPF_64_32,      10)

Removed the relocation type R_BPF_MAP_FD whoes name does not
confirm to llvm definition and replaced it with R_BPF_64_64.
The BPF object is just a relocatible object, not an executable or
a shared library, so assign ELF type to REL only in bpf_reloc.def.

Signed-off-by: Yonghong Song <yhs@fb.com>
2018-06-21 20:33:32 +02:00
Mark Wielaard 3e4f78a7be libelf: Sync elf.h from glibc.
Add NT_PPC_PKEY, R_BPF_64_64 and R_BPF_64_32. Remove R_BPF_MAP_FD.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2018-06-21 20:30:19 +02:00
Andreas Schwab 6ad1343200 backends: add abi_cfi and register_info callbacks for RISC-V
From
https://github.com/riscv/riscv-isa-manual/raw/master/release/riscv-spec-v2.2.pdf
and GCC source.

Signed-off-by: Andreas Schwab <schwab@suse.de>
2018-06-20 13:02:48 +02:00
Andreas Schwab 9279076c51 backends: add checks for _GLOBAL_OFFSET_TABLE_ and __global_pointer$ on riscv
Signed-off-by: Andreas Schwab <schwab@suse.de>
2018-05-15 16:46:18 +02:00
Andreas Schwab 470aba9579 Add support for RISC-V
This implements initial support for the RISC-V architecture.  It has
been tested with qemu linux-user emulation
<https://build.opensuse.org/package/live_build_log/openSUSE:Factory:RISCV/elfutils/standard/riscv64>,
with the following unresolved issues

FAIL: run-strip-strmerge.sh
===========================

elflint /home/abuild/rpmbuild/BUILD/elfutils-0.170/tests/elfstrmerge
section [32] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0x51c0 does not match .got section address 0x5010
section [32] '.symtab': symbol 119: st_value out of bounds
FAIL run-strip-strmerge.sh (exit status: 1)

FAIL: run-elflint-self.sh
=========================

section [33] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0x6220 does not match .got section address 0x6008
section [33] '.symtab': symbol 135: st_value out of bounds
*** failure in /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elflint --quiet --gnu-ld /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/addr2line
section [33] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0x91d8 does not match .got section address 0x9040
section [33] '.symtab': symbol 163: st_value out of bounds
*** failure in /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elflint --quiet --gnu-ld /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elfcmp
section [33] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0x1a2a0 does not match .got section address 0x1a040
section [33] '.symtab': symbol 267: st_value out of bounds
*** failure in /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elflint --quiet --gnu-ld /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elflint
section [33] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0xd418 does not match .got section address 0xd0f0
section [33] '.symtab': symbol 238: st_value out of bounds
*** failure in /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elflint --quiet --gnu-ld /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/nm
section [33] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0xa2d0 does not match .got section address 0xa0b0
section [33] '.symtab': symbol 193: st_value out of bounds
*** failure in /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elflint --quiet --gnu-ld /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/objdump
section [33] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0x2e5b8 does not match .got section address 0x2e058
section [33] '.symtab': symbol 410: st_value out of bounds
*** failure in /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elflint --quiet --gnu-ld /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/readelf
section [32] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0x171b8 does not match .got section address 0x17010
*** failure in /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elflint --quiet --gnu-ld /home/abuild/rpmbuild/BUILD/elfutils-0.170/libelf/libelf.so
section [32] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0x3a5b0 does not match .got section address 0x3a0d8
*** failure in /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elflint --quiet --gnu-ld /home/abuild/rpmbuild/BUILD/elfutils-0.170/libdw/libdw.so
section [31] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0xd0c8 does not match .got section address 0xd008
*** failure in /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elflint --quiet --gnu-ld /home/abuild/rpmbuild/BUILD/elfutils-0.170/backends/libebl_i386.so
section [31] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0xf0c8 does not match .got section address 0xf008
*** failure in /home/abuild/rpmbuild/BUILD/elfutils-0.170/src/elflint --quiet --gnu-ld /home/abuild/rpmbuild/BUILD/elfutils-0.170/backends/libebl_x86_64.so
FAIL run-elflint-self.sh (exit status: 1)

FAIL: run-native-test.sh
========================

/home/abuild/rpmbuild/BUILD/elfutils-0.170/tests/allregs: dwfl_module_register_names: no backend registers known
FAIL run-native-test.sh (exit status: 1)

FAIL: run-backtrace-native-core.sh
==================================

backtrace: backtrace.c:111: callback_verify: Assertion `symname && strcmp (symname, "raise") == 0' failed.
./test-subr.sh: line 84: 26040 Aborted                 (core dumped) LD_LIBRARY_PATH="${built_library_path}${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" $VALGRIND_CMD "$@"
backtrace-child-core.26027: no main
rmdir: failed to remove 'test-26016': Directory not empty
FAIL run-backtrace-native-core.sh (exit status: 1)

In addition, all tests that use ptrace are failing as linux-user
emulation does not implement it.

There are no regressions for a x86_64 build.

Signed-off-by: Andreas Schwab <schwab@suse.de>
2018-04-23 18:46:53 +02:00
Mark Wielaard f881459ffc aarch64: Add default cfi rule to restore SP from CFA address.
The CFA is set by default to the stack pointer of the previous frame.
So that is also how we can always restore the SP. This default aarch64
CFI rule is necessary on Fedora 28 with GCC8 to make the run-deleted.sh
and run-backtrace-dwarf.sh testcases work.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2018-04-13 13:37:16 +02:00
Mark Wielaard 4482d0009a Include sys/ptrace.h as early as possible.
On some systems, at least on Fedora 27 ppc64le with glibc 2.26-24 and
kernel 4.14.18-300, including sys/ptrace.h late (after signal.h or
sys/wait.h for example) will cause issues and produce errors like:

In file included from /usr/include/asm/sigcontext.h:12:0,
                 from /usr/include/bits/sigcontext.h:30,
                 from /usr/include/signal.h:287,
                 from /usr/include/sys/wait.h:36,
                 from linux-pid-attach.c:38:
/usr/include/sys/ptrace.h:73:3: error: expected identifier before numeric constant
   PTRACE_GETREGS = 12,
   ^

Swapping the include order fixes these issues.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2018-02-15 14:55:39 +01:00
Joshua Watt 555e15ebe8 Use fallthrough attribute.
Use __attribute__ ((fallthrough)) to indicate switch case fall through
instead of a comment. This ensures that the fallthrough warning is not
triggered even if the file is pre-processed (hence stripping the
comments) before it is compiled.

The actual fallback implementation is hidden behind a FALLBACK macro in
case the compiler doesn't support it.

Finally, the -Wimplict-fallthrough warning was upgraded to only allow
the attribute to satisfy it; a comment alone is no longer sufficient.

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
2018-02-10 03:19:26 +01:00
Mark Wielaard ab6b37ac32 backends: Ignore GCC8 -Wpacked-not-aligned for m68k_corenote.c.
The GCC8 -Wpacked-not-aligned warns if a structure field with explicit
padding in a packed structure will be misaligned. m68k prstatus core
notes are described by a packed structure which has such aligned structure
fields.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2017-10-26 16:26:37 +02:00
Ulf Hermann 17d7194d29 Make sure packed structs follow the gcc memory layout
gcc defaults to using struct layouts that follow the native conventions,
even if __attribute__((packed)) is given. In order to get the layout we
expect, we need to tell gcc to always use the gcc struct layout, at
least for packed structs. To do this, we can use the gcc_struct
attribute.

This is important, not only for porting to windows, but also potentially
for other platforms, as the bugs resulting from struct layout
differences are rather subtle and hard to find.

Signed-off-by: Ulf Hermann <ulf.hermann@qt.io>
2017-09-20 21:40:31 +02:00
Ulf Hermann 07737584e7 Check for -z,defs, -z,relro, -fPIC, -fPIE before using them
Those flags are not available on all platforms, and omitting them when
not available will not cause any harm. In particular:

-z,defs disallows undefined symbols in object files. This option is
unsupported if the target binary format enforces the same condition
already. Furthermore it is only a compile time sanity check. When it is
omitted, the same binary is produced.

-z,relro instructs the loader to mark sections read-only after loading
the library, where possible. This is a hardening mechanism. If it is
unavailable, the functionality of the code is not affected in any way.

-fPIC instructs the compiler to produce position independent code. While
this is preferable to relocatable code, relocatable code also works and
may even be faster. Relocatable code might just be loaded into memory
multiple times for different processes.

-fPIE is the same thing as -fPIC for executables rather than shared
libraries.

Signed-off-by: Ulf Hermann <ulf.hermann@qt.io>
2017-08-18 22:29:46 +02:00
Mark Wielaard 31bae8177b backends: sparc GOTDATA_OP[_HIX22|LOX10] can be used in ET_REL files.
Tested on new GNU Compile Farm server gcc202.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2017-08-02 14:06:50 +02:00
Gustavo Romero 55a471f5fe ppc64: Add HTM SPRs support to readelf
Since POWER8, PowerPC 64 supports Hardware Transactional Memory, which has
three special purpose registers associated to it: tfhar, tfiar, and texasr.
This commit add HTM SPRs set as known note type so it's possible to use
'readelf --notes' to inspect the HTM SPRs in a coredump file generated in
such a machines.

Signed-off-by: Gustavo Romero <gromero@linux.vnet.ibm.com>
2017-07-25 12:20:42 +02:00
Mark Wielaard 55cb7dfa7e strip: Deal with ARM data marker symbols pointing to debug sections.
ARM data marker symbols "$d" indicate the start of a sequence of data
items in a section. For data only sections no data marker symbol is
necessary, but may be put pointing to the start of the section.
binutils however has a bug which places a data marker symbol somewhere
inside the section (at least for .debug_frame).
https://sourceware.org/bugzilla/show_bug.cgi?id=21809

When strip finds a symbol pointing to a debug section that would be
put into the .debug file then it will copy over the whole symbol table.
This isn't necessary because the symbol is redundant.

Add an ebl hook to recognize data marker symbols with implementations
for arm and aarch64. Use it in strip to strip such symbols from the
symbol table if they point to a debug section.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2017-07-24 12:20:01 +02:00
Mark Wielaard 1609679b1e backends: Don't depend on linux/bpf.h to compile bpf disassembler.
We only need a few constants and one structure definition from linux/bpf.
Just define those in a local lib/bpf.h file. This makes sure the bpf
disassembler is always build and included even when elfutils is build
on older GNU/Linux systems (and even on other platforms).

Signed-off-by: Mark Wielaard <mark@klomp.org>
2017-07-24 12:06:14 +02:00
Ulf Hermann 8abf0b5b58 Unify linking of libasm, libelf, libdw, backends
Link them all with -z,defs,-z,relro,--no-undefined, provide complete
dependencies for the link steps, and add libeu.a to each one. libeu.a
contains useful library functionality that each of them might use. The
linker will strip unneeded symbols, so linking it in won't hurt even if
none of the functions are used.

Signed-off-by: Ulf Hermann <ulf.hermann@qt.io>
2017-07-24 11:01:09 +02:00
Mark Wielaard 1dd301b7c3 backends: Swap sys/ptrace.h and asm/ptrace.h include order on s390.
glibc 2.26 changed the sys/ptrace.h header so that it cannot be included
after asm/ptrace.h. We still need to include the kernel asm/ptrace.h for
the ptrace_area definition. Including it after sys/ptrace.h works against
both old and new glibc.

Signed-off-by: Mark Wielaard <mark@klomp.org>
2017-07-17 17:27:01 +02:00
Andreas Schwab d65648473d Support EM_PPC machine flags
This fixes the elflint self test when the compiler is configured for PIE
default.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
2017-06-15 19:40:32 +02:00