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)
commit20ea4a609c44e5795a57c7b409e99442f8a44a0d
tree2fbed678519d627ff8f66818981e9d7727f9b0bd
parent3c968de5c7d1719b2f9b538f2f7f5f5922e5f311
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.
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