Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/gpl3/gcc/dist/gcc merge debug/file prefix/merge stu...



details:   https://anonhg.NetBSD.org/src/rev/0c1033cad823
branches:  trunk
changeset: 454907:0c1033cad823
user:      mrg <mrg%NetBSD.org@localhost>
date:      Tue Oct 01 21:17:27 2019 +0000

description:
merge debug/file prefix/merge stuff with upstream, which has gained
a lot of the same features.  builds, but may not actually run right.
adjust for add_path()'s SYSTEM -> INC_SYSTEM.

diffstat:

 external/gpl3/gcc/dist/gcc/Makefile.in       |    1 +
 external/gpl3/gcc/dist/gcc/c-family/c-opts.c |    2 +-
 external/gpl3/gcc/dist/gcc/file-prefix-map.c |  109 +++++++++++++++++
 external/gpl3/gcc/dist/gcc/final.c           |  171 ---------------------------
 4 files changed, 111 insertions(+), 172 deletions(-)

diffs (truncated from 327 to 300 lines):

diff -r a544ce99e574 -r 0c1033cad823 external/gpl3/gcc/dist/gcc/Makefile.in
--- a/external/gpl3/gcc/dist/gcc/Makefile.in    Tue Oct 01 21:13:43 2019 +0000
+++ b/external/gpl3/gcc/dist/gcc/Makefile.in    Tue Oct 01 21:17:27 2019 +0000
@@ -1955,6 +1955,7 @@
 selftest: s-selftest-c
 
 # C selftests
+C_SELFTEST_DEPS = 
 s-selftest-c: $(C_SELFTEST_DEPS)
        @echo "NOT REBUILDING $@"
 NetBSD_DISABLED_s-selftest:
diff -r a544ce99e574 -r 0c1033cad823 external/gpl3/gcc/dist/gcc/c-family/c-opts.c
--- a/external/gpl3/gcc/dist/gcc/c-family/c-opts.c      Tue Oct 01 21:13:43 2019 +0000
+++ b/external/gpl3/gcc/dist/gcc/c-family/c-opts.c      Tue Oct 01 21:17:27 2019 +0000
@@ -305,7 +305,7 @@
       break;
 
     case OPT_cxx_isystem:
-      add_path (xstrdup (arg), SYSTEM, 1, true);
+      add_path (xstrdup (arg), INC_SYSTEM, 1, true);
       break;
 
     case OPT_D:
diff -r a544ce99e574 -r 0c1033cad823 external/gpl3/gcc/dist/gcc/file-prefix-map.c
--- a/external/gpl3/gcc/dist/gcc/file-prefix-map.c      Tue Oct 01 21:13:43 2019 +0000
+++ b/external/gpl3/gcc/dist/gcc/file-prefix-map.c      Tue Oct 01 21:17:27 2019 +0000
@@ -123,6 +123,7 @@
   return remap_filename (macro_prefix_maps, filename);
 }
 
+#ifndef __NetBSD__
 /* Remap using -fdebug-prefix-map.  Return the GC-allocated new name
    corresponding to FILENAME or FILENAME if no remapping was performed.  */
 const char *
@@ -130,3 +131,111 @@
 {
   return remap_filename (debug_prefix_maps, filename);
 }
+#else
+
+/* Perform user-specified mapping of debug filename prefixes.  Return
+   the new name corresponding to FILENAME.  */
+
+static const char *
+remap_debug_prefix_filename (const char *filename)
+{
+  file_prefix_map *map;
+  char *s;
+  const char *name;
+  size_t name_len;
+
+  for (map = debug_prefix_maps; map; map = map->next)
+    if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
+      break;
+  if (!map)
+    return filename;
+  name = filename + map->old_len;
+  name_len = strlen (name) + 1;
+  s = (char *) alloca (name_len + map->new_len);
+  memcpy (s, map->new_prefix, map->new_len);
+  memcpy (s + map->new_len, name, name_len);
+  return ggc_strdup (s);
+}
+
+#include <regex.h>
+
+typedef struct debug_regex_map
+{
+  regex_t re;
+  const char *sub;
+  struct debug_regex_map *next;
+} debug_regex_map;
+
+/* Linked list of such structures.  */
+debug_regex_map *debug_regex_maps;
+
+
+/* Record a debug file regex mapping.  ARG is the argument to
+   -fdebug-regex-map and must be of the form OLD=NEW.  */
+
+void
+add_debug_regex_map (const char *arg)
+{
+  debug_regex_map *map;
+  const char *p;
+  char *old;
+  char buf[1024];
+  regex_t re;
+  int e;
+
+  p = strchr (arg, '=');
+  if (!p)
+    {
+      error ("invalid argument %qs to -fdebug-regex-map", arg);
+      return;
+    }
+  
+  old = xstrndup (arg, p - arg);
+  if ((e = regcomp(&re, old, REG_EXTENDED)) != 0)
+    {
+      regerror(e, &re, buf, sizeof(buf));
+      warning (0, "regular expression compilation for %qs in argument to "
+              "-fdebug-regex-map failed: %qs", old, buf);
+      free(old);
+      return;
+    }
+  free(old);
+
+  map = XNEW (debug_regex_map);
+  map->re = re;
+  p++;
+  map->sub = xstrdup (p);
+  map->next = debug_regex_maps;
+  debug_regex_maps = map;
+}
+
+extern "C" ssize_t regasub(char **, const char *,
+  const regmatch_t *rm, const char *);
+
+/* Perform user-specified mapping of debug filename regular expressions.  Return
+   the new name corresponding to FILENAME.  */
+
+static const char *
+remap_debug_regex_filename (const char *filename)
+{
+  debug_regex_map *map;
+  char *s;
+  regmatch_t rm[10];
+
+  for (map = debug_regex_maps; map; map = map->next)
+    if (regexec (&map->re, filename, 10, rm, 0) == 0
+       && regasub (&s, map->sub, rm, filename) >= 0)
+      {
+        const char *name = ggc_strdup(s);
+        free(s);
+        return name;
+      }
+  return filename;
+}
+
+const char *
+remap_debug_filename (const char *filename)
+{
+   return remap_debug_regex_filename (remap_debug_prefix_filename (filename));
+}
+#endif
diff -r a544ce99e574 -r 0c1033cad823 external/gpl3/gcc/dist/gcc/final.c
--- a/external/gpl3/gcc/dist/gcc/final.c        Tue Oct 01 21:13:43 2019 +0000
+++ b/external/gpl3/gcc/dist/gcc/final.c        Tue Oct 01 21:17:27 2019 +0000
@@ -1508,177 +1508,6 @@
   return count;
 }
 
-/* ??? This is probably the wrong place for these.  */
-/* Structure recording the mapping from source file and directory
-   names at compile time to those to be embedded in debug
-   information.  */
-struct debug_prefix_map
-{
-  const char *old_prefix;
-  const char *new_prefix;
-  size_t old_len;
-  size_t new_len;
-  struct debug_prefix_map *next;
-};
-
-/* Linked list of such structures.  */
-static debug_prefix_map *debug_prefix_maps;
-
-
-/* Record a debug file prefix mapping.  ARG is the argument to
-   -fdebug-prefix-map and must be of the form OLD=NEW.  */
-
-void
-add_debug_prefix_map (const char *arg)
-{
-  debug_prefix_map *map;
-  const char *p;
-  char *env;
-  const char *old;
-  size_t oldlen;
-
-  p = strchr (arg, '=');
-  if (!p)
-    {
-      error ("invalid argument %qs to -fdebug-prefix-map", arg);
-      return;
-    }
-  if (*arg == '$')
-    {
-      env = xstrndup (arg+1, p - (arg+1));
-      old = getenv(env);
-      if (!old)
-       {
-         warning (0, "environment variable %qs not set in argument to "
-                  "-fdebug-prefix-map", env);
-         free(env);
-         return;
-       }
-      oldlen = strlen(old);
-      free(env);
-    }
-  else
-    {
-      old = xstrndup (arg, p - arg);
-      oldlen = p - arg;
-    }
-
-  map = XNEW (debug_prefix_map);
-  map->old_prefix = old;
-  map->old_len = oldlen;
-  p++;
-  map->new_prefix = xstrdup (p);
-  map->new_len = strlen (p);
-  map->next = debug_prefix_maps;
-  debug_prefix_maps = map;
-}
-
-/* Perform user-specified mapping of debug filename prefixes.  Return
-   the new name corresponding to FILENAME.  */
-
-static const char *
-remap_debug_prefix_filename (const char *filename)
-{
-  debug_prefix_map *map;
-  char *s;
-  const char *name;
-  size_t name_len;
-
-  for (map = debug_prefix_maps; map; map = map->next)
-    if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
-      break;
-  if (!map)
-    return filename;
-  name = filename + map->old_len;
-  name_len = strlen (name) + 1;
-  s = (char *) alloca (name_len + map->new_len);
-  memcpy (s, map->new_prefix, map->new_len);
-  memcpy (s + map->new_len, name, name_len);
-  return ggc_strdup (s);
-}
-
-#include <regex.h>
-
-typedef struct debug_regex_map
-{
-  regex_t re;
-  const char *sub;
-  struct debug_regex_map *next;
-} debug_regex_map;
-
-/* Linked list of such structures.  */
-debug_regex_map *debug_regex_maps;
-
-
-/* Record a debug file regex mapping.  ARG is the argument to
-   -fdebug-regex-map and must be of the form OLD=NEW.  */
-
-void
-add_debug_regex_map (const char *arg)
-{
-  debug_regex_map *map;
-  const char *p;
-  char *old;
-  char buf[1024];
-  regex_t re;
-  int e;
-
-  p = strchr (arg, '=');
-  if (!p)
-    {
-      error ("invalid argument %qs to -fdebug-regex-map", arg);
-      return;
-    }
-  
-  old = xstrndup (arg, p - arg);
-  if ((e = regcomp(&re, old, REG_EXTENDED)) != 0)
-    {
-      regerror(e, &re, buf, sizeof(buf));
-      warning (0, "regular expression compilation for %qs in argument to "
-              "-fdebug-regex-map failed: %qs", old, buf);
-      free(old);
-      return;
-    }
-  free(old);
-
-  map = XNEW (debug_regex_map);
-  map->re = re;
-  p++;
-  map->sub = xstrdup (p);
-  map->next = debug_regex_maps;
-  debug_regex_maps = map;
-}
-
-extern "C" ssize_t regasub(char **, const char *,
-  const regmatch_t *rm, const char *);
-
-/* Perform user-specified mapping of debug filename regular expressions.  Return
-   the new name corresponding to FILENAME.  */
-



Home | Main Index | Thread Index | Old Index