[libphobos] Committed merge with upstream phobos 428460ddd

Message ID CABOHX+e-jbMYKMw84vkyy-rU46agOJqucftVrq02VmgVWBN=gA@mail.gmail.com
State New
Headers show
Series
  • [libphobos] Committed merge with upstream phobos 428460ddd
Related show

Commit Message

Iain Buclaw April 21, 2019, 10:23 a.m.
Hi,

This patch merges the libphobos library with upstream phobos 428460ddd.

Defines growDownwards on SPARC64, fixing PR d/90064, and backports
another fix to std.process, allowing permissions tests to be skipped
when running as root.

Bootstrapped and regression tested on x86_64-linux-gnu.

Committed to trunk as r270483.

-- 
Iain
---

Patch

diff --git a/libphobos/src/MERGE b/libphobos/src/MERGE
index b4d44b55624..3935c059403 100644
--- a/libphobos/src/MERGE
+++ b/libphobos/src/MERGE
@@ -1,4 +1,4 @@ 
-cf95639ffd9ed6f3b9d10d98461b2fbd31615757
+428460ddd8087fa28815e613ff04facb51108a7b
 
 The first line of this file holds the git revision number of the last
 merge done from the dlang/phobos repository.
diff --git a/libphobos/src/std/experimental/allocator/building_blocks/region.d b/libphobos/src/std/experimental/allocator/building_blocks/region.d
index 3d8431c23ca..43dfdb788e5 100644
--- a/libphobos/src/std/experimental/allocator/building_blocks/region.d
+++ b/libphobos/src/std/experimental/allocator/building_blocks/region.d
@@ -395,6 +395,7 @@  struct InSituRegion(size_t size, size_t minAlign = platformAlignment)
     else version (RISCV32) enum growDownwards = Yes.growDownwards;
     else version (RISCV64) enum growDownwards = Yes.growDownwards;
     else version (SPARC) enum growDownwards = Yes.growDownwards;
+    else version (SPARC64) enum growDownwards = Yes.growDownwards;
     else version (SystemZ) enum growDownwards = Yes.growDownwards;
     else static assert(0, "Dunno how the stack grows on this architecture.");
 
diff --git a/libphobos/src/std/process.d b/libphobos/src/std/process.d
index a1cac2c9fdf..b0310a870d9 100644
--- a/libphobos/src/std/process.d
+++ b/libphobos/src/std/process.d
@@ -1188,13 +1188,16 @@  version (Posix) @system unittest
     // can't run in directory if user does not have search permission on this directory
     version (Posix)
     {
-        import core.sys.posix.sys.stat : S_IRUSR;
-        auto directoryNoSearch = uniqueTempPath();
-        mkdir(directoryNoSearch);
-        scope(exit) rmdirRecurse(directoryNoSearch);
-        setAttributes(directoryNoSearch, S_IRUSR);
-        assertThrown!ProcessException(spawnProcess(prog.path, null, Config.none, directoryNoSearch));
-        assertThrown!ProcessException(spawnProcess(prog.path, null, Config.detached, directoryNoSearch));
+        if (core.sys.posix.unistd.getuid() != 0)
+        {
+            import core.sys.posix.sys.stat : S_IRUSR;
+            auto directoryNoSearch = uniqueTempPath();
+            mkdir(directoryNoSearch);
+            scope(exit) rmdirRecurse(directoryNoSearch);
+            setAttributes(directoryNoSearch, S_IRUSR);
+            assertThrown!ProcessException(spawnProcess(prog.path, null, Config.none, directoryNoSearch));
+            assertThrown!ProcessException(spawnProcess(prog.path, null, Config.detached, directoryNoSearch));
+        }
     }
 }