Patchwork building gcc with powerpc gold

login
register
mail settings
Submitter Alan Modra
Date Oct. 18, 2012, 3:06 a.m.
Message ID <20121018030627.GQ4541@bubble.grove.modra.org>
Download mbox | patch
Permalink /patch/192176/
State New
Headers show

Comments

Alan Modra - Oct. 18, 2012, 3:06 a.m.
These two tests currently fail if using gold, in the first instance
because powerpc64 gold doesn't support mixing old dot-sym objects
with new objects, and in the second instance because gold doesn't have
a --no-toc-sort option.  Both macros ought to be defined for gold.
Tested etc.  OK to apply everywhere?

	* configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.
	(HAVE_LD_LARGE_TOC): Likewise.
	* configure: Regenerate.
David Edelsohn - Oct. 18, 2012, 12:53 p.m.
On Wed, Oct 17, 2012 at 11:06 PM, Alan Modra <amodra@gmail.com> wrote:
> These two tests currently fail if using gold, in the first instance
> because powerpc64 gold doesn't support mixing old dot-sym objects
> with new objects, and in the second instance because gold doesn't have
> a --no-toc-sort option.  Both macros ought to be defined for gold.
> Tested etc.  OK to apply everywhere?
>
>         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.
>         (HAVE_LD_LARGE_TOC): Likewise.
>         * configure: Regenerate.

Okay.

Thanks, David

Patch

Index: gcc/configure.ac
===================================================================
--- gcc/configure.ac	(revision 192236)
+++ gcc/configure.ac	(working copy)
@@ -4379,7 +4379,9 @@ 
     AC_CACHE_CHECK(linker support for omitting dot symbols,
     gcc_cv_ld_no_dot_syms,
     [gcc_cv_ld_no_dot_syms=no
-    if test $in_tree_ld = yes ; then
+    if test x"$ld_is_gold" = xyes; then
+      gcc_cv_ld_no_dot_syms=yes
+    elif test $in_tree_ld = yes ; then
       if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2; then
         gcc_cv_ld_no_dot_syms=yes
       fi
@@ -4416,7 +4418,9 @@ 
     AC_CACHE_CHECK(linker large toc support,
     gcc_cv_ld_large_toc,
     [gcc_cv_ld_large_toc=no
-    if test $in_tree_ld = yes ; then
+    if test x"$ld_is_gold" = xyes; then
+      gcc_cv_ld_large_toc=yes
+    elif test $in_tree_ld = yes ; then
       if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 21 -o "$gcc_cv_gld_major_version" -gt 2; then
         gcc_cv_ld_large_toc=yes
       fi