From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: [PATCH] Update get_standard_cache_dir for macOS
Date: Fri, 14 Sep 2018 14:59:00 -0000 [thread overview]
Message-ID: <20180914145938.12186-1-tom@tromey.com> (raw)
On macOS the usual cache directory is ~/Library/Caches. This patch
changes get_standard_cache_dir to use that instead of XDG.
gdb/ChangeLog
2018-09-14 Tom Tromey <tom@tromey.com>
* common/pathstuff.c (get_standard_cache_dir): Use
~/Library/Caches on macOS.
* common/pathstuff.h (get_standard_cache_dir): Update comment.
gdb/doc/ChangeLog
2018-09-14 Tom Tromey <tom@tromey.com>
* gdb.texinfo (Index Files): Update for cache directory change on
macOS.
---
gdb/ChangeLog | 6 ++++++
gdb/common/pathstuff.c | 10 +++++++++-
gdb/common/pathstuff.h | 10 +++++++---
gdb/doc/ChangeLog | 5 +++++
gdb/doc/gdb.texinfo | 12 ++++++++----
5 files changed, 35 insertions(+), 8 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 49bcd9ff8a..59b47bd9aa 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2018-09-14 Tom Tromey <tom@tromey.com>
+
+ * common/pathstuff.c (get_standard_cache_dir): Use
+ ~/Library/Caches on macOS.
+ * common/pathstuff.h (get_standard_cache_dir): Update comment.
+
2018-09-14 Tom Tromey <tom@tromey.com>
* infcall.c (call_function_by_hand_dummy): Remove unnecessary
diff --git a/gdb/common/pathstuff.c b/gdb/common/pathstuff.c
index 2d9dcb25d4..3dd58e31aa 100644
--- a/gdb/common/pathstuff.c
+++ b/gdb/common/pathstuff.c
@@ -164,6 +164,13 @@ contains_dir_separator (const char *path)
std::string
get_standard_cache_dir ()
{
+#ifdef __APPLE__
+#define HOME_CACHE_DIR "Library/Caches"
+#else
+#define HOME_CACHE_DIR ".cache"
+#endif
+
+#ifndef __APPLE__
char *xdg_cache_home = getenv ("XDG_CACHE_HOME");
if (xdg_cache_home != NULL)
{
@@ -171,13 +178,14 @@ get_standard_cache_dir ()
gdb::unique_xmalloc_ptr<char> abs (gdb_abspath (xdg_cache_home));
return string_printf ("%s/gdb", abs.get ());
}
+#endif
char *home = getenv ("HOME");
if (home != NULL)
{
/* Make sure the path is absolute and tilde-expanded. */
gdb::unique_xmalloc_ptr<char> abs (gdb_abspath (home));
- return string_printf ("%s/.cache/gdb", abs.get ());
+ return string_printf ("%s/" HOME_CACHE_DIR "/gdb", abs.get ());
}
return {};
diff --git a/gdb/common/pathstuff.h b/gdb/common/pathstuff.h
index d1aa6b306c..a43b963651 100644
--- a/gdb/common/pathstuff.h
+++ b/gdb/common/pathstuff.h
@@ -53,10 +53,14 @@ extern bool contains_dir_separator (const char *path);
/* Get the usual user cache directory for the current platform.
On Linux, it follows the XDG Base Directory specification: use
- $XDG_CACHE_HOME/gdb if the XDG_CACHE_HOME environment variable is defined,
- otherwise $HOME/.cache. The return value is absolute and tilde-expanded.
+ $XDG_CACHE_HOME/gdb if the XDG_CACHE_HOME environment variable is
+ defined, otherwise $HOME/.cache.
- Return an empty string if neither XDG_CACHE_HOME or HOME are defined. */
+ On macOS, it follows the local convention and uses
+ ~/Library/Caches/gdb.
+
+ The return value is absolute and tilde-expanded. Return an empty
+ string if neither XDG_CACHE_HOME (on Linux) or HOME are defined. */
extern std::string get_standard_cache_dir ();
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 1a5c70bfc8..bb494362bc 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2018-09-14 Tom Tromey <tom@tromey.com>
+
+ * gdb.texinfo (Index Files): Update for cache directory change on
+ macOS.
+
2018-09-13 Simon Marchi <simon.marchi@ericsson.com>
* python.texi (Objfiles In Python): Update gdb.objfiles() doc.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index efbec3debf..ad090ba17b 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -20128,10 +20128,14 @@ Enable or disable the use of the symbol index cache.
@item set index-cache directory @var{directory}
@itemx show index-cache directory
-Set/show the directory where index files will be saved. By default, the index
-is cached in the @file{gdb} subdirectory of the directory pointed to by the
-@env{XDG_CACHE_HOME} environment variable, if it is defined, else in the
-@file{.cache/gdb} subdirectory of your home directory.
+Set/show the directory where index files will be saved.
+
+The default value for this directory depends on the host platform. On
+most systems, the index is cached in the @file{gdb} subdirectory of
+the directory pointed to by the @env{XDG_CACHE_HOME} environment
+variable, if it is defined, else in the @file{.cache/gdb} subdirectory
+of your home directory. However, on macOS, the index is cached in the
+@file{~/Library/Caches/gdb/}.
There is no limit on the disk space used by index cache. It is perfectly safe
to delete the content of that directory to free up disk space.
--
2.17.1
next reply other threads:[~2018-09-14 14:59 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-14 14:59 Tom Tromey [this message]
2018-09-14 18:39 ` Eli Zaretskii
2018-09-14 18:46 ` Tom Tromey
2018-09-14 18:56 ` Eli Zaretskii
2018-09-14 19:07 ` Tom Tromey
2018-09-14 20:03 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180914145938.12186-1-tom@tromey.com \
--to=tom@tromey.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox