configure.ac 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. AC_INIT([LTO plugin for ld], 0.1,,[lto-plugin])
  2. AC_CANONICAL_SYSTEM
  3. GCC_TOPLEV_SUBDIRS
  4. AM_INIT_AUTOMAKE([foreign no-dist])
  5. AM_MAINTAINER_MODE
  6. AC_ARG_WITH(libiberty,
  7. [AS_HELP_STRING([--with-libiberty=PATH],
  8. [specify the directory where to find libiberty [../libiberty]])],
  9. [], with_libiberty=../libiberty)
  10. AC_SUBST(with_libiberty)
  11. AC_USE_SYSTEM_EXTENSIONS
  12. AC_PROG_CC
  13. AC_SYS_LARGEFILE
  14. ACX_PROG_CC_WARNING_OPTS([-Wall], [ac_lto_plugin_warn_cflags])
  15. # Check whether -static-libgcc is supported.
  16. saved_LDFLAGS="$LDFLAGS"
  17. LDFLAGS="$LDFLAGS -static-libgcc"
  18. AC_MSG_CHECKING([for -static-libgcc])
  19. AC_LINK_IFELSE([AC_LANG_SOURCE([
  20. int main() {}])], [have_static_libgcc=yes], [have_static_libgcc=no])
  21. AC_MSG_RESULT($have_static_libgcc);
  22. LDFLAGS="$saved_LDFLAGS"
  23. # Need -Wc to get it through libtool.
  24. if test "x$have_static_libgcc" = xyes; then
  25. ac_lto_plugin_ldflags="-Wc,-static-libgcc"
  26. fi
  27. AC_SUBST(ac_lto_plugin_ldflags)
  28. GCC_CET_HOST_FLAGS(CET_HOST_FLAGS)
  29. AC_SUBST(CET_HOST_FLAGS)
  30. if test x"$host_subdir" = x.; then
  31. gcc_build_dir=../gcc
  32. else
  33. gcc_build_dir=../../$host_subdir/gcc
  34. fi
  35. AC_SUBST(gcc_build_dir)
  36. # Used for constructing correct paths for offload compilers.
  37. accel_dir_suffix=
  38. real_target_noncanonical=${target_noncanonical}
  39. if test x"$enable_as_accelerator_for" != x; then
  40. accel_dir_suffix=/accel/${target_noncanonical}
  41. real_target_noncanonical=${enable_as_accelerator_for}
  42. fi
  43. AC_SUBST(accel_dir_suffix)
  44. AC_SUBST(real_target_noncanonical)
  45. # Determine what GCC version number to use in filesystem paths.
  46. GCC_BASE_VER
  47. AC_MSG_CHECKING([whether symbol versioning is supported])
  48. lto_plugin_use_symver=no
  49. if test x$gcc_no_link = xyes; then
  50. # If we cannot link, we cannot build shared libraries, so do not use
  51. # symbol versioning.
  52. lto_plugin_use_symver=no
  53. else
  54. save_LDFLAGS="$LDFLAGS"
  55. LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
  56. cat > conftest.map <<EOF
  57. {
  58. global: *foo*; bar; local: *;
  59. };
  60. EOF
  61. AC_TRY_LINK([int foo;],[],[lto_plugin_use_symver=gnu],[lto_plugin_use_symver=no])
  62. if test x$lto_plugin_use_symver = xno; then
  63. case "$target_os" in
  64. solaris2*)
  65. LDFLAGS="$save_LDFLAGS"
  66. LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
  67. # Sun ld cannot handle wildcards and treats all entries as undefined.
  68. cat > conftest.map <<EOF
  69. {
  70. global: foo; local: *;
  71. };
  72. EOF
  73. AC_TRY_LINK([int foo;],[],[lto_plugin_use_symver=sun],[lto_plugin_use_symver=no])
  74. ;;
  75. esac
  76. fi
  77. LDFLAGS="$save_LDFLAGS"
  78. fi
  79. AC_MSG_RESULT($lto_plugin_use_symver)
  80. AM_CONDITIONAL(LTO_PLUGIN_USE_SYMVER, [test "x$lto_plugin_use_symver" != xno])
  81. AM_CONDITIONAL(LTO_PLUGIN_USE_SYMVER_GNU, [test "x$lto_plugin_use_symver" = xgnu])
  82. AM_CONDITIONAL(LTO_PLUGIN_USE_SYMVER_SUN, [test "x$lto_plugin_use_symver" = xsun])
  83. AM_PROG_LIBTOOL
  84. ACX_LT_HOST_FLAGS
  85. AC_SUBST(target_noncanonical)
  86. AC_TYPE_INT64_T
  87. AC_TYPE_UINT64_T
  88. AC_HEADER_SYS_WAIT
  89. AC_CONFIG_FILES(Makefile)
  90. AC_CONFIG_HEADERS(config.h)
  91. AC_OUTPUT