aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-09-14 08:48:22 -0600
committerTom Tromey <tom@tromey.com>2018-09-17 08:43:12 -0600
commite6cd1dc1e6c0d081382ee21c156b205204efc75b (patch)
tree38f09c61ca5b3db2557cf6a7caa2e14d23efccc1
parentc12d9fa2afe7abcbe407a00e15719e1a1350c2a7 (diff)
downloadfsf-binutils-gdb-e6cd1dc1e6c0d081382ee21c156b205204efc75b.zip
fsf-binutils-gdb-e6cd1dc1e6c0d081382ee21c156b205204efc75b.tar.gz
fsf-binutils-gdb-e6cd1dc1e6c0d081382ee21c156b205204efc75b.tar.bz2
Update get_standard_cache_dir for macOS
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-17 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-17 Tom Tromey <tom@tromey.com> * gdb.texinfo (Index Files): Update for cache directory change on macOS.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/common/pathstuff.c10
-rw-r--r--gdb/common/pathstuff.h10
-rw-r--r--gdb/doc/ChangeLog5
-rw-r--r--gdb/doc/gdb.texinfo12
5 files changed, 35 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7fb64d6..673d35b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2018-09-17 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-17 Simon Marchi <simon.marchi@polymtl.ca>
PR python/23669
diff --git a/gdb/common/pathstuff.c b/gdb/common/pathstuff.c
index 2d9dcb2..3dd58e3 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 d1aa6b3..a43b963 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 6d75664..dc8f392 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2018-09-17 Tom Tromey <tom@tromey.com>
+
+ * gdb.texinfo (Index Files): Update for cache directory change on
+ macOS.
+
2018-09-16 Tom Tromey <tom@tromey.com>
* python.texi (Basic Python): Update docs for find_pc_line,
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index efbec3d..96fa77d 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 some systems, the default may
+differ according to local convention.
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.