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

Reply via email to