From: Ian Lance Taylor <iant@golang.org>
To: gcc-patches <gcc-patches@gcc.gnu.org>,
gofrontend-dev <gofrontend-dev@googlegroups.com>
Subject: Go patch committed: Accept -fgo-embedcfg option
Date: Mon, 4 Jan 2021 17:41:30 -0800 [thread overview]
Message-ID: <CAOyqgcV0DXUcq7-ObN=zYSpdwdLhJgwpOFxG7Wp3vWUj72R5aw@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 628 bytes --]
This patch adds a new -fgo-embedcfg option. This will be used by the
go command to implement the go:embed directive that is new in the
upcoming Go 1.16 release. The option doesn't yet do anything, this is
just framework. Bootstrapped and ran Go testsuite on
x86_64-pc-linux-gnu. Committed to mainline.
Ian
* lang.opt (fgo-embedcfg): New option.
* go-c.h (struct go_create_gogo_args): Add embedcfg field.
* go-lang.c (go_embedcfg): New static variable.
(go_langhook_init): Set go_create_gogo_args embedcfg field.
(go_langhook_handle_option): Handle OPT_fgo_embedcfg_.
* gccgo.texi (Invoking gccgo): Document -fgo-embedcfg.
[-- Attachment #2: patch.txt --]
[-- Type: text/plain, Size: 2698 bytes --]
19d240387d930c7c049927f47351ccd6cbde0853
diff --git a/gcc/go/gccgo.texi b/gcc/go/gccgo.texi
index 37adf20d55b..ce6b518bb7b 100644
--- a/gcc/go/gccgo.texi
+++ b/gcc/go/gccgo.texi
@@ -262,6 +262,15 @@ Apply special rules for compiling the runtime package. Implicit
memory allocation is forbidden. Some additional compiler directives
are supported.
+@item -fgo-embedcfg=@var{file}
+@cindex @option{-fgo-embedcfg}
+Identify a JSON file used to map patterns used with special
+@code{//go:embed} comments to the files named by the patterns. The
+JSON file should have two components: @code{Patterns} maps each
+pattern to a list of file names, and @code{Files} maps each file name
+to a full path to the file. This option is intended for use by the
+@command{go} command to implement @code{//go:embed}.
+
@item -g
@cindex @option{-g for gccgo}
This is the standard @command{gcc} option (@pxref{Debugging Options, ,
diff --git a/gcc/go/go-c.h b/gcc/go/go-c.h
index 651a787088a..5930eadf7fd 100644
--- a/gcc/go/go-c.h
+++ b/gcc/go/go-c.h
@@ -41,6 +41,7 @@ struct go_create_gogo_args
const char* prefix;
const char* relative_import_path;
const char* c_header;
+ const char* embedcfg;
Backend* backend;
Linemap* linemap;
bool check_divide_by_zero;
diff --git a/gcc/go/go-lang.c b/gcc/go/go-lang.c
index eba40e471a2..a01db8dbdcd 100644
--- a/gcc/go/go-lang.c
+++ b/gcc/go/go-lang.c
@@ -89,6 +89,7 @@ static const char *go_pkgpath = NULL;
static const char *go_prefix = NULL;
static const char *go_relative_import_path = NULL;
static const char *go_c_header = NULL;
+static const char *go_embedcfg = NULL;
/* Language hooks. */
@@ -112,6 +113,7 @@ go_langhook_init (void)
args.prefix = go_prefix;
args.relative_import_path = go_relative_import_path;
args.c_header = go_c_header;
+ args.embedcfg = go_embedcfg;
args.check_divide_by_zero = go_check_divide_zero;
args.check_divide_overflow = go_check_divide_overflow;
args.compiling_runtime = go_compiling_runtime;
@@ -282,6 +284,10 @@ go_langhook_handle_option (
go_c_header = arg;
break;
+ case OPT_fgo_embedcfg_:
+ go_embedcfg = arg;
+ break;
+
default:
/* Just return 1 to indicate that the option is valid. */
break;
diff --git a/gcc/go/lang.opt b/gcc/go/lang.opt
index 454a118695e..7d6780eb0cd 100644
--- a/gcc/go/lang.opt
+++ b/gcc/go/lang.opt
@@ -57,6 +57,10 @@ fgo-dump-
Go Joined RejectNegative
-fgo-dump-<type> Dump Go frontend internal information.
+fgo-embedcfg=
+Go Joined RejectNegative
+-fgo-embedcfg=<file> List embedded files via go:embed
+
fgo-optimize-
Go Joined
-fgo-optimize-<type> Turn on optimization passes in the frontend.
next reply other threads:[~2021-01-05 1:41 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-05 1:41 Ian Lance Taylor [this message]
2021-01-05 10:06 ` Andreas Schwab
2021-01-05 15:15 ` Jakub Jelinek
2021-01-05 19:49 ` Ian Lance Taylor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAOyqgcV0DXUcq7-ObN=zYSpdwdLhJgwpOFxG7Wp3vWUj72R5aw@mail.gmail.com' \
--to=iant@golang.org \
--cc=gcc-patches@gcc.gnu.org \
--cc=gofrontend-dev@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).