Blame configure.ac

Packit 032894
dnl Process this file with autoconf to produce a configure script.
Packit 032894
dnl Configure input file for elfutils.                     -*-autoconf-*-
Packit 032894
dnl
Packit 032894
dnl Copyright (C) 1996-2019 Red Hat, Inc.
Packit 032894
dnl
Packit 032894
dnl This file is part of elfutils.
Packit 032894
dnl
Packit 032894
dnl  This file is free software; you can redistribute it and/or modify
Packit 032894
dnl  it under the terms of the GNU General Public License as published by
Packit 032894
dnl  the Free Software Foundation; either version 3 of the License, or
Packit 032894
dnl  (at your option) any later version.
Packit 032894
dnl
Packit 032894
dnl  elfutils is distributed in the hope that it will be useful, but
Packit 032894
dnl  WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 032894
dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 032894
dnl  GNU General Public License for more details.
Packit 032894
dnl
Packit 032894
dnl  You should have received a copy of the GNU General Public License
Packit 032894
dnl  along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service 35cfd5
AC_INIT([elfutils],[0.180],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/])
Packit 032894
Packit 032894
dnl Workaround for older autoconf < 2.64
Packit 032894
m4_ifndef([AC_PACKAGE_URL],
Packit 032894
         [AC_DEFINE([PACKAGE_URL], ["http://elfutils.org/"],
Packit 032894
                    [Define to home page for this package])
Packit 032894
          AC_SUBST([PACKAGE_URL], ["http://elfutils.org/"])])
Packit 032894
Packit 032894
# We want eu- as default program prefix if none was given by the user.
Packit 032894
# But if the user explicitly provided --program-prefix="" then pretend
Packit 032894
# it wasn't set at all (NONE). We want to test this really early before
Packit 032894
# configure has a chance to use the value.
Packit 032894
Packit 032894
if test "x$program_prefix" = "xNONE"; then
Packit 032894
  AC_MSG_NOTICE([No --program-prefix given, using "eu-"])
Packit 032894
  program_prefix="eu-"
Packit 032894
elif test "x$program_prefix" = "x"; then
Packit 032894
  AC_MSG_NOTICE([Using no program-prefix])
Packit 032894
  program_prefix=NONE
Packit 032894
fi
Packit 032894
Packit 032894
AC_CONFIG_AUX_DIR([config])
Packit 032894
AC_CONFIG_FILES([config/Makefile])
Packit 032894
Packit Service 35cfd5
AC_COPYRIGHT([Copyright (C) 1996-2020 The elfutils developers.])
Packit 032894
AC_PREREQ(2.63)			dnl Minimum Autoconf version required.
Packit 032894
Packit 032894
dnl We use GNU make extensions; automake 1.10 defaults to -Wportability.
Packit 032894
AM_INIT_AUTOMAKE([gnits 1.11 -Wno-portability dist-bzip2 no-dist-gzip parallel-tests])
Packit 032894
AM_MAINTAINER_MODE
Packit 032894
Packit 032894
AM_SILENT_RULES([yes])
Packit 032894
Packit 032894
AC_CONFIG_SRCDIR([libelf/libelf.h])
Packit 032894
AC_CONFIG_FILES([Makefile])
Packit 032894
AC_CONFIG_HEADERS([config.h])
Packit 032894
Packit 032894
AC_CONFIG_MACRO_DIR([m4])
Packit 032894
AC_CONFIG_FILES([m4/Makefile])
Packit 032894
Packit 032894
dnl The RPM spec file.  We substitute a few values in the file.
Packit 032894
AC_CONFIG_FILES([elfutils.spec:config/elfutils.spec.in])
Packit 032894
Packit 032894
dnl debuginfo-server client & server parts.
Packit 032894
AC_CONFIG_FILES([debuginfod/Makefile])
Packit 032894
Packit 032894
AC_CANONICAL_HOST
Packit 032894
Packit 032894
AC_ARG_ENABLE(deterministic-archives,
Packit 032894
[AS_HELP_STRING([--enable-deterministic-archives],
Packit 032894
		[ar and ranlib default to -D behavior])], [
Packit 032894
if test "${enableval}" = no; then
Packit 032894
  default_ar_deterministic=false
Packit 032894
else
Packit 032894
  default_ar_deterministic=true
Packit 032894
fi], [default_ar_deterministic=false])
Packit 032894
AC_DEFINE_UNQUOTED(DEFAULT_AR_DETERMINISTIC, $default_ar_deterministic,
Packit 032894
		   [Should ar and ranlib use -D behavior by default?])
Packit 032894
Packit 032894
AC_ARG_ENABLE([thread-safety],
Packit 032894
AS_HELP_STRING([--enable-thread-safety],
Packit 032894
               [enable thread safety of libraries EXPERIMENTAL]),
Packit 032894
               use_locks=$enableval, use_locks=no)
Packit 032894
AM_CONDITIONAL(USE_LOCKS, test "$use_locks" = yes)
Packit 032894
AS_IF([test "$use_locks" = yes], [AC_DEFINE(USE_LOCKS)])
Packit 032894
AS_IF([test "$use_locks" = yes],
Packit 032894
      [AC_MSG_WARN([thread-safety is EXPERIMENTAL tests might fail.])])
Packit 032894
Packit 032894
AH_TEMPLATE([USE_LOCKS], [Defined if libraries should be thread-safe.])
Packit 032894
Packit 032894
AC_PROG_CC
Packit 032894
AC_PROG_RANLIB
Packit 032894
AC_PROG_YACC
Packit 032894
AM_PROG_LEX
Packit 032894
# Only available since automake 1.12
Packit 032894
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
Packit 032894
AC_CHECK_TOOL([READELF], [readelf])
Packit 032894
AC_CHECK_TOOL([NM], [nm])
Packit 032894
Packit 032894
# We use -std=gnu99 but have explicit checks for some language constructs
Packit 032894
# and GNU extensions since some compilers claim GNU99 support, but don't
Packit 032894
# really support all language extensions. In particular we need
Packit 032894
# Mixed Declarations and Code
Packit 032894
# https://gcc.gnu.org/onlinedocs/gcc/Mixed-Declarations.html
Packit 032894
# Nested Functions
Packit 032894
# https://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html
Packit 032894
# Arrays of Variable Length
Packit 032894
# https://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html
Packit 032894
AC_CACHE_CHECK([for gcc with GNU99 support], ac_cv_c99, [dnl
Packit 032894
old_CFLAGS="$CFLAGS"
Packit 032894
CFLAGS="$CFLAGS -std=gnu99"
Packit 032894
AC_COMPILE_IFELSE([AC_LANG_SOURCE([dnl
Packit 032894
int foo (int a)
Packit 032894
{
Packit 032894
  for (int i = 0; i < a; ++i) if (i % 4) break; int s = a; return s;
Packit 032894
}
Packit 032894
Packit 032894
double bar (double a, double b)
Packit 032894
{
Packit 032894
  double square (double z) { return z * z; }
Packit 032894
  return square (a) + square (b);
Packit 032894
}
Packit 032894
Packit 032894
void baz (int n)
Packit 032894
{
Packit 032894
  struct S { int x[[n]]; };
Packit 032894
}])],
Packit 032894
		  ac_cv_c99=yes, ac_cv_c99=no)
Packit 032894
CFLAGS="$old_CFLAGS"])
Packit 032894
AS_IF([test "x$ac_cv_c99" != xyes],
Packit 032894
      AC_MSG_ERROR([gcc with GNU99 support required]))
Packit 032894
Packit 032894
AC_CACHE_CHECK([whether gcc supports __attribute__((visibility()))],
Packit 032894
	ac_cv_visibility, [dnl
Packit 032894
save_CFLAGS="$CFLAGS"
Packit 032894
CFLAGS="$save_CFLAGS -Werror"
Packit 032894
AC_COMPILE_IFELSE([AC_LANG_SOURCE([dnl
Packit 032894
int __attribute__((visibility("hidden")))
Packit 032894
foo (int a)
Packit 032894
{
Packit 032894
  return a;
Packit 032894
}])], ac_cv_visibility=yes, ac_cv_visibility=no)
Packit 032894
CFLAGS="$save_CFLAGS"])
Packit 032894
if test "$ac_cv_visibility" = "yes"; then
Packit 032894
	AC_DEFINE([HAVE_VISIBILITY], [1],
Packit 032894
		  [Defined if __attribute__((visibility())) is supported])
Packit 032894
fi
Packit 032894
Packit 032894
AC_CACHE_CHECK([whether gcc supports __attribute__((gcc_struct))],
Packit 032894
	ac_cv_gcc_struct, [dnl
Packit 032894
save_CFLAGS="$CFLAGS"
Packit 032894
CFLAGS="$save_CFLAGS -Werror"
Packit 032894
AC_COMPILE_IFELSE([AC_LANG_SOURCE([dnl
Packit 032894
struct test { int x; } __attribute__((gcc_struct));
Packit 032894
])], ac_cv_gcc_struct=yes, ac_cv_gcc_struct=no)
Packit 032894
CFLAGS="$save_CFLAGS"])
Packit 032894
if test "$ac_cv_gcc_struct" = "yes"; then
Packit 032894
	AC_DEFINE([HAVE_GCC_STRUCT], [1],
Packit 032894
		  [Defined if __attribute__((gcc_struct)) is supported])
Packit 032894
fi
Packit 032894
Packit 032894
AC_CACHE_CHECK([whether gcc supports -fPIC], ac_cv_fpic, [dnl
Packit 032894
save_CFLAGS="$CFLAGS"
Packit 032894
CFLAGS="$save_CFLAGS -fPIC -Werror"
Packit 032894
AC_COMPILE_IFELSE([AC_LANG_SOURCE()], ac_cv_fpic=yes, ac_cv_fpic=no)
Packit 032894
CFLAGS="$save_CFLAGS"
Packit 032894
])
Packit 032894
if test "$ac_cv_fpic" = "yes"; then
Packit 032894
	fpic_CFLAGS="-fPIC"
Packit 032894
else
Packit 032894
	fpic_CFLAGS=""
Packit 032894
fi
Packit 032894
AC_SUBST([fpic_CFLAGS])
Packit 032894
Packit 032894
AC_CACHE_CHECK([whether gcc supports -fPIE], ac_cv_fpie, [dnl
Packit 032894
save_CFLAGS="$CFLAGS"
Packit 032894
CFLAGS="$save_CFLAGS -fPIE -Werror"
Packit 032894
AC_COMPILE_IFELSE([AC_LANG_SOURCE()], ac_cv_fpie=yes, ac_cv_fpie=no)
Packit 032894
CFLAGS="$save_CFLAGS"
Packit 032894
])
Packit 032894
if test "$ac_cv_fpie" = "yes"; then
Packit 032894
	fpie_CFLAGS="-fPIE"
Packit 032894
else
Packit 032894
	fpie_CFLAGS=""
Packit 032894
fi
Packit 032894
AC_SUBST([fpie_CFLAGS])
Packit 032894
Packit 032894
dso_LDFLAGS="-shared"
Packit 032894
Packit 032894
ZDEFS_LDFLAGS="-Wl,-z,defs"
Packit 032894
AC_CACHE_CHECK([whether gcc supports $ZDEFS_LDFLAGS], ac_cv_zdefs, [dnl
Packit 032894
save_LDFLAGS="$LDFLAGS"
Packit 032894
LDFLAGS="$ZDEFS_LDFLAGS $save_LDFLAGS"
Packit 032894
AC_LINK_IFELSE([AC_LANG_PROGRAM()], ac_cv_zdefs=yes, ac_cv_zdefs=no)
Packit 032894
LDFLAGS="$save_LDFLAGS"
Packit 032894
])
Packit 032894
if test "$ac_cv_zdefs" = "yes"; then
Packit 032894
	dso_LDFLAGS="$dso_LDFLAGS $ZDEFS_LDFLAGS"
Packit 032894
fi
Packit 032894
Packit Service 35cfd5
# We really want build-ids. Warn and force generating them if gcc was
Packit Service 35cfd5
# configure without --enable-linker-build-id
Packit Service 35cfd5
AC_CACHE_CHECK([whether the compiler generates build-ids], ac_cv_buildid, [dnl
Packit Service 35cfd5
AC_LINK_IFELSE([AC_LANG_PROGRAM()],[ac_cv_buildid=yes; readelf -n conftest$EXEEXT | grep -q NT_GNU_BUILD_ID || ac_cv_buildid=no],AC_MSG_FAILURE([unexpected compile failure]))])
Packit Service 35cfd5
if test "$ac_cv_buildid" = "no"; then
Packit Service 35cfd5
	AC_MSG_WARN([compiler doesn't generate build-id by default])
Packit Service 35cfd5
	LDFLAGS="$LDFLAGS -Wl,--build-id"
Packit Service 35cfd5
fi
Packit Service 35cfd5
Packit 032894
ZRELRO_LDFLAGS="-Wl,-z,relro"
Packit 032894
AC_CACHE_CHECK([whether gcc supports $ZRELRO_LDFLAGS], ac_cv_zrelro, [dnl
Packit 032894
save_LDFLAGS="$LDFLAGS"
Packit 032894
LDFLAGS="$ZRELRO_LDFLAGS $save_LDFLAGS"
Packit 032894
AC_LINK_IFELSE([AC_LANG_PROGRAM()], ac_cv_zrelro=yes, ac_cv_zrelro=no)
Packit 032894
LDFLAGS="$save_LDFLAGS"
Packit 032894
])
Packit 032894
if test "$ac_cv_zrelro" = "yes"; then
Packit 032894
	dso_LDFLAGS="$dso_LDFLAGS $ZRELRO_LDFLAGS"
Packit 032894
fi
Packit 032894
Packit 032894
AC_SUBST([dso_LDFLAGS])
Packit 032894
Packit 032894
AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl
Packit 032894
# Use the same flags that we use for our DSOs, so the test is representative.
Packit 032894
# Some old compiler/linker/libc combinations fail some ways and not others.
Packit 032894
save_CFLAGS="$CFLAGS"
Packit 032894
save_LDFLAGS="$LDFLAGS"
Packit 032894
CFLAGS="$fpic_CFLAGS $CFLAGS"
Packit 032894
LDFLAGS="$dso_LDFLAGS $LDFLAGS"
Packit 032894
AC_LINK_IFELSE([dnl
Packit 032894
AC_LANG_PROGRAM([[#include <stdlib.h>
Packit 032894
#undef __thread
Packit 032894
static __thread int a; int foo (int b) { return a + b; }]],
Packit 032894
		[[exit (foo (0));]])],
Packit 032894
	       ac_cv_tls=yes, ac_cv_tls=no)
Packit 032894
CFLAGS="$save_CFLAGS"
Packit 032894
LDFLAGS="$save_LDFLAGS"])
Packit 032894
AS_IF([test "x$ac_cv_tls" != xyes],
Packit 032894
      AC_MSG_ERROR([__thread support required]))
Packit 032894
Packit 032894
dnl Before 4.9 gcc doesn't ship stdatomic.h, but the nessesary atomics are
Packit 032894
dnl available by (at least) 4.7. So if the system doesn't have a stdatomic.h we
Packit 032894
dnl fall back on one copied from FreeBSD that handles the difference.
Packit 032894
AC_CACHE_CHECK([whether gcc provides stdatomic.h], ac_cv_has_stdatomic,
Packit 032894
  [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <stdatomic.h>]])],
Packit 032894
		     ac_cv_has_stdatomic=yes, ac_cv_has_stdatomic=no)])
Packit 032894
AM_CONDITIONAL(HAVE_STDATOMIC_H, test "x$ac_cv_has_stdatomic" = xyes)
Packit 032894
AS_IF([test "x$ac_cv_has_stdatomic" = xyes], [AC_DEFINE(HAVE_STDATOMIC_H)])
Packit 032894
Packit 032894
AH_TEMPLATE([HAVE_STDATOMIC_H], [Define to 1 if `stdatomic.h` is provided by the
Packit 032894
                                 system, 0 otherwise.])
Packit 032894
Packit 032894
dnl This test must come as early as possible after the compiler configuration
Packit 032894
dnl tests, because the choice of the file model can (in principle) affect
Packit 032894
dnl whether functions and headers are available, whether they work, etc.
Packit 032894
AC_SYS_LARGEFILE
Packit 032894
Packit 032894
dnl Older glibc had a broken fts that didn't work with Large File Systems.
Packit 032894
dnl We want the version that can handler LFS, but include workaround if we
Packit 032894
dnl get a bad one. Add define to CFLAGS (not AC_DEFINE it) since we need to
Packit 032894
dnl check it before including config.h (which might define _FILE_OFFSET_BITS).
Packit 032894
AC_CACHE_CHECK([whether fts.h is bad when included (with LFS)], ac_cv_bad_fts,
Packit 032894
  [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <fts.h>]])],
Packit 032894
		     ac_cv_bad_fts=no, ac_cv_bad_fts=yes)])
Packit 032894
AS_IF([test "x$ac_cv_bad_fts" = "xyes"], [CFLAGS="$CFLAGS -DBAD_FTS=1"])
Packit 032894
Packit 032894
# See if we can add -D_FORTIFY_SOURCE=2. Don't do it if it is already
Packit 032894
# (differently) defined or if it generates warnings/errors because we
Packit 032894
# don't use the right optimisation level (string.h will warn about that).
Packit 032894
AC_MSG_CHECKING([whether to add -D_FORTIFY_SOURCE=2 to CFLAGS])
Packit 032894
case "$CFLAGS" in
Packit 032894
  *-D_FORTIFY_SOURCE=2*)
Packit 032894
    AC_MSG_RESULT([no, already there])
Packit 032894
    ;;
Packit 032894
  *)
Packit 032894
    save_CFLAGS="$CFLAGS"
Packit Service 35cfd5
    CFLAGS="-D_FORTIFY_SOURCE=2 $CFLAGS -Werror"
Packit 032894
    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
Packit 032894
      #include <string.h>
Packit 032894
      int main() { return 0; }
Packit 032894
    ]])], [ AC_MSG_RESULT([yes])
Packit 032894
            CFLAGS="-D_FORTIFY_SOURCE=2 $save_CFLAGS" ],
Packit 032894
          [ AC_MSG_RESULT([no])
Packit 032894
            CFLAGS="$save_CFLAGS"])
Packit 032894
  ;;
Packit 032894
esac
Packit 032894
Packit 032894
dnl enable debugging of branch prediction.
Packit 032894
AC_ARG_ENABLE([debugpred],
Packit 032894
AS_HELP_STRING([--enable-debugpred],[build binaries with support to debug branch prediction]),
Packit 032894
[use_debugpred=$enableval], [use_debugpred=no])
Packit 032894
case $use_debugpred in
Packit 032894
 yes) use_debugpred_val=1 ;;
Packit 032894
 *)   use_debugpred_val=0 ;;
Packit 032894
esac
Packit 032894
AC_SUBST([DEBUGPRED], $use_debugpred_val)
Packit 032894
Packit 032894
dnl Enable gprof suport.
Packit 032894
AC_ARG_ENABLE([gprof],
Packit 032894
AS_HELP_STRING([--enable-gprof],[build binaries with gprof support]), [use_gprof=$enableval], [use_gprof=no])
Packit 032894
if test "$use_gprof" = yes; then
Packit 032894
  CFLAGS="$CFLAGS -pg"
Packit 032894
  LDFLAGS="$LDFLAGS -pg"
Packit 032894
fi
Packit 032894
AM_CONDITIONAL(GPROF, test "$use_gprof" = yes)
Packit 032894
Packit 032894
# Enable gcov suport.
Packit 032894
AC_ARG_ENABLE([gcov],
Packit 032894
AS_HELP_STRING([--enable-gcov],[build binaries with gcov support]), [use_gcov=$enableval], [use_gcov=no])
Packit 032894
if test "$use_gcov" = yes; then
Packit 032894
  CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
Packit 032894
  CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage"
Packit 032894
  LDFLAGS="$LDFLAGS -fprofile-arcs"
Packit 032894
fi
Packit 032894
AM_CONDITIONAL(GCOV, test "$use_gcov" = yes)
Packit 032894
Packit 032894
AC_ARG_ENABLE([sanitize-undefined],
Packit 032894
              AS_HELP_STRING([--enable-sanitize-undefined],
Packit 032894
                             [Use gcc undefined behaviour sanitizer]),
Packit 032894
                             [use_undefined=$enableval], [use_undefined=no])
Packit 032894
if test "$use_undefined" = yes; then
Packit 032894
  old_CFLAGS="$CFLAGS"
Packit 032894
  old_CXXFLAGS="$CXXFLAGS"
Packit 032894
  # We explicitly use unaligned access when possible (see ALLOW_UNALIGNED)
Packit 032894
  # We want to fail immediately on first error, don't try to recover.
Packit 032894
  CFLAGS="$CFLAGS -fsanitize=undefined -fno-sanitize-recover"
Packit 032894
  CXXFLAGS="$CXXFLAGS -fsanitize=undefined -fno-sanitize-recover"
Packit 032894
  AC_LINK_IFELSE([AC_LANG_SOURCE([int main (int argc, char **argv) { return 0; }])], use_undefined=yes, use_undefined=no)
Packit 032894
  AS_IF([test "x$use_undefined" != xyes],
Packit 032894
        AC_MSG_WARN([gcc undefined behaviour sanitizer not available])
Packit 032894
        CFLAGS="$old_CFLAGS" CXXFLAGS="$old_CXXFLAGS")
Packit 032894
fi
Packit 032894
case $use_undefined in
Packit 032894
 yes) check_undefined_val=1 ;;
Packit 032894
 *)   check_undefined_val=0 ;;
Packit 032894
esac
Packit 032894
AC_DEFINE_UNQUOTED(CHECK_UNDEFINED, $check_undefined_val,
Packit 032894
		   [Building with -fsanitize=undefined or not])
Packit 032894
Packit 032894
AC_ARG_ENABLE([valgrind],
Packit 032894
AS_HELP_STRING([--enable-valgrind],[run all tests under valgrind]),
Packit 032894
[use_valgrind=$enableval], [use_valgrind=no])
Packit 032894
if test "$use_valgrind" = yes; then
Packit 032894
  AC_CHECK_PROG(HAVE_VALGRIND, valgrind, yes, no)
Packit 032894
  if test "$HAVE_VALGRIND" = "no"; then
Packit 032894
    AC_MSG_ERROR([valgrind not found])
Packit 032894
  fi
Packit 032894
fi
Packit 032894
AM_CONDITIONAL(USE_VALGRIND, test "$use_valgrind" = yes)
Packit 032894
Packit 032894
AC_ARG_WITH([valgrind],
Packit 032894
AS_HELP_STRING([--with-valgrind],[include directory for Valgrind headers]),
Packit 032894
[with_valgrind_headers=$withval], [with_valgrind_headers=no])
Packit 032894
if test "x$with_valgrind_headers" != xno; then
Packit 032894
    save_CFLAGS="$CFLAGS"
Packit 032894
    CFLAGS="$CFLAGS -I$with_valgrind_headers"
Packit 032894
    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
Packit 032894
      #include <valgrind/valgrind.h>
Packit 032894
      int main() { return 0; }
Packit 032894
    ]])], [ HAVE_VALGRIND_HEADERS="yes"
Packit 032894
            CFLAGS="$save_CFLAGS -I$with_valgrind_headers" ],
Packit 032894
          [ AC_MSG_ERROR([invalid valgrind include directory: $with_valgrind_headers]) ])
Packit 032894
fi
Packit 032894
Packit 032894
AC_ARG_ENABLE([valgrind-annotations],
Packit 032894
AS_HELP_STRING([--enable-valgrind-annotations],[insert extra annotations for better valgrind support]),
Packit 032894
[use_vg_annotations=$enableval], [use_vg_annotations=no])
Packit 032894
if test "$use_vg_annotations" = yes; then
Packit 032894
    if test "x$HAVE_VALGRIND_HEADERS" != "xyes"; then
Packit 032894
      AC_MSG_CHECKING([whether Valgrind headers are available])
Packit 032894
      AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
Packit 032894
        #include <valgrind/valgrind.h>
Packit 032894
        int main() { return 0; }
Packit 032894
      ]])], [ AC_MSG_RESULT([yes]) ],
Packit 032894
            [ AC_MSG_ERROR([valgrind annotations requested but no headers are available]) ])
Packit 032894
    fi
Packit 032894
fi
Packit 032894
AM_CONDITIONAL(USE_VG_ANNOTATIONS, test "$use_vg_annotations" = yes)
Packit 032894
Packit 032894
AC_ARG_ENABLE([install-elfh],
Packit 032894
AS_HELP_STRING([--enable-install-elfh],[install elf.h in include dir]),
Packit 032894
               [install_elfh=$enableval], [install_elfh=no])
Packit 032894
AM_CONDITIONAL(INSTALL_ELFH, test "$install_elfh" = yes)
Packit 032894
Packit 032894
AM_CONDITIONAL(BUILD_STATIC, [dnl
Packit 032894
test "$use_gprof" = yes -o "$use_gcov" = yes])
Packit 032894
Packit 032894
AC_ARG_ENABLE([tests-rpath],
Packit 032894
AS_HELP_STRING([--enable-tests-rpath],[build $ORIGIN-using rpath into tests]),
Packit 032894
	       [tests_use_rpath=$enableval], [tests_use_rpath=no])
Packit 032894
AM_CONDITIONAL(TESTS_RPATH, test "$tests_use_rpath" = yes)
Packit 032894
Packit 032894
dnl zlib is mandatory.
Packit 032894
save_LIBS="$LIBS"
Packit 032894
LIBS=
Packit 032894
eu_ZIPLIB(zlib,ZLIB,z,gzdirect,gzip)
Packit 032894
AS_IF([test "x$with_zlib" = xno], [AC_MSG_ERROR([zlib not found but is required])])
Packit 032894
LIBS="$save_LIBS"
Packit 032894
Packit 032894
dnl Test for bzlib and xz/lzma, gives BZLIB/LZMALIB .am
Packit 032894
dnl conditional and config.h USE_BZLIB/USE_LZMALIB #define.
Packit 032894
save_LIBS="$LIBS"
Packit 032894
LIBS=
Packit 032894
eu_ZIPLIB(bzlib,BZLIB,bz2,BZ2_bzdopen,bzip2)
Packit 032894
# We need this since bzip2 doesn't have a pkgconfig file.
Packit 032894
BZ2_LIB="$LIBS"
Packit 032894
AC_SUBST([BZ2_LIB])
Packit 032894
eu_ZIPLIB(lzma,LZMA,lzma,lzma_auto_decoder,[LZMA (xz)])
Packit 032894
AS_IF([test "x$with_lzma" = xyes], [LIBLZMA="liblzma"], [LIBLZMA=""])
Packit 032894
AC_SUBST([LIBLZMA])
Packit 032894
zip_LIBS="$LIBS"
Packit 032894
LIBS="$save_LIBS"
Packit 032894
AC_SUBST([zip_LIBS])
Packit 032894
Packit 032894
AC_CHECK_DECLS([memrchr, rawmemchr],[],[],
Packit 032894
               [#define _GNU_SOURCE
Packit 032894
                #include <string.h>])
Packit 032894
AC_CHECK_DECLS([powerof2],[],[],[#include <sys/param.h>])
Packit 032894
AC_CHECK_DECLS([mempcpy],[],[],
Packit 032894
               [#define _GNU_SOURCE
Packit 032894
                #include <string.h>])
Packit 032894
Packit 032894
AC_CHECK_FUNCS([process_vm_readv])
Packit 032894
Packit 032894
AC_CHECK_LIB([stdc++], [__cxa_demangle], [dnl
Packit 032894
AC_DEFINE([USE_DEMANGLE], [1], [Defined if demangling is enabled])])
Packit 032894
AM_CONDITIONAL(DEMANGLE, test "x$ac_cv_lib_stdcpp___cxa_demangle" = "xyes")
Packit 032894
AS_IF([test "x$ac_cv_lib_stdcpp___cxa_demangle" = "xyes"],
Packit 032894
      [enable_demangler=yes],[enable_demangler=no])
Packit 032894
Packit 032894
AC_ARG_ENABLE([textrelcheck],
Packit 032894
AS_HELP_STRING([--disable-textrelcheck],
Packit 032894
               [Disable textrelcheck being a fatal error]))
Packit 032894
AM_CONDITIONAL(FATAL_TEXTREL, [test "x$enable_textrelcheck" != "xno"])
Packit 032894
AS_IF([test "x$enable_textrelcheck" != "xno"],
Packit 032894
      [enable_textrelcheck=yes],[enable_textrelcheck=no])
Packit 032894
Packit 032894
AC_ARG_ENABLE([symbol-versioning],
Packit 032894
AS_HELP_STRING([--disable-symbol-versioning],
Packit 032894
               [Disable symbol versioning in shared objects]))
Packit 032894
Packit 032894
AC_CACHE_CHECK([whether symbol versioning is supported], ac_cv_symbol_versioning, [dnl
Packit 032894
AC_COMPILE_IFELSE([AC_LANG_SOURCE([dnl
Packit 032894
#define NEW_VERSION(name, version) \
Packit 032894
  asm (".symver " #name "," #name "@@@" #version);
Packit 032894
int foo(int x) { return x + 1; }
Packit 032894
NEW_VERSION (foo, ELFUTILS_12.12)
Packit 032894
])], ac_cv_symbol_versioning=yes, ac_cv_symbol_versioning=no)])
Packit 032894
if test "$ac_cv_symbol_versioning" = "no"; then
Packit 032894
    if test "x$enable_symbol_versioning" != "xno"; then
Packit 032894
        AC_MSG_ERROR([Symbol versioning is not supported.
Packit 032894
                      Use --disable-symbol-versioning to build without.])
Packit 032894
    fi
Packit 032894
fi
Packit 032894
Packit 032894
AM_CONDITIONAL(SYMBOL_VERSIONING, [test "x$enable_symbol_versioning" != "xno"])
Packit 032894
AS_IF([test "x$enable_symbol_versioning" = "xno"],
Packit 032894
      [AC_MSG_WARN([Disabling symbol versioning breaks ABI compatibility.])
Packit 032894
       enable_symbol_versioning=no],[enable_symbol_versioning=yes])
Packit 032894
Packit 032894
AC_CACHE_CHECK([whether gcc accepts -Wstack-usage], ac_cv_stack_usage, [dnl
Packit 032894
old_CFLAGS="$CFLAGS"
Packit 032894
CFLAGS="$CFLAGS -Wstack-usage=262144 -Werror"
Packit 032894
AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],
Packit 032894
		  ac_cv_stack_usage=yes, ac_cv_stack_usage=no)
Packit 032894
CFLAGS="$old_CFLAGS"])
Packit 032894
AM_CONDITIONAL(ADD_STACK_USAGE_WARNING, [test "x$ac_cv_stack_usage" != "xno"])
Packit 032894
Packit 032894
# -Wlogical-op was too fragile in the past, make sure we get a sane one.
Packit 032894
AC_CACHE_CHECK([whether gcc has a sane -Wlogical-op], ac_cv_logical_op, [dnl
Packit 032894
old_CFLAGS="$CFLAGS"
Packit 032894
CFLAGS="$CFLAGS -Wlogical-op -Werror"
Packit 032894
AC_COMPILE_IFELSE([AC_LANG_SOURCE(
Packit 032894
	[#define FLAG 1
Packit 032894
	int f (int r, int f) { return (r && (FLAG || (FLAG & f))); }])],
Packit 032894
		  ac_cv_logical_op=yes, ac_cv_logical_op=no)
Packit 032894
CFLAGS="$old_CFLAGS"])
Packit 032894
AM_CONDITIONAL(SANE_LOGICAL_OP_WARNING,
Packit 032894
	       [test "x$ac_cv_logical_op" != "xno"])
Packit 032894
Packit 032894
# -Wduplicated-cond was added by GCC6
Packit 032894
AC_CACHE_CHECK([whether gcc accepts -Wduplicated-cond], ac_cv_duplicated_cond, [dnl
Packit 032894
old_CFLAGS="$CFLAGS"
Packit 032894
CFLAGS="$CFLAGS -Wduplicated-cond -Werror"
Packit 032894
AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],
Packit 032894
		  ac_cv_duplicated_cond=yes, ac_cv_duplicated_cond=no)
Packit 032894
CFLAGS="$old_CFLAGS"])
Packit 032894
AM_CONDITIONAL(HAVE_DUPLICATED_COND_WARNING,
Packit 032894
	       [test "x$ac_cv_duplicated_cond" != "xno"])
Packit 032894
Packit 032894
# -Wnull-dereference was added by GCC6
Packit 032894
AC_CACHE_CHECK([whether gcc accepts -Wnull-dereference], ac_cv_null_dereference, [dnl
Packit 032894
old_CFLAGS="$CFLAGS"
Packit 032894
CFLAGS="$CFLAGS -Wnull-dereference -Werror"
Packit 032894
AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],
Packit 032894
		  ac_cv_null_dereference=yes, ac_cv_null_dereference=no)
Packit 032894
CFLAGS="$old_CFLAGS"])
Packit 032894
AM_CONDITIONAL(HAVE_NULL_DEREFERENCE_WARNING,
Packit 032894
	       [test "x$ac_cv_null_dereference" != "xno"])
Packit 032894
Packit 032894
# -Wimplicit-fallthrough was added by GCC7
Packit 032894
AC_CACHE_CHECK([whether gcc accepts -Wimplicit-fallthrough], ac_cv_implicit_fallthrough, [dnl
Packit 032894
old_CFLAGS="$CFLAGS"
Packit 032894
CFLAGS="$CFLAGS -Wimplicit-fallthrough -Werror"
Packit 032894
AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],
Packit 032894
		  ac_cv_implicit_fallthrough=yes, ac_cv_implicit_fallthrough=no)
Packit 032894
CFLAGS="$old_CFLAGS"])
Packit 032894
AM_CONDITIONAL(HAVE_IMPLICIT_FALLTHROUGH_WARNING,
Packit 032894
	       [test "x$ac_cv_implicit_fallthrough" != "xno"])
Packit 032894
Packit 032894
# Assume the fallthrough attribute is supported if -Wimplict-fallthrough is supported
Packit 032894
if test "$ac_cv_implicit_fallthrough" = "yes"; then
Packit 032894
	AC_DEFINE([HAVE_FALLTHROUGH], [1],
Packit 032894
		  [Defined if __attribute__((fallthrough)) is supported])
Packit 032894
fi
Packit 032894
Packit 032894
dnl Check if we have argp available from our libc
Packit 032894
AC_LINK_IFELSE(
Packit 032894
	[AC_LANG_PROGRAM(
Packit 032894
		[#include <argp.h>],
Packit 032894
		[int argc=1; char *argv[]={"test"}; argp_parse(0,argc,&argv,0,0,0); return 0;]
Packit 032894
		)],
Packit 032894
	[libc_has_argp="true"],
Packit 032894
	[libc_has_argp="false"]
Packit 032894
)
Packit 032894
Packit 032894
dnl If our libc doesn't provide argp, then test for libargp
Packit 032894
if test "$libc_has_argp" = "false" ; then
Packit 032894
	AC_MSG_WARN("libc does not have argp")
Packit 032894
	AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"])
Packit 032894
Packit 032894
	if test "$have_argp" = "false"; then
Packit 032894
		AC_MSG_ERROR("no libargp found")
Packit 032894
	else
Packit 032894
		argp_LDADD="-largp"
Packit 032894
	fi
Packit 032894
else
Packit 032894
	argp_LDADD=""
Packit 032894
fi
Packit 032894
AC_SUBST([argp_LDADD])
Packit 032894
Packit 032894
dnl The directories with content.
Packit 032894
Packit 032894
dnl Documentation.
Packit 032894
AC_CONFIG_FILES([doc/Makefile])
Packit 032894
Packit 032894
dnl Support library.
Packit 032894
AC_CONFIG_FILES([lib/Makefile])
Packit 032894
Packit 032894
dnl ELF library.
Packit 032894
AC_CONFIG_FILES([libelf/Makefile])
Packit 032894
Packit 032894
dnl Higher-level ELF support library.
Packit 032894
AC_CONFIG_FILES([libebl/Makefile])
Packit 032894
Packit 032894
dnl DWARF-ELF Lower-level Functions support library.
Packit 032894
AC_CONFIG_FILES([libdwelf/Makefile])
Packit 032894
Packit 032894
dnl DWARF library.
Packit 032894
AC_CONFIG_FILES([libdw/Makefile])
Packit 032894
Packit 032894
dnl Higher-level DWARF support library.
Packit 032894
AC_CONFIG_FILES([libdwfl/Makefile])
Packit 032894
Packit 032894
dnl CPU handling library.
Packit 032894
AC_CONFIG_FILES([libcpu/Makefile])
Packit 032894
Packit 032894
dnl Assembler library.
Packit 032894
AM_CONDITIONAL(HAVE_LIBASM, true)dnl Used in tests/Makefile.am, which see.
Packit 032894
AC_CONFIG_FILES([libasm/Makefile])
Packit 032894
Packit 032894
dnl CPU-specific backend libraries.
Packit 032894
AC_CONFIG_FILES([backends/Makefile])
Packit 032894
Packit 032894
dnl Tools.
Packit 032894
AC_CONFIG_FILES([src/Makefile po/Makefile.in])
Packit 032894
Packit 032894
dnl Test suite.
Packit 032894
AM_CONDITIONAL(STANDALONE, false)dnl Used in tests/Makefile.am, which see.
Packit 032894
AC_CONFIG_FILES([tests/Makefile])
Packit 032894
Packit 032894
dnl pkgconfig files
Packit 032894
AC_CONFIG_FILES([config/libelf.pc config/libdw.pc config/libdebuginfod.pc])
Packit 032894
Packit 032894
# Get the definitions necessary to create the Makefiles in the po
Packit 032894
# subdirectories.  This is a small subset of the gettext rules.
Packit 032894
AC_SUBST(USE_NLS, yes)
Packit 032894
AM_PO_SUBDIRS
Packit 032894
Packit 032894
dnl Appended to the config.h file.
Packit 032894
dnl We hide all kinds of configuration magic in lib/eu-config.h.
Packit 032894
AH_BOTTOM([#include <eu-config.h>])
Packit 032894
Packit 032894
dnl Version compatibility header.
Packit 032894
AC_CONFIG_FILES([version.h:config/version.h.in])
Packit 032894
AC_SUBST([eu_version])
Packit 032894
Packit 032894
# 1.234<whatever> -> 1234<whatever>
Packit 032894
case "$PACKAGE_VERSION" in
Packit 032894
[[0-9]].*) eu_version=`echo "$PACKAGE_VERSION" | sed 's@\.@@'` ;;
Packit 032894
*)     	   AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;;
Packit 032894
esac
Packit 032894
case "$eu_version" in
Packit 032894
*.*)
Packit 032894
  # 1234.567 -> "1234", "567"
Packit 032894
  eu_extra_version="${eu_version#*.}"
Packit 032894
  eu_version="${eu_version%%.*}"
Packit 032894
  case "$eu_extra_version" in
Packit 032894
  [[0-9]][[0-9]][[0-9]]) ;;
Packit 032894
  [[0-9]][[0-9]])	eu_extra_version="${eu_extra_version}0" ;;
Packit 032894
  [[0-9]])	   	eu_extra_version="${eu_extra_version}00" ;;
Packit 032894
  *) AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;;
Packit 032894
  esac
Packit 032894
  ;;
Packit 032894
*)
Packit 032894
  eu_extra_version=000
Packit 032894
  ;;
Packit 032894
esac
Packit 032894
Packit 032894
case "$eu_version" in
Packit 032894
      0[[0-9]][[0-9]][[0-9]]) eu_version="${eu_version#0}$eu_extra_version" ;;
Packit 032894
[[0-9]][[0-9]][[0-9]][[0-9]]) eu_version="${eu_version}$eu_extra_version" ;;
Packit 032894
[[0-9]][[0-9]][[0-9]])	      eu_version="${eu_version}0$eu_extra_version" ;;
Packit 032894
[[0-9]][[0-9]])	  	      eu_version="${eu_version}00$eu_extra_version";;
Packit 032894
*) AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;;
Packit 032894
esac
Packit 032894
Packit 032894
# Round up to the next release API (x.y) version.
Packit 032894
eu_version=$(( (eu_version + 999) / 1000 ))
Packit 032894
Packit 032894
AC_CHECK_SIZEOF(long)
Packit 032894
Packit 032894
# On aarch64 before glibc 2.20 we would get the kernel user_pt_regs instead
Packit 032894
# of the user_regs_struct from sys/user.h. They are structurally the same
Packit 032894
# but we get either one or the other.
Packit 032894
AC_CHECK_TYPE([struct user_regs_struct],
Packit 032894
              [sys_user_has_user_regs=yes], [sys_user_has_user_regs=no],
Packit 032894
              [[#include <sys/ptrace.h>]
Packit 032894
               [#include <sys/time.h>]
Packit 032894
               [#include <sys/user.h>]])
Packit 032894
if test "$sys_user_has_user_regs" = "yes"; then
Packit 032894
  AC_DEFINE(HAVE_SYS_USER_REGS, 1,
Packit 032894
            [Define to 1 if <sys/user.h> defines struct user_regs_struct])
Packit 032894
fi
Packit 032894
Packit 032894
# On a 64-bit host where can can use $CC -m32, we'll run two sets of tests.
Packit 032894
# Likewise in a 32-bit build on a host where $CC -m64 works.
Packit 032894
utrace_BIARCH
Packit 032894
# `$utrace_biarch' will be `-m64' even on an uniarch i386 machine.
Packit 032894
CC_BIARCH="$CC $utrace_biarch"
Packit 032894
AC_SUBST([CC_BIARCH])
Packit 032894
Packit 032894
# In maintainer mode we really need flex and bison.
Packit 032894
# Otherwise we really need a release dir with maintainer files generated.
Packit 032894
if test "x$enable_maintainer_mode" = xyes; then
Packit 032894
  AC_CHECK_PROG(HAVE_FLEX, flex, yes, no)
Packit 032894
  if test "$HAVE_FLEX" = "no"; then
Packit 032894
    AC_MSG_ERROR([flex needed in maintainer mode])
Packit 032894
  fi
Packit 032894
  AC_CHECK_PROG(HAVE_BISON, bison, yes, no)
Packit 032894
  if test "$HAVE_BISON" = "no"; then
Packit 032894
    AC_MSG_ERROR([bison needed in maintainer mode])
Packit 032894
  fi
Packit 032894
  AC_CHECK_PROG(HAVE_GAWK, gawk, yes, no)
Packit 032894
  if test "$HAVE_GAWK" = "no"; then
Packit 032894
    AC_MSG_ERROR([gawk needed in maintainer mode])
Packit 032894
  fi
Packit 032894
else
Packit 032894
  if test ! -f ${srcdir}/libdw/known-dwarf.h; then
Packit 032894
    AC_MSG_ERROR([No libdw/known-dwarf.h. configure --enable-maintainer-mode])
Packit 032894
  fi
Packit 032894
fi
Packit 032894
Packit 032894
# The testfiles are all compressed, we need bunzip2 when running make check
Packit 032894
AC_CHECK_PROG(HAVE_BUNZIP2, bunzip2, yes, no)
Packit 032894
if test "$HAVE_BUNZIP2" = "no"; then
Packit 032894
  AC_MSG_WARN([No bunzip2, needed to run make check])
Packit 032894
fi
Packit 032894
Packit 032894
# Look for libmicrohttpd, libcurl, libarchive, sqlite for debuginfo server
Packit 032894
# minimum versions as per rhel7.  Single --enable-* option arranges to build
Packit 032894
# both client and server.
Packit 032894
AC_ARG_ENABLE([debuginfod],AC_HELP_STRING([--enable-debuginfod], [Build debuginfod server and client]))
Packit 032894
AC_PROG_CXX
Packit 032894
AS_IF([test "x$enable_debuginfod" != "xno"], [
Packit Service 35cfd5
    AC_MSG_NOTICE([checking debuginfod C++11 support, --disable-debuginfod to skip])
Packit Service 35cfd5
    AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
Packit Service 35cfd5
    AC_MSG_NOTICE([checking debuginfod dependencies, --disable-debuginfod to skip])
Packit 032894
    enable_debuginfod=yes # presume success
Packit 032894
    PKG_PROG_PKG_CONFIG
Packit 032894
    PKG_CHECK_MODULES([libmicrohttpd],[libmicrohttpd >= 0.9.33],[],[enable_debuginfod=no])
Packit 032894
    PKG_CHECK_MODULES([libcurl],[libcurl >= 7.29.0],[],[enable_debuginfod=no])
Packit 032894
    PKG_CHECK_MODULES([sqlite3],[sqlite3 >= 3.7.17],[],[enable_debuginfod=no])
Packit 032894
    PKG_CHECK_MODULES([libarchive],[libarchive >= 3.1.2],[],[enable_debuginfod=no])
Packit 032894
    if test "x$enable_debuginfod" = "xno"; then
Packit Service 35cfd5
      AC_MSG_ERROR([dependencies not found, use --disable-debuginfod to disable.])
Packit 032894
    fi
Packit 032894
])
Packit 032894
Packit 032894
AS_IF([test "x$enable_debuginfod" != "xno"],AC_DEFINE([ENABLE_DEBUGINFOD],[1],[Build debuginfod]))
Packit 032894
AM_CONDITIONAL([DEBUGINFOD],[test "x$enable_debuginfod" = "xyes"])
Packit 032894
Packit 032894
Packit 032894
AC_OUTPUT
Packit 032894
Packit 032894
AC_MSG_NOTICE([
Packit 032894
=====================================================================
Packit 032894
        elfutils: ${PACKAGE_VERSION} (eu_version: ${eu_version})
Packit 032894
=====================================================================
Packit 032894
Packit 032894
    Prefix                             : ${prefix}
Packit 032894
    Program prefix ("eu-" recommended) : ${program_prefix}
Packit 032894
    Source code location               : ${srcdir}
Packit 032894
    Maintainer mode                    : ${enable_maintainer_mode}
Packit 032894
    build arch                         : ${ac_cv_build}
Packit 032894
Packit 032894
  RECOMMENDED FEATURES (should all be yes)
Packit 032894
    gzip support                       : ${with_zlib}
Packit 032894
    bzip2 support                      : ${with_bzlib}
Packit 032894
    lzma/xz support                    : ${with_lzma}
Packit 032894
    libstdc++ demangle support         : ${enable_demangler}
Packit 032894
    File textrel check                 : ${enable_textrelcheck}
Packit 032894
    Symbol versioning                  : ${enable_symbol_versioning}
Packit 032894
Packit 032894
  NOT RECOMMENDED FEATURES (should all be no)
Packit 032894
    Experimental thread safety         : ${use_locks}
Packit 032894
    install elf.h                      : ${install_elfh}
Packit 032894
Packit 032894
  OTHER FEATURES
Packit 032894
    Deterministic archives by default  : ${default_ar_deterministic}
Packit 032894
    Native language support            : ${USE_NLS}
Packit 032894
    Extra Valgrind annotations         : ${use_vg_annotations}
Packit 032894
    Debuginfod client/server support   : ${enable_debuginfod}
Packit 032894
Packit 032894
  EXTRA TEST FEATURES (used with make check)
Packit 032894
    have bunzip2 installed (required)  : ${HAVE_BUNZIP2}
Packit 032894
    debug branch prediction            : ${use_debugpred}
Packit 032894
    gprof support                      : ${use_gprof}
Packit 032894
    gcov support                       : ${use_gcov}
Packit 032894
    run all tests under valgrind       : ${use_valgrind}
Packit 032894
    gcc undefined behaviour sanitizer  : ${use_undefined}
Packit 032894
    use rpath in tests                 : ${tests_use_rpath}
Packit 032894
    test biarch                        : ${utrace_cv_cc_biarch}
Packit 032894
])
Packit 032894
Packit 032894
if test "$install_elfh" = yes; then
Packit 032894
  if test "${prefix}" = "/usr/local" -o "${prefix}" = "/usr"; then
Packit 032894
    AC_MSG_WARN([installing elf.h in ${includedir} might conflict with glibc/system elf.h])
Packit 032894
  fi
Packit 032894
fi