|
From: | Stanislav Kholmanskikh |
Subject: | Re: [RFC PATCH] configure check for ld's --no-relax flag |
Date: | Mon, 04 Aug 2014 10:45:22 +0400 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 |
Hi! On 08/01/2014 07:40 PM, Vladimir 'φ-coder/phcoder' Serbinenko wrote:
On 01.08.2014 17:35, Andrey Borzenkov wrote:В Fri, 1 Aug 2014 16:15:56 +0400 Stanislav Kholmanskikh <address@hidden> пишет:Early versions of binutils doesn't support --no-relax flag, so commit 063f2a04d158ec1b275a925dfbae74b124708cde prevents building with such versions. Signed-off-by: Stanislav Kholmanskikh <address@hidden> --- conf/Makefile.common | 8 ++++++++ configure.ac | 10 ++++++++++ 2 files changed, 18 insertions(+), 0 deletions(-) diff --git a/conf/Makefile.common b/conf/Makefile.common index e4c301f..5bda66f 100644 --- a/conf/Makefile.common +++ b/conf/Makefile.common @@ -8,11 +8,19 @@ unexport LC_ALL # Platform specific options if COND_sparc64_ieee1275 CFLAGS_PLATFORM += -mno-app-regs +if COND_LD_SUPPORTS_NO_RELAX LDFLAGS_PLATFORM = -Wl,-melf64_sparc -Wl,--no-relax +else + LDFLAGS_PLATFORM = -Wl,-melf64_sparc -mno-relax +endifTBO I think commit should simply be reverted. "Uniformity" is rather poor excuse for breaking existing systems.This commit is needed for clang to compile for sparc64. Given that sparc64 clang still doesn't really work I'm ok with reverting, at least for now.
But, it this case, maybe it would be better to consider reviewing/applying this patch? Just to not return to this issue after some time?
Andrey, Vladimir, what do you think? Thanks.
endif if COND_sparc64_emu CFLAGS_PLATFORM += -mno-app-regs +if COND_LD_SUPPORTS_NO_RELAX LDFLAGS_PLATFORM = -Wl,--no-relax +else + LDFLAGS_PLATFORM = -mno-relax +endif endif if COND_arm if !COND_emu diff --git a/configure.ac b/configure.ac index 8888c2f..282fded 100644 --- a/configure.ac +++ b/configure.ac @@ -516,6 +516,14 @@ fi TARGET_CC_VERSION="$(LC_ALL=C $TARGET_CC --version | head -n1)" +AC_CACHE_CHECK([if the target C compiler supports -Wl,--no-relax], [grub_cv_target_cc_wl_no_relax_flag], [ + LDFLAGS="$TARGET_LDFLAGS -nostdlib -static" + + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +int main(void) { return 0; } +]])], [grub_cv_target_cc_wl_no_relax_flag=yes], [grub_cv_target_cc_wl_no_relax_flag=no]) +]) + AC_CACHE_CHECK([which extra warnings work], [grub_cv_target_cc_w_extra_flags], [ LDFLAGS="$TARGET_LDFLAGS -nostdlib -static" @@ -1708,6 +1716,8 @@ AM_CONDITIONAL([COND_ENABLE_BOOT_TIME_STATS], [test x$BOOT_TIME_STATS = x1]) AM_CONDITIONAL([COND_HAVE_CXX], [test x$HAVE_CXX = xyes]) +AM_CONDITIONAL([COND_LD_SUPPORTS_NO_RELAX], [test x$grub_cv_target_cc_wl_no_relax_flag = xyes]) + AM_CONDITIONAL([COND_HAVE_ASM_USCORE], [test x$HAVE_ASM_USCORE = x1]) AM_CONDITIONAL([COND_STARFIELD], [test "x$starfield_excuse" = x]) AM_CONDITIONAL([COND_HAVE_EXEC], [test "x$have_exec" = xy])_______________________________________________ Grub-devel mailing list address@hidden https://lists.gnu.org/mailman/listinfo/grub-devel_______________________________________________ Grub-devel mailing list address@hidden https://lists.gnu.org/mailman/listinfo/grub-devel
[Prev in Thread] | Current Thread | [Next in Thread] |