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
---
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));
+ }
}
}