re PR d/90064 (InSituRegion lacks SPARC64 support)

PR d/90064
libphobos: Merge upstream phobos 428460ddd

Defines growDownwards on SPARC64, initial patch by Rainer Orth.

Backports another fix to std.process, allowing permissions tests to be
skipped when running as root.

Reviewed-on: https://github.com/dlang/phobos/pull/6962

From-SVN: r270483
This commit is contained in:
Iain Buclaw 2019-04-21 10:21:07 +00:00
parent 6d679a7d9d
commit 6397d8df30
3 changed files with 12 additions and 8 deletions

View File

@ -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.

View File

@ -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.");

View File

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