Move copyright code from gdbarch.py to new file
authorTom Tromey <tromey@adacore.com>
Mon, 14 Feb 2022 15:26:32 +0000 (08:26 -0700)
committerTom Tromey <tromey@adacore.com>
Wed, 2 Mar 2022 16:11:30 +0000 (09:11 -0700)
This moves the copyright code from gdbarch.py to a new Python source
file, gdbcopyright.py.  The function in this file will find the
copyright dates by scanning the calling script.  This will be reused
in a future patch.

This involved minor changes to the output of gdbarch.py.  Also, I've
updated copyright.py to remove the reference to gdbarch.sh.  We don't
need to mention gdbarch.py there, either.

gdb/copyright.py
gdb/gdbarch-gen.h
gdb/gdbarch.c
gdb/gdbarch.py
gdb/gdbcopyright.py [new file with mode: 0644]

index 8ae9ffff65ba8f08a578de29ad5dd63a340be52c..48192e805600fb0aa6e9d4a7ebc9a1a41d3c64e3 100644 (file)
@@ -245,7 +245,6 @@ BY_HAND = (
 MULTIPLE_COPYRIGHT_HEADERS = (
     "gdb/doc/gdb.texinfo",
     "gdb/doc/refcard.tex",
-    "gdb/gdbarch.sh",
     "gdb/syscalls/update-netbsd.sh",
 )
 
index d9d81b7d386c936955b8e402a6d90bd6df0cb1b7..b7beb73d36d1166924f8f410441adf7a4f8373e5 100644 (file)
@@ -20,7 +20,9 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-/* This file was created with the aid of ``gdbarch.py''.  */
+/* To regenerate this file, run:
+   ./gdbarch.py
+*/
 
 
 
index 3f7a1e3578913a8db7d5791d47d1cdfc602ab191..55dd602b27ffd861240bccd708a4e0e363b918b2 100644 (file)
@@ -20,7 +20,9 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-/* This file was created with the aid of ``gdbarch.py''.  */
+/* To regenerate this file, run:
+   ./gdbarch.py
+*/
 
 
 /* Maintain the struct gdbarch object.  */
index 9b538a7d5c61d7d3a3c9a623f3e1d876d77e9184..3bd6400355e3589f75c12a97543e7bfc25ad1adf 100755 (executable)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import textwrap
+import gdbcopyright
 
 # All the components created in gdbarch-components.py.
 components = []
 
-
 def join_type_and_name(t, n):
     "Combine the type T and the name N into a C declaration."
     if t.endswith("*") or t.endswith("&"):
@@ -161,30 +161,9 @@ class Method(Function):
 with open("gdbarch-components.py") as fd:
     exec(fd.read())
 
-copyright = """/* *INDENT-OFF* */ /* THIS FILE IS GENERATED -*- buffer-read-only: t -*- */
-/* vi:set ro: */
-
-/* Dynamic architecture support for GDB, the GNU debugger.
-
-   Copyright (C) 1998-2022 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* This file was created with the aid of ``gdbarch.py''.  */
-"""
+copyright = gdbcopyright.copyright(
+    "gdbarch.py", "Dynamic architecture support for GDB, the GNU debugger."
+)
 
 
 def info(c):
diff --git a/gdb/gdbcopyright.py b/gdb/gdbcopyright.py
new file mode 100644 (file)
index 0000000..9526eac
--- /dev/null
@@ -0,0 +1,52 @@
+# Copyright constant for Python code to use.
+#
+# Copyright (C) 2022 Free Software Foundation, Inc.
+#
+# This file is part of GDB.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+def copyright(tool, description):
+    # Search the tool source itself for the correct copyright years.
+    with open(tool, 'r') as f:
+        for line in f:
+            if line.startswith('# Copyright (C) '):
+                dateline = line[1:].strip()
+                break
+    return f"""/* *INDENT-OFF* */ /* THIS FILE IS GENERATED -*- buffer-read-only: t -*- */
+/* vi:set ro: */
+
+/* {description}
+
+   {dateline}
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* To regenerate this file, run:
+   ./{tool}
+*/
+"""