summaryrefslogtreecommitdiffstats
path: root/libcpu
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'elfutils-0.175'Ulf Hermann2019-01-092-1/+30
|\ | | | | | | | | | | elfutils 0.175 release Change-Id: I409f41767af349d0521351dd733879ad31c65aab
| * libcpu: Recognize bpf jump variants BPF_JLT, BPF_JLE, BPF_JSLT and BPF_JSLEMark Wielaard2018-11-092-1/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Linux kernel 4.13 introduced 4 more jump class variants. commit 92b31a9af73b3a3fc801899335d6c47966351830 Author: Daniel Borkmann <daniel@iogearbox.net> Date: Thu Aug 10 01:39:55 2017 +0200 bpf: add BPF_J{LT,LE,SLT,SLE} instructions For conditional jumping on unsigned and signed < and <= between a register and another register or immediate. Add these new constants to bpf.h, recognize them in bpf_disasm and update the testfile-bpf-dis1.expect file. Signed-off-by: Mark Wielaard <mark@klomp.org>
* | Merge tag 'elfutils-0.174'Ulf Hermann2018-10-113-4/+2
|\| | | | | | | | | | | elfutils 0.174 release Change-Id: Ibcbdfca61cf0b65391ab6d0ad00f18ba61027e07
| * Consolidate error.h inclusion in system.hRoss Burton2018-07-053-4/+2
| | | | | | | | | | | | | | | | | | error.h isn't standard and so isn't part of the musl C library. To easy future porting, consolidate the inclusion of error.h into system.h. https://sourceware.org/bugzilla/show_bug.cgi?id=21008 Signed-off-by: Ross Burton <ross.burton@intel.com>
* | Merge tag 'elfutils-0.173'Ulf Hermann2018-07-132-5/+14
|\| | | | | | | | | | | elfutils 0.173 release Change-Id: I83dc56dd15c26fe7acf4ce73c29df65b8b65e757
| * Use fallthrough attribute.Joshua Watt2018-02-102-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Make sure packed structs follow the gcc memory layoutUlf Hermann2017-09-202-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Check for -z,defs, -z,relro, -fPIC, -fPIE before using themUlf Hermann2017-08-182-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge tag 'elfutils-0.170'Ulf Hermann2017-08-173-9/+8
|\| | | | | | | | | | | elfutils 0.170 release Change-Id: I37d03645902b9f0a9fb708af1551db8843537799
| * backends: Don't depend on linux/bpf.h to compile bpf disassembler.Mark Wielaard2017-07-243-8/+7
| | | | | | | | | | | | | | | | | | 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>
| * Add EXEEXT to gendisUlf Hermann2017-04-262-3/+7
| | | | | | | | | | | | | | Otherwise the build will fail on systems that actually need file extension for executables. Signed-off-by: Ulf Hermann <ulf.hermann@qt.io>
| * Don't use comparison_fn_tUlf Hermann2017-04-262-2/+6
| | | | | | | | | | | | Not all search.h declare it, and it is not very helpful anyway. Signed-off-by: Ulf Hermann <ulf.hermann@qt.io>
* | Workaround compiler not seeing assert(false)Ulf Hermann2017-05-081-0/+1
| | | | | | | | | | Change-Id: I6ea2f6f6684ce1df10c7008ad4a894c9205a267c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Make sure packed structs follow the gcc memory layoutUlf Hermann2017-05-021-1/+1
| | | | | | | | | | | | | | | | On windows gcc by default generates code that follows the MSVC layout. We don't want that as it adds extra padding. Change-Id: I92efe5da2a2ad818783707ee96a9b8e0eb606dbd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Check if we need -lintl for linking gettextUlf Hermann2017-04-281-1/+1
| | | | | | | | | | | | | | | | We might not have gettext available from libc and we cannot get it from gnulib either. Change-Id: I1cc657b13b97bcc7c0f158f11b6702c24e69695c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Check for -z,defs, -z,relro, -fPIC, -fPIE before using themUlf Hermann2017-04-282-1/+5
| | | | | | | | | | | | | | | | | | On windows those aren't needed because the link results are no ELF files and all code is position independent anyway. gcc then complains about them, which is in turn caught by -Werror. Change-Id: Ie3d600b7c430698fc3d867a986a4d48f7ad1bbec Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add gnulib modules to replace missing libc functionalityUlf Hermann2017-04-272-1/+11
| | | | | | | | | | | | | | | | | | | | This enables us to build a fully featured elfutils package on systems with reduced C libraries, such as windows. All the modules are built into libgnu.a, which is then linked into all binaries if --enable-gnulib is given on the configure line. Change-Id: I743fd22172bc85d9f10dcc3dad8eb921f462b554 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add EXEEXT to gendisUlf Hermann2017-04-272-3/+7
| | | | | | | | | | | | | | | | Otherwise the build will fail on systems that actually need file extension for executables. Change-Id: Ief8daaf158182089aa65a9fd693b43c1f4cae9fb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Don't use comparison_fn_tUlf Hermann2017-04-212-2/+6
|/ | | | | | | Not all search.h declare it, and it is not very helpful anyway. Change-Id: Icd3439175048b25058507dd5ec657b5680b82bb2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add GCC7 -Wimplicit-fallthrough support/fixes.Mark Wielaard2016-11-102-2/+6
| | | | | | | | | | | GCC7 will have a new -Wimplicit-fallthrough warning. It did catch one small buglet in elflint option procession. So it seems useful to enable to make sure all swatch case fallthroughs are deliberate. Add configure check to detect whether gcc support -Wimplicit-fallthrough and enable it. Add fixes and explicit fallthrough comments where necessary. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* lib: Provide MAX and MIN in system.hAkihiko Odaki2016-10-124-3/+8
| | | | | | | | | | This change also creates a new header file libeu.h to provide the prototypes for the function of libeu. That hides the definition of function crc32, which can conflict with zlib, from libelf. It also prevents mistakes to refer those functions from a component which doesn't link with libeu, such as libelf. Signed-off-by: Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
* libcpu: Fix build of bpf_disasm.c for kernels < 3.20.Mark Wielaard2016-09-052-0/+8
| | | | | | | Before linux 3.20 the BPF_PSEUDO_MAP_FD constant wasn't defined. Reported-by: Julian Ospald <hasufell@posteo.de> Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Fix bpf disassembler for _FORTIFY_SOURCERichard Henderson2016-08-112-174/+372
| | | | | | | | It's illegal to skip positional operands for printf. Rearrange the printing of the instructions to use exactly the operands required. Also, fix printing of mod operations: s/%/%%/ in the print format. Also, fix printing of endian operations: remove extra spaces.
* Add support for BPFRichard Henderson2016-06-284-1/+303
| | | | Signed-off-by: Richard Henderson <rth@redhat.com>
* Improve AM_SILENT_RULES coverageJosh Stone2015-10-062-5/+11
| | | | | | | | | | | Note, elfutils does not explicitly enable AM_SILENT_RULES. It's only available starting from automake 1.11, but starting from automake 1.13 silent rules are always generated, defaulting to verbose. $(AM_V_foo) additions should be no-ops on systems that don't support silent rules. To be silent, use "./configure --enable-silent-rules" or "make V=0". Signed-off-by: Josh Stone <jistone@redhat.com>
* Use -fPIC instead of -fpic when generating PIC code.Jose E. Marchesi2015-10-062-1/+6
| | | | | | | 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>
* Remove mudflap build option.Mark Wielaard2014-04-182-1/+5
| | | | | | | | | The --enable-mudflap configure build has been broken for 2 years without anybody apparently noticing. GCC 4.9 removed mudflap support. Before release we now run make distcheck with valgrind support. Removal of the mudflap configure option simplifies the build a little. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Updates for Automake 1.13.Mark Wielaard2013-04-262-1/+5
| | | | | | | 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.
* Robustify makefile redirection use.Roland McGrath2012-10-102-2/+9
|
* Add a rule to make build failure w/o --enable-maintainer-mode clearer.Roland McGrath2012-06-262-1/+12
|
* Update name, license and contributor policy.Mark Wielaard2012-06-058-125/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* Remove .mtn-ignore and .cvsignore files.Mark Wielaard2012-06-051-1/+0
| | | | We use .gitignore these days.
* libcpu Makefile.am, move %_dis.h from CLEANFILES to MAINTAINERCLEANFILES.Mark Wielaard2012-02-242-1/+7
|
* Color code output of nm and objdumpUlrich Drepper2012-01-212-5/+102
|
* Include *_dis.h headers in dist; generate them only for ↵Roland McGrath2011-10-162-9/+21
| | | | --enable-maintainer-mode.
* Clean up libcpu makefile rules for better error detection.Roland McGrath2010-08-162-9/+15
|
* Clean up and consolidate automake magic to reduce duplication and to work ↵Roland McGrath2010-02-152-18/+10
| | | | with --disable-dependency-tracking.
* Nominal ARM support.Roland McGrath2009-04-152-0/+6
|
* Use quotes around command substitution that can produce leading whitespace.Roland McGrath2009-01-232-2/+7
|
* Optimize x86/x86-64 disassembler tables.Ulrich Drepper2009-01-013-11/+44
|
* Add Intel SSE4 support to disassembler.Ulrich Drepper2009-01-013-2/+63
|
* Replay output operations correctly when internal buffer in x86/x86-64Ulrich Drepper2008-12-312-24/+40
| | | | disasembler code is full.
* Slightly better formatting in generating disassembly data.Ulrich Drepper2008-12-311-1/+1
|
* Optimize x86/x86-64 disassembler some more. Avoid relocations for stringUlrich Drepper2008-12-313-7/+41
| | | | table.
* Fix printing of rex prefix in x86-64 disassembler.Ulrich Drepper2008-12-312-0/+20
|
* Optimize x86/x86-64 disassembler a bit.Ulrich Drepper2008-12-313-16/+18
|
* Mark constant array as const.Ulrich Drepper2008-12-312-1/+3
|
* Implement blendvpd and blendvps opcodes in x86/x86-64 disassembler.Ulrich Drepper2008-12-312-0/+6
|
* Implement blendps opcode for x86/x86-64.Ulrich Drepper2008-12-302-1/+2
|
* Implement disassembly of blendpd instruction for x86/x86-64.Ulrich Drepper2008-12-302-0/+5
|