public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc/devel/modula-2] gcc.cc externs used by front ends prefixed by fe.
@ 2022-01-25 18:13 Gaius Mulley
  0 siblings, 0 replies; only message in thread
From: Gaius Mulley @ 2022-01-25 18:13 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:183c1231175227cd41f3ec108abc67e390db3c65

commit 183c1231175227cd41f3ec108abc67e390db3c65
Author: Gaius Mulley <gaius.mulley@southwales.ac.uk>
Date:   Tue Jan 25 18:13:06 2022 +0000

    gcc.cc externs used by front ends prefixed by fe.
    
    This patch converts external symbols provided by gcc.cc to
    front end drivers to be prefixed by fe_.  It is largely cosmetic
    but provides clarify over which symbols are required by front
    end drivers.
    
    gcc/ChangeLog:
    
            * gcc/gcc.cc: (xputenv) Reinstated static declaration.
            Capitalized comment start.  (xgetenv) Reinstated static
            declaration.  (fe_putenv) New function.  (fe_getenv) New function.
            (save_switch) Reinstated static declaration.
            (fe_save_switch) New function.
            (fe_add_linker_option) Added header comment.
            (handle_OPT_B) Renamed to handle_opt_b.  (fe_handle_opt_b)
            New function.
            * gcc/gcc.h: (save_switch) Replaced by fe_save_switch.
            (handle_OPT_B) Replaced by fe_handle_opt_b.  (xputenv)
            Replaced by fe_putenv.  (xgetenv) Replaced by fe_getenv.
    
    gcc/m2/ChangeLog:
    
            * gm2spec.cc: Replaced save_switch by fe_save_switch.
            Replaced xputenv by fe_putenv.  Replaced xgetenv by fe_getenv.
    
    Signed-off-by: Gaius Mulley <gaius.mulley@southwales.ac.uk>

Diff:
---
 gcc/gcc.cc        | 57 +++++++++++++++++++++++++++++++++++++++++++++----------
 gcc/gcc.h         |  8 ++++----
 gcc/m2/gm2spec.cc | 28 +++++++++++++--------------
 3 files changed, 65 insertions(+), 28 deletions(-)

diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index a96891e3900..d7cece303d5 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -366,6 +366,7 @@ static void set_spec (const char *, const char *, bool);
 static struct compiler *lookup_compiler (const char *, size_t, const char *);
 static char *build_search_list (const struct path_prefix *, const char *,
 				bool, bool);
+static void xputenv (const char *);
 static void putenv_from_prefixes (const struct path_prefix *, const char *,
 				  bool);
 static int access_check (const char *, int);
@@ -1152,7 +1153,6 @@ proper position among the other output files.  */
 /* We pass any -flto flags on to the linker, which is expected
    to understand them.  In practice, this means it had better be collect2.  */
 /* %{e*} includes -export-dynamic; see comment in common.opt.  */
-
 #ifndef LINK_COMMAND_SPEC
 #define LINK_COMMAND_SPEC "\
 %{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
@@ -1786,7 +1786,7 @@ static const struct spec_function static_spec_functions[] =
   { 0, 0 }
 };
 
-/* front end registered spec functions */
+/* Front end registered spec functions */
 static struct spec_function *lang_spec_functions = NULL;
 static unsigned int lang_spec_functions_length = 0;
 
@@ -2952,7 +2952,7 @@ add_to_obstack (char *path, void *data)
 
 /* Add or change the value of an environment variable, outputting the
    change to standard error if in verbose mode.  */
-void
+static void
 xputenv (const char *string)
 {
   env.xput (string);
@@ -2960,12 +2960,28 @@ xputenv (const char *string)
 
 /* Get the environment variable through the managed env.  */
 
-const char *
+static const char *
 xgetenv (const char *key)
 {
   return env.get (key);
 }
 
+/* Allow front end access to xputenv.  */
+
+void
+fe_putenv (const char *string)
+{
+  xputenv (string);
+}
+
+/* Allow front end access to xgetenv.  */
+
+const char *
+fe_getenv (const char *key)
+{
+  return xgetenv (key);
+}
+
 /* Build a list of search directories from PATHS.
    PREFIX is a string to prepend to the list.
    If CHECK_DIR_P is true we ensure the directory exists.
@@ -3909,7 +3925,7 @@ alloc_switch (void)
 /* Save an option OPT with N_ARGS arguments in array ARGS, marking it
    as validated if VALIDATED and KNOWN if it is an internal switch.  */
 
-void
+static void
 save_switch (const char *opt, size_t n_args, const char *const *args,
 	     bool validated, bool known)
 {
@@ -3931,6 +3947,15 @@ save_switch (const char *opt, size_t n_args, const char *const *args,
   n_switches++;
 }
 
+/* Allow front ends to save switches.  */
+
+void
+fe_save_switch (const char *opt, size_t n_args, const char *const *args,
+		bool validated, bool known)
+{
+  save_switch (opt, n_args, args, validated, known);
+}
+
 /* Set the SOURCE_DATE_EPOCH environment variable to the current time if it is
    not set already.  */
 
@@ -3954,6 +3979,8 @@ set_source_date_epoch_envvar ()
   setenv ("SOURCE_DATE_EPOCH", source_date_epoch, 0);
 }
 
+/* Wrapper providing front end access to link options.  */
+
 void
 fe_add_linker_option (const char *option)
 {
@@ -3963,8 +3990,8 @@ fe_add_linker_option (const char *option)
 /* Handle the -B option by adding the prefix to exec, startfile and
    include search paths.  */
 
-void
-handle_OPT_B (const char *arg)
+static void
+handle_opt_b (const char *arg)
 {
   size_t len = strlen (arg);
 
@@ -3993,6 +4020,14 @@ handle_OPT_B (const char *arg)
 	      PREFIX_PRIORITY_B_OPT, 0, 0);
 }
 
+/* Wrapper allowing the front end to create a -B option.  */
+
+void
+fe_handle_opt_b (const char *arg)
+{
+  handle_opt_b (arg);
+}
+
 /* Save the infile.  */
 
 void
@@ -4593,7 +4628,7 @@ driver_handle_option (struct gcc_options *opts,
       break;
 
     case OPT_B:
-      handle_OPT_B (arg);
+      handle_opt_b (arg);
       validated = true;
       break;
 
@@ -6956,7 +6991,8 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
 
 /* Allow the front end to register a spec function.  */
 
-void fe_add_spec_function (const char *name, const char *(*func) (int, const char **))
+void fe_add_spec_function (const char *name,
+			   const char *(*func) (int, const char **))
 {
   const struct spec_function *f = lookup_spec_function (name);
   struct spec_function *fl;
@@ -6969,7 +7005,8 @@ void fe_add_spec_function (const char *name, const char *(*func) (int, const cha
     lang_spec_functions_length = 1;
 
   lang_spec_functions_length++;
-  fl = (struct spec_function *) xmalloc (sizeof (const struct spec_function)*lang_spec_functions_length);
+  fl = (struct spec_function *) xmalloc (sizeof (const struct spec_function)
+					 *lang_spec_functions_length);
   for (i=0; i<lang_spec_functions_length-2; i++)
     fl[i] = lang_spec_functions[i];
   free (lang_spec_functions);
diff --git a/gcc/gcc.h b/gcc/gcc.h
index 0f591eb589f..7d51ae1d36c 100644
--- a/gcc/gcc.h
+++ b/gcc/gcc.h
@@ -73,15 +73,15 @@ struct spec_function
 extern int do_spec (const char *);
 extern void record_temp_file (const char *, int, int);
 extern void set_input (const char *);
-extern void save_switch (const char *opt, size_t n_args,
+extern void fe_save_switch (const char *opt, size_t n_args,
 			 const char *const *args,
 			 bool validated, bool known);
-extern void handle_OPT_B (const char *arg);
+extern void fe_handle_op_b (const char *arg);
 extern void fe_add_infile (const char *infile, const char *lang);
 extern void fe_add_linker_option (const char *option);
 extern void fe_add_spec_function (const char *name, const char *(*func) (int, const char **));
-extern void xputenv (const char *value);
-extern const char *xgetenv (const char *key);
+extern void fe_putenv (const char *value);
+extern const char *fe_getenv (const char *key);
 extern void print_options (const char *desc,
 			   unsigned int in_decoded_options_count,
 			   struct cl_decoded_option *in_decoded_options);
diff --git a/gcc/m2/gm2spec.cc b/gcc/m2/gm2spec.cc
index 60f61879c4e..eb0c2d84db4 100644
--- a/gcc/m2/gm2spec.cc
+++ b/gcc/m2/gm2spec.cc
@@ -175,7 +175,7 @@ static const char *multilib_dir = NULL;
 #endif
 
 
-/* fe_generate_option, wrap up arg and pass it to save_switch.  */
+/* fe_generate_option, wrap up arg and pass it to fe_save_switch.  */
 
 static void
 fe_generate_option (size_t opt_index, const char *arg, bool joined)
@@ -194,7 +194,7 @@ fe_generate_option (size_t opt_index, const char *arg, bool joined)
     opt = xstrdup (option->opt_text);
 
   if (arg == NULL || joined)
-    save_switch (opt, 0, NULL, true, false);
+    fe_save_switch (opt, 0, NULL, true, false);
   else
     {
       const char **x = (const char **)XCNEWVEC (const char **, 2);
@@ -203,7 +203,7 @@ fe_generate_option (size_t opt_index, const char *arg, bool joined)
       x[1] = NULL;
 
       gcc_assert (opt_index != OPT_l);
-      save_switch (opt, 1, x, true, false);
+      fe_save_switch (opt, 1, x, true, false);
     }
 }
 
@@ -255,7 +255,7 @@ add_B_prefix (unsigned int *in_decoded_options_count ATTRIBUTE_UNUSED,
           for (i = 0; i < *in_decoded_options_count; i++)
             print_option ("before add -B", i, *in_decoded_options);
 #endif
-          handle_OPT_B (xstrdup (path));
+          fe_handle_opt_b (xstrdup (path));
           fe_generate_option (OPT_B, xstrdup (path), 1);
 
 #if defined(DEBUGGING)
@@ -784,7 +784,7 @@ build_path (const char *prefix)
       strcat (s, ":");
       strcat (s, path);
     }
-  xputenv (s);
+  fe_putenv (s);
 }
 
 /* gen_gm2_prefix, return the prefix string.  */
@@ -849,7 +849,7 @@ build_library_path (const char *prefix)
 
   strcpy (s, "LIBRARY_PATH=");
   strcat (s, path);
-  xputenv (s);
+  fe_putenv (s);
 }
 
 /* build_compiler_path, implements export
@@ -865,7 +865,7 @@ build_compiler_path (const char *path)
 
   strcpy (s, "COMPILER_PATH=");
   strcat (s, libexec);
-  xputenv (s);
+  fe_putenv (s);
 }
 
 /* check_gm2_root, checks to see whether GM2_PREFIX or GM2_LIBEXEC
@@ -881,10 +881,10 @@ check_gm2_root (void)
   const char *gm2_prefix;
   const char *gm2_libexec;
 
-  library_path = xgetenv (LIBRARY_PATH_ENV);
-  compiler_path = xgetenv ("COMPILER_PATH");
-  gm2_prefix = xgetenv (GM2_PREFIX_ENV);
-  gm2_libexec = xgetenv (GM2_LIBEXEC_ENV);
+  library_path = fe_getenv (LIBRARY_PATH_ENV);
+  compiler_path = fe_getenv ("COMPILER_PATH");
+  gm2_prefix = fe_getenv (GM2_PREFIX_ENV);
+  gm2_libexec = fe_getenv (GM2_LIBEXEC_ENV);
 
   if ((library_path == NULL || (strcmp (library_path, "") == 0))
       && (compiler_path == NULL || (strcmp (compiler_path, "") == 0)))
@@ -1191,12 +1191,12 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
     fe_generate_option (OPT_fonlylink, NULL, false);
 
   check_gm2_root ();
-  libpath = xgetenv (LIBRARY_PATH_ENV);
+  libpath = fe_getenv (LIBRARY_PATH_ENV);
   if (libpath == NULL || (strcmp (libpath, "") == 0))
     libpath = LIBSUBDIR;
 
-  gm2ipath = xgetenv (GM2IPATH_ENV);
-  gm2opath = xgetenv (GM2OPATH_ENV);
+  gm2ipath = fe_getenv (GM2IPATH_ENV);
+  gm2opath = fe_getenv (GM2OPATH_ENV);
 
 #if defined(DEBUGGING)
   print_options ("at beginning", *in_decoded_options_count, *in_decoded_options);


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-01-25 18:13 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-25 18:13 [gcc/devel/modula-2] gcc.cc externs used by front ends prefixed by fe Gaius Mulley

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).