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 <stanislav.kholmansk...@oracle.com> пишет:
Early versions of binutils doesn't support --no-relax flag, so
commit 063f2a04d158ec1b275a925dfbae74b124708cde prevents building
with such versions.
Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmansk...@oracle.com>
---
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
+endif
TBO 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
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel