aboutsummaryrefslogtreecommitdiff
path: root/gdbserver/.dir-locals.el
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2020-02-28 18:08:08 +0000
committerAndrew Burgess <andrew.burgess@embecosm.com>2020-03-06 11:29:46 +0000
commit20ea4a609c44e5795a57c7b409e99442f8a44a0d (patch)
tree2fbed678519d627ff8f66818981e9d7727f9b0bd /gdbserver/.dir-locals.el
parent3c968de5c7d1719b2f9b538f2f7f5f5922e5f311 (diff)
downloadbinutils-20ea4a609c44e5795a57c7b409e99442f8a44a0d.zip
binutils-20ea4a609c44e5795a57c7b409e99442f8a44a0d.tar.gz
binutils-20ea4a609c44e5795a57c7b409e99442f8a44a0d.tar.bz2
gdbserver/gdbsupport: Add .dir-locals.el file
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.
Diffstat (limited to 'gdbserver/.dir-locals.el')
-rw-r--r--gdbserver/.dir-locals.el41
1 files changed, 41 insertions, 0 deletions
diff --git a/gdbserver/.dir-locals.el b/gdbserver/.dir-locals.el
new file mode 100644
index 0000000..a69571a
--- /dev/null
+++ b/gdbserver/.dir-locals.el
@@ -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))
+ ))
+)