diff options
Diffstat (limited to 'config/gcc-plugin.m4')
-rw-r--r-- | config/gcc-plugin.m4 | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/config/gcc-plugin.m4 b/config/gcc-plugin.m4 index c30cfdd..0382147 100644 --- a/config/gcc-plugin.m4 +++ b/config/gcc-plugin.m4 @@ -169,3 +169,46 @@ else AC_MSG_RESULT([no]) fi ]) + +dnl +dnl +dnl GCC_PLUGIN_OPTION_FOR_TARGET +dnl (SHELL-CODE_HANDLER) +dnl +AC_DEFUN([GCC_PLUGIN_OPTION_FOR_TARGET],[dnl +COMPILER_FOR_TARGET="${CC_FOR_TARGET}" +dnl Check if the host compiler is used. +if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then + COMPILER_FOR_TARGET="$CC" +fi +saved_CC="$CC" +CC="$COMPILER_FOR_TARGET" +AC_CACHE_CHECK([for gcc for target], gcc_target_cv_working, [ + AC_TRY_COMPILE( + [], + [], + gcc_target_cv_working=yes, + gcc_target_cv_working=no)]) +CC="$saved_CC" +AC_MSG_CHECKING([for -plugin option]) +plugin_option= +if test $gcc_target_cv_working = yes; then + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" + for plugin in $plugin_names; do + plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-prog-name $plugin` + if test x$plugin_so = x$plugin; then + plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin` + fi + if test x$plugin_so != x$plugin; then + plugin_option="--plugin $plugin_so" + break + fi + done +fi +if test -n "$plugin_option"; then + $1="$plugin_option" + AC_MSG_RESULT($plugin_option) +else + AC_MSG_RESULT([no]) +fi +]) |