summaryrefslogtreecommitdiff
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* configure.ac: Add AM_SILENT_RULES([yes])Mark Wielaard2015-10-121-0/+2
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Use -fPIC instead of -fpic when generating PIC code.Jose E. Marchesi2015-10-061-1/+1
| | | | | | | 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>
* Prepare 0.163 release.elfutils-0.163Mark Wielaard2015-06-191-1/+1
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Prepare 0.162 release.Mark Wielaard2015-06-101-1/+1
| | | | Signed-off-by: Mark Wielaard <mjw@redhat.com>
* configure: Add check for gcc -Wstack-usage.Mark Wielaard2015-06-101-0/+8
| | | | | | | Some older gcc versions don't support -Wstack-usage. Only use it when accepted by the compiler. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Define MODVERSION in a more reproducable way.Mark Wielaard2015-06-051-6/+6
| | | | | | | | | We define MODVERSION to make sure the libebl backend modules match the elfutils build when we dlopen them. Using hostname and date makes it very hard to create reproducable builds. Define them a little more reproducable using LIBEBL_SUBDIR, eu_version and ac_cv_build. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Fix sanitize-undefined config check. Don't ALLOW_UNALIGNED when checking.Mark Wielaard2015-06-051-3/+9
| | | | | | | | | 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 <mjw@redhat.com>
* configure: Add check for bunzip2 and maintainer-mode tools.Mark Wielaard2015-06-051-0/+24
| | | | | | | | Without bunzip2 make check cannot be run. To generate all files in maintainer-mode flex and bison are needed. Otherwise check that libdw/known-dwarf.h is already generated. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* configure: Add --enable-sanitize-undefined.Mark Wielaard2015-05-271-0/+18
| | | | | | | | | | | | Now that we are -fsanitize=undefined clean make sure we keep it that way. We do have to disable alignment checking. Because we might explicitly use unaligned accesses (see ALLOW_UNALIGNED). Rename DISTCHECK_CONFIGURE_FLAGS to AM_DISTCHECK_CONFIGURE_FLAGS, so the user can override. And add --enable-sanitize-undefined. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Link against standalone argp libraryAnthony G. Basile2015-05-041-0/+25
| | | | | | | | | | | | | | argp is not part of POSIX standards and not provided by uClibc or some other standard C libraries. However, it is possible to link against a breakout argp library. One is provided at http://www.lysator.liu.se/~nisse/misc/ This patch tests if libc provides argp otherwise it adds the linker flag -largp where needed in the build system. Signed-off-by: Anthony G. Basile <blueness@gentoo.org> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
* configure: fix enable_demangler settingMax Filippov2015-05-031-2/+2
| | | | | | | Add missing comma to AS_IF, otherwise enable_demangler is always set to 'no'. Canonicalize tests. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
* tests: Split run-stack tests to support missing demangler.Mark Wielaard2015-05-011-1/+3
| | | | | | SKIP tests that need a demangler if it is not there. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* configure: print feature settings overviewMark Wielaard2015-05-011-5/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | elfutils can be configured in various ways. But we expect certain settings for the features that we explicitly support. Print an overview of all settings, plus their recommended setting, at the end of the configure run. ===================================================================== elfutils: 0.161 (eu_version: 161) ===================================================================== Prefix : /opt/local/install/elfutils Program prefix ("eu-" recommended) : eu- Source code location : /home/mark/src/elfutils Maintainer mode : yes libebl modules subdirectory : elfutils build arch : x86_64-unknown-linux-gnu RECOMMENDED FEATURES (should all be yes) gzip support : yes bzip2 support : yes lzma/xz support : yes libstdc++ demangle support : yes File textrel check : yes Symbol versioning : yes NOT RECOMMENDED FEATURES (should all be no) Experimental thread safety : no OTHER FEATURES Deterministic archives by default : false Native language support : yes EXTRA TEST FEATURES (used with make check) debug branch prediction : no gprof support : no gcov support : no run all tests under valgrind : no use rpath in tests : no test biarch : yes Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Allow disabling symbol versioning at configure timeMax Filippov2015-04-231-0/+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 <jcmvbkbc@gmail.com> Signed-off-by: Mark Wielaard <mjw@redhat.com>
* configure: Add explicit checks for all GNU99 extensions used.Mark Wielaard2015-04-141-3/+26
| | | | | | | | | | | | Some compilers (clang) claim to support -std=gnu99 but don't actually implement all extensions we use in the code. Producing really hard to parse errors. Add explicit checks for some of the other language extensions we use, Nested Functions and Arrays of Variable Length, to the configure check to catch such issues early. https://bugzilla.redhat.com/show_bug.cgi?id=1211357 Signed-off-by: Mark Wielaard <mjw@redhat.com>