svn commit: r485902 - in head/lang/gcc8: . files
Gerald Pfeifer
gerald at FreeBSD.org
Sun Nov 25 21:08:02 UTC 2018
Author: gerald
Date: Sun Nov 25 21:08:01 2018
New Revision: 485902
URL: https://svnweb.freebsd.org/changeset/ports/485902
Log:
Add support for -fuse-ld=lld, backported from GCC mainline which is
going to become GCC 9 (in form of files/patch-fuse-ld=lld borrowed
from devel/riscv64-gcc).
PR: 227302
Added:
head/lang/gcc8/files/patch-fuse-ld=lld
- copied unchanged from r485860, head/devel/riscv64-gcc/files/patch-fuse-ld=lld
Modified:
head/lang/gcc8/Makefile
Modified: head/lang/gcc8/Makefile
==============================================================================
--- head/lang/gcc8/Makefile Sun Nov 25 21:01:10 2018 (r485901)
+++ head/lang/gcc8/Makefile Sun Nov 25 21:08:01 2018 (r485902)
@@ -3,7 +3,7 @@
PORTNAME= gcc
PORTVERSION= 8.2.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= lang
MASTER_SITES= GCC
PKGNAMESUFFIX= ${SUFFIX}
Copied: head/lang/gcc8/files/patch-fuse-ld=lld (from r485860, head/devel/riscv64-gcc/files/patch-fuse-ld=lld)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/lang/gcc8/files/patch-fuse-ld=lld Sun Nov 25 21:08:01 2018 (r485902, copy of r485860, head/devel/riscv64-gcc/files/patch-fuse-ld=lld)
@@ -0,0 +1,105 @@
+commit 4eea76dbfc871614e116961b048d9aa38eee66ea
+Author: law <law at 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.
+
++ at item -fuse-ld=lld
++ at opindex fuse-ld=lld
++Use the LLVM @command{lld} linker instead of the default linker.
++
+ @cindex Libraries
+ @item -l at 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;
More information about the svn-ports-all
mailing list