Set /tmp first, then /var/tmp. /tmp is volatile on NetBSD and
/var/tmp not. This improves performance in the common use.
The downstream copy of GCC was patched for this preference
since 2015.

Remove occurence of /usr/tmp as it was never valid for NetBSD.
It was already activey disabled in the GCC manual page in 1996 and
in the GCC source code at least in 1998.

This change is not a matter of user-preference but Operating
System defaults that disagree with the libiberty detection plan.

No functional change for other Operataing Systems/environments.

libiberty/ChangeLog:

        * make-temp-file.c (choose_tmpdir): Honor NetBSD specific paths.
---
 libiberty/ChangeLog        | 4 ++++
 libiberty/make-temp-file.c | 8 +++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 106c107e91a..18b9357aaed 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,7 @@
+2020-03-18  Kamil Rytarowski  <n...@gmx.com>
+
+       * make-temp-file.c (choose_tmpdir): Honor NetBSD specific paths.
+
 2020-03-05  Egeyar Bagcioglu  <egeyar.bagcio...@oracle.com>

        * simple-object.c (handle_lto_debug_sections): Name
diff --git a/libiberty/make-temp-file.c b/libiberty/make-temp-file.c
index cb08c27af6f..674333f042b 100644
--- a/libiberty/make-temp-file.c
+++ b/libiberty/make-temp-file.c
@@ -129,10 +129,16 @@ choose_tmpdir (void)
        base = try_dir (P_tmpdir, base);
 #endif

-      /* Try /var/tmp, /usr/tmp, then /tmp.  */
+#if defined(__NetBSD__)
+      /* Try /tmp (volatile), then /var/tmp (non-volatile) on NetBSD.  */
+      base = try_dir (tmp, base);
+      base = try_dir (vartmp, base);
+#else
+      /* For others try /var/tmp, /usr/tmp, then /tmp.  */
       base = try_dir (vartmp, base);
       base = try_dir (usrtmp, base);
       base = try_dir (tmp, base);
+#endif

       /* If all else fails, use the current directory!  */
       if (base == 0)
--
2.25.0

Reply via email to