Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Nov 2018 02:58:30 +0000 (UTC)
From:      Li-Wen Hsu <lwhsu@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r484853 - in head/devel/riscv64-gcc: . files
Message-ID:  <201811130258.wAD2wUVb048692@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: lwhsu
Date: Tue Nov 13 02:58:30 2018
New Revision: 484853
URL: https://svnweb.freebsd.org/changeset/ports/484853

Log:
  Add support of -fuse-ld=lld
  
  Merge support from upstream gcc for -fuse-ld=lld.  It's already committed and
  should appear in a future release.
  
  PR:		233174
  Submitted by:	brooks
  MFH:		2018Q4
  Sponsored by:	The FreeBSD Foundation

Added:
  head/devel/riscv64-gcc/files/
  head/devel/riscv64-gcc/files/patch-fuse-ld=lld   (contents, props changed)
Modified:
  head/devel/riscv64-gcc/Makefile

Modified: head/devel/riscv64-gcc/Makefile
==============================================================================
--- head/devel/riscv64-gcc/Makefile	Tue Nov 13 00:30:31 2018	(r484852)
+++ head/devel/riscv64-gcc/Makefile	Tue Nov 13 02:58:30 2018	(r484853)
@@ -2,6 +2,7 @@
 
 PORTNAME=	gcc
 PORTVERSION=	8.1.0
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	riscv64-
 
@@ -40,6 +41,7 @@ CONFIGURE_ARGS=	--target=${GCC_TARGET} \
 		--with-as=${LOCALBASE}/bin/${PKGNAMEPREFIX}unknown-${OPSYS:tl}${OSREL}-as \
 		--with-ld=${LOCALBASE}/bin/${PKGNAMEPREFIX}unknown-${OPSYS:tl}${OSREL}-ld \
 		--disable-werror \
+		--disable-shared \
 		--enable-threads \
 		--enable-tls \
 		--enable-languages=c,c++ \

Added: head/devel/riscv64-gcc/files/patch-fuse-ld=lld
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/riscv64-gcc/files/patch-fuse-ld=lld	Tue Nov 13 02:58:30 2018	(r484853)
@@ -0,0 +1,105 @@
+commit 4eea76dbfc871614e116961b048d9aa38eee66ea
+Author: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date:   Thu Nov 8 22:05:27 2018 +0000
+
+            * collect2.c (linker_select):  Add USE_LLD_LD.
+            (ld_suffixes): Add ld.lld.
+            (main): Handle -fuse-ld=lld.
+            * common.opt (-fuse-ld=lld): New option.
+            * doc/invoke.texi (-fuse-ld=lld): Document.
+            * opts.c (common_handle_option): Handle OPT_fuse_ld_lld.
+    
+    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265940 138bc75d-0d04-0410-961f-82ee72b054a4
+
+diff --git a/gcc/collect2.c b/gcc/collect2.c
+index a96af137a44..6463ff7b645 100644
+--- gcc/collect2.c
++++ gcc/collect2.c
+@@ -831,6 +831,7 @@ main (int argc, char **argv)
+       USE_PLUGIN_LD,
+       USE_GOLD_LD,
+       USE_BFD_LD,
++      USE_LLD_LD,
+       USE_LD_MAX
+     } selected_linker = USE_DEFAULT_LD;
+   static const char *const ld_suffixes[USE_LD_MAX] =
+@@ -838,7 +839,8 @@ main (int argc, char **argv)
+       "ld",
+       PLUGIN_LD_SUFFIX,
+       "ld.gold",
+-      "ld.bfd"
++      "ld.bfd",
++      "ld.lld"
+     };
+   static const char *const real_ld_suffix = "real-ld";
+   static const char *const collect_ld_suffix = "collect-ld";
+@@ -1007,6 +1009,8 @@ main (int argc, char **argv)
+ 	  selected_linker = USE_BFD_LD;
+ 	else if (strcmp (argv[i], "-fuse-ld=gold") == 0)
+ 	  selected_linker = USE_GOLD_LD;
++  else if (strcmp (argv[i], "-fuse-ld=lld") == 0)
++    selected_linker = USE_LLD_LD;
+ 
+ #ifdef COLLECT_EXPORT_LIST
+ 	/* These flags are position independent, although their order
+@@ -1096,7 +1100,8 @@ main (int argc, char **argv)
+   /* Maybe we know the right file to use (if not cross).  */
+   ld_file_name = 0;
+ #ifdef DEFAULT_LINKER
+-  if (selected_linker == USE_BFD_LD || selected_linker == USE_GOLD_LD)
++  if (selected_linker == USE_BFD_LD || selected_linker == USE_GOLD_LD ||
++      selected_linker == USE_LLD_LD)
+     {
+       char *linker_name;
+ # ifdef HOST_EXECUTABLE_SUFFIX
+@@ -1315,7 +1320,7 @@ main (int argc, char **argv)
+ 	      else if (!use_collect_ld
+ 		       && strncmp (arg, "-fuse-ld=", 9) == 0)
+ 		{
+-		  /* Do not pass -fuse-ld={bfd|gold} to the linker. */
++		  /* Do not pass -fuse-ld={bfd|gold|lld} to the linker. */
+ 		  ld1--;
+ 		  ld2--;
+ 		}
+diff --git a/gcc/common.opt b/gcc/common.opt
+index 5a5d33205a4..99489fbd553 100644
+--- gcc/common.opt
++++ gcc/common.opt
+@@ -2732,6 +2732,10 @@ fuse-ld=gold
+ Common Driver Negative(fuse-ld=bfd)
+ Use the gold linker instead of the default linker.
+ 
++fuse-ld=lld
++Common Driver Negative(fuse-ld=lld)
++Use the lld LLVM linker instead of the default linker.
++
+ fuse-linker-plugin
+ Common Undocumented Var(flag_use_linker_plugin)
+ 
+diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
+index e0a770491b6..8762f3f7bc3 100644
+--- gcc/doc/invoke.texi
++++ gcc/doc/invoke.texi
+@@ -12610,6 +12610,10 @@ Use the @command{bfd} linker instead of the default linker.
+ @opindex fuse-ld=gold
+ Use the @command{gold} linker instead of the default linker.
+ 
++@item -fuse-ld=lld
++@opindex fuse-ld=lld
++Use the LLVM @command{lld} linker instead of the default linker.
++
+ @cindex Libraries
+ @item -l@var{library}
+ @itemx -l @var{library}
+diff --git a/gcc/opts.c b/gcc/opts.c
+index 34c283dd765..f094f5f1251 100644
+--- gcc/opts.c
++++ gcc/opts.c
+@@ -2557,6 +2557,7 @@ common_handle_option (struct gcc_options *opts,
+ 
+     case OPT_fuse_ld_bfd:
+     case OPT_fuse_ld_gold:
++    case OPT_fuse_ld_lld:
+     case OPT_fuse_linker_plugin:
+       /* No-op. Used by the driver and passed to us because it starts with f.*/
+       break;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201811130258.wAD2wUVb048692>