From 41822625603d37495e6fdb2257100e0c393be883 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 6 Dec 2013 11:58:17 +0100 Subject: [PATCH] Don't add -mlong-calls when compiling with clang. --- ChangeLog | 4 ++++ conf/Makefile.common | 2 +- configure.ac | 12 ++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 1f876c348..203038e1f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-12-06 Vladimir Serbinenko + + Don't add -mlong-calls when compiling with clang. + 2013-12-06 Vladimir Serbinenko * configure.ac: Fix a typo. diff --git a/conf/Makefile.common b/conf/Makefile.common index 811573f39..4ec2b811e 100644 --- a/conf/Makefile.common +++ b/conf/Makefile.common @@ -11,7 +11,7 @@ if COND_sparc64_ieee1275 LDFLAGS_PLATFORM = -Wl,-melf64_sparc -mno-relax endif if COND_arm - CFLAGS_PLATFORM += -mthumb-interwork -mlong-calls + CFLAGS_PLATFORM += -mthumb-interwork CCASFLAGS_PLATFORM = -mthumb-interwork LDFLAGS_PLATFORM = -Wl,--wrap=__clear_cache endif diff --git a/configure.ac b/configure.ac index 0cd666051..d13cd3d6b 100644 --- a/configure.ac +++ b/configure.ac @@ -848,6 +848,18 @@ if test "$target_cpu"-"$platform" = x86_64-efi; then TARGET_CFLAGS="$TARGET_CFLAGS -mno-red-zone" fi +if test "x$target_cpu" = xarm; then + AC_CACHE_CHECK([whether option -mlong-calls works], grub_cv_cc_mlong_calls, [ + CFLAGS="$TARGET_CFLAGS -mlong-calls -Werror" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], + [grub_cv_cc_mlong_calls=yes], + [grub_cv_cc_mlong_calls=no]) + ]) + if test "x$grub_cv_cc_mlong_calls" = xyes; then + TARGET_CFLAGS="$TARGET_CFLAGS -mlong-calls" + fi +fi + # # Compiler features. #