gdbserver/gdbsupport: Add .dir-locals.el file
authorAndrew Burgess <andrew.burgess@embecosm.com>
Fri, 28 Feb 2020 18:08:08 +0000 (18:08 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Fri, 6 Mar 2020 11:29:46 +0000 (11:29 +0000)
Copy the .dir-locls.el file from gdb/ to gdbserver/ and gdbsupport/ so
that we get the GNU/GDB style when editing these files in Emacs.

I initially wanted to remove the (c-mode . ((mode . c++))) that
switches c-mode files into c++-mode as we store C++ code in *.cc files
in the gdbserver/ directory, unlike gdb/ where we use *.c, however, I
was forgetting about the header files - we still use *.h for our C++
header files, so for now I left the settings in place to open all C
files in c++-mode.

We now have three copies of this file, which are all identical.  It
would be nice if we could remove this duplication, however, for now we
haven't found a good way to do this.

Some options considered were:

  1. Use symlinks to only have one copy of the file.  This was
  rejected as not all targets support symlinks in the way.

  2. Have two of the .dir-locals.el files contain some mechanism by
  which the third copy of the file is sourced.  Though this would, in
  theory, be possible, it would involve some advanced Emacs scripting,
  would be fragile, and a maintenance burdon.

  3. Move the .dir-locals up into top level src/ directory, then use
  Emacs dir-locals directory pattern matching to only apply the rules
  for the three directories we care about.  The problem is that each
  directory has to be listed separately, so we still end up having to
  duplicate all the rules.

In the end, it was decided that having three copies of the file,
though not ideal, is probably easiest for now.  This was all discussed
in this mailing list thread:

  https://sourceware.org/ml/gdb-patches/2020-03/msg00024.html

The copyright date in the new files is left as for gdb/.dir-locals.el,
as the new files are a copy of the old, this is inline with this rule:

  https://sourceware.org/gdb/wiki/ContributionChecklist#Copyright_Header

gdb/ChangeLog:

* .dir-locals.el: Add a comment referencing the other copies of
this file.

gdbserver/ChangeLog:

* .dir-locals.el: New file.

gdbsupport/ChangeLog:

* .dir-locals.el: New file.

gdb/.dir-locals.el
gdb/ChangeLog
gdbserver/.dir-locals.el [new file with mode: 0644]
gdbserver/ChangeLog
gdbsupport/.dir-locals.el [new file with mode: 0644]
gdbsupport/ChangeLog

index 17df7e327fe34ef4867ceaefb8c21901687cc09a..a69571a23f17dbdeea8a07882e9dfc9a1e39fe05 100644 (file)
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+;; There are three copies of this file, one in each of gdb/,
+;; gdbserver/, and gdbsupport/.  If you edit any one of these then
+;; please replicate the changes in the other two copies.
+
 (
  (tcl-mode . ((tcl-indent-level . 4)
              (tcl-continued-indent-level . 4)
index ee0d10d8c98c40a2cc8f88b2cf01c8cc3e13996b..b3a5e0aa36953bbea4eba68fa32544d09333c1ab 100644 (file)
@@ -1,3 +1,8 @@
+2020-03-06  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * .dir-locals.el: Add a comment referencing the other copies of
+       this file.
+
 2020-03-05  John Baldwin  <jhb@FreeBSD.org>
 
        * fbsd-tdep.c (fbsd_make_corefile_notes): Use std::string for
diff --git a/gdbserver/.dir-locals.el b/gdbserver/.dir-locals.el
new file mode 100644 (file)
index 0000000..a69571a
--- /dev/null
@@ -0,0 +1,41 @@
+;; Emacs settings.
+;; Copyright (C) 2012-2020 Free Software Foundation, Inc.
+
+;; 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/>.
+
+;; There are three copies of this file, one in each of gdb/,
+;; gdbserver/, and gdbsupport/.  If you edit any one of these then
+;; please replicate the changes in the other two copies.
+
+(
+ (tcl-mode . ((tcl-indent-level . 4)
+             (tcl-continued-indent-level . 4)
+             (indent-tabs-mode . t)))
+ (nil . ((bug-reference-url-format . "http://sourceware.org/bugzilla/show_bug.cgi?id=%s")))
+ (c-mode . ((c-file-style . "GNU")
+           (mode . c++)
+           (indent-tabs-mode . t)
+           (tab-width . 8)
+           (c-basic-offset . 2)
+           (eval . (c-set-offset 'innamespace 0))
+           ))
+ (c++-mode . ((eval . (when (fboundp 'c-toggle-comment-style)
+                       (c-toggle-comment-style 1)))
+             (indent-tabs-mode . t)
+             (tab-width . 8)
+             (c-file-style . "GNU")
+             (c-basic-offset . 2)
+             (eval . (c-set-offset 'innamespace 0))
+             ))
+)
index 4e44a763cc3f2098fa692d50fcf3ba4d86298259..16346de8dec57146c3ce642f08a4a079ececf6c4 100644 (file)
@@ -1,3 +1,7 @@
+2020-03-06  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * .dir-locals.el: New file.
+
 2020-03-05  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
 
        * .gitattributes: New file.
diff --git a/gdbsupport/.dir-locals.el b/gdbsupport/.dir-locals.el
new file mode 100644 (file)
index 0000000..a69571a
--- /dev/null
@@ -0,0 +1,41 @@
+;; Emacs settings.
+;; Copyright (C) 2012-2020 Free Software Foundation, Inc.
+
+;; 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/>.
+
+;; There are three copies of this file, one in each of gdb/,
+;; gdbserver/, and gdbsupport/.  If you edit any one of these then
+;; please replicate the changes in the other two copies.
+
+(
+ (tcl-mode . ((tcl-indent-level . 4)
+             (tcl-continued-indent-level . 4)
+             (indent-tabs-mode . t)))
+ (nil . ((bug-reference-url-format . "http://sourceware.org/bugzilla/show_bug.cgi?id=%s")))
+ (c-mode . ((c-file-style . "GNU")
+           (mode . c++)
+           (indent-tabs-mode . t)
+           (tab-width . 8)
+           (c-basic-offset . 2)
+           (eval . (c-set-offset 'innamespace 0))
+           ))
+ (c++-mode . ((eval . (when (fboundp 'c-toggle-comment-style)
+                       (c-toggle-comment-style 1)))
+             (indent-tabs-mode . t)
+             (tab-width . 8)
+             (c-file-style . "GNU")
+             (c-basic-offset . 2)
+             (eval . (c-set-offset 'innamespace 0))
+             ))
+)
index 6bfd6768727c5538dade3c8b7a2dd5bb0a8bd421..04944a17b4ff2dc3bdbc9369aad7a86a97e508fa 100644 (file)
@@ -1,3 +1,7 @@
+2020-03-06  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * .dir-locals.el: New file.
+
 2020-03-05  Vyacheslav Petrishchev  <vyachemail@gmail.com>
 
        * configure.ac: Added call development.sh.