Support $SYSROOT for = in -I etc.
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Thu, 22 Jun 2017 14:37:17 +0000 (14:37 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Thu, 22 Jun 2017 14:37:17 +0000 (14:37 +0000)
* incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
* doc/cppdiropts.texi (-I @var{dir}): Document it.

From-SVN: r249560

gcc/ChangeLog
gcc/doc/cppdiropts.texi
gcc/incpath.c

index 4b78674ee3fc80539b5a3e944e152270b39d780a..a2340c0f253fffb13856e5f93d78fb7940b2862b 100644 (file)
@@ -1,3 +1,8 @@
+2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
+       * doc/cppdiropts.texi (-I @var{dir}): Document it.
+
 2016-06-22  Richard Biener  <rguenther@suse.de>
 
        * tree-vect-loop.c (vect_model_reduction_cost): Handle
index 1f72649937c5618be22c9da28f361df11e22e28e..eee2b5cede8f883f2b285dfff6642b3587f97a5a 100644 (file)
@@ -22,8 +22,9 @@ for header files during preprocessing.
 @ifset cppmanual
 @xref{Search Path}.
 @end ifset
-If @var{dir} begins with @samp{=}, then the @samp{=} is replaced
-by the sysroot prefix; see @option{--sysroot} and @option{-isysroot}.
+If @var{dir} begins with @samp{=} or @code{$SYSROOT}, then the @samp{=}
+or @code{$SYSROOT} is replaced by the sysroot prefix; see
+@option{--sysroot} and @option{-isysroot}.
 
 Directories specified with @option{-iquote} apply only to the quote 
 form of the directive, @code{@w{#include "@var{file}"}}.
index 98fe5ec9ab364b846ff8d008aad47ae1a4c3e35c..47942e2547dbe24883af7aa1b6a7f716c82dcb36 100644 (file)
@@ -314,7 +314,7 @@ remove_duplicates (cpp_reader *pfile, struct cpp_dir *head,
 }
 
 /* Add SYSROOT to any user-supplied paths in CHAIN starting with
-   "=".  */
+   "=" or "$SYSROOT".  */
 
 static void
 add_sysroot_to_chain (const char *sysroot, int chain)
@@ -322,8 +322,15 @@ add_sysroot_to_chain (const char *sysroot, int chain)
   struct cpp_dir *p;
 
   for (p = heads[chain]; p != NULL; p = p->next)
-    if (p->name[0] == '=' && p->user_supplied_p)
-      p->name = concat (sysroot, p->name + 1, NULL);
+    {
+      if (p->user_supplied_p)
+       {
+         if (p->name[0] == '=')
+           p->name = concat (sysroot, p->name + 1, NULL);
+         if (strncmp (p->name, "$SYSROOT", strlen ("$SYSROOT")) == 0)
+           p->name = concat (sysroot, p->name + strlen ("$SYSROOT"), NULL);
+       }
+    }
 }
 
 /* Merge the four include chains together in the order quote, bracket,