summaryrefslogtreecommitdiffstats
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* configure: Fix -D_FORTIFY_SOURCE=2 check when CFLAGS contains -Wno-errorOmar Sandoval2019-12-121-1/+1
| | | | | | | | | | | | | | If CFLAGS contains -Wno-error, then the check for -D_FORTIFY_SOURCE=2 won't fail when appropriate. E.g., compiling with: ./configure CFLAGS='-Wno-error -O0' && Results in a flood of "_FORTIFY_SOURCE requires compiling with optimization (-O)" warnings. Make sure we add -Werror after the user-defined CFLAGS. Signed-off-by: Omar Sandoval <osandov@fb.com>
* Make sure to always build with build-ids.Mark Wielaard2019-12-111-0/+9
| | | | | | | | We really need build-ids for various things. If the system compiler doesn't generate build-ids warn and generate them anyway for both the binaries and the tests. Signed-off-by: Mark Wielaard <mark@klomp.org>
* Prepare for 0.178Mark Wielaard2019-11-261-1/+1
| | | | | | | | Set version to 0.178. Update NEWS and elfutils.spec.in. Regenerate po/*.po files. Signed-off-by: Mark Wielaard <mark@klomp.org>
* Fix BUILD_STATIC build and enable gcov for debuginfod.Mark Wielaard2019-11-261-0/+1
| | | | | | | | libdw now always needs -lpthread and -ld even when BUILD_STATIC. BUILD_STATIC is only used when doing a gcov enabled build. Enable gcov coverage also for debuginfod. Signed-off-by: Mark Wielaard <mark@klomp.org>
* debuginfod 2/2: server sideFrank Ch. Eigler2019-11-221-15/+21
| | | | | | | | | | Add the server to the debuginfod/ subdirectory. This is a highly multithreaded c++11 program (still buildable on rhel7's gcc 4.8, which is only partly c++11 compliant). Includes an initial suite of tests, man pages, and a sample systemd service. Signed-off-by: Frank Ch. Eigler <fche@redhat.com> Signed-off-by: Aaron Merey <amerey@redhat.com>
* debuginfod 1/2: client sideAaron Merey2019-11-221-1/+22
| | | | | | | | | | | | Introduce the debuginfod/ subdirectory, containing the client for a new debuginfo-over-http service, in shared-library and command-line forms. Two functions in libdwfl make calls into the client library to fetch elf/dwarf files by buildid, as a fallback. Instead of normal dynamic linking (thus pulling in a variety of curl dependencies), the libdwfl hooks use dlopen/dlsym. Server & tests coming in patch 2. Signed-off-by: Aaron Merey <amerey@redhat.com> Signed-off-by: Frank Ch. Eigler <fche@redhat.com>
* Add configure options for Valgrind annotations.Jonathon Anderson2019-11-081-0/+30
| | | | Signed-off-by: Jonathon Anderson <jma14@rice.edu>
* Add some supporting framework for C11-style atomics.Jonathon Anderson2019-10-221-0/+12
| | | | | | | Uses the stdatomic.h provided by FreeBSD when GCC doesn't (ie. GCC < 4.9) Signed-off-by: Jonathon Anderson <jma14@rice.edu> Signed-off-by: Srđan Milaković <sm108@rice.edu>
* Don't use dlopen() for libebl modulesOmar Sandoval2019-08-291-11/+1
| | | | | | | | | | | | 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>
* Begin adding some docs to elfutilsBen Woodard2019-08-271-2/+1
| | | | | | | | | | | | | | | | | | | - Added doc/README - Updated doc/ChangeLog - Added a eu-readelf manpage based on the one from binutils. - Added a brand new manpage for eu-elfclassify the new utility. - Add some new files in the doc directory and sync makefile with upstream. - Reenable the compilation of doc directory. - Disable sgml file building - Build man pages the automake way Since V1 - Put man pages in the proper directories. - Added copy of Gnu Free Documentation License - Modified eu-readelf.1 man page to match the supported options. Signed-off-by: Ben Woodard <woodard@redhat.com> Signed-off-by: Mark Wielaard <mark@klomp.org>
* Prepare for 0.177elfutils-0.177Mark Wielaard2019-08-131-1/+1
| | | | | | | | | Set version to 0.177. Update NEWS and elfutils.spec.in. Use git --get user.name and user.email for spec changelog. Regenerate po/*.po files. Signed-off-by: Mark Wielaard <mark@klomp.org>
* Prepare for 0.176Mark Wielaard2019-02-141-1/+1
| | | | | | | | | Set version to 0.176. Update NEWS and elfutils.spec.in. Update GPG-KEY. Regenerate po/*.po files. Signed-off-by: Mark Wielaard <mark@klomp.org>
* configure: Add new --enable-install-elfh option.Mark Wielaard2019-01-311-0/+12
| | | | | | | | | | | | | | We explicitly test (with system-elf-libelf) that our include headers work with the system elf.h header. But it might be helpful to install the elf.h file for a private install. Our elf.h header really is just a copy of the latest glibc elf.h. But it might be newer and include more constants than the system installed elf.h. Add a new configure option --enable-install-elfh to install elf.h. But warn when it is enabled for the default /usr or /usr/local prefix because it might clash with the glibc/system elf.h header in that case. Signed-off-by: Mark Wielaard <mark@klomp.org>
* Prepare for 0.175Mark Wielaard2018-11-141-1/+1
| | | | | | | | Set version to 0.175 Update NEWS and elfutils.spec.in. Regenerate po/*.po files. Signed-off-by: Mark Wielaard <mark@klomp.org>
* Prepare for 0.174elfutils-0.174Mark Wielaard2018-09-141-1/+1
| | | | | | | | Set version to 0.174. Mention new functionality in NEWS. Update po/*.po files. Signed-off-by: Mark Wielaard <mark@klomp.org>
* Require gawk in maintainer modeRoss Burton2018-07-051-0/+4
| | | | | | gawk is required to build known_dwarf.h, so check for it in configure.ac. Signed-off-by: Ross Burton <ross.burton@intel.com>
* Prepare for 0.173elfutils-0.173Mark Wielaard2018-06-291-1/+1
| | | | | | | | Set version to 0.173. Mention new functionality in NEWS. Update po/*.po files. Signed-off-by: Mark Wielaard <mark@klomp.org>
* Prepare for 0.172.elfutils-0.172Mark Wielaard2018-06-111-1/+1
| | | | | | | | | | It has been only 10 days since the previous release and there are no functional changes compared to 0.171. The speedup of eu-readelf -N is pretty nice. And ~25 patches fix various bugs (hangs and crashes) in dealing with bad DWARF5 data. Most have been found by running the afl fuzzer on eu-readelf and various testcases. Signed-off-by: Mark Wielaard <mark@klomp.org>
* Prepare for 0.171.elfutils-0.171Mark Wielaard2018-06-011-1/+1
| | | | | | | Set version to 0.171. Update po/*.po files. Mention DWARF5, split dwarf and GNU DebugFission support in NEWS. Signed-off-by: Mark Wielaard <mark@klomp.org>
* libdwfl: Use process_vm_readv when available.Mark Wielaard2018-03-281-2/+4
| | | | | | | | | | If possible use process_vm_readv to read 4K blocks instead of fetching each word individually with ptrace. For unwinding this often means we only have to do one process_vm_readv of the stack instead of dozens of ptrace calls. There is one 4K cache per process, cleared whenever a thread is detached. Signed-off-by: Mark Wielaard <mark@klomp.org>
* Use fallthrough attribute.Joshua Watt2018-02-101-0/+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-201-0/+13
| | | | | | | | | | | | | | 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>
* Detect if symbol versioning is supportedUlf Hermann2017-08-181-0/+15
| | | | | | | If not, throw an error unless symbol versioning was explicitly disabled. Signed-off-by: Ulf Hermann <ulf.hermann@qt.io>
* Check if gcc complains about __attribute__ (visibility(..))Ulf Hermann2017-08-181-0/+16
| | | | | | | | | | | | | | | If so, define attribute_hidden to be empty. Also, use attribute_hidden in all places where we hide symbols. If this attribute is missing, it simply means that we cannot hide private symbols in the binary using attributes. This disables some optimizations and may increase the risk of symbol name clashes with other libraries, but is not fatal. However, we still employ linker version scripts to explicitly define the exported symbols. This serves much of the same purpose. Also, as all our symbols are prefixed with the library name, and "__" for private ones, the chance of clashes is low anyway. Signed-off-by: Ulf Hermann <ulf.hermann@qt.io>
* Check for -z,defs, -z,relro, -fPIC, -fPIE before using themUlf Hermann2017-08-181-2/+54
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* Prepare for 0.170.elfutils-0.170Mark Wielaard2017-08-021-1/+1
| | | | | | | Set version to 0.170. Update po/*.po files. Add some more user visible changes to NEWS. Signed-off-by: Mark Wielaard <mark@klomp.org>
* backends: Don't depend on linux/bpf.h to compile bpf disassembler.Mark Wielaard2017-07-241-4/+0
| | | | | | | | | 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>
* Prepare for 0.169.elfutils-0.169Mark Wielaard2017-05-051-3/+3
| | | | | | | 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 <mark@klomp.org>
* Check for existence of mempcpyUlf Hermann2017-02-171-0/+3
| | | | | | If it doesn't exist, provide a definition based on memcpy. Signed-off-by: Ulf Hermann <ulf.hermann@qt.io>
* Add -D_FORTIFY_SOURCE=2 to CFLAGS if possible.Mark Wielaard2017-02-141-0/+21
| | | | | | | | | Some distros now add -D_FORTIFY_SOURCE=2 by default and we have missed some issues in the past caught by it. Add it to CFLAGS if possible. The configure check will make sure that it doesn't conflict with any other CFLAGS already defined. Signed-off-by: Mark Wielaard <mark@klomp.org>
* Define PACKAGE_URL for older autoconf.Mark Wielaard2017-01-121-0/+6
| | | | | | | autoconf < 2.64 doesn't define PACKAGE_URL through AC_INIT. Define it ourselves if needed. Signed-off-by: Mark Wielaard <mark@klomp.org>
* Prepare for elfutils 0.168 release.elfutils-0.168Mark Wielaard2016-12-271-1/+1
| | | | Signed-off-by: Mark Wielaard <mark@klomp.org>
* http://elfutils.org/ is now hosted at http://sourceware.org/elfutils/Mark Wielaard2016-12-241-2/+2
| | | | | | | | | | | | | | | | | 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 <mark@klomp.org>
* Only workaround fts.h if we have a bad version that doesn't handle LFS.Mark Wielaard2016-11-231-0/+9
| | | | | | | | | | Older versions of glibc included an fts implementation that didn't have Large File System support. We worked around that in linux-kernel-modules.c by including it early before config.h and then redefining some symbols to get the 64-bit versions. This is somewhat fragile and not necessary with newer glibc. If possible we want the 64bit fts version always. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Add GCC7 -Wimplicit-fallthrough support/fixes.Mark Wielaard2016-11-101-0/+10
| | | | | | | | | | | 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>
* Do not depend on some non-POSIX features.Akihiko Odaki2016-10-131-0/+5
| | | | | | | | Define/open code memrchr, rawmemchr, powerof2 and TEMP_FAILURE_RETRY if not available through system headers. Signed-off-by: Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Prepare 0.167 release.Mark Wielaard2016-08-041-1/+1
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Remove eu-ld and unused code.Mark Wielaard2016-08-031-30/+0
| | | | | | | | Nobody has hacked on eu-ld in a very long time. It didn't really work. And we didn't install it by default in the spec file. Remove sources, the build rules and any (now) unused code. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Add support for BPFRichard Henderson2016-06-281-0/+4
| | | | Signed-off-by: Richard Henderson <rth@redhat.com>
* config: Pass the compiler -Werror during warning detectionFilipe Brandenburger2016-05-031-3/+3
| | | | | | | | | | | | | | Otherwise the compilation prints a warning but exits with 0 return code. However, later during the compilation, when -Werror is enforced to about every file, the unsupported options start breaking the builds. Tested: Ran configure with clang-3.5 and built libelf/ tree with it. $ autoreconf -i $ ./configure CC=clang-3.5 ... $ make -C libelf Signed-off-by: Filipe Brandenburger <filbranden@google.com>
* config: Fix check for argp_parse to pass &argvFilipe Brandenburger2016-05-021-1/+1
| | | | | | | | | | | | | | | | | | | Right now it's passing a char* when it expects a char** instead. This usually produces a warning that may go unnoticed, but if CFLAGS contains -Werror, that breaks the ./configure run with the following error: $ ./configure CFLAGS=-Werror ... configure: WARNING: "libc does not have argp" checking for argp_parse in -largp... no configure: error: "no libargp found" Tested: Checked that after this fix, running ./configure CFLAGS=-Werror works as expected and argp_parse is correctly detected. Signed-off-by: Filipe Brandenburger <filbranden@google.com>
* Prepare 0.166 release.elfutils-0.166Mark Wielaard2016-03-311-1/+1
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>
* config: Use --program-prefix=eu- by default.Mark Wielaard2016-03-021-0/+13
| | | | | | | | | | | | We want eu- as default program prefix if none was given by the user. But if the user explicitly provided --program-prefix="" then pretend it wasn't set at all (NONE). This makes sure all tools will be installed as eu-<program>. We want this default since most tools would normally conflict with the GNU binutils variants that have similar names. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* config: Check for and use gcc -Wnull-dereference.Mark Wielaard2016-02-221-0/+10
| | | | | | -Wnull-dereference is new in GCC6 Signed-off-by: Mark Wielaard <mjw@redhat.com>
* config: Check for and use gcc -Wlogical-op and -Wduplicated-cond.Mark Wielaard2016-02-151-0/+22
| | | | | | | | | Both -Wlogical-op and -Wduplicated-cond may produce useful warnings. But we have to check them first. Older versions of gcc had a -Wlogical-op that warned on some constructs using macros that are not erronious. Only GCC6 has -Wduplicated-cond. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* configure: clarify zlib error messageMike Frysinger2016-01-141-1/+1
| | | | | | Also drop the spurious quotes. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Prepare 0.165 release.Mark Wielaard2016-01-081-1/+1
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>
* config: Add libelf and libdw pkg-config files.Mark Wielaard2016-01-051-2/+10
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Make zlib mandatory.Mark Wielaard2015-10-261-2/+8
| | | | | | Explicitly link libelf and libdw with -lz. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Prepare 0.164 release.Mark Wielaard2015-10-151-1/+1
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>