public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Nathan Sidwell <nathan@gcc.gnu.org>
To: gcc-cvs@gcc.gnu.org
Subject: [gcc/devel/c++-modules] Adjust module-mapper path search behaviour
Date: Thu,  5 Nov 2020 13:34:17 +0000 (GMT)	[thread overview]
Message-ID: <20201105133417.986CD39D1C21@sourceware.org> (raw)

https://gcc.gnu.org/g:4c56b024984652e955cf6a44126b98fb20fb29ba

commit 4c56b024984652e955cf6a44126b98fb20fb29ba
Author: Nathan Sidwell <nathan@acm.org>
Date:   Thu Nov 5 05:33:47 2020 -0800

    Adjust module-mapper path search behaviour
    
            gcc/cp/
            * mapper-client.cc (spawn_mapper_program): Use @ to indicate
            looking in install dir.
            gcc/
            * doc/invoke.texi (fmodule-mapper): Document behaviour.
            gcc/testsuite/
            * g++.dg/modules/extern-tpl-1_b.C: Adjust options.
            * g++.dg/modules/inc-xlate-1_e.C: Adjust options.
            * g++.dg/modules/legacy-2_b.H: Adjust options.
            * g++.dg/modules/legacy-6_[cdef].C: Adjust options.

Diff:
---
 ChangeLog.modules                             | 13 +++++++++++++
 gcc/cp/mapper-client.cc                       | 15 +++++++++++++--
 gcc/doc/invoke.texi                           |  6 +++++-
 gcc/testsuite/g++.dg/modules/extern-tpl-1_b.C |  2 +-
 gcc/testsuite/g++.dg/modules/inc-xlate-1_e.C  |  2 +-
 gcc/testsuite/g++.dg/modules/legacy-2_b.H     |  2 +-
 gcc/testsuite/g++.dg/modules/legacy-6_c.C     |  2 +-
 gcc/testsuite/g++.dg/modules/legacy-6_d.C     |  2 +-
 gcc/testsuite/g++.dg/modules/legacy-6_e.C     |  2 +-
 gcc/testsuite/g++.dg/modules/legacy-6_f.C     |  2 +-
 10 files changed, 38 insertions(+), 10 deletions(-)

diff --git a/ChangeLog.modules b/ChangeLog.modules
index 6d60eba511f..852cace8dc6 100644
--- a/ChangeLog.modules
+++ b/ChangeLog.modules
@@ -1,3 +1,16 @@
+2020-11-05  Nathan Sidwell  <nathan@acm.org>
+
+	gcc/cp/
+	* mapper-client.cc (spawn_mapper_program): Use @ to indicate
+	looking in install dir.
+	gcc/
+	* doc/invoke.texi (fmodule-mapper): Document behaviour.
+	gcc/testsuite/
+	* g++.dg/modules/extern-tpl-1_b.C: Adjust options.
+	* g++.dg/modules/inc-xlate-1_e.C: Adjust options.
+	* g++.dg/modules/legacy-2_b.H: Adjust options.
+	* g++.dg/modules/legacy-6_[cdef].C: Adjust options.
+
 2020-11-04  Nathan Sidwell  <nathan@acm.org>
 
 	gcc/testsuite/
diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
index de259b0564c..b9b24cdaa7f 100644
--- a/gcc/cp/mapper-client.cc
+++ b/gcc/cp/mapper-client.cc
@@ -50,6 +50,16 @@ spawn_mapper_program (char const **errmsg, std::string &name,
 	ptr++;
       if (!*ptr)
 	break;
+
+      if (!arg_no)
+	{
+	  /* @name means look in the compiler's install dir.  */
+	  if (ptr[0] == '@')
+	    ptr++;
+	  else
+	    full_program_name = nullptr;
+	}
+
       argv[arg_no++] = ptr;
       while (*ptr && *ptr != ' ')
 	ptr++;
@@ -67,10 +77,11 @@ spawn_mapper_program (char const **errmsg, std::string &name,
   else
     {
       int flags = PEX_SEARCH;
-	  
+
       if (full_program_name)
 	{
-	  /* Prepend the invoking path.  */
+	  /* Prepend the invoking path, if the mapper is a simple
+	     file name.  */
 	  size_t dir_len = progname - full_program_name;
 	  std::string argv0;
 	  argv0.reserve (dir_len + name.size ());
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index fd2b7f790cf..e6be6c6b91a 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -32453,7 +32453,11 @@ form is non-functional.
 A program to spawn, and communicate with on its stdin/stdout streams.
 Your @var{PATH} environment variable is searched for the program.
 Arguments are separated by space characters, (it is not possible for
-one of the arguments delivered to the program to contain a space).
+one of the arguments delivered to the program to contain a space).  An
+exception is if @var{program} begins with @@.  In that case
+@var{program} (sans @@) is looked for in the compiler's internal
+binary directory.  Thus the default mapper-server can be specified
+with @code{@@mapper-server}.
 
 @item <>@r{[}?@var{ident}@r{]}
 @item <>@var{fdinout}@r{[}?@var{ident}@r{]}
diff --git a/gcc/testsuite/g++.dg/modules/extern-tpl-1_b.C b/gcc/testsuite/g++.dg/modules/extern-tpl-1_b.C
index 969edb5d23c..7839555ca4f 100644
--- a/gcc/testsuite/g++.dg/modules/extern-tpl-1_b.C
+++ b/gcc/testsuite/g++.dg/modules/extern-tpl-1_b.C
@@ -1,4 +1,4 @@
-// { dg-additional-options {-fmodules-ts -fmodule-mapper=|mapper-server} }
+// { dg-additional-options {-fmodules-ts -fmodule-mapper=|@mapper-server} }
 
 // Have to textually include, because we currently get confused about
 // the explicit instantiations and think they conflict
diff --git a/gcc/testsuite/g++.dg/modules/inc-xlate-1_e.C b/gcc/testsuite/g++.dg/modules/inc-xlate-1_e.C
index eaa023c9e3b..05ab7cced9a 100644
--- a/gcc/testsuite/g++.dg/modules/inc-xlate-1_e.C
+++ b/gcc/testsuite/g++.dg/modules/inc-xlate-1_e.C
@@ -1,4 +1,4 @@
-// { dg-additional-options "-fmodules-ts -fmodule-mapper=|mapper-server\\ -t\\ [srcdir]/inc-xlate-1.map" }
+// { dg-additional-options "-fmodules-ts -fmodule-mapper=|@mapper-server\\ -t\\ [srcdir]/inc-xlate-1.map" }
 export module bad;
 #include "inc-xlate-1_a.H"  // { dg-error "not be include-translated" }
 
diff --git a/gcc/testsuite/g++.dg/modules/legacy-2_b.H b/gcc/testsuite/g++.dg/modules/legacy-2_b.H
index bff60b77a21..5155cc04c13 100644
--- a/gcc/testsuite/g++.dg/modules/legacy-2_b.H
+++ b/gcc/testsuite/g++.dg/modules/legacy-2_b.H
@@ -1,4 +1,4 @@
-// { dg-additional-options "-fmodule-header -fmodule-mapper=|mapper-server\\ -mt\\ $srcdir/g++.dg/modules/legacy-2.map" }
+// { dg-additional-options "-fmodule-header -fmodule-mapper=|@mapper-server\\ -mt\\ $srcdir/g++.dg/modules/legacy-2.map" }
 // { dg-module-cmi {} }
 
 #define frob FROB
diff --git a/gcc/testsuite/g++.dg/modules/legacy-6_c.C b/gcc/testsuite/g++.dg/modules/legacy-6_c.C
index c8873e14c53..3a753a2a4f9 100644
--- a/gcc/testsuite/g++.dg/modules/legacy-6_c.C
+++ b/gcc/testsuite/g++.dg/modules/legacy-6_c.C
@@ -1,5 +1,5 @@
 // { dg-do preprocess }
-// { dg-additional-options "-fmodules-ts -fmodule-mapper=|mapper-server\\ -mt\\ [srcdir]/legacy-6.map" }
+// { dg-additional-options "-fmodules-ts -fmodule-mapper=|@mapper-server\\ -mt\\ [srcdir]/legacy-6.map" }
 
 #include "legacy-6_a.H"
 #include "legacy-6_b.H"
diff --git a/gcc/testsuite/g++.dg/modules/legacy-6_d.C b/gcc/testsuite/g++.dg/modules/legacy-6_d.C
index 65b85d4d7e7..fc8d04ee765 100644
--- a/gcc/testsuite/g++.dg/modules/legacy-6_d.C
+++ b/gcc/testsuite/g++.dg/modules/legacy-6_d.C
@@ -1,5 +1,5 @@
 // { dg-do preprocess }
-// { dg-additional-options "-fmodules-ts -fmodule-mapper=|mapper-server\\ -mt\\ [srcdir]/legacy-6.map" }
+// { dg-additional-options "-fmodules-ts -fmodule-mapper=|@mapper-server\\ -mt\\ [srcdir]/legacy-6.map" }
 
 #include "legacy-6_a.H"
 int i;
diff --git a/gcc/testsuite/g++.dg/modules/legacy-6_e.C b/gcc/testsuite/g++.dg/modules/legacy-6_e.C
index 2e92970205a..9d4dd9218dd 100644
--- a/gcc/testsuite/g++.dg/modules/legacy-6_e.C
+++ b/gcc/testsuite/g++.dg/modules/legacy-6_e.C
@@ -1,4 +1,4 @@
-// { dg-additional-options "-fmodule-mapper=|mapper-server\\ -f\\ [srcdir]/legacy-6.map" }
+// { dg-additional-options "-fmodule-mapper=|@mapper-server\\ -f\\ [srcdir]/legacy-6.map" }
 
 #include "legacy-6_a.H"
 #include "legacy-6_b.H"
diff --git a/gcc/testsuite/g++.dg/modules/legacy-6_f.C b/gcc/testsuite/g++.dg/modules/legacy-6_f.C
index 4669e3925c4..c15eadec6da 100644
--- a/gcc/testsuite/g++.dg/modules/legacy-6_f.C
+++ b/gcc/testsuite/g++.dg/modules/legacy-6_f.C
@@ -1,4 +1,4 @@
-// { dg-additional-options "-fmodule-mapper=|mapper-server\\ -f\\ [srcdir]/legacy-6.map" }
+// { dg-additional-options "-fmodule-mapper=|@mapper-server\\ -f\\ [srcdir]/legacy-6.map" }
 
 #include "legacy-6_a.H"
 int i;


                 reply	other threads:[~2020-11-05 13:34 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20201105133417.986CD39D1C21@sourceware.org \
    --to=nathan@gcc.gnu.org \
    --cc=gcc-cvs@gcc.gnu.org \
    /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).