summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix typos in lib/Makefile.amUlf Hermann2017-12-111-3/+7
| | | | | | | | We want to uninstall the compat library in the uninstall step and we want to properly clean the build artifacts on make clean. Change-Id: Id26a80c19a68fb79a9194d0065f81b5a189af8d1 Reviewed-by: Christian Kandeler <[email protected]>
* Merge tag 'elfutils-0.170'Ulf Hermann2017-08-173-1/+88
|\ | | | | | | | | | | elfutils 0.170 release Change-Id: I37d03645902b9f0a9fb708af1551db8843537799
| * backends: Don't depend on linux/bpf.h to compile bpf disassembler.Mark Wielaard2017-07-243-1/+88
| | | | | | | | | | | | | | | | | | 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 <[email protected]>
* | Merge tag 'elfutils-0.169'QtCreator4.5.1QtCreator4.5.0-rc1QtCreator4.5.0QtCreator4.4.1QtCreator4.4.0-rc1QtCreator4.4.0-beta1QtCreator4.4.04.54.4Ulf Hermann2017-05-082-2/+6
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: ChangeLog backends/ChangeLog config/ChangeLog lib/ChangeLog libasm/ChangeLog libcpu/ChangeLog libdw/ChangeLog libdwfl/ChangeLog libdwfl/derelocate.c libdwfl/linux-kernel-modules.c libebl/ChangeLog libelf/ChangeLog src/ChangeLog tests/ChangeLog Change-Id: I3b7ced947c6498290aaae27443985b84531f0bcd
| * Prepare for 0.169.elfutils-0.169Mark Wielaard2017-05-052-2/+6
| | | | | | | | | | | | | | Set version to 0.169. Update copyright year. Update po/*.po files. And add user visible changes to new 0.169 NEWS section. Signed-off-by: Mark Wielaard <[email protected]>
| * Avoid double-including config.hUlf Hermann2017-05-023-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | config.h doesn't have include guards, so including it twice is bad. We deal with this by checking for PACKAGE_NAME, but only in some places. Once we start using gnulib, we will need to include config.h before any gnulib-generated headers. This is problematic if we include it transitively through our own private headers. In order to set a clear rule about inclusion of config.h, it is now included in every .c file as first header, but not in any header. This will definitely avoid double-inclusion and satisfy the condition that it has to be included before gnulib headers. It comes at the price of adding some redundancy, but there is no clean way to avoid this. Signed-off-by: Ulf Hermann <[email protected]>
* | Provide build rules for a compatibility libraryUlf Hermann2017-05-083-2/+46
| | | | | | | | | | | | | | | | | | | | | | | | We need to export open(), close(), malloc(), and free() from the C library we are using so that we can handle resources passed to and from elfutils correctly. For example, on Windows, calling free() on memory malloc()'d with a different C library will not work. In addition, having __cxa_demangle from the GNU libstdc++ available is very helpful, so we include that, too. Change-Id: I8e47e8f313fb3ffcc18309dadabf24acf36465f0 Reviewed-by: Christian Kandeler <[email protected]>
* | Drop the trickery in printversion.hUlf Hermann2017-05-082-7/+8
| | | | | | | | | | | | | | | | | | | | The mechanism of moving argp_program_version_hook and argp_program_bug_address to .rodata is not portable and two pointers per program are not worth the effort to make it portable. Revert the pointers to be non-const. Change-Id: Iea458a5927cf31c72d972bc014229eb62fe2a5a5 Reviewed-by: Christian Kandeler <[email protected]>
* | Use OS-specific pathsUlf Hermann2017-05-082-0/+21
| | | | | | | | | | | | | | | | | | | | In general we need to use ';' as path separator and '\' and directory separator on windows. The shell will automatically translate paths to some extent, but we have to call "pwd -W" rather than plain "pwd" to get something useful. Change-Id: I1a117d219a2aa00c1f77ae7d3a1d92b9bae526db Reviewed-by: Christian Kandeler <[email protected]>
* | Open files in O_BINARYUlf Hermann2017-05-082-0/+8
| | | | | | | | | | | | | | | | | | If O_BINARY is not defined, define it to 0, so that the change has no effect then. Some systems have separate binary and text modes for files, and we don't want the text mode to be used. Change-Id: If7efb5bd448c2a1c7d1eb5dab276849b1b15a3ce Reviewed-by: Christian Kandeler <[email protected]>
* | Define unlocked io functions to locked ones if they are unavailableUlf Hermann2017-05-042-0/+33
| | | | | | | | | | | | | | The locked IO functions will still do the job, albeit a bit slower. Change-Id: I65c2b6aaa00374302aff3bcf4852a252e1eefd17 Reviewed-by: Christian Kandeler <[email protected]>
* | Add fake features.h for win32Ulf Hermann2017-05-031-2/+8
| | | | | | | | | | | | | | | | gnulib #defines all the types we need from it, so it is empty. We still need it because other files #include it. Change-Id: I0bb4ee71bcb3e983b41f640c12ef5b9f09b6b03c Reviewed-by: Christian Kandeler <[email protected]>
* | If f(un)lockfile is unavailable define it awayUlf Hermann2017-05-031-0/+7
| | | | | | | | | | | | | | | | | | Sometimes _POSIX_THREAD_SAFE_FUNCTIONS is still set in this case, which in turn leads to build problems in getopt.c (which would define the functions to nop anyway if it knew they aren't present). Change-Id: I76debd27f1d1ed968cc663db4b60adb5f0052d4b Reviewed-by: Christian Kandeler <[email protected]>
* | Fix typoUlf Hermann2017-05-021-1/+1
| | | | | | | | | | Change-Id: Id980ba7c2caaf6a2f541b682790f03e33cea3ea4 Reviewed-by: Christian Kandeler <[email protected]>
* | Add a "selfcontained" mode to provide missing headers on windowsUlf Hermann2017-05-022-1/+53
| | | | | | | | | | | | | | | | | | | | | | On windows there is no features.h, uid_t, gid_t, mode_t, and pid_t are not defined and there is also no elf.h. To make it possible to build other software against libelf and libdw, install our own version of elf.h, and a bare-bones features.h that provides exactly the above declarations. Change-Id: I9df3c8cbffe431b8b6834dbd2246e38df4f5e172 Reviewed-by: Christian Kandeler <[email protected]>
* | Make sure packed structs follow the gcc memory layoutUlf Hermann2017-05-021-0/+8
| | | | | | | | | | | | | | | | 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 <[email protected]>
* | Check if gcc complains about __attribute__ (visibility(..))Ulf Hermann2017-04-282-0/+9
| | | | | | | | | | | | | | | | If so, define attribute_hidden to be empty. Also, use attribute_hidden in all places where we hide symbols. Change-Id: I37353459710dbbd1c6c6c46110514fc18515c814 Reviewed-by: Christian Kandeler <[email protected]>
* | 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 <[email protected]>
* | Drop handrolled or #ifdef'ed libc replacementsUlf Hermann2017-04-283-6/+6
| | | | | | | | | | | | | | | | | | mempcpy, memrchr, rawmemchr, and argp are provided by gnulib now. We don't need to define them locally and we don't need to search for an external libargp. Change-Id: I131ca4bc2d77c597b99c296c28259a3600e5d1b5 Reviewed-by: Christian Kandeler <[email protected]>
* | Avoid double-including config.hUlf Hermann2017-04-263-4/+9
|/ | | | | | | | | | | | | | | | | config.h doesn't have include guards, so including it twice is bad. We deal with this by checking for PACKAGE_NAME, but only in some places. Once we start using gnulib, we will need to include config.h before any gnulib-generated headers. This is problematic if we include it transitively through our own private headers. In order to set a clear rule about inclusion of config.h, it is now included in every .c file as first header, but not in any header. This will definitely avoid double-inclusion and satisfy the condition that it has to be included before gnulib headers. It comes at the price of adding some redundancy, but there is no clean way to avoid this. Change-Id: Ib78dd7e058ef8ac93cd379dcd14a2ffbc86c1988 Reviewed-by: Christian Kandeler <[email protected]>
* Move print_version into printversion.{h|c}Ulf Hermann2017-02-175-21/+65
| | | | | | | | Rename version.c so that the implementation is called after the header and the header doesn't clash with the toplevel version.h. print_version depends on argp and is only used in the tools. Signed-off-by: Ulf Hermann <[email protected]>
* Check for existence of mempcpyUlf Hermann2017-02-173-1/+11
| | | | | | If it doesn't exist, provide a definition based on memcpy. Signed-off-by: Ulf Hermann <[email protected]>
* Always use the same method to query the system page sizeUlf Hermann2017-02-152-1/+5
| | | | | | | This makes it easier to write a replacement for it on systems where sysconf(3) doesn't exist. Signed-off-by: Ulf Hermann <[email protected]>
* Move color handling into a separate headerUlf Hermann2017-02-155-34/+72
| | | | | | | | We only need it in nm.c and objdump.c, but it pulls in argp as dependency. By dropping it from libeu.h, the libraries can be compiled without argp. Signed-off-by: Ulf Hermann <[email protected]>
* Fix TEMP_FAILURE_RETRY definition when not defined.Luiz Angelo Daros de Luca2016-12-303-1/+7
| | | | | | https://sourceware.org/bugzilla/show_bug.cgi?id=21001 Signed-off-by: Luiz Angelo Daros de Luca <[email protected]>
* http://elfutils.org/ is now hosted at http://sourceware.org/elfutils/Mark Wielaard2016-12-244-2/+57
| | | | | | | | | | | | | | | | | fedorahosted used to be our home, but we are now hosted at sourceware. Change the elfutils project home to http://elfutils.org/ Point hosted services (email, release, git, bug tracker and web pages) to https://sourceware.org/elfutils/ Move design notes from README to NOTES. Add URLs for home, releases, bugs, git and mailinglist to README. Make the --version output of all tools the same by using a common print_version function and update the publicly shown copyright holder to the elfutils developers. Signed-off-by: Mark Wielaard <[email protected]>
* Do not depend on some non-POSIX features.Akihiko Odaki2016-10-133-0/+29
| | | | | | | | Define/open code memrchr, rawmemchr, powerof2 and TEMP_FAILURE_RETRY if not available through system headers. Signed-off-by: Akihiko Odaki <[email protected]> Signed-off-by: Mark Wielaard <[email protected]>
* lib: Provide MAX and MIN in system.hAkihiko Odaki2016-10-129-48/+106
| | | | | | | | | | 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 <[email protected]>
* 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 <[email protected]>
* Remove old-style function definitions.Mark Wielaard2015-09-237-80/+38
| | | | | | | We already require -std=gnu99 and old-style function definitions might hide some compiler warnings. Signed-off-by: Mark Wielaard <[email protected]>
* Fix sanitize-undefined config check. Don't ALLOW_UNALIGNED when checking.Mark Wielaard2015-06-052-1/+6
| | | | | | | | | The -fsanitize=undefined check need to use AC_LINK_IFELSE to make sure libubsan is installed. When doing undefined checking we should disable ALLOW_UNALIGNED memory accesses to catch issues where we do unaligned accesses by accident. Signed-off-by: Mark Wielaard <[email protected]>
* Allow disabling symbol versioning at configure timeMax Filippov2015-04-232-3/+7
| | | | | | | | | | | | | Due to missing symbol versioning support in uClibc calls to versioned functions that internally call different version of themselves results in infinite recursion. Introduce macro SYMBOL_VERSIONING and use it instead of plain SHARED to decide whether symbol versioning is needed. Control this macro definition with new configure option --disable-symbol-versioning. Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Mark Wielaard <[email protected]>
* lib: Add missing config.h #include to crc32_file.c.Lei Zhang2014-01-172-0/+8
| | | | | | Without config.h, there is no possibility of large file support. Signed-off-by: Mark Wielaard <[email protected]>
* lib: Avoid the hash-lookup division if possibleJosh Stone2013-12-132-2/+7
| | | | | | | | | | | | | For Dwarf_Abbrev codes, the most common case is that they're packed at the low end, saving uleb128 encoding size. Since the hash table is always resized to be no more than 90% full, those codes are always less than the table size, and dividing for the remainder is unnecessary. Dwarf_Dies are frequently created anew, and need to find abbrev each time, so even that one division becomes a noticeable hotspot. This patch adds a branch to avoid it, which is very predictable for the CPU. Signed-off-by: Josh Stone <[email protected]>
* New macro COMPAT_VERSION_NEWPROTO.Jan Kratochvil2013-04-302-0/+10
| | | | | | | lib/ * eu-config.h (COMPAT_VERSION_NEWPROTO): New. Twice. Signed-off-by: Jan Kratochvil <[email protected]>
* Unify {BE,LE}{32,64} in lib/system.h.Jan Kratochvil2013-04-262-0/+9
| | | | | | | | | | | | lib/ * system.h (LE64, BE64): Move here the definitions from libdwfl/link_map.c. libdwfl/ * link_map.c (BE32, BE64, LE32, LE64): Delete the definitions, move them to lib/system.h. Signed-off-by: Jan Kratochvil <[email protected]>
* 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.
* Handle partial read or write.Adam Markey2012-10-102-6/+61
| | | | | | | | | Ran into a situation where pread was returning less data than requested for remote files on a networked filesystem. This patch modifies the IO wrappers to request the remaining data as long as no real errors occured. Signed-off-by: Adam Markey <[email protected]> Signed-off-by: Mark Wielaard <[email protected]>
* lib/Jan Kratochvil2012-10-082-0/+11
| | | | | | | | | | system.h (eu_static_assert): New macro. libdw/ cfi.c: New include system.h. (execute_cfi) (enough_registers): Clear new memory after realloc. Signed-off-by: Jan Kratochvil <[email protected]>
* Update name, license and contributor policy.Mark Wielaard2012-06-0518-500/+342
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 <[email protected]> Signed-off-by: Mark Wielaard <[email protected]>
* Remove .mtn-ignore and .cvsignore files.Mark Wielaard2012-06-051-1/+0
| | | | We use .gitignore these days.
* Color code output of nm and objdumpUlrich Drepper2012-01-214-3/+272
|
* Add demangling support to nmUlrich Drepper2011-10-022-0/+9
|
* Clean up byte order handling in md5 and sha1 code.Roland McGrath2011-07-094-25/+54
|
* Handle reading .debug_types section.Roland McGrath2010-06-163-17/+28
|
* Clean up and consolidate automake magic to reduce duplication and to work ↵Roland McGrath2010-02-152-9/+8
| | | | with --disable-dependency-tracking.
* New macros for symbol versioning definitions, use them for libdw convenience ↵Roland McGrath2009-08-092-0/+21
| | | | wrappers just changed.
* Add multiple inclusion protection to eu-config.hRoland McGrath2009-01-232-0/+10
|
* Move argp_program_version_hook and argp_program_bug_address variablesUlrich Drepper2009-01-172-1/+18
| | | | in all programs into the .rodata section.
* Require __thread support in compiler.Ulrich Drepper2009-01-102-21/+9
| | | | Rename --enable-tls to more appropriate --enable-thread-safety.