Hi Iain,
> This patch merges the D front-end implementation with upstream dmd
> 52844d4b1, as well as the D runtime libraries with druntime dbd0c874,
> and phobos 896b1d0e1, including the latest features and bug-fixes ahead of
> the 2.099.0-beta1 release.
this patch broke Solaris bootstrap:
/vol/gcc/src/hg/master/local/libphobos/libdruntime/core/sys/posix/sys/ipc.d:193:5:
error: static assert: "Unsupported platform"
193 | static assert(false, "Unsupported platform");
| ^
The attached patch fixes this. Tested on i386-pc-solaris2.11 and
sparc-sun-solaris2.11.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
diff --git a/libphobos/libdruntime/core/sys/posix/sys/ipc.d b/libphobos/libdruntime/core/sys/posix/sys/ipc.d
--- a/libphobos/libdruntime/core/sys/posix/sys/ipc.d
+++ b/libphobos/libdruntime/core/sys/posix/sys/ipc.d
@@ -188,6 +188,31 @@ else version (DragonFlyBSD)
enum IPC_SET = 1;
enum IPC_STAT = 2;
}
+else version (Solaris)
+{
+ struct ipc_perm
+ {
+ uid_t uid;
+ gid_t gid;
+ uid_t cuid;
+ gid_t cgid;
+ mode_t mode;
+ uint seq;
+ key_t key;
+ version (D_LP64) {} else
+ int[4] pad;
+ }
+
+ enum IPC_CREAT = 0x0200;
+ enum IPC_EXCL = 0x0400;
+ enum IPC_NOWAIT = 0x0800;
+
+ enum key_t IPC_PRIVATE = 0;
+
+ enum IPC_RMID = 10;
+ enum IPC_SET = 11;
+ enum IPC_STAT = 12;
+}
else
{
static assert(false, "Unsupported platform");
@@ -233,6 +258,10 @@ else version (CRuntime_UClibc)
{
key_t ftok(const scope char*, int);
}
+else version (Solaris)
+{
+ key_t ftok(const scope char*, int);
+}
else
{
static assert(false, "Unsupported platform");