From f35a22100f8433de1b25f97bb87180412088c5e1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 7 Sep 2021 17:57:54 +0100 Subject: [PATCH] Annocheck documentation extension --- Makefile.in | 1 + annobin-global.h | 2 +- annocheck/Makefile.in | 1 + annocheck/hardened.c | 2 +- autom4te.cache/output.1 | 512 +++++++++++++++++++------------------ autom4te.cache/output.2 | 512 +++++++++++++++++++------------------ autom4te.cache/requests | 532 +++++++++++++++++++-------------------- autom4te.cache/traces.1 | 125 ++++----- autom4te.cache/traces.2 | 119 ++++----- clang-plugin/Makefile.in | 2 + configure | 508 +++++++++++++++++++------------------ configure.ac | 96 +++---- doc/Makefile.in | 1 + doc/annobin.info | 264 +++++++++++++------ doc/annobin.texi | 205 +++++++++++---- gcc-plugin/Makefile.in | 1 + llvm-plugin/Makefile.in | 2 + tests/Makefile.in | 1 + 18 files changed, 1578 insertions(+), 1308 deletions(-) diff --git a/Makefile.in b/Makefile.in index 0b9ba5e..9b75303 100644 --- a/Makefile.in +++ b/Makefile.in @@ -323,6 +323,7 @@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/annobin-global.h b/annobin-global.h index c86e827..0f680a5 100644 --- a/annobin-global.h +++ b/annobin-global.h @@ -19,7 +19,7 @@ extern "C" { /* The version of the package. NB/ This number is expected to be in the form "Nnn" where "N" is major version number and "nn" is the minor version number. */ -#define ANNOBIN_VERSION 995 +#define ANNOBIN_VERSION 996 /* The version of the annotation specification supported. */ #define SPEC_VERSION 3 diff --git a/annocheck/Makefile.in b/annocheck/Makefile.in index 40b16f6..2102f04 100644 --- a/annocheck/Makefile.in +++ b/annocheck/Makefile.in @@ -314,6 +314,7 @@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/annocheck/hardened.c b/annocheck/hardened.c index bd131d2..611049b 100644 --- a/annocheck/hardened.c +++ b/annocheck/hardened.c @@ -1150,7 +1150,7 @@ interesting_sec (annocheck_data * data, if (is_object_file ()) skip (data, TEST_WRITEABLE_GOT, SOURCE_SECTION_HEADERS, "Object file"); else - fail (data, TEST_WRITEABLE_GOT, SOURCE_SECTION_HEADERS, NULL); + fail (data, TEST_WRITEABLE_GOT, SOURCE_SECTION_HEADERS, "the GOT/PLT relocs are writeable"); } else pass (data, TEST_WRITEABLE_GOT, SOURCE_SECTION_HEADERS, NULL); diff --git a/autom4te.cache/output.1 b/autom4te.cache/output.1 index 6a1717c..e249e73 100644 --- a/autom4te.cache/output.1 +++ b/autom4te.cache/output.1 @@ -765,6 +765,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -799,7 +800,6 @@ with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock -with_gcc_plugin_dir with_gmp with_annocheck with_libelf @@ -808,6 +808,7 @@ with_gcc_plugin with_llvm with_docs enable_maintainer_mode +with_gcc_plugin_dir with_debuginfod enable_rpath ' @@ -863,6 +864,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1115,6 +1117,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1252,7 +1263,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1405,6 +1416,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1473,8 +1485,6 @@ Optional Packages: --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ --with-sysroot@<:@=DIR@:>@ Search for dependent libraries within DIR (or the compiler's sysroot if not specified). - --with-gcc-plugin-dir=DIR - install annobin plugin into the GCC plugin directory --with-gmp=PATH specify PATH to gmp --without-annocheck do not build annocheck --without-libelf remove libelf dependency @@ -1482,6 +1492,8 @@ Optional Packages: --without-gcc_plugin do not build the gcc plugin --with-llvm build the llvm plugin --without-docs do not build the documentation + --with-gcc-plugin-dir=DIR + install annobin plugin into the GCC plugin directory --with-debuginfod Enable debuginfo lookups with debuginfod (auto/yes/no) @@ -17817,212 +17829,6 @@ case ${target} in esac -# We need GCC plugin support. - -static_plugin=$enable_static - - -@%:@ Check whether --with-gcc-plugin-dir was given. -if test "${with_gcc_plugin_dir+set}" = set; then : - withval=$with_gcc_plugin_dir; gcc_plugin_dir=$withval -else - gcc_plugin_dir=test -fi - - -if test x"$static_plugin" = xyes; then - gcc_plugin_dir=no -else - if test x"$cross_compiling" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install into default GCC plugin dir" >&5 -$as_echo_n "checking whether to install into default GCC plugin dir... " >&6; } - case $gcc_plugin_dir in - yes) - as_fn_error $? "GCC plugin directory must be specified explicitly when cross-compiling" "$LINENO" 5 - ;; - test) - # We cannot detect the plugin directory since there is no way to - # run host GCC. So assume no. - # - gcc_plugin_dir=no - ;; - no) - ;; - *) - # Add the include/ subdirectory of the plugin dir to CPPFLAGS since - # the plugin headers are normally installed there. - # - CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" - ;; - esac - else - if test x"$GXX" != xyes; then - as_fn_error $? "$CXX is not a GNU C++ compiler" "$LINENO" 5 - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports plugins" >&5 -$as_echo_n "checking whether $CXX supports plugins... " >&6; } - dir=`$CXX -print-file-name=plugin 2>/dev/null` - - if test x"$dir" = xplugin; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "$CXX does not support plugins; reconfigure GCC with --enable-plugin" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi - - CPPFLAGS="$CPPFLAGS -I$dir/include" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install annobin plugin into default GCC plugin directory" >&5 -$as_echo_n "checking whether to install annobin plugin into default GCC plugin directory... " >&6; } - case $gcc_plugin_dir in - yes) - gcc_plugin_dir=$dir - ;; - test) - # Only install into the GCC plugin dir if both GCC and annobin are - # installed into the same prefix. Testing whether $libdir or - # $libexecdir is a prefix of the GCC plugin dir is a good - # approximation. - # - - # Get the expanded values for libdir and libexecdir. - # - if test x$exec_prefix = xNONE; then - if test x$prefix = xNONE; then - e_exec_prefix=$ac_default_prefix - else - e_exec_prefix=$prefix - fi - else - e_exec_prefix=$exec_prefix - fi - - # On some systems GCC is installed into $prefix/lib even though - # libdir is $prefix/lib64 and libexecdir is $prefix/libexec. To - # cover this special case, we will also test $prefix/lib. - # - e_libdir=`echo "$libdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - e_libexecdir=`echo "$libexecdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - e_libdir32=$e_exec_prefix/lib - - # See if either one of them is a prefix of the plugin dir. - # - ld_suffix=`echo "$dir" | sed "s?^$e_libdir/*??"` - led_suffix=`echo "$dir" | sed "s?^$e_libexecdir/*??"` - l32d_suffix=`echo "$dir" | sed "s?^$e_libdir32/*??"` - - if test x$ld_suffix != x$dir -o x$led_suffix != x$dir -o x$l32d_suffix != x$dir; then - gcc_plugin_dir=$dir - else - gcc_plugin_dir=no - fi - ;; - *) - # Add the include/ subdirectory of the plugin dir to CPPFLAGS since - # the plugin headers are normally installed there. - # - CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" - ;; - esac - fi - - if test x"$gcc_plugin_dir" != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC plugin headers" >&5 -$as_echo_n "checking for GCC plugin headers... " >&6; } - - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -if test -d .libs; then - delete_libs_dir=no -else - delete_libs_dir=yes -fi - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -#ifndef BUILDING_GCC_MAJOR -# error no BUILDING_GCC_MAJOR in bversion.h -#endif - -int main () {} - -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - - ac_try='./libtool --tag=CXX --mode=link $CXX -no-install $CXXFLAGS $LDFLAGS -o conftest conftest.$OBJEXT $LIBS >&5' - if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - libtool_link_ok=yes - else - libtool_link_ok=no - fi - -else - - libtool_link_ok=no - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test x"$delete_libs_dir" = xyes; then - rm -rf .libs -fi - -if test x"$libtool_link_ok" = xyes; then -gcc_plugin_headers=yes -: -else -gcc_plugin_headers=no -: -fi - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -if test x"$gcc_plugin_headers" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "GCC plugin headers not found; consider installing GCC plugin development package" "$LINENO" 5 -fi - - # Use an alternative GMP if requested. @@ -18272,7 +18078,6 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } @%:@ Check whether --enable-maintainer-mode was given. @@ -18295,50 +18100,256 @@ else fi MAINT=$MAINTAINER_MODE_TRUE -if test x$gcc_plugin_dir != xno; then + +if test "x$with_gcc_plugin" != xno; then + + # We need GCC plugin support. -$as_echo "@%:@define ANNOBIN_GCC_PLUGIN_DIR 1" >>confdefs.h +static_plugin=$enable_static - plugindir=$gcc_plugin_dir -# Otherwise, try to figure out a relative path from the driver (bindir) to -# the plugin (libexecdir). -# + +@%:@ Check whether --with-gcc-plugin-dir was given. +if test "${with_gcc_plugin_dir+set}" = set; then : + withval=$with_gcc_plugin_dir; gcc_plugin_dir=$withval else - # Get the expanded values for bindir and libexecdir. - # - if test x$exec_prefix = xNONE; then - if test x$prefix = xNONE; then - e_exec_prefix=$ac_default_prefix - else - e_exec_prefix=$prefix + gcc_plugin_dir=test +fi + + +if test x"$static_plugin" = xyes; then + gcc_plugin_dir=no +else + if test x"$cross_compiling" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install into default GCC plugin dir" >&5 +$as_echo_n "checking whether to install into default GCC plugin dir... " >&6; } + case $gcc_plugin_dir in + yes) + as_fn_error $? "GCC plugin directory must be specified explicitly when cross-compiling" "$LINENO" 5 + ;; + test) + # We cannot detect the plugin directory since there is no way to + # run host GCC. So assume no. + # + gcc_plugin_dir=no + ;; + no) + ;; + *) + # Add the include/ subdirectory of the plugin dir to CPPFLAGS since + # the plugin headers are normally installed there. + # + CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" + ;; + esac + else + if test x"$GXX" != xyes; then + as_fn_error $? "$CXX is not a GNU C++ compiler" "$LINENO" 5 fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports plugins" >&5 +$as_echo_n "checking whether $CXX supports plugins... " >&6; } + dir=`$CXX -print-file-name=plugin 2>/dev/null` + + if test x"$dir" = xplugin; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "$CXX does not support plugins; reconfigure GCC with --enable-plugin" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + fi + + CPPFLAGS="$CPPFLAGS -I$dir/include" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install annobin plugin into default GCC plugin directory" >&5 +$as_echo_n "checking whether to install annobin plugin into default GCC plugin directory... " >&6; } + case $gcc_plugin_dir in + yes) + gcc_plugin_dir=$dir + ;; + test) + # Only install into the GCC plugin dir if both GCC and annobin are + # installed into the same prefix. Testing whether $libdir or + # $libexecdir is a prefix of the GCC plugin dir is a good + # approximation. + # + + # Get the expanded values for libdir and libexecdir. + # + if test x$exec_prefix = xNONE; then + if test x$prefix = xNONE; then + e_exec_prefix=$ac_default_prefix + else + e_exec_prefix=$prefix + fi + else + e_exec_prefix=$exec_prefix + fi + + # On some systems GCC is installed into $prefix/lib even though + # libdir is $prefix/lib64 and libexecdir is $prefix/libexec. To + # cover this special case, we will also test $prefix/lib. + # + e_libdir=`echo "$libdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + e_libexecdir=`echo "$libexecdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + e_libdir32=$e_exec_prefix/lib + + # See if either one of them is a prefix of the plugin dir. + # + ld_suffix=`echo "$dir" | sed "s?^$e_libdir/*??"` + led_suffix=`echo "$dir" | sed "s?^$e_libexecdir/*??"` + l32d_suffix=`echo "$dir" | sed "s?^$e_libdir32/*??"` + + if test x$ld_suffix != x$dir -o x$led_suffix != x$dir -o x$l32d_suffix != x$dir; then + gcc_plugin_dir=$dir + else + gcc_plugin_dir=no + fi + ;; + *) + # Add the include/ subdirectory of the plugin dir to CPPFLAGS since + # the plugin headers are normally installed there. + # + CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" + ;; + esac + fi + + if test x"$gcc_plugin_dir" != xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - e_exec_prefix=$exec_prefix + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +fi - e_pkglibexecdir=`echo "$libexecdir/$PACKAGE_NAME" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - e_bindir=`echo "$bindir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC plugin headers" >&5 +$as_echo_n "checking for GCC plugin headers... " >&6; } - # Try to find a common prefix. - # - common=$e_bindir - rel_plugindir=$e_pkglibexecdir - - while test x$common != x/; do - suffix=`echo "$e_pkglibexecdir" | sed "s?^$common/*??"` - if test "x$suffix" != "x$e_pkglibexecdir"; then - # Replace all the remaining directories in bindir with ".." - # and append the suffix. - rel_plugindir=`echo "$e_bindir" | sed "s?^$common/*??"` - rel_plugindir=`echo "$rel_plugindir" | sed 's?[^/][^/]*?..?g'` - if test "x$rel_plugindir" != x -a "x$suffix" != x; then - rel_plugindir="$rel_plugindir/$suffix" - else - rel_plugindir="$rel_plugindir$suffix" + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + +if test -d .libs; then + delete_libs_dir=no +else + delete_libs_dir=yes +fi + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include + +#ifndef BUILDING_GCC_MAJOR +# error no BUILDING_GCC_MAJOR in bversion.h +#endif + +int main () {} + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + + ac_try='./libtool --tag=CXX --mode=link $CXX -no-install $CXXFLAGS $LDFLAGS -o conftest conftest.$OBJEXT $LIBS >&5' + if { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + libtool_link_ok=yes + else + libtool_link_ok=no + fi + +else + + libtool_link_ok=no + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test x"$delete_libs_dir" = xyes; then + rm -rf .libs +fi + +if test x"$libtool_link_ok" = xyes; then +gcc_plugin_headers=yes +: +else +gcc_plugin_headers=no +: +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + +if test x"$gcc_plugin_headers" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "GCC plugin headers not found; consider installing GCC plugin development package" "$LINENO" 5 +fi + + + if test x$gcc_plugin_dir != xno; then + +$as_echo "@%:@define ANNOBIN_GCC_PLUGIN_DIR 1" >>confdefs.h + + plugindir=$gcc_plugin_dir + # Otherwise, try to figure out a relative path from the driver (bindir) to + # the plugin (libexecdir). + else + # Get the expanded values for bindir and libexecdir. + if test x$exec_prefix = xNONE; then + if test x$prefix = xNONE; then + e_exec_prefix=$ac_default_prefix + else + e_exec_prefix=$prefix fi - break + else + e_exec_prefix=$exec_prefix fi - common=`$as_dirname -- "$common" || + + e_pkglibexecdir=`echo "$libexecdir/$PACKAGE_NAME" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + e_bindir=`echo "$bindir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + + # Try to find a common prefix. + common=$e_bindir + rel_plugindir=$e_pkglibexecdir + + while test x$common != x/; do + suffix=`echo "$e_pkglibexecdir" | sed "s?^$common/*??"` + if test "x$suffix" != "x$e_pkglibexecdir"; then + # Replace all the remaining directories in bindir with ".." + # and append the suffix. + rel_plugindir=`echo "$e_bindir" | sed "s?^$common/*??"` + rel_plugindir=`echo "$rel_plugindir" | sed 's?[^/][^/]*?..?g'` + if test "x$rel_plugindir" != x -a "x$suffix" != x; then + rel_plugindir="$rel_plugindir/$suffix" + else + rel_plugindir="$rel_plugindir$suffix" + fi + break + fi + common=`$as_dirname -- "$common" || $as_expr X"$common" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$common" : 'X\(//\)[^/]' \| \ X"$common" : 'X\(//\)$' \| \ @@ -18361,16 +18372,17 @@ $as_echo X"$common" | q } s/.*/./; q'` - done - + done + cat >>confdefs.h <<_ACEOF @%:@define ANNOBIN_PLUGIN_PATH "$rel_plugindir" _ACEOF - plugindir='$(pkglibexecdir)' -fi - + plugindir='$(pkglibexecdir)' + fi + +fi # Check for debuginfod availability diff --git a/autom4te.cache/output.2 b/autom4te.cache/output.2 index 6a1717c..e249e73 100644 --- a/autom4te.cache/output.2 +++ b/autom4te.cache/output.2 @@ -765,6 +765,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -799,7 +800,6 @@ with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock -with_gcc_plugin_dir with_gmp with_annocheck with_libelf @@ -808,6 +808,7 @@ with_gcc_plugin with_llvm with_docs enable_maintainer_mode +with_gcc_plugin_dir with_debuginfod enable_rpath ' @@ -863,6 +864,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1115,6 +1117,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1252,7 +1263,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1405,6 +1416,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1473,8 +1485,6 @@ Optional Packages: --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ --with-sysroot@<:@=DIR@:>@ Search for dependent libraries within DIR (or the compiler's sysroot if not specified). - --with-gcc-plugin-dir=DIR - install annobin plugin into the GCC plugin directory --with-gmp=PATH specify PATH to gmp --without-annocheck do not build annocheck --without-libelf remove libelf dependency @@ -1482,6 +1492,8 @@ Optional Packages: --without-gcc_plugin do not build the gcc plugin --with-llvm build the llvm plugin --without-docs do not build the documentation + --with-gcc-plugin-dir=DIR + install annobin plugin into the GCC plugin directory --with-debuginfod Enable debuginfo lookups with debuginfod (auto/yes/no) @@ -17817,212 +17829,6 @@ case ${target} in esac -# We need GCC plugin support. - -static_plugin=$enable_static - - -@%:@ Check whether --with-gcc-plugin-dir was given. -if test "${with_gcc_plugin_dir+set}" = set; then : - withval=$with_gcc_plugin_dir; gcc_plugin_dir=$withval -else - gcc_plugin_dir=test -fi - - -if test x"$static_plugin" = xyes; then - gcc_plugin_dir=no -else - if test x"$cross_compiling" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install into default GCC plugin dir" >&5 -$as_echo_n "checking whether to install into default GCC plugin dir... " >&6; } - case $gcc_plugin_dir in - yes) - as_fn_error $? "GCC plugin directory must be specified explicitly when cross-compiling" "$LINENO" 5 - ;; - test) - # We cannot detect the plugin directory since there is no way to - # run host GCC. So assume no. - # - gcc_plugin_dir=no - ;; - no) - ;; - *) - # Add the include/ subdirectory of the plugin dir to CPPFLAGS since - # the plugin headers are normally installed there. - # - CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" - ;; - esac - else - if test x"$GXX" != xyes; then - as_fn_error $? "$CXX is not a GNU C++ compiler" "$LINENO" 5 - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports plugins" >&5 -$as_echo_n "checking whether $CXX supports plugins... " >&6; } - dir=`$CXX -print-file-name=plugin 2>/dev/null` - - if test x"$dir" = xplugin; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "$CXX does not support plugins; reconfigure GCC with --enable-plugin" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi - - CPPFLAGS="$CPPFLAGS -I$dir/include" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install annobin plugin into default GCC plugin directory" >&5 -$as_echo_n "checking whether to install annobin plugin into default GCC plugin directory... " >&6; } - case $gcc_plugin_dir in - yes) - gcc_plugin_dir=$dir - ;; - test) - # Only install into the GCC plugin dir if both GCC and annobin are - # installed into the same prefix. Testing whether $libdir or - # $libexecdir is a prefix of the GCC plugin dir is a good - # approximation. - # - - # Get the expanded values for libdir and libexecdir. - # - if test x$exec_prefix = xNONE; then - if test x$prefix = xNONE; then - e_exec_prefix=$ac_default_prefix - else - e_exec_prefix=$prefix - fi - else - e_exec_prefix=$exec_prefix - fi - - # On some systems GCC is installed into $prefix/lib even though - # libdir is $prefix/lib64 and libexecdir is $prefix/libexec. To - # cover this special case, we will also test $prefix/lib. - # - e_libdir=`echo "$libdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - e_libexecdir=`echo "$libexecdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - e_libdir32=$e_exec_prefix/lib - - # See if either one of them is a prefix of the plugin dir. - # - ld_suffix=`echo "$dir" | sed "s?^$e_libdir/*??"` - led_suffix=`echo "$dir" | sed "s?^$e_libexecdir/*??"` - l32d_suffix=`echo "$dir" | sed "s?^$e_libdir32/*??"` - - if test x$ld_suffix != x$dir -o x$led_suffix != x$dir -o x$l32d_suffix != x$dir; then - gcc_plugin_dir=$dir - else - gcc_plugin_dir=no - fi - ;; - *) - # Add the include/ subdirectory of the plugin dir to CPPFLAGS since - # the plugin headers are normally installed there. - # - CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" - ;; - esac - fi - - if test x"$gcc_plugin_dir" != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC plugin headers" >&5 -$as_echo_n "checking for GCC plugin headers... " >&6; } - - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -if test -d .libs; then - delete_libs_dir=no -else - delete_libs_dir=yes -fi - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -#ifndef BUILDING_GCC_MAJOR -# error no BUILDING_GCC_MAJOR in bversion.h -#endif - -int main () {} - -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - - ac_try='./libtool --tag=CXX --mode=link $CXX -no-install $CXXFLAGS $LDFLAGS -o conftest conftest.$OBJEXT $LIBS >&5' - if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - libtool_link_ok=yes - else - libtool_link_ok=no - fi - -else - - libtool_link_ok=no - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test x"$delete_libs_dir" = xyes; then - rm -rf .libs -fi - -if test x"$libtool_link_ok" = xyes; then -gcc_plugin_headers=yes -: -else -gcc_plugin_headers=no -: -fi - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -if test x"$gcc_plugin_headers" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "GCC plugin headers not found; consider installing GCC plugin development package" "$LINENO" 5 -fi - - # Use an alternative GMP if requested. @@ -18272,7 +18078,6 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } @%:@ Check whether --enable-maintainer-mode was given. @@ -18295,50 +18100,256 @@ else fi MAINT=$MAINTAINER_MODE_TRUE -if test x$gcc_plugin_dir != xno; then + +if test "x$with_gcc_plugin" != xno; then + + # We need GCC plugin support. -$as_echo "@%:@define ANNOBIN_GCC_PLUGIN_DIR 1" >>confdefs.h +static_plugin=$enable_static - plugindir=$gcc_plugin_dir -# Otherwise, try to figure out a relative path from the driver (bindir) to -# the plugin (libexecdir). -# + +@%:@ Check whether --with-gcc-plugin-dir was given. +if test "${with_gcc_plugin_dir+set}" = set; then : + withval=$with_gcc_plugin_dir; gcc_plugin_dir=$withval else - # Get the expanded values for bindir and libexecdir. - # - if test x$exec_prefix = xNONE; then - if test x$prefix = xNONE; then - e_exec_prefix=$ac_default_prefix - else - e_exec_prefix=$prefix + gcc_plugin_dir=test +fi + + +if test x"$static_plugin" = xyes; then + gcc_plugin_dir=no +else + if test x"$cross_compiling" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install into default GCC plugin dir" >&5 +$as_echo_n "checking whether to install into default GCC plugin dir... " >&6; } + case $gcc_plugin_dir in + yes) + as_fn_error $? "GCC plugin directory must be specified explicitly when cross-compiling" "$LINENO" 5 + ;; + test) + # We cannot detect the plugin directory since there is no way to + # run host GCC. So assume no. + # + gcc_plugin_dir=no + ;; + no) + ;; + *) + # Add the include/ subdirectory of the plugin dir to CPPFLAGS since + # the plugin headers are normally installed there. + # + CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" + ;; + esac + else + if test x"$GXX" != xyes; then + as_fn_error $? "$CXX is not a GNU C++ compiler" "$LINENO" 5 fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports plugins" >&5 +$as_echo_n "checking whether $CXX supports plugins... " >&6; } + dir=`$CXX -print-file-name=plugin 2>/dev/null` + + if test x"$dir" = xplugin; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "$CXX does not support plugins; reconfigure GCC with --enable-plugin" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + fi + + CPPFLAGS="$CPPFLAGS -I$dir/include" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install annobin plugin into default GCC plugin directory" >&5 +$as_echo_n "checking whether to install annobin plugin into default GCC plugin directory... " >&6; } + case $gcc_plugin_dir in + yes) + gcc_plugin_dir=$dir + ;; + test) + # Only install into the GCC plugin dir if both GCC and annobin are + # installed into the same prefix. Testing whether $libdir or + # $libexecdir is a prefix of the GCC plugin dir is a good + # approximation. + # + + # Get the expanded values for libdir and libexecdir. + # + if test x$exec_prefix = xNONE; then + if test x$prefix = xNONE; then + e_exec_prefix=$ac_default_prefix + else + e_exec_prefix=$prefix + fi + else + e_exec_prefix=$exec_prefix + fi + + # On some systems GCC is installed into $prefix/lib even though + # libdir is $prefix/lib64 and libexecdir is $prefix/libexec. To + # cover this special case, we will also test $prefix/lib. + # + e_libdir=`echo "$libdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + e_libexecdir=`echo "$libexecdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + e_libdir32=$e_exec_prefix/lib + + # See if either one of them is a prefix of the plugin dir. + # + ld_suffix=`echo "$dir" | sed "s?^$e_libdir/*??"` + led_suffix=`echo "$dir" | sed "s?^$e_libexecdir/*??"` + l32d_suffix=`echo "$dir" | sed "s?^$e_libdir32/*??"` + + if test x$ld_suffix != x$dir -o x$led_suffix != x$dir -o x$l32d_suffix != x$dir; then + gcc_plugin_dir=$dir + else + gcc_plugin_dir=no + fi + ;; + *) + # Add the include/ subdirectory of the plugin dir to CPPFLAGS since + # the plugin headers are normally installed there. + # + CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" + ;; + esac + fi + + if test x"$gcc_plugin_dir" != xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - e_exec_prefix=$exec_prefix + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +fi - e_pkglibexecdir=`echo "$libexecdir/$PACKAGE_NAME" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - e_bindir=`echo "$bindir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC plugin headers" >&5 +$as_echo_n "checking for GCC plugin headers... " >&6; } - # Try to find a common prefix. - # - common=$e_bindir - rel_plugindir=$e_pkglibexecdir - - while test x$common != x/; do - suffix=`echo "$e_pkglibexecdir" | sed "s?^$common/*??"` - if test "x$suffix" != "x$e_pkglibexecdir"; then - # Replace all the remaining directories in bindir with ".." - # and append the suffix. - rel_plugindir=`echo "$e_bindir" | sed "s?^$common/*??"` - rel_plugindir=`echo "$rel_plugindir" | sed 's?[^/][^/]*?..?g'` - if test "x$rel_plugindir" != x -a "x$suffix" != x; then - rel_plugindir="$rel_plugindir/$suffix" - else - rel_plugindir="$rel_plugindir$suffix" + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + +if test -d .libs; then + delete_libs_dir=no +else + delete_libs_dir=yes +fi + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include + +#ifndef BUILDING_GCC_MAJOR +# error no BUILDING_GCC_MAJOR in bversion.h +#endif + +int main () {} + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + + ac_try='./libtool --tag=CXX --mode=link $CXX -no-install $CXXFLAGS $LDFLAGS -o conftest conftest.$OBJEXT $LIBS >&5' + if { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + libtool_link_ok=yes + else + libtool_link_ok=no + fi + +else + + libtool_link_ok=no + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test x"$delete_libs_dir" = xyes; then + rm -rf .libs +fi + +if test x"$libtool_link_ok" = xyes; then +gcc_plugin_headers=yes +: +else +gcc_plugin_headers=no +: +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + +if test x"$gcc_plugin_headers" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "GCC plugin headers not found; consider installing GCC plugin development package" "$LINENO" 5 +fi + + + if test x$gcc_plugin_dir != xno; then + +$as_echo "@%:@define ANNOBIN_GCC_PLUGIN_DIR 1" >>confdefs.h + + plugindir=$gcc_plugin_dir + # Otherwise, try to figure out a relative path from the driver (bindir) to + # the plugin (libexecdir). + else + # Get the expanded values for bindir and libexecdir. + if test x$exec_prefix = xNONE; then + if test x$prefix = xNONE; then + e_exec_prefix=$ac_default_prefix + else + e_exec_prefix=$prefix fi - break + else + e_exec_prefix=$exec_prefix fi - common=`$as_dirname -- "$common" || + + e_pkglibexecdir=`echo "$libexecdir/$PACKAGE_NAME" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + e_bindir=`echo "$bindir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + + # Try to find a common prefix. + common=$e_bindir + rel_plugindir=$e_pkglibexecdir + + while test x$common != x/; do + suffix=`echo "$e_pkglibexecdir" | sed "s?^$common/*??"` + if test "x$suffix" != "x$e_pkglibexecdir"; then + # Replace all the remaining directories in bindir with ".." + # and append the suffix. + rel_plugindir=`echo "$e_bindir" | sed "s?^$common/*??"` + rel_plugindir=`echo "$rel_plugindir" | sed 's?[^/][^/]*?..?g'` + if test "x$rel_plugindir" != x -a "x$suffix" != x; then + rel_plugindir="$rel_plugindir/$suffix" + else + rel_plugindir="$rel_plugindir$suffix" + fi + break + fi + common=`$as_dirname -- "$common" || $as_expr X"$common" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$common" : 'X\(//\)[^/]' \| \ X"$common" : 'X\(//\)$' \| \ @@ -18361,16 +18372,17 @@ $as_echo X"$common" | q } s/.*/./; q'` - done - + done + cat >>confdefs.h <<_ACEOF @%:@define ANNOBIN_PLUGIN_PATH "$rel_plugindir" _ACEOF - plugindir='$(pkglibexecdir)' -fi - + plugindir='$(pkglibexecdir)' + fi + +fi # Check for debuginfod availability diff --git a/autom4te.cache/requests b/autom4te.cache/requests index eb99f90..7c8d8af 100644 --- a/autom4te.cache/requests +++ b/autom4te.cache/requests @@ -16,62 +16,62 @@ 'configure.ac' ], { - '_AM_MAKEFILE_INCLUDE' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - '_AM_COND_ELSE' => 1, - 'm4_include' => 1, - 'AM_POT_TOOLS' => 1, - 'AM_SILENT_RULES' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AC_INIT' => 1, + 'm4_sinclude' => 1, + 'AC_CONFIG_FILES' => 1, 'AH_OUTPUT' => 1, - 'AC_REQUIRE_AUX_FILE' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AM_PROG_AR' => 1, - 'AM_PATH_GUILE' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, + 'AC_CONFIG_HEADERS' => 1, + 'AM_SILENT_RULES' => 1, + 'AC_FC_PP_SRCEXT' => 1, + 'AM_AUTOMAKE_VERSION' => 1, 'AM_PROG_FC_C_O' => 1, - 'AC_LIBSOURCE' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_CONFIG_SUBDIRS' => 1, 'AM_MAKEFILE_INCLUDE' => 1, - 'AM_CONDITIONAL' => 1, + 'm4_pattern_forbid' => 1, + 'include' => 1, + 'LT_INIT' => 1, + 'AC_CANONICAL_TARGET' => 1, + 'AC_CONFIG_SUBDIRS' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AC_CANONICAL_SYSTEM' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, 'AC_CONFIG_AUX_DIR' => 1, + 'AM_PROG_CC_C_O' => 1, + 'AM_GNU_GETTEXT' => 1, + 'AM_CONDITIONAL' => 1, + 'AC_CANONICAL_BUILD' => 1, + 'AC_INIT' => 1, + 'AM_POT_TOOLS' => 1, '_AM_COND_ENDIF' => 1, - 'AC_CONFIG_LINKS' => 1, + 'AM_PATH_GUILE' => 1, 'AM_PROG_MOC' => 1, - 'AC_FC_PP_SRCEXT' => 1, - 'AC_SUBST' => 1, - 'm4_pattern_forbid' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - 'AC_CANONICAL_BUILD' => 1, - 'AC_FC_FREEFORM' => 1, - 'LT_INIT' => 1, - 'AM_PROG_F77_C_O' => 1, + 'AC_CONFIG_LINKS' => 1, '_LT_AC_TAGCONFIG' => 1, - 'AM_PROG_CXX_C_O' => 1, - '_AM_COND_IF' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'm4_pattern_allow' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'include' => 1, - 'AC_CONFIG_FILES' => 1, + 'AC_LIBSOURCE' => 1, 'AM_ENABLE_MULTILIB' => 1, - 'AC_CANONICAL_TARGET' => 1, - 'AC_SUBST_TRACE' => 1, - '_m4_warn' => 1, - 'AM_PROG_CC_C_O' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, + '_AM_COND_ELSE' => 1, + 'AC_CANONICAL_HOST' => 1, + 'LT_SUPPORTED_TAG' => 1, 'AC_PROG_LIBTOOL' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'm4_sinclude' => 1, - 'AC_FC_SRCEXT' => 1, - 'AC_CONFIG_HEADERS' => 1, 'AM_NLS' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - '_AM_SUBST_NOTMAKE' => 1, + 'AC_FC_SRCEXT' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, 'AC_FC_PP_DEFINE' => 1, + 'AM_PROG_CXX_C_O' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'AM_PROG_F77_C_O' => 1, + '_m4_warn' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, + 'AC_SUBST_TRACE' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'AM_PROG_AR' => 1, + 'AC_FC_FREEFORM' => 1, + 'm4_pattern_allow' => 1, + '_AM_COND_IF' => 1, + 'm4_include' => 1, + 'AC_SUBST' => 1, + 'AC_REQUIRE_AUX_FILE' => 1, 'sinclude' => 1 } ], 'Autom4te::Request' ), @@ -122,205 +122,205 @@ 'configure.ac' ], { - 'AM_INIT_AUTOMAKE' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - 'AC_PROG_LD_GNU' => 1, - '_AM_PROG_CC_C_O' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, - 'GCC_BASE_VER' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'include' => 1, - 'NCN_STRICT_CHECK_TARGET_TOOLS' => 1, - 'LT_PROG_GCJ' => 1, - 'BUILD_GCC_PLUGIN' => 1, - 'NCN_STRICT_CHECK_TOOLS' => 1, - 'BUILD_ANNOCHECK' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, - 'AM_SUBST_NOTMAKE' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, - 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - 'LT_INIT' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'LLVM_PLUGIN' => 1, - 'AC_PROG_LD' => 1, - 'LT_LANG' => 1, - 'm4_pattern_forbid' => 1, + 'ACX_LT_HOST_FLAGS' => 1, + 'ACX_PROG_CMP_IGNORE_INITIAL' => 1, 'AC_LIBTOOL_COMPILER_OPTION' => 1, - 'LT_CMD_MAX_LEN' => 1, - 'LT_PATH_NM' => 1, - 'AC_ENABLE_SHARED' => 1, - 'AC_LIBTOOL_CONFIG' => 1, - 'GCC_PLUGIN' => 1, - 'CLANG_PLUGIN' => 1, - '_LT_CC_BASENAME' => 1, - 'AC_LIBTOOL_GCJ' => 1, - 'LT_PROG_RC' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - '_AM_IF_OPTION' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + '_AM_DEPENDENCIES' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, 'ACX_CHECK_CYGWIN_CAT_WORKS' => 1, - 'AM_MISSING_PROG' => 1, + 'LT_AC_PROG_RC' => 1, + 'AC_PROG_LIBTOOL' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'AC_CHECK_LIBM' => 1, 'LT_SYS_DLOPEN_SELF' => 1, - '_LT_AC_LOCK' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - '_GCC_TOPLEV_NONCANONICAL_TARGET' => 1, - 'AC_PROG_EGREP' => 1, - 'AC_DISABLE_SHARED' => 1, - 'LT_SUPPORTED_TAG' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, + 'DISABLE_RPATH' => 1, + 'AM_RUN_LOG' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'ANNOCHECK' => 1, + 'AC_DISABLE_STATIC' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'BUILD_CLANG_PLUGIN' => 1, + 'ACX_BUGURL' => 1, + 'm4_pattern_allow' => 1, + 'ACX_PATH_SEP' => 1, + 'm4_include' => 1, + 'AU_DEFUN' => 1, + 'ACX_HAVE_GCC_FOR_TARGET' => 1, '_LT_AC_LANG_CXX' => 1, - 'DEBUGINFOD' => 1, + 'AC_PROG_CPP_WERROR' => 1, + '_LT_AC_SHELL_INIT' => 1, 'AM_SILENT_RULES' => 1, + '_AM_PROG_CC_C_O' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + '_AC_PROG_LIBTOOL' => 1, + '_NCN_TOOL_PREFIXES' => 1, + 'AM_MISSING_HAS_RUN' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'AC_PROG_LEX' => 1, + 'AC_DEFUN_ONCE' => 1, + 'ACX_PROG_LN' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'AC_PATH_MAGIC' => 1, + '_LT_WITH_SYSROOT' => 1, + 'LTSUGAR_VERSION' => 1, 'AC_LTDL_PREOPEN' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, - '_GCC_TOPLEV_NONCANONICAL_HOST' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'ACX_LT_HOST_FLAGS' => 1, - '_AM_AUTOCONF_VERSION' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'AM_PROG_LD' => 1, + '_LT_PROG_F77' => 1, + 'LT_PROG_GO' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'ACX_PROG_GNAT' => 1, '_LT_AC_SYS_COMPILER' => 1, 'AM_PROG_INSTALL_STRIP' => 1, 'AM_PROG_LIBTOOL' => 1, - 'ACX_HEADER_STRING' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + '_LT_AC_LOCK' => 1, + 'AC_PROG_LD_GNU' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AC_PROG_EGREP' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_DEFUN' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'ACX_CHECK_PROG_VER' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'AM_DISABLE_STATIC' => 1, + 'ZW_PROG_COMPILER_DEPENDENCIES' => 1, '_LT_AC_LANG_RC_CONFIG' => 1, - 'GMP' => 1, - '_AC_PROG_LIBTOOL' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + '_GCC_TOPLEV_NONCANONICAL_HOST' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'LT_AC_PROG_EGREP' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + '_AM_IF_OPTION' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'AC_LIBTOOL_F77' => 1, + '_LT_LINKER_BOILERPLATE' => 1, '_LT_AC_LANG_GCJ_CONFIG' => 1, - 'LT_AC_PROG_GCJ' => 1, - 'm4_pattern_allow' => 1, - 'LT_PROG_GO' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'include' => 1, + 'BUILD_GCC_PLUGIN' => 1, + 'GCC_TOPLEV_SUBDIRS' => 1, + 'm4_pattern_forbid' => 1, + 'AM_PROG_INSTALL_SH' => 1, 'AC_PREREQ' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - 'AC_LIBTOOL_DLOPEN_SELF' => 1, - 'AC_DEFUN_ONCE' => 1, - 'ACX_NONCANONICAL_TARGET' => 1, - 'LT_AC_PROG_EGREP' => 1, - 'ACX_CHECK_PROG_VER' => 1, - 'BUILD_DOCS' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, - 'AM_SANITY_CHECK' => 1, - 'LTSUGAR_VERSION' => 1, - 'ACX_CHECK_INSTALLED_TARGET_TOOL' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, '_LT_AC_TAGVAR' => 1, - 'AM_PROG_LD' => 1, + 'ACX_HEADER_STRING' => 1, 'BUILD_LLVM_PLUGIN' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, - 'LTOBSOLETE_VERSION' => 1, - 'ACX_PROG_LN' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - 'AC_CHECK_LIBM' => 1, - 'ACX_PROG_GNAT' => 1, - 'AM_ENABLE_SHARED' => 1, - 'AM_DISABLE_SHARED' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - 'LT_AC_PROG_SED' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - '_AM_PROG_TAR' => 1, - '_GCC_AUTOCONF_VERSION_CHECK' => 1, - 'AM_MISSING_HAS_RUN' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - 'ANNOCHECK' => 1, - 'ACX_TOOL_DIRS' => 1, - 'AC_LTDL_OBJDIR' => 1, - 'AM_DEP_TRACK' => 1, - 'CXX_LIBTOOL_LINK_IFELSE' => 1, - 'm4_include' => 1, - '_LT_PROG_CXX' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - 'AM_MAKE_INCLUDE' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - 'LT_LIB_M' => 1, - 'AU_DEFUN' => 1, - 'AC_ENABLE_STATIC' => 1, - 'ACX_BUGURL' => 1, - '_AM_SET_OPTION' => 1, - '_LT_AC_LANG_CXX_CONFIG' => 1, - '_LT_AC_SHELL_INIT' => 1, - 'ACX_PROG_CMP_IGNORE_INITIAL' => 1, - '_NCN_TOOL_PREFIXES' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'LT_AC_PROG_RC' => 1, - '_LT_AC_TAGCONFIG' => 1, + 'AM_SET_DEPDIR' => 1, + '_AM_MANGLE_OPTION' => 1, '_AM_CONFIG_MACRO_DIRS' => 1, - '_LT_PROG_LTMAIN' => 1, - 'BUILD_CLANG_PLUGIN' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - 'AM_PROG_NM' => 1, - 'AC_DEFUN' => 1, - 'LIBELF' => 1, - 'LT_OUTPUT' => 1, - 'ACX_NONCANONICAL_HOST' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, - 'ACX_PATH_SEP' => 1, - '_LT_WITH_SYSROOT' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'NCN_STRICT_CHECK_TOOLS' => 1, '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + 'CXX_LIBTOOL_LINK_IFELSE' => 1, + 'GCC_BASE_VER' => 1, + 'LT_PATH_NM' => 1, + '_AM_AUTOCONF_VERSION' => 1, + 'AC_PROG_LD' => 1, + 'ACX_HEADER_STDBOOL' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + 'ACX_NONCANONICAL_HOST' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'ACX_CHECK_INSTALLED_TARGET_TOOL' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + 'LT_CMD_MAX_LEN' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'AC_DISABLE_SHARED' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'AM_ENABLE_SHARED' => 1, + 'AM_PROG_NM' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + '_AM_SET_OPTION' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'AC_LIBTOOL_FC' => 1, + 'GMP' => 1, + '_m4_warn' => 1, 'GCC_TARGET_TOOL' => 1, - 'AM_DISABLE_STATIC' => 1, - 'ACX_PKGVERSION' => 1, - '_LT_COMPILER_OPTION' => 1, - '_AM_SET_OPTIONS' => 1, - 'LTVERSION_VERSION' => 1, - '_LT_LINKER_BOILERPLATE' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - '_LT_PROG_FC' => 1, - 'DISABLE_RPATH' => 1, + 'ZW_CREATE_DEPDIR' => 1, 'ACX_NONCANONICAL_BUILD' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + '_GCC_TOPLEV_NONCANONICAL_TARGET' => 1, + 'CLANG_PLUGIN' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + 'LTOPTIONS_VERSION' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + '_LT_PROG_LTMAIN' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + 'LT_INIT' => 1, + '_LT_CC_BASENAME' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + 'ACX_TOOL_DIRS' => 1, + 'DEBUGINFOD' => 1, 'AM_ENABLE_STATIC' => 1, + 'LT_PROG_GCJ' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'ACX_NONCANONICAL_TARGET' => 1, 'AM_PROG_CC_C_O' => 1, - '_m4_warn' => 1, - 'ZW_PROG_COMPILER_DEPENDENCIES' => 1, - 'AM_RUN_LOG' => 1, + 'AM_DEP_TRACK' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + '_AM_SET_OPTIONS' => 1, + 'AM_SANITY_CHECK' => 1, + 'BUILD_DOCS' => 1, + 'GCC_PLUGIN' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AM_DISABLE_SHARED' => 1, + 'AC_ENABLE_SHARED' => 1, + '_LT_AC_LANG_F77' => 1, 'LT_PATH_LD' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, - 'ACX_HEADER_STDBOOL' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - '_LT_LINKER_OPTION' => 1, 'AC_PROG_NM' => 1, - '_LT_PROG_F77' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - '_LT_AC_LANG_F77' => 1, - 'AC_LIBTOOL_CXX' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - 'AC_PATH_MAGIC' => 1, - 'AC_PROG_CPP_WERROR' => 1, - 'ZW_CREATE_DEPDIR' => 1, - 'LTOPTIONS_VERSION' => 1, - 'AC_DISABLE_STATIC' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - 'AC_LIBTOOL_FC' => 1, '_GCC_TOPLEV_NONCANONICAL_BUILD' => 1, - '_LT_DLL_DEF_P' => 1, + '_LT_PROG_CXX' => 1, + 'AC_LIBTOOL_SETUP' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + 'LTVERSION_VERSION' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AC_LTDL_OBJDIR' => 1, + 'AM_MISSING_PROG' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + '_LT_PROG_FC' => 1, + 'AM_SET_LEADING_DOT' => 1, + 'ACX_PKGVERSION' => 1, + 'LT_LIB_M' => 1, + 'AC_LIBTOOL_GCJ' => 1, + '_GCC_AUTOCONF_VERSION_CHECK' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + '_AM_PROG_TAR' => 1, '_LT_AC_LANG_GCJ' => 1, + 'BUILD_ANNOCHECK' => 1, + 'LT_PROG_RC' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, 'AC_LIBTOOL_RC' => 1, - 'AC_LIBTOOL_SETUP' => 1, - 'AC_PROG_LEX' => 1, - '_AM_MANGLE_OPTION' => 1, - 'AM_SET_DEPDIR' => 1, - 'AC_LIBTOOL_F77' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + '_LT_DLL_DEF_P' => 1, + 'LIBELF' => 1, + 'LT_AC_PROG_SED' => 1, + 'LT_OUTPUT' => 1, + 'NCN_STRICT_CHECK_TARGET_TOOLS' => 1, + 'LLVM_PLUGIN' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'AC_ENABLE_STATIC' => 1, 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - 'GCC_TOPLEV_SUBDIRS' => 1, - 'ACX_HAVE_GCC_FOR_TARGET' => 1, - '_LT_AC_PROG_CXXCPP' => 1, - '_AM_DEPENDENCIES' => 1, - 'AM_SET_LEADING_DOT' => 1 + '_LT_AC_LANG_C_CONFIG' => 1, + '_LT_COMPILER_OPTION' => 1, + '_LT_LINKER_OPTION' => 1, + 'LT_LANG' => 1, + 'AM_CONDITIONAL' => 1 } ], 'Autom4te::Request' ), bless( [ @@ -335,65 +335,65 @@ 'configure.ac' ], { + 'LT_CONFIG_LTDL_DIR' => 1, 'AM_MAINTAINER_MODE' => 1, - 'm4_pattern_allow' => 1, - 'AM_ENABLE_MULTILIB' => 1, - 'AC_CONFIG_FILES' => 1, - 'include' => 1, - '_AM_COND_IF' => 1, - 'AM_PROG_CXX_C_O' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AM_GNU_GETTEXT' => 1, - 'LT_INIT' => 1, + 'AM_CONDITIONAL' => 1, 'AC_CANONICAL_BUILD' => 1, - 'AC_FC_FREEFORM' => 1, - 'AM_PROG_F77_C_O' => 1, - '_LT_AC_TAGCONFIG' => 1, + 'AC_INIT' => 1, + 'AM_POT_TOOLS' => 1, + '_AM_COND_ENDIF' => 1, + 'AM_PROG_MKDIR_P' => 1, + 'AC_CONFIG_AUX_DIR' => 1, + 'AM_PROG_CC_C_O' => 1, + 'AM_GNU_GETTEXT' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, + 'm4_pattern_forbid' => 1, + 'include' => 1, + 'AC_CONFIG_FILES' => 1, + 'AH_OUTPUT' => 1, + 'm4_sinclude' => 1, + 'AC_FC_PP_SRCEXT' => 1, + 'AM_SILENT_RULES' => 1, 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - 'AC_FC_PP_DEFINE' => 1, - 'sinclude' => 1, - '_AM_SUBST_NOTMAKE' => 1, + 'AC_CONFIG_HEADERS' => 1, 'AM_AUTOMAKE_VERSION' => 1, - 'AM_NLS' => 1, + 'AM_PROG_FC_C_O' => 1, + 'AC_CONFIG_SUBDIRS' => 1, 'AM_INIT_AUTOMAKE' => 1, - 'm4_sinclude' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_FC_SRCEXT' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AC_SUBST_TRACE' => 1, - '_m4_warn' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AC_CANONICAL_TARGET' => 1, 'AC_CANONICAL_SYSTEM' => 1, - 'AC_REQUIRE_AUX_FILE' => 1, - 'AC_LIBSOURCE' => 1, - 'AM_PROG_FC_C_O' => 1, - 'AM_PROG_AR' => 1, - 'AM_PATH_GUILE' => 1, - 'AH_OUTPUT' => 1, - 'AM_SILENT_RULES' => 1, - 'AM_POT_TOOLS' => 1, - 'AC_INIT' => 1, - 'LT_SUPPORTED_TAG' => 1, - '_AM_COND_ELSE' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, + 'LT_INIT' => 1, + 'AC_CANONICAL_TARGET' => 1, + 'AM_PROG_F77_C_O' => 1, + '_AM_SUBST_NOTMAKE' => 1, + '_m4_warn' => 1, '_AM_MAKEFILE_INCLUDE' => 1, - 'm4_include' => 1, - 'm4_pattern_forbid' => 1, 'AM_XGETTEXT_OPTION' => 1, - 'AC_CANONICAL_HOST' => 1, + 'AC_SUBST_TRACE' => 1, + 'AC_FC_PP_DEFINE' => 1, + 'AM_PROG_CXX_C_O' => 1, + 'AC_REQUIRE_AUX_FILE' => 1, 'AC_SUBST' => 1, - 'AC_FC_PP_SRCEXT' => 1, + 'sinclude' => 1, + 'AM_PROG_AR' => 1, + 'm4_include' => 1, + 'AC_FC_FREEFORM' => 1, + 'm4_pattern_allow' => 1, + '_AM_COND_IF' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AM_ENABLE_MULTILIB' => 1, + 'AC_LIBSOURCE' => 1, + 'AM_PATH_GUILE' => 1, 'AM_PROG_MOC' => 1, - 'AM_PROG_MKDIR_P' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, 'AC_CONFIG_LINKS' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - '_AM_COND_ENDIF' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - 'AM_CONDITIONAL' => 1 + 'AM_NLS' => 1, + 'AC_FC_SRCEXT' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, + 'AC_CANONICAL_HOST' => 1, + '_AM_COND_ELSE' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1 } ], 'Autom4te::Request' ) ); diff --git a/autom4te.cache/traces.1 b/autom4te.cache/traces.1 index eb86b76..39f13bb 100644 --- a/autom4te.cache/traces.1 +++ b/autom4te.cache/traces.1 @@ -1277,7 +1277,7 @@ AC_ARG_WITH( ]) m4trace:config/annocheck.m4:70: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:70: the top level]) m4trace:config/debuginfod.m4:8: -1- AC_DEFUN([DEBUGINFOD], [ # Enable debuginfod @@ -2682,6 +2682,7 @@ m4trace:configure.ac:6: -1- m4_pattern_allow([^datadir$]) m4trace:configure.ac:6: -1- m4_pattern_allow([^sysconfdir$]) m4trace:configure.ac:6: -1- m4_pattern_allow([^sharedstatedir$]) m4trace:configure.ac:6: -1- m4_pattern_allow([^localstatedir$]) +m4trace:configure.ac:6: -1- m4_pattern_allow([^runstatedir$]) m4trace:configure.ac:6: -1- m4_pattern_allow([^includedir$]) m4trace:configure.ac:6: -1- m4_pattern_allow([^oldincludedir$]) m4trace:configure.ac:6: -1- m4_pattern_allow([^docdir$]) @@ -2709,7 +2710,7 @@ m4trace:configure.ac:6: -1- m4_pattern_allow([^host_alias$]) m4trace:configure.ac:6: -1- m4_pattern_allow([^target_alias$]) m4trace:configure.ac:6: -1- _GCC_AUTOCONF_VERSION_CHECK m4trace:configure.ac:10: -1- _m4_warn([obsolete], [The macro `AC_CANONICAL_SYSTEM' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:1857: AC_CANONICAL_SYSTEM is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:1868: AC_CANONICAL_SYSTEM is expanded from... configure.ac:10: the top level]) m4trace:configure.ac:10: -1- m4_pattern_allow([^build$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^build_cpu$]) @@ -2976,83 +2977,83 @@ m4trace:configure.ac:24: -1- m4_pattern_allow([^LT_SYS_LIBRARY_PATH$]) m4trace:configure.ac:25: -1- LT_OUTPUT m4trace:configure.ac:25: -1- _LT_PROG_LTMAIN m4trace:configure.ac:49: -1- m4_pattern_allow([^target_plugin$]) -m4trace:configure.ac:52: -1- GCC_PLUGIN +m4trace:configure.ac:52: -1- GMP m4trace:configure.ac:52: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... -config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... -configure.ac:52: the top level]) -m4trace:configure.ac:52: -1- CXX_LIBTOOL_LINK_IFELSE([ -AC_LANG_SOURCE([ -#include - -#ifndef BUILDING_GCC_MAJOR -# error no BUILDING_GCC_MAJOR in bversion.h -#endif - -int main () {} -])], [gcc_plugin_headers=yes], [gcc_plugin_headers=no]) -m4trace:configure.ac:52: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/lang.m4:125: AC_LANG_SAVE is expanded from... -config/libtool-link.m4:11: CXX_LIBTOOL_LINK_IFELSE is expanded from... -config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... -configure.ac:52: the top level]) -m4trace:configure.ac:52: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/lang.m4:134: AC_LANG_RESTORE is expanded from... -config/libtool-link.m4:11: CXX_LIBTOOL_LINK_IFELSE is expanded from... -config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... +config/libgomp.m4:8: GMP is expanded from... configure.ac:52: the top level]) -m4trace:configure.ac:55: -1- GMP +m4trace:configure.ac:55: -1- BUILD_ANNOCHECK m4trace:configure.ac:55: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... -config/libgomp.m4:8: GMP is expanded from... -configure.ac:55: the top level]) -m4trace:configure.ac:58: -1- BUILD_ANNOCHECK -m4trace:configure.ac:58: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:10: BUILD_ANNOCHECK is expanded from... -configure.ac:58: the top level]) -m4trace:configure.ac:58: -1- LIBELF -m4trace:configure.ac:58: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +configure.ac:55: the top level]) +m4trace:configure.ac:55: -1- LIBELF +m4trace:configure.ac:55: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/libelf.m4:8: LIBELF is expanded from... ../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... config/annocheck.m4:10: BUILD_ANNOCHECK is expanded from... -configure.ac:58: the top level]) -m4trace:configure.ac:58: -1- m4_pattern_allow([^RPMLIBS$]) -m4trace:configure.ac:60: -1- BUILD_CLANG_PLUGIN -m4trace:configure.ac:60: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +configure.ac:55: the top level]) +m4trace:configure.ac:55: -1- m4_pattern_allow([^RPMLIBS$]) +m4trace:configure.ac:57: -1- BUILD_CLANG_PLUGIN +m4trace:configure.ac:57: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:34: BUILD_CLANG_PLUGIN is expanded from... -configure.ac:60: the top level]) -m4trace:configure.ac:62: -1- BUILD_GCC_PLUGIN -m4trace:configure.ac:62: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +configure.ac:57: the top level]) +m4trace:configure.ac:59: -1- BUILD_GCC_PLUGIN +m4trace:configure.ac:59: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:43: BUILD_GCC_PLUGIN is expanded from... -configure.ac:62: the top level]) -m4trace:configure.ac:64: -1- BUILD_LLVM_PLUGIN -m4trace:configure.ac:64: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +configure.ac:59: the top level]) +m4trace:configure.ac:61: -1- BUILD_LLVM_PLUGIN +m4trace:configure.ac:61: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:52: BUILD_LLVM_PLUGIN is expanded from... -configure.ac:64: the top level]) -m4trace:configure.ac:66: -1- BUILD_DOCS -m4trace:configure.ac:66: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +configure.ac:61: the top level]) +m4trace:configure.ac:63: -1- BUILD_DOCS +m4trace:configure.ac:63: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:61: BUILD_DOCS is expanded from... -configure.ac:66: the top level]) -m4trace:configure.ac:77: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) -m4trace:configure.ac:78: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) -m4trace:configure.ac:87: -1- m4_pattern_allow([^MAINT$]) -m4trace:configure.ac:90: -1- m4_pattern_allow([^ANNOBIN_GCC_PLUGIN_DIR$]) -m4trace:configure.ac:132: -1- m4_pattern_allow([^ANNOBIN_PLUGIN_PATH$]) -m4trace:configure.ac:136: -1- m4_pattern_allow([^plugindir$]) +configure.ac:63: the top level]) +m4trace:configure.ac:73: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) +m4trace:configure.ac:74: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) +m4trace:configure.ac:83: -1- m4_pattern_allow([^MAINT$]) +m4trace:configure.ac:89: -1- GCC_PLUGIN +m4trace:configure.ac:89: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... +config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... +configure.ac:89: the top level]) +m4trace:configure.ac:89: -1- CXX_LIBTOOL_LINK_IFELSE([ +AC_LANG_SOURCE([ +#include + +#ifndef BUILDING_GCC_MAJOR +# error no BUILDING_GCC_MAJOR in bversion.h +#endif + +int main () {} +])], [gcc_plugin_headers=yes], [gcc_plugin_headers=no]) +m4trace:configure.ac:89: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/lang.m4:125: AC_LANG_SAVE is expanded from... +config/libtool-link.m4:11: CXX_LIBTOOL_LINK_IFELSE is expanded from... +config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... +configure.ac:89: the top level]) +m4trace:configure.ac:89: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/lang.m4:134: AC_LANG_RESTORE is expanded from... +config/libtool-link.m4:11: CXX_LIBTOOL_LINK_IFELSE is expanded from... +config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... +configure.ac:89: the top level]) +m4trace:configure.ac:92: -1- m4_pattern_allow([^ANNOBIN_GCC_PLUGIN_DIR$]) +m4trace:configure.ac:131: -1- m4_pattern_allow([^ANNOBIN_PLUGIN_PATH$]) +m4trace:configure.ac:135: -1- m4_pattern_allow([^plugindir$]) m4trace:configure.ac:139: -1- DEBUGINFOD m4trace:configure.ac:139: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... @@ -3070,7 +3071,7 @@ m4trace:configure.ac:139: -1- _AM_SUBST_NOTMAKE([HAVE_DEBUGINFOD_FALSE]) m4trace:configure.ac:141: -1- DISABLE_RPATH m4trace:configure.ac:141: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1462: AC_ARG_ENABLE is expanded from... +../../lib/autoconf/general.m4:1473: AC_ARG_ENABLE is expanded from... config/disable-rpath.m4:5: DISABLE_RPATH is expanded from... configure.ac:141: the top level]) m4trace:configure.ac:143: -1- ACX_LT_HOST_FLAGS diff --git a/autom4te.cache/traces.2 b/autom4te.cache/traces.2 index f35bafb..acd43e3 100644 --- a/autom4te.cache/traces.2 +++ b/autom4te.cache/traces.2 @@ -2,7 +2,7 @@ m4trace:aclocal.m4:1134: -1- m4_include([config/acx.m4]) m4trace:aclocal.m4:1135: -1- m4_include([config/annocheck.m4]) m4trace:config/annocheck.m4:70: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:70: the top level]) m4trace:aclocal.m4:1136: -1- m4_include([config/debuginfod.m4]) m4trace:aclocal.m4:1137: -1- m4_include([config/depstand.m4]) @@ -84,6 +84,9 @@ m4trace:configure.ac:6: -1- m4_pattern_allow([^sharedstatedir$]) m4trace:configure.ac:6: -1- AC_SUBST([localstatedir], ['${prefix}/var']) m4trace:configure.ac:6: -1- AC_SUBST_TRACE([localstatedir]) m4trace:configure.ac:6: -1- m4_pattern_allow([^localstatedir$]) +m4trace:configure.ac:6: -1- AC_SUBST([runstatedir], ['${localstatedir}/run']) +m4trace:configure.ac:6: -1- AC_SUBST_TRACE([runstatedir]) +m4trace:configure.ac:6: -1- m4_pattern_allow([^runstatedir$]) m4trace:configure.ac:6: -1- AC_SUBST([includedir], ['${prefix}/include']) m4trace:configure.ac:6: -1- AC_SUBST_TRACE([includedir]) m4trace:configure.ac:6: -1- m4_pattern_allow([^includedir$]) @@ -170,7 +173,7 @@ m4trace:configure.ac:6: -1- m4_pattern_allow([^target_alias$]) m4trace:configure.ac:7: -1- AC_CONFIG_AUX_DIR([config]) m4trace:configure.ac:10: -1- AC_CANONICAL_SYSTEM m4trace:configure.ac:10: -1- _m4_warn([obsolete], [The macro `AC_CANONICAL_SYSTEM' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:1857: AC_CANONICAL_SYSTEM is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:1868: AC_CANONICAL_SYSTEM is expanded from... configure.ac:10: the top level]) m4trace:configure.ac:10: -1- AC_CANONICAL_TARGET m4trace:configure.ac:10: -1- AC_CANONICAL_HOST @@ -621,79 +624,79 @@ m4trace:configure.ac:49: -1- AC_SUBST_TRACE([target_plugin]) m4trace:configure.ac:49: -1- m4_pattern_allow([^target_plugin$]) m4trace:configure.ac:52: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... -config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... -configure.ac:52: the top level]) -m4trace:configure.ac:52: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/lang.m4:125: AC_LANG_SAVE is expanded from... -config/libtool-link.m4:11: CXX_LIBTOOL_LINK_IFELSE is expanded from... -config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... -configure.ac:52: the top level]) -m4trace:configure.ac:52: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/lang.m4:134: AC_LANG_RESTORE is expanded from... -config/libtool-link.m4:11: CXX_LIBTOOL_LINK_IFELSE is expanded from... -config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... +config/libgomp.m4:8: GMP is expanded from... configure.ac:52: the top level]) m4trace:configure.ac:55: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... -config/libgomp.m4:8: GMP is expanded from... -configure.ac:55: the top level]) -m4trace:configure.ac:58: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:10: BUILD_ANNOCHECK is expanded from... -configure.ac:58: the top level]) -m4trace:configure.ac:58: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +configure.ac:55: the top level]) +m4trace:configure.ac:55: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/libelf.m4:8: LIBELF is expanded from... ../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... config/annocheck.m4:10: BUILD_ANNOCHECK is expanded from... -configure.ac:58: the top level]) -m4trace:configure.ac:58: -1- AC_SUBST([RPMLIBS]) -m4trace:configure.ac:58: -1- AC_SUBST_TRACE([RPMLIBS]) -m4trace:configure.ac:58: -1- m4_pattern_allow([^RPMLIBS$]) -m4trace:configure.ac:60: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +configure.ac:55: the top level]) +m4trace:configure.ac:55: -1- AC_SUBST([RPMLIBS]) +m4trace:configure.ac:55: -1- AC_SUBST_TRACE([RPMLIBS]) +m4trace:configure.ac:55: -1- m4_pattern_allow([^RPMLIBS$]) +m4trace:configure.ac:57: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:34: BUILD_CLANG_PLUGIN is expanded from... -configure.ac:60: the top level]) -m4trace:configure.ac:62: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +configure.ac:57: the top level]) +m4trace:configure.ac:59: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:43: BUILD_GCC_PLUGIN is expanded from... -configure.ac:62: the top level]) -m4trace:configure.ac:64: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +configure.ac:59: the top level]) +m4trace:configure.ac:61: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:52: BUILD_LLVM_PLUGIN is expanded from... -configure.ac:64: the top level]) -m4trace:configure.ac:66: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +configure.ac:61: the top level]) +m4trace:configure.ac:63: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1481: AC_ARG_WITH is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... config/annocheck.m4:61: BUILD_DOCS is expanded from... -configure.ac:66: the top level]) -m4trace:configure.ac:77: -1- AC_SUBST([MAINTAINER_MODE_TRUE]) -m4trace:configure.ac:77: -1- AC_SUBST_TRACE([MAINTAINER_MODE_TRUE]) -m4trace:configure.ac:77: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) -m4trace:configure.ac:78: -1- AC_SUBST([MAINTAINER_MODE_FALSE]) -m4trace:configure.ac:78: -1- AC_SUBST_TRACE([MAINTAINER_MODE_FALSE]) -m4trace:configure.ac:78: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) -m4trace:configure.ac:87: -1- AC_SUBST([MAINT]) -m4trace:configure.ac:87: -1- AC_SUBST_TRACE([MAINT]) -m4trace:configure.ac:87: -1- m4_pattern_allow([^MAINT$]) -m4trace:configure.ac:90: -1- AC_DEFINE_TRACE_LITERAL([ANNOBIN_GCC_PLUGIN_DIR]) -m4trace:configure.ac:90: -1- m4_pattern_allow([^ANNOBIN_GCC_PLUGIN_DIR$]) -m4trace:configure.ac:90: -1- AH_OUTPUT([ANNOBIN_GCC_PLUGIN_DIR], [/* Plugin is in GCC plugin directory. */ +configure.ac:63: the top level]) +m4trace:configure.ac:73: -1- AC_SUBST([MAINTAINER_MODE_TRUE]) +m4trace:configure.ac:73: -1- AC_SUBST_TRACE([MAINTAINER_MODE_TRUE]) +m4trace:configure.ac:73: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) +m4trace:configure.ac:74: -1- AC_SUBST([MAINTAINER_MODE_FALSE]) +m4trace:configure.ac:74: -1- AC_SUBST_TRACE([MAINTAINER_MODE_FALSE]) +m4trace:configure.ac:74: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) +m4trace:configure.ac:83: -1- AC_SUBST([MAINT]) +m4trace:configure.ac:83: -1- AC_SUBST_TRACE([MAINT]) +m4trace:configure.ac:83: -1- m4_pattern_allow([^MAINT$]) +m4trace:configure.ac:89: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... +../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from... +config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... +configure.ac:89: the top level]) +m4trace:configure.ac:89: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/lang.m4:125: AC_LANG_SAVE is expanded from... +config/libtool-link.m4:11: CXX_LIBTOOL_LINK_IFELSE is expanded from... +config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... +configure.ac:89: the top level]) +m4trace:configure.ac:89: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/lang.m4:134: AC_LANG_RESTORE is expanded from... +config/libtool-link.m4:11: CXX_LIBTOOL_LINK_IFELSE is expanded from... +config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from... +configure.ac:89: the top level]) +m4trace:configure.ac:92: -1- AC_DEFINE_TRACE_LITERAL([ANNOBIN_GCC_PLUGIN_DIR]) +m4trace:configure.ac:92: -1- m4_pattern_allow([^ANNOBIN_GCC_PLUGIN_DIR$]) +m4trace:configure.ac:92: -1- AH_OUTPUT([ANNOBIN_GCC_PLUGIN_DIR], [/* Plugin is in GCC plugin directory. */ @%:@undef ANNOBIN_GCC_PLUGIN_DIR]) -m4trace:configure.ac:132: -1- AC_DEFINE_TRACE_LITERAL([ANNOBIN_PLUGIN_PATH]) -m4trace:configure.ac:132: -1- m4_pattern_allow([^ANNOBIN_PLUGIN_PATH$]) -m4trace:configure.ac:132: -1- AH_OUTPUT([ANNOBIN_PLUGIN_PATH], [/* Plugin path. */ +m4trace:configure.ac:131: -1- AC_DEFINE_TRACE_LITERAL([ANNOBIN_PLUGIN_PATH]) +m4trace:configure.ac:131: -1- m4_pattern_allow([^ANNOBIN_PLUGIN_PATH$]) +m4trace:configure.ac:131: -1- AH_OUTPUT([ANNOBIN_PLUGIN_PATH], [/* Plugin path. */ @%:@undef ANNOBIN_PLUGIN_PATH]) -m4trace:configure.ac:136: -1- AC_SUBST([plugindir]) -m4trace:configure.ac:136: -1- AC_SUBST_TRACE([plugindir]) -m4trace:configure.ac:136: -1- m4_pattern_allow([^plugindir$]) +m4trace:configure.ac:135: -1- AC_SUBST([plugindir]) +m4trace:configure.ac:135: -1- AC_SUBST_TRACE([plugindir]) +m4trace:configure.ac:135: -1- m4_pattern_allow([^plugindir$]) m4trace:configure.ac:139: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... config/debuginfod.m4:8: DEBUGINFOD is expanded from... @@ -719,7 +722,7 @@ m4trace:configure.ac:139: -1- _AM_SUBST_NOTMAKE([HAVE_DEBUGINFOD_TRUE]) m4trace:configure.ac:139: -1- _AM_SUBST_NOTMAKE([HAVE_DEBUGINFOD_FALSE]) m4trace:configure.ac:141: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from... -../../lib/autoconf/general.m4:1462: AC_ARG_ENABLE is expanded from... +../../lib/autoconf/general.m4:1473: AC_ARG_ENABLE is expanded from... config/disable-rpath.m4:5: DISABLE_RPATH is expanded from... configure.ac:141: the top level]) m4trace:configure.ac:143: -1- AC_SUBST([lt_host_flags]) diff --git a/clang-plugin/Makefile.in b/clang-plugin/Makefile.in index ddf1702..89a2038 100644 --- a/clang-plugin/Makefile.in +++ b/clang-plugin/Makefile.in @@ -31,6 +31,8 @@ install: $(PLUGIN_NAME) clean: rm -f $(PLUGIN_NAME) clang-plugin-test.out hello.o +html info: Makefile + Makefile: Makefile.in # -- TESTING ------------------------------------------------------- diff --git a/configure b/configure index fe06a3e..dcd3c8e 100755 --- a/configure +++ b/configure @@ -765,6 +765,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -799,7 +800,6 @@ with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock -with_gcc_plugin_dir with_gmp with_annocheck with_libelf @@ -808,6 +808,7 @@ with_gcc_plugin with_llvm with_docs enable_maintainer_mode +with_gcc_plugin_dir with_debuginfod enable_rpath ' @@ -863,6 +864,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1115,6 +1117,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1252,7 +1263,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1405,6 +1416,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1473,8 +1485,6 @@ Optional Packages: --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). - --with-gcc-plugin-dir=DIR - install annobin plugin into the GCC plugin directory --with-gmp=PATH specify PATH to gmp --without-annocheck do not build annocheck --without-libelf remove libelf dependency @@ -1482,6 +1492,8 @@ Optional Packages: --without-gcc_plugin do not build the gcc plugin --with-llvm build the llvm plugin --without-docs do not build the documentation + --with-gcc-plugin-dir=DIR + install annobin plugin into the GCC plugin directory --with-debuginfod Enable debuginfo lookups with debuginfod (auto/yes/no) @@ -17817,212 +17829,6 @@ case ${target} in esac -# We need GCC plugin support. - -static_plugin=$enable_static - - -# Check whether --with-gcc-plugin-dir was given. -if test "${with_gcc_plugin_dir+set}" = set; then : - withval=$with_gcc_plugin_dir; gcc_plugin_dir=$withval -else - gcc_plugin_dir=test -fi - - -if test x"$static_plugin" = xyes; then - gcc_plugin_dir=no -else - if test x"$cross_compiling" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install into default GCC plugin dir" >&5 -$as_echo_n "checking whether to install into default GCC plugin dir... " >&6; } - case $gcc_plugin_dir in - yes) - as_fn_error $? "GCC plugin directory must be specified explicitly when cross-compiling" "$LINENO" 5 - ;; - test) - # We cannot detect the plugin directory since there is no way to - # run host GCC. So assume no. - # - gcc_plugin_dir=no - ;; - no) - ;; - *) - # Add the include/ subdirectory of the plugin dir to CPPFLAGS since - # the plugin headers are normally installed there. - # - CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" - ;; - esac - else - if test x"$GXX" != xyes; then - as_fn_error $? "$CXX is not a GNU C++ compiler" "$LINENO" 5 - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports plugins" >&5 -$as_echo_n "checking whether $CXX supports plugins... " >&6; } - dir=`$CXX -print-file-name=plugin 2>/dev/null` - - if test x"$dir" = xplugin; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "$CXX does not support plugins; reconfigure GCC with --enable-plugin" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi - - CPPFLAGS="$CPPFLAGS -I$dir/include" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install annobin plugin into default GCC plugin directory" >&5 -$as_echo_n "checking whether to install annobin plugin into default GCC plugin directory... " >&6; } - case $gcc_plugin_dir in - yes) - gcc_plugin_dir=$dir - ;; - test) - # Only install into the GCC plugin dir if both GCC and annobin are - # installed into the same prefix. Testing whether $libdir or - # $libexecdir is a prefix of the GCC plugin dir is a good - # approximation. - # - - # Get the expanded values for libdir and libexecdir. - # - if test x$exec_prefix = xNONE; then - if test x$prefix = xNONE; then - e_exec_prefix=$ac_default_prefix - else - e_exec_prefix=$prefix - fi - else - e_exec_prefix=$exec_prefix - fi - - # On some systems GCC is installed into $prefix/lib even though - # libdir is $prefix/lib64 and libexecdir is $prefix/libexec. To - # cover this special case, we will also test $prefix/lib. - # - e_libdir=`echo "$libdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - e_libexecdir=`echo "$libexecdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - e_libdir32=$e_exec_prefix/lib - - # See if either one of them is a prefix of the plugin dir. - # - ld_suffix=`echo "$dir" | sed "s?^$e_libdir/*??"` - led_suffix=`echo "$dir" | sed "s?^$e_libexecdir/*??"` - l32d_suffix=`echo "$dir" | sed "s?^$e_libdir32/*??"` - - if test x$ld_suffix != x$dir -o x$led_suffix != x$dir -o x$l32d_suffix != x$dir; then - gcc_plugin_dir=$dir - else - gcc_plugin_dir=no - fi - ;; - *) - # Add the include/ subdirectory of the plugin dir to CPPFLAGS since - # the plugin headers are normally installed there. - # - CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" - ;; - esac - fi - - if test x"$gcc_plugin_dir" != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC plugin headers" >&5 -$as_echo_n "checking for GCC plugin headers... " >&6; } - - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -if test -d .libs; then - delete_libs_dir=no -else - delete_libs_dir=yes -fi - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -#ifndef BUILDING_GCC_MAJOR -# error no BUILDING_GCC_MAJOR in bversion.h -#endif - -int main () {} - -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - - ac_try='./libtool --tag=CXX --mode=link $CXX -no-install $CXXFLAGS $LDFLAGS -o conftest conftest.$OBJEXT $LIBS >&5' - if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - libtool_link_ok=yes - else - libtool_link_ok=no - fi - -else - - libtool_link_ok=no - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test x"$delete_libs_dir" = xyes; then - rm -rf .libs -fi - -if test x"$libtool_link_ok" = xyes; then -gcc_plugin_headers=yes -: -else -gcc_plugin_headers=no -: -fi - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -if test x"$gcc_plugin_headers" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "GCC plugin headers not found; consider installing GCC plugin development package" "$LINENO" 5 -fi - - # Use an alternative GMP if requested. @@ -18272,7 +18078,6 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. @@ -18295,50 +18100,256 @@ else fi MAINT=$MAINTAINER_MODE_TRUE -if test x$gcc_plugin_dir != xno; then -$as_echo "#define ANNOBIN_GCC_PLUGIN_DIR 1" >>confdefs.h +if test "x$with_gcc_plugin" != xno; then - plugindir=$gcc_plugin_dir -# Otherwise, try to figure out a relative path from the driver (bindir) to -# the plugin (libexecdir). -# + # We need GCC plugin support. + +static_plugin=$enable_static + + +# Check whether --with-gcc-plugin-dir was given. +if test "${with_gcc_plugin_dir+set}" = set; then : + withval=$with_gcc_plugin_dir; gcc_plugin_dir=$withval else - # Get the expanded values for bindir and libexecdir. - # - if test x$exec_prefix = xNONE; then - if test x$prefix = xNONE; then - e_exec_prefix=$ac_default_prefix - else - e_exec_prefix=$prefix + gcc_plugin_dir=test +fi + + +if test x"$static_plugin" = xyes; then + gcc_plugin_dir=no +else + if test x"$cross_compiling" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install into default GCC plugin dir" >&5 +$as_echo_n "checking whether to install into default GCC plugin dir... " >&6; } + case $gcc_plugin_dir in + yes) + as_fn_error $? "GCC plugin directory must be specified explicitly when cross-compiling" "$LINENO" 5 + ;; + test) + # We cannot detect the plugin directory since there is no way to + # run host GCC. So assume no. + # + gcc_plugin_dir=no + ;; + no) + ;; + *) + # Add the include/ subdirectory of the plugin dir to CPPFLAGS since + # the plugin headers are normally installed there. + # + CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" + ;; + esac + else + if test x"$GXX" != xyes; then + as_fn_error $? "$CXX is not a GNU C++ compiler" "$LINENO" 5 fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports plugins" >&5 +$as_echo_n "checking whether $CXX supports plugins... " >&6; } + dir=`$CXX -print-file-name=plugin 2>/dev/null` + + if test x"$dir" = xplugin; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "$CXX does not support plugins; reconfigure GCC with --enable-plugin" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + fi + + CPPFLAGS="$CPPFLAGS -I$dir/include" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install annobin plugin into default GCC plugin directory" >&5 +$as_echo_n "checking whether to install annobin plugin into default GCC plugin directory... " >&6; } + case $gcc_plugin_dir in + yes) + gcc_plugin_dir=$dir + ;; + test) + # Only install into the GCC plugin dir if both GCC and annobin are + # installed into the same prefix. Testing whether $libdir or + # $libexecdir is a prefix of the GCC plugin dir is a good + # approximation. + # + + # Get the expanded values for libdir and libexecdir. + # + if test x$exec_prefix = xNONE; then + if test x$prefix = xNONE; then + e_exec_prefix=$ac_default_prefix + else + e_exec_prefix=$prefix + fi + else + e_exec_prefix=$exec_prefix + fi + + # On some systems GCC is installed into $prefix/lib even though + # libdir is $prefix/lib64 and libexecdir is $prefix/libexec. To + # cover this special case, we will also test $prefix/lib. + # + e_libdir=`echo "$libdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + e_libexecdir=`echo "$libexecdir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + e_libdir32=$e_exec_prefix/lib + + # See if either one of them is a prefix of the plugin dir. + # + ld_suffix=`echo "$dir" | sed "s?^$e_libdir/*??"` + led_suffix=`echo "$dir" | sed "s?^$e_libexecdir/*??"` + l32d_suffix=`echo "$dir" | sed "s?^$e_libdir32/*??"` + + if test x$ld_suffix != x$dir -o x$led_suffix != x$dir -o x$l32d_suffix != x$dir; then + gcc_plugin_dir=$dir + else + gcc_plugin_dir=no + fi + ;; + *) + # Add the include/ subdirectory of the plugin dir to CPPFLAGS since + # the plugin headers are normally installed there. + # + CPPFLAGS="$CPPFLAGS -I$gcc_plugin_dir/include" + ;; + esac + fi + + if test x"$gcc_plugin_dir" != xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - e_exec_prefix=$exec_prefix + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC plugin headers" >&5 +$as_echo_n "checking for GCC plugin headers... " >&6; } - e_pkglibexecdir=`echo "$libexecdir/$PACKAGE_NAME" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - e_bindir=`echo "$bindir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - # Try to find a common prefix. - # - common=$e_bindir - rel_plugindir=$e_pkglibexecdir - - while test x$common != x/; do - suffix=`echo "$e_pkglibexecdir" | sed "s?^$common/*??"` - if test "x$suffix" != "x$e_pkglibexecdir"; then - # Replace all the remaining directories in bindir with ".." - # and append the suffix. - rel_plugindir=`echo "$e_bindir" | sed "s?^$common/*??"` - rel_plugindir=`echo "$rel_plugindir" | sed 's?[^/][^/]*?..?g'` - if test "x$rel_plugindir" != x -a "x$suffix" != x; then - rel_plugindir="$rel_plugindir/$suffix" - else - rel_plugindir="$rel_plugindir$suffix" + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + +if test -d .libs; then + delete_libs_dir=no +else + delete_libs_dir=yes +fi + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include + +#ifndef BUILDING_GCC_MAJOR +# error no BUILDING_GCC_MAJOR in bversion.h +#endif + +int main () {} + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + + ac_try='./libtool --tag=CXX --mode=link $CXX -no-install $CXXFLAGS $LDFLAGS -o conftest conftest.$OBJEXT $LIBS >&5' + if { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + libtool_link_ok=yes + else + libtool_link_ok=no + fi + +else + + libtool_link_ok=no + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test x"$delete_libs_dir" = xyes; then + rm -rf .libs +fi + +if test x"$libtool_link_ok" = xyes; then +gcc_plugin_headers=yes +: +else +gcc_plugin_headers=no +: +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + +if test x"$gcc_plugin_headers" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "GCC plugin headers not found; consider installing GCC plugin development package" "$LINENO" 5 +fi + + + if test x$gcc_plugin_dir != xno; then + +$as_echo "#define ANNOBIN_GCC_PLUGIN_DIR 1" >>confdefs.h + + plugindir=$gcc_plugin_dir + # Otherwise, try to figure out a relative path from the driver (bindir) to + # the plugin (libexecdir). + else + # Get the expanded values for bindir and libexecdir. + if test x$exec_prefix = xNONE; then + if test x$prefix = xNONE; then + e_exec_prefix=$ac_default_prefix + else + e_exec_prefix=$prefix fi - break + else + e_exec_prefix=$exec_prefix fi - common=`$as_dirname -- "$common" || + + e_pkglibexecdir=`echo "$libexecdir/$PACKAGE_NAME" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + e_bindir=`echo "$bindir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + + # Try to find a common prefix. + common=$e_bindir + rel_plugindir=$e_pkglibexecdir + + while test x$common != x/; do + suffix=`echo "$e_pkglibexecdir" | sed "s?^$common/*??"` + if test "x$suffix" != "x$e_pkglibexecdir"; then + # Replace all the remaining directories in bindir with ".." + # and append the suffix. + rel_plugindir=`echo "$e_bindir" | sed "s?^$common/*??"` + rel_plugindir=`echo "$rel_plugindir" | sed 's?[^/][^/]*?..?g'` + if test "x$rel_plugindir" != x -a "x$suffix" != x; then + rel_plugindir="$rel_plugindir/$suffix" + else + rel_plugindir="$rel_plugindir$suffix" + fi + break + fi + common=`$as_dirname -- "$common" || $as_expr X"$common" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$common" : 'X\(//\)[^/]' \| \ X"$common" : 'X\(//\)$' \| \ @@ -18361,16 +18372,17 @@ $as_echo X"$common" | q } s/.*/./; q'` - done + done cat >>confdefs.h <<_ACEOF #define ANNOBIN_PLUGIN_PATH "$rel_plugindir" _ACEOF - plugindir='$(pkglibexecdir)' -fi + plugindir='$(pkglibexecdir)' + fi +fi # Check for debuginfod availability diff --git a/configure.ac b/configure.ac index 57aab49..29c3265 100644 --- a/configure.ac +++ b/configure.ac @@ -48,9 +48,6 @@ case ${target} in esac AC_SUBST(target_plugin) -# We need GCC plugin support. -GCC_PLUGIN - # Use an alternative GMP if requested. GMP @@ -65,7 +62,6 @@ BUILD_LLVM_PLUGIN # Determine if we should build the documentation BUILD_DOCS - AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) AC_ARG_ENABLE(maintainer-mode, [AS_HELP_STRING([--enable-maintainer-mode], @@ -86,54 +82,58 @@ fi MAINT=$MAINTAINER_MODE_TRUE AC_SUBST(MAINT)dnl -if test x$gcc_plugin_dir != xno; then - AC_DEFINE([ANNOBIN_GCC_PLUGIN_DIR], [1], [Plugin is in GCC plugin directory.]) - plugindir=$gcc_plugin_dir -# Otherwise, try to figure out a relative path from the driver (bindir) to -# the plugin (libexecdir). -# -else - # Get the expanded values for bindir and libexecdir. - # - if test x$exec_prefix = xNONE; then - if test x$prefix = xNONE; then - e_exec_prefix=$ac_default_prefix - else - e_exec_prefix=$prefix - fi - else - e_exec_prefix=$exec_prefix - fi - e_pkglibexecdir=`echo "$libexecdir/$PACKAGE_NAME" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - e_bindir=`echo "$bindir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` - - # Try to find a common prefix. - # - common=$e_bindir - rel_plugindir=$e_pkglibexecdir - - while test x$common != x/; do - suffix=`echo "$e_pkglibexecdir" | sed "s?^$common/*??"` - if test "x$suffix" != "x$e_pkglibexecdir"; then - # Replace all the remaining directories in bindir with ".." - # and append the suffix. - rel_plugindir=`echo "$e_bindir" | sed "s?^$common/*??"` - rel_plugindir=`echo "$rel_plugindir" | sed ['s?[^/][^/]*?..?g']` - if test "x$rel_plugindir" != x -a "x$suffix" != x; then - rel_plugindir="$rel_plugindir/$suffix" - else - rel_plugindir="$rel_plugindir$suffix" +if test "x$with_gcc_plugin" != xno; then + + # We need GCC plugin support. + GCC_PLUGIN + + if test x$gcc_plugin_dir != xno; then + AC_DEFINE([ANNOBIN_GCC_PLUGIN_DIR], [1], [Plugin is in GCC plugin directory.]) + plugindir=$gcc_plugin_dir + # Otherwise, try to figure out a relative path from the driver (bindir) to + # the plugin (libexecdir). + else + # Get the expanded values for bindir and libexecdir. + if test x$exec_prefix = xNONE; then + if test x$prefix = xNONE; then + e_exec_prefix=$ac_default_prefix + else + e_exec_prefix=$prefix fi - break + else + e_exec_prefix=$exec_prefix fi - common=`AS_DIRNAME(["$common"])` - done - AC_DEFINE_UNQUOTED([ANNOBIN_PLUGIN_PATH], ["$rel_plugindir"], [Plugin path.]) - plugindir='$(pkglibexecdir)' -fi -AC_SUBST([plugindir]) + e_pkglibexecdir=`echo "$libexecdir/$PACKAGE_NAME" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + e_bindir=`echo "$bindir" | sed "s?^\\\${exec_prefix}?$e_exec_prefix?"` + + # Try to find a common prefix. + common=$e_bindir + rel_plugindir=$e_pkglibexecdir + + while test x$common != x/; do + suffix=`echo "$e_pkglibexecdir" | sed "s?^$common/*??"` + if test "x$suffix" != "x$e_pkglibexecdir"; then + # Replace all the remaining directories in bindir with ".." + # and append the suffix. + rel_plugindir=`echo "$e_bindir" | sed "s?^$common/*??"` + rel_plugindir=`echo "$rel_plugindir" | sed ['s?[^/][^/]*?..?g']` + if test "x$rel_plugindir" != x -a "x$suffix" != x; then + rel_plugindir="$rel_plugindir/$suffix" + else + rel_plugindir="$rel_plugindir$suffix" + fi + break + fi + common=`AS_DIRNAME(["$common"])` + done + AC_DEFINE_UNQUOTED([ANNOBIN_PLUGIN_PATH], ["$rel_plugindir"], [Plugin path.]) + plugindir='$(pkglibexecdir)' + fi + + AC_SUBST([plugindir]) +fi # Check for debuginfod availability DEBUGINFOD diff --git a/doc/Makefile.in b/doc/Makefile.in index d151f66..faf635b 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -329,6 +329,7 @@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/doc/annobin.info b/doc/annobin.info index 100bab6..e7e6b2b 100644 --- a/doc/annobin.info +++ b/doc/annobin.info @@ -38,9 +38,8 @@ the section entitled "GNU Free Documentation License". * Introduction:: What is Binary Annotation ? * Plugins:: How to add Binary Annotations to your application. * Examining:: How to examine the information stored in the binary. -* Annocheck:: Analysing your application's compilation. +* Annocheck:: Analysing binary files. * Configure Options:: Configuring annobin and annocheck. -* Waiving Annocheck Results:: How to ignore specific annocheck tests. * Legacy Scripts:: Other ways to use the information stored in the binary. * GNU FDL:: GNU Free Documentation License @@ -586,8 +585,8 @@ number means that the feature has been enabled in some way.  File: annobin.info, Node: Annocheck, Next: Configure Options, Prev: Examining, Up: Top -4 Analysing an application's compilation. -***************************************** +4 Analysing binary files. +************************* annocheck [-help] @@ -601,10 +600,10 @@ File: annobin.info, Node: Annocheck, Next: Configure Options, Prev: Examining [-prefix=TEXT] FILE... - The 'annocheck' program can analyse programs and report information -about them. It is designed to be modular, with a set of self-contained -tools providing the checking functionality. Currently the following -tools are implemented: + The 'annocheck' program can analyse binary files and report +information about them. It is designed to be modular, with a set of +self-contained tools providing the checking functionality. Currently +the following tools are implemented: * Menu: @@ -721,8 +720,8 @@ behaviour:  File: annobin.info, Node: Hardened, Next: Notes, Prev: Built-By, Up: Annocheck -4.2 The security checker. -========================= +4.2 The Hardened security checker. +================================== annocheck @@ -770,27 +769,135 @@ File: annobin.info, Node: Hardened, Next: Notes, Prev: Built-By, Up: Annoche FILE... The HARDENED tool checks that the specified files were compiled with -the required security hardening options, as outlined in the elf-policy -document. It runs a series of tests checking compilation options and -link time options. These tests are outlined below, along with the -command line option that can be used to disable each test. +specific security hardening features enabled. The features that are +tested can be specified via command line options, but the default is to +test for all of them. New tests can be added to the HARDENED checker by adding an entry in the TESTS array defined in 'hardened.c' and then creating the necessary code to support the test. -'BIND_NOW' - Lazy binding must not have been enabled via the linker option '-z - lazy'. Instead the '-z now' option must have been used. Disabled - by '--skip-bind-now'. + Currently HARDENED can run the following tests: + +* Menu: + +* Test bind-now:: The bind-now test +* Test gnu-stack:: The gnu-stack test +* Test writeable-got:: The writeable-got test +* Undocumented Tests:: FIXME: Docs needed +* Waiving Annocheck Results:: How to ignore specific annocheck tests. + + +File: annobin.info, Node: Test bind-now, Next: Test gnu-stack, Up: Hardened + +4.2.1 The bind-now test +----------------------- + + Summary: An attacker could intercept calls to shared library functions + FAIL: "not linked with -Wl,-z,now" + Fix By: Add -Wl,-z,now to final link + Waive If: No shared libraries used + + This test checks that lazy binding is not enabled in the binary. +Lazy binding can be used to delay resolving the links between an +application and any shared libraries that it uses: + + + + Using lazy binding provides a faster start-up for an application +since this resolving process is not performed until a function call is +made to a specific library. But it is also a security vulnerability +since an attacker could replace the binding with a link to their own +code. Hence for security purposes immediate binding rather than lazy +binding should be used. + + The type of binding is selected via a linker command line option, and +on a compiler command line the secure version usually looks like +'-Wl,-z,now'. The lazy binding option is '-Wl,-z,lazy' although somne +linkers are configured to use lazy binding by default, in which case +just the absence of the '-Wl,-z,now' option is enough to trigger this +test. -'Non executable stack' - The program must not have a stack in an executable region of - memory. Disabled by '--skip-gnu-stack'. + Whilst important, this test can be ignored if the binary does not use +any shared libraries. The test can be disabled via the +'--skip-bind-now' option and re-enabled by the '--test-bind-now' option. -'Safe GOT relocations' - The relocations for the GOT table must be read only. Disabled by - '--skip-writeable-got'. + +File: annobin.info, Node: Test gnu-stack, Next: Test writeable-got, Prev: Test bind-now, Up: Hardened + +4.2.2 The gnu-stack test +------------------------ + + Summary: An attacker could place code on the stack and then run it + FAIL: "the .stack section has incorrect permissions" + FAIL: ".note.GNU-stack section has execute permission" + FAIL: "the GNU stack segment has execute permission" + FAIL: "the GNU stack segment does not have both read & write permissions" + FAIL: "no .note.GNU-stack section found" + MAYBE: "multiple stack sections detected" + Fix By: Updating assembler sources and/or linker script + Waive If: The application really really needs to be able to dynamically create and execute code + + This test checks that it is not possible to place code onto the stack +and then execute it. Normally the stack just holds data and addresses, +but never instructions. A favourite tactic of attackers however is to +discover a buffer overrun bug that addresses the stack and then place +instructions there before forcing the processor to execute them. + + The test actually checks several different parts of a binary file in +order to determine that its stack is safe, which is why there are +several different potential failure messages. + + Most applications will have a section inserted into them by the +compiler called .NOTE.GNU-STACK. The section has no contents, but the +read, write, and execute attribues of the section reflect the needs of +the application's stack. + + Ordinary compiled code sholuld never see this problem, but the test +failure can be triggered by programs built from assembler sources or +linked with a custom made linker map. To fix the problem either the +linker map needs to be updated to ensure that the stack section is not +executable or the assembler sources need to be extended to a note that +the stack is not executable: + + .section .note.GNU-stack,"",%progbits + + If necessary the test can be disabled via the '--skip-gnu-stack' +option and re-enabled via the '--test-gnu-stack' option. + + +File: annobin.info, Node: Test writeable-got, Next: Undocumented Tests, Prev: Test gnu-stack, Up: Hardened + +4.2.3 The writeable-got test +---------------------------- + + Summary: An attacker could intercept and redirect shared library function calls + FAIL: "the GOT/PLT relocs are writeable" + Fix By: Link with -Wl,--secure-plt + Waive If: No shared libraries are used + + This test checks that the instructions to set up the GOT and PLT +tables in a dynamic executable cannot be altered by an outside source. + + Dynamic executables use two tables to help them connect to shared +libraries. These tables - the GOT and the PLT - are set up when the +program runs, based upon instructions held in special sections in the +file. If these sections are writeable then an attacker could change +their contents and thus cause the program to call the wrong functions in +the shared libraries. + + Under normal circumstances this test should never fail. If it does +then something unusal is going on. One possible cure is to add the +'-Wl,--secure-plt' option to the final link command line. + + If necessary the test can be disabled via the '--skip-writeable-got' +option and re-enabled via the '--test-writeable-got' option. + + +File: annobin.info, Node: Undocumented Tests, Next: Waiving Annocheck Results, Prev: Test writeable-got, Up: Hardened + +4.2.4 These tests need extended documentation +--------------------------------------------- 'No RWX segments.' No program segment should have all three of the read, write and @@ -948,6 +1055,27 @@ code to support the test. and enabled in 'verbose' mode. This option and its inverse '--base-filenames' can be used to set a fixed choice. + +File: annobin.info, Node: Waiving Annocheck Results, Prev: Undocumented Tests, Up: Hardened + +4.2.5 How to waive the results of annocheck tests +------------------------------------------------- + +Now that 'annocheck' is being used by the builders for Fedora and RHEL +packages it is possible that certain tests may need to be waived for +certain packages. This can be done on a per-package basis by editting +the contents of the 'rpminspect.yaml' file and adding an entry like +this: + + annocheck: + - hardened: --skip-property-note --ignore-unknown --verbose + + This example shows how the _property note_ test can be ignored. Note +that doing this overrides the default options that are passed to +annocheck by the rpminspect framework, which is why the +'--ignore-unknown' and '--verbose' options are also included in the +example. +  File: annobin.info, Node: Notes, Next: Section-Size, Prev: Hardened, Up: Annocheck @@ -1041,7 +1169,7 @@ with the '--nsec'. The default can be restored with the '--usec' option.  -File: annobin.info, Node: Configure Options, Next: Waiving Annocheck Results, Prev: Annocheck, Up: Top +File: annobin.info, Node: Configure Options, Next: Legacy Scripts, Prev: Annocheck, Up: Top 5 Configuring annobin and annocheck *********************************** @@ -1100,31 +1228,9 @@ configure options available to customise the build: files when building the 'annobin' sources.  -File: annobin.info, Node: Waiving Annocheck Results, Next: Legacy Scripts, Prev: Configure Options, Up: Top - -6 How to waive the results of annocheck tests -********************************************* - -Now that 'annocheck' is being used by the builders for Fedora and RHEL -packages as part of a gating service to ensure that packages are -constructed correctly it is possible that certain tests may need to be -waived for certain packages. This can be done on a per-package basis by -editting the contents of the 'rpminspect.yaml' file and adding an entry -like this: - - annocheck: - - hardened: --skip-property-note --ignore-unknown --verbose - - This example shows how the _property note_ test can be ignored. Note -that doing this overrides the default options that are passed to -annocheck by the rpminspect framework, which is why the -'--ignore-unknown' and '--verbose' options are also included in the -example above. - - -File: annobin.info, Node: Legacy Scripts, Next: GNU FDL, Prev: Waiving Annocheck Results, Up: Top +File: annobin.info, Node: Legacy Scripts, Next: GNU FDL, Prev: Configure Options, Up: Top -7 How to use the information stored in the binary. +6 How to use the information stored in the binary. ************************************************** The 'annobin' package includes some example scripts that demonstrate how @@ -1147,7 +1253,7 @@ still included in the annobin sources.  File: annobin.info, Node: Who Built Me, Next: ABI Checking, Up: Legacy Scripts -7.1 The built-by script +6.1 The built-by script ======================= built-by @@ -1249,7 +1355,7 @@ version of a tool that was built between a range of dates.  File: annobin.info, Node: ABI Checking, Next: Hardening Checks, Prev: Who Built Me, Up: Legacy Scripts -7.2 The check-abi script +6.2 The check-abi script ======================== check-abi @@ -1334,7 +1440,7 @@ used uniformly throughout the binary.  File: annobin.info, Node: Hardening Checks, Next: Checking Archives, Prev: ABI Checking, Up: Legacy Scripts -7.3 The hardened script +6.3 The hardened script ======================= hardened @@ -1481,7 +1587,7 @@ compiled with '-O2' or higher and the '-fstack-protector-strong',  File: annobin.info, Node: Checking Archives, Prev: Hardening Checks, Up: Legacy Scripts -7.4 The run-on-binaries-in script +6.4 The run-on-binaries-in script ================================= run-on-binaries-in @@ -2052,30 +2158,34 @@ their use in free software.  Tag Table: Node: Top705 -Node: Introduction1856 -Node: Plugins3905 -Node: Examining12030 -Node: The Version Encoding14759 -Node: The STACK Encoding15999 -Node: The PIC Encoding16597 -Node: The GOW Encoding17225 -Node: The CF Encoding19028 -Node: The ENUM Encoding20100 -Node: The INSTRUMENT Encoding20489 -Node: Annocheck21863 -Node: Built-By25153 -Node: Hardened26683 -Node: Notes34587 -Node: Section-Size35231 -Node: Timing37385 -Node: Configure Options38032 -Node: Waiving Annocheck Results40383 -Node: Legacy Scripts41320 -Node: Who Built Me42103 -Node: ABI Checking44863 -Node: Hardening Checks46977 -Node: Checking Archives51063 -Node: GNU FDL53485 +Node: Introduction1767 +Node: Plugins3816 +Node: Examining11941 +Node: The Version Encoding14670 +Node: The STACK Encoding15910 +Node: The PIC Encoding16508 +Node: The GOW Encoding17136 +Node: The CF Encoding18939 +Node: The ENUM Encoding20011 +Node: The INSTRUMENT Encoding20400 +Node: Annocheck21774 +Node: Built-By25036 +Node: Hardened26566 +Node: Test bind-now28536 +Node: Test gnu-stack30040 +Node: Test writeable-got32152 +Node: Undocumented Tests33401 +Node: Waiving Annocheck Results39376 +Node: Notes40220 +Node: Section-Size40864 +Node: Timing43018 +Node: Configure Options43665 +Node: Legacy Scripts46005 +Node: Who Built Me46780 +Node: ABI Checking49540 +Node: Hardening Checks51654 +Node: Checking Archives55740 +Node: GNU FDL58162  End Tag Table diff --git a/doc/annobin.texi b/doc/annobin.texi index 6d52828..c432e2b 100644 --- a/doc/annobin.texi +++ b/doc/annobin.texi @@ -91,9 +91,8 @@ in the section entitled ``GNU Free Documentation License''. * Introduction:: What is Binary Annotation ? * Plugins:: How to add Binary Annotations to your application. * Examining:: How to examine the information stored in the binary. -* Annocheck:: Analysing your application's compilation. +* Annocheck:: Analysing binary files. * Configure Options:: Configuring annobin and annocheck. -* Waiving Annocheck Results:: How to ignore specific annocheck tests. * Legacy Scripts:: Other ways to use the information stored in the binary. * GNU FDL:: GNU Free Documentation License @end menu @@ -665,9 +664,9 @@ number means that the feature has been enabled in some way. @c ----------------------------------------------------------------- @c ----------------------------------------------------------------- @node Annocheck -@chapter Analysing an application's compilation. +@chapter Analysing binary files. -@c man title annocheck Analysing an application's compilation. +@c man title annocheck Analysing binary files. @smallexample @c man begin SYNOPSIS annocheck @@ -687,7 +686,7 @@ annocheck @c man begin DESCRIPTION annocheck -The @command{annocheck} program can analyse programs and report +The @command{annocheck} program can analyse binary files and report information about them. It is designed to be modular, with a set of self-contained tools providing the checking functionality. Currently the following tools are implemented: @@ -771,7 +770,7 @@ Report the version of the tool and then exit. @section The builder checker. @smallexample -@c man begin SYNOPSIS annocheck +@c man begin SYNOPSIS annocheck: builtby annocheck [@b{--disable-hardened}] @@ -783,7 +782,7 @@ annocheck @c man end @end smallexample -@c man begin DESCRIPTION annocheck +@c man begin DESCRIPTION annocheck: builtby The @var{built-by} tool is disabled by default, but it can be enabled by the command line option @option{--enable-builtby}. The tool @@ -824,10 +823,10 @@ built by a particular compiler. @c ----------------------------------------------------------------- @node Hardened -@section The security checker. +@section The Hardened security checker. @smallexample -@c man begin SYNOPSIS annocheck +@c man begin SYNOPSIS annocheck: hardened annocheck [@b{--skip-all}] @@ -875,32 +874,144 @@ annocheck @c man end @end smallexample -@c man begin DESCRIPTION annocheck +@c man begin DESCRIPTION annocheck: hardened The @var{hardened} tool checks that the specified files were compiled -with the required security hardening options, as outlined in the -elf-policy document. It runs a series of tests checking compilation -options and link time options. These tests are outlined below, along -with the command line option that can be used to disable each test. +with specific security hardening features enabled. The features that +are tested can be specified via command line options, but the default +is to test for all of them. New tests can be added to the @var{hardened} checker by adding an entry in the @var{tests} array defined in @file{hardened.c} and then creating the necessary code to support the test. -@table @code +Currently @var{hardened} can run the following tests: -@item BIND_NOW -Lazy binding must not have been enabled via the linker option -@option{-z lazy}. Instead the @option{-z now} option must have been -used. -Disabled by @option{--skip-bind-now}. +@menu +* Test bind-now:: The bind-now test +* Test gnu-stack:: The gnu-stack test +* Test writeable-got:: The writeable-got test +* Undocumented Tests:: FIXME: Docs needed +* Waiving Annocheck Results:: How to ignore specific annocheck tests. +@end menu + +@c ----------------------------------------------------------------- +@node Test bind-now +@subsection The bind-now test + +@smallexample + Summary: An attacker could intercept calls to shared library functions + FAIL: "not linked with -Wl,-z,now" + Fix By: Add -Wl,-z,now to final link + Waive If: No shared libraries used +@end smallexample + +This test checks that lazy binding is not enabled in the binary. Lazy +binding can be used to delay resolving the links between an +application and any shared libraries that it uses: + +@url{https://www.airs.com/blog/archives/41} + +Using lazy binding provides a faster start-up for an application since +this resolving process is not performed until a function call is made +to a specific library. But it is also a security vulnerability since +an attacker could replace the binding with a link to their own code. +Hence for security purposes immediate binding rather than lazy binding +should be used. + +The type of binding is selected via a linker command line option, and +on a compiler command line the secure version usually looks like +@option{-Wl,-z,now}. The lazy binding option is @option{-Wl,-z,lazy} +although somne linkers are configured to use lazy binding by default, +in which case just the absence of the @option{-Wl,-z,now} option is +enough to trigger this test. + +Whilst important, this test can be ignored if the binary does not use +any shared libraries. The test can be disabled via the +@option{--skip-bind-now} option and re-enabled by the +@option{--test-bind-now} option. + +@c ----------------------------------------------------------------- +@node Test gnu-stack +@subsection The gnu-stack test + +@smallexample + Summary: An attacker could place code on the stack and then run it + FAIL: "the .stack section has incorrect permissions" + FAIL: ".note.GNU-stack section has execute permission" + FAIL: "the GNU stack segment has execute permission" + FAIL: "the GNU stack segment does not have both read & write permissions" + FAIL: "no .note.GNU-stack section found" + MAYBE: "multiple stack sections detected" + Fix By: Updating assembler sources and/or linker script + Waive If: The application really really needs to be able to dynamically create and execute code +@end smallexample + +This test checks that it is not possible to place code onto the stack +and then execute it. Normally the stack just holds data and +addresses, but never instructions. A favourite tactic of attackers +however is to discover a buffer overrun bug that addresses the stack +and then place instructions there before forcing the processor to +execute them. + +The test actually checks several different parts of a binary file in +order to determine that its stack is safe, which is why there are +several different potential failure messages. + +Most applications will have a section inserted into them by the +compiler called @var{.note.GNU-stack}. The section has no contents, +but the read, write, and execute attribues of the section reflect the +needs of the application's stack. + +Ordinary compiled code sholuld never see this problem, but the test +failure can be triggered by programs built from assembler sources or +linked with a custom made linker map. To fix the problem either the +linker map needs to be updated to ensure that the stack section is not +executable or the assembler sources need to be extended to a note that +the stack is not executable: + +@smallexample + .section .note.GNU-stack,"",%progbits +@end smallexample + +If necessary the test can be disabled via the +@option{--skip-gnu-stack} option and re-enabled via the +@option{--test-gnu-stack} option. + +@c ----------------------------------------------------------------- +@node Test writeable-got +@subsection The writeable-got test + +@smallexample + Summary: An attacker could intercept and redirect shared library function calls + FAIL: "the GOT/PLT relocs are writeable" + Fix By: Link with -Wl,--secure-plt + Waive If: No shared libraries are used +@end smallexample + +This test checks that the instructions to set up the @var{GOT} and +@var{PLT} tables in a dynamic executable cannot be altered by an +outside source. + +Dynamic executables use two tables to help them connect to shared +libraries. These tables - the @var{GOT} and the @var{PLT} - are set +up when the program runs, based upon instructions held in special +sections in the file. If these sections are writeable then an +attacker could change their contents and thus cause the program to +call the wrong functions in the shared libraries. + +Under normal circumstances this test should never fail. If it does +then something unusal is going on. One possible cure is to add the +@option{-Wl,--secure-plt} option to the final link command line. -@item Non executable stack -The program must not have a stack in an executable region of memory. -Disabled by @option{--skip-gnu-stack}. +If necessary the test can be disabled via the +@option{--skip-writeable-got} option and re-enabled via the +@option{--test-writeable-got} option. -@item Safe GOT relocations -The relocations for the GOT table must be read only. -Disabled by @option{--skip-writeable-got}. +@c ----------------------------------------------------------------- +@node Undocumented Tests +@subsection These tests need extended documentation + +@table @code @item No RWX segments. No program segment should have all three of the read, write and @@ -1079,6 +1190,27 @@ enabled in @option{verbose} mode. This option and its inverse @c man end +@c ----------------------------------------------------------------- +@node Waiving Annocheck Results +@subsection How to waive the results of annocheck tests + +Now that @command{annocheck} is being used by the builders for Fedora +and RHEL packages it is possible that certain tests may need to be +waived for certain packages. This can be done on a per-package +basis by editting the contents of the @file{rpminspect.yaml} file and +adding an entry like this: + +@smallexample + annocheck: + - hardened: --skip-property-note --ignore-unknown --verbose +@end smallexample + +This example shows how the @emph{property note} test can be ignored. +Note that doing this overrides the default options that are passed to +annocheck by the rpminspect framework, which is why the +@option{--ignore-unknown} and @option{--verbose} options are also +included in the example. + @c ----------------------------------------------------------------- @node Notes @section The annobin note displayer @@ -1253,27 +1385,6 @@ This enables the regeneration of the @file{Makefile} and @end table @c man end -@c ----------------------------------------------------------------- -@node Waiving Annocheck Results -@chapter How to waive the results of annocheck tests -Now that @command{annocheck} is being used by the builders for Fedora -and RHEL packages as part of a gating service to ensure that packages -are constructed correctly it is possible that certain tests may need -to be waived for certain packages. This can be done on a per-package -basis by editting the contents of the @file{rpminspect.yaml} file and -adding an entry like this: - -@smallexample - annocheck: - - hardened: --skip-property-note --ignore-unknown --verbose -@end smallexample - -This example shows how the @emph{property note} test can be ignored. -Note that doing this overrides the default options that are passed to -annocheck by the rpminspect framework, which is why the -@option{--ignore-unknown} and @option{--verbose} options are also -included in the example above. - @c ----------------------------------------------------------------- @node Legacy Scripts @chapter How to use the information stored in the binary. diff --git a/gcc-plugin/Makefile.in b/gcc-plugin/Makefile.in index a232ec6..766c654 100644 --- a/gcc-plugin/Makefile.in +++ b/gcc-plugin/Makefile.in @@ -333,6 +333,7 @@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/llvm-plugin/Makefile.in b/llvm-plugin/Makefile.in index 3faebd4..80f262d 100644 --- a/llvm-plugin/Makefile.in +++ b/llvm-plugin/Makefile.in @@ -29,6 +29,8 @@ install: $(PLUGIN_NAME) clean: rm -f $(PLUGIN_NAME) hello.o llvm-plugin-test.out +html info: Makefile + Makefile: Makefile.in # -- TESTING ------------------------------------------------------- diff --git a/tests/Makefile.in b/tests/Makefile.in index 8853286..c5f55ea 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -459,6 +459,7 @@ plugindir = @plugindir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ -- 2.43.5