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

Reply via email to