449 lines
14 KiB
Diff
449 lines
14 KiB
Diff
|
diff -Nurp a/libphobos/libdruntime/core/sys/posix/fcntl.d b/libphobos/libdruntime/core/sys/posix/fcntl.d
|
||
|
--- a/libphobos/libdruntime/core/sys/posix/fcntl.d 2020-01-01 00:00:00.000000000 +0900
|
||
|
+++ b/libphobos/libdruntime/core/sys/posix/fcntl.d 2020-01-01 00:00:00.000000000 +0900
|
||
|
@@ -779,7 +779,102 @@ else version (CRuntime_Bionic)
|
||
|
}
|
||
|
else version (CRuntime_Musl)
|
||
|
{
|
||
|
- enum {
|
||
|
+ version (X86_64)
|
||
|
+ {
|
||
|
+ enum
|
||
|
+ {
|
||
|
+ O_DIRECTORY = 0x010000, // octal 0200000
|
||
|
+ O_NOFOLLOW = 0x020000, // octal 0400000
|
||
|
+ O_DIRECT = 0x004000, // octal 040000
|
||
|
+ O_LARGEFILE = 0,
|
||
|
+ O_TMPFILE = 0x410000, // octal 020200000
|
||
|
+
|
||
|
+ F_GETLK = 5,
|
||
|
+ F_SETLK = 6,
|
||
|
+ F_SETLKW = 7,
|
||
|
+ }
|
||
|
+ }
|
||
|
+ // Note: Definitions for i386 are in arch/generic/bits/fcntl.h
|
||
|
+ else version (X86)
|
||
|
+ {
|
||
|
+ enum
|
||
|
+ {
|
||
|
+ O_DIRECTORY = 0x010000, // octal 0200000
|
||
|
+ O_NOFOLLOW = 0x020000, // octal 0400000
|
||
|
+ O_DIRECT = 0x004000, // octal 040000
|
||
|
+ O_LARGEFILE = 0x008000, // octal 0100000
|
||
|
+ O_TMPFILE = 0x410000, // octal 020200000
|
||
|
+
|
||
|
+ F_GETLK = 12,
|
||
|
+ F_SETLK = 13,
|
||
|
+ F_SETLKW = 14,
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else version (ARM)
|
||
|
+ {
|
||
|
+ enum
|
||
|
+ {
|
||
|
+ O_DIRECTORY = 0x004000, // octal 040000
|
||
|
+ O_NOFOLLOW = 0x008000, // octal 0100000
|
||
|
+ O_DIRECT = 0x010000, // octal 0200000
|
||
|
+ O_LARGEFILE = 0x020000, // octal 0400000
|
||
|
+ O_TMPFILE = 0x404000, // octal 020040000
|
||
|
+
|
||
|
+ F_GETLK = 12,
|
||
|
+ F_SETLK = 13,
|
||
|
+ F_SETLKW = 14,
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else version (AArch64)
|
||
|
+ {
|
||
|
+ enum
|
||
|
+ {
|
||
|
+ O_DIRECTORY = 0x004000, // octal 040000
|
||
|
+ O_NOFOLLOW = 0x008000, // octal 0100000
|
||
|
+ O_DIRECT = 0x010000, // octal 0200000
|
||
|
+ O_LARGEFILE = 0x020000, // octal 0400000
|
||
|
+ O_TMPFILE = 0x404000, // octal 020040000
|
||
|
+
|
||
|
+ F_GETLK = 5,
|
||
|
+ F_SETLK = 6,
|
||
|
+ F_SETLKW = 7,
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else version (SystemZ)
|
||
|
+ {
|
||
|
+ enum
|
||
|
+ {
|
||
|
+ O_DIRECTORY = 0x010000, // octal 0200000
|
||
|
+ O_NOFOLLOW = 0x020000, // octal 0400000
|
||
|
+ O_DIRECT = 0x004000, // octal 040000
|
||
|
+ O_LARGEFILE = 0x008000, // octal 0100000
|
||
|
+ O_TMPFILE = 0x410000, // octal 020200000
|
||
|
+
|
||
|
+ F_GETLK = 5,
|
||
|
+ F_SETLK = 6,
|
||
|
+ F_SETLKW = 7,
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else version (PPC64)
|
||
|
+ {
|
||
|
+ enum
|
||
|
+ {
|
||
|
+ O_DIRECTORY = 0x004000, // octal 040000
|
||
|
+ O_NOFOLLOW = 0x008000, // octal 0100000
|
||
|
+ O_DIRECT = 0x020000, // octal 0400000
|
||
|
+ O_LARGEFILE = 0x010000, // octal 0200000
|
||
|
+ O_TMPFILE = 0x410000, // octal 020200000
|
||
|
+
|
||
|
+ F_GETLK = 5,
|
||
|
+ F_SETLK = 6,
|
||
|
+ F_SETLKW = 7,
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else
|
||
|
+ static assert(0, "Platform not supported");
|
||
|
+
|
||
|
+ enum
|
||
|
+ {
|
||
|
O_CREAT = 0x40, // octal 0100
|
||
|
O_EXCL = 0x80, // octal 0200
|
||
|
O_NOCTTY = 0x100, // octal 0400
|
||
|
@@ -790,16 +885,11 @@ else version (CRuntime_Musl)
|
||
|
O_DSYNC = 0x1000, // octal 010000
|
||
|
O_SYNC = 0x101000, // octal 04010000
|
||
|
O_RSYNC = O_SYNC,
|
||
|
- O_DIRECTORY = 0x10000,
|
||
|
- O_NOFOLLOW = 0x20000,
|
||
|
O_CLOEXEC = 0x80000,
|
||
|
|
||
|
O_ASYNC = 0x2000,
|
||
|
- O_DIRECT = 0x4000,
|
||
|
- O_LARGEFILE = 0,
|
||
|
O_NOATIME = 0x40000,
|
||
|
O_PATH = 0x200000,
|
||
|
- O_TMPFILE = 0x410000,
|
||
|
O_NDELAY = O_NONBLOCK,
|
||
|
O_SEARCH = O_PATH,
|
||
|
O_EXEC = O_PATH,
|
||
|
@@ -809,19 +899,19 @@ else version (CRuntime_Musl)
|
||
|
O_WRONLY = 01,
|
||
|
O_RDWR = 02,
|
||
|
}
|
||
|
- enum {
|
||
|
+ enum
|
||
|
+ {
|
||
|
F_DUPFD = 0,
|
||
|
F_GETFD = 1,
|
||
|
F_SETFD = 2,
|
||
|
F_GETFL = 3,
|
||
|
F_SETFL = 4,
|
||
|
- F_GETLK = 5,
|
||
|
- F_SETLK = 6,
|
||
|
- F_SETLKW = 7,
|
||
|
+ // F_GETLK, F_SETLK, F_SETLKW are arch-specific
|
||
|
F_SETOWN = 8,
|
||
|
F_GETOWN = 9,
|
||
|
}
|
||
|
- enum {
|
||
|
+ enum
|
||
|
+ {
|
||
|
F_RDLCK = 0,
|
||
|
F_WRLCK = 1,
|
||
|
F_UNLCK = 2,
|
||
|
diff -Nurp a/libphobos/libdruntime/core/sys/posix/semaphore.d b/libphobos/libdruntime/core/sys/posix/semaphore.d
|
||
|
--- a/libphobos/libdruntime/core/sys/posix/semaphore.d 2020-01-01 00:00:00.000000000 +0900
|
||
|
+++ b/libphobos/libdruntime/core/sys/posix/semaphore.d 2020-01-01 00:00:00.000000000 +0900
|
||
|
@@ -143,8 +143,10 @@ else version (CRuntime_Bionic)
|
||
|
else version (CRuntime_Musl)
|
||
|
{
|
||
|
struct sem_t {
|
||
|
- int[4*long.sizeof/int.sizeof] __val;
|
||
|
+ int[4*c_long.sizeof/int.sizeof] __val;
|
||
|
}
|
||
|
+
|
||
|
+ enum SEM_FAILED = (sem_t*).init;
|
||
|
}
|
||
|
else version (CRuntime_UClibc)
|
||
|
{
|
||
|
diff -Nurp a/libphobos/libdruntime/core/sys/posix/sys/stat.d b/libphobos/libdruntime/core/sys/posix/sys/stat.d
|
||
|
--- a/libphobos/libdruntime/core/sys/posix/sys/stat.d 2020-01-01 00:00:00.000000000 +0900
|
||
|
+++ b/libphobos/libdruntime/core/sys/posix/sys/stat.d 2020-01-01 00:00:00.000000000 +0900
|
||
|
@@ -1587,31 +1587,225 @@ else version (CRuntime_Musl)
|
||
|
S_ISGID = 0x400, // octal 02000
|
||
|
S_ISVTX = 0x200, // octal 01000
|
||
|
}
|
||
|
- struct stat_t {
|
||
|
- dev_t st_dev;
|
||
|
- ino_t st_ino;
|
||
|
- nlink_t st_nlink;
|
||
|
-
|
||
|
- mode_t st_mode;
|
||
|
- uid_t st_uid;
|
||
|
- gid_t st_gid;
|
||
|
- uint __pad0;
|
||
|
- dev_t st_rdev;
|
||
|
- off_t st_size;
|
||
|
- blksize_t st_blksize;
|
||
|
- blkcnt_t st_blocks;
|
||
|
-
|
||
|
- timespec st_atim;
|
||
|
- timespec st_mtim;
|
||
|
- timespec st_ctim;
|
||
|
- extern(D) @safe @property inout pure nothrow
|
||
|
- {
|
||
|
- ref inout(time_t) st_atime() return { return st_atim.tv_sec; }
|
||
|
- ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; }
|
||
|
- ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; }
|
||
|
+ version (ARM)
|
||
|
+ {
|
||
|
+ struct stat_t
|
||
|
+ {
|
||
|
+ dev_t st_dev;
|
||
|
+ int __st_dev_padding;
|
||
|
+ c_long __st_ino_truncated;
|
||
|
+ mode_t st_mode;
|
||
|
+ nlink_t st_nlink;
|
||
|
+
|
||
|
+ uid_t st_uid;
|
||
|
+ gid_t st_gid;
|
||
|
+ dev_t st_rdev;
|
||
|
+ int __st_rdev_padding;
|
||
|
+ off_t st_size;
|
||
|
+ blksize_t st_blksize;
|
||
|
+ blkcnt_t st_blocks;
|
||
|
+
|
||
|
+ timespec st_atim;
|
||
|
+ timespec st_mtim;
|
||
|
+ timespec st_ctim;
|
||
|
+ ino_t st_ino;
|
||
|
+
|
||
|
+ extern(D) @safe @property inout pure nothrow
|
||
|
+ {
|
||
|
+ ref inout(time_t) st_atime() return { return st_atim.tv_sec; }
|
||
|
+ ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; }
|
||
|
+ ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else version (AArch64)
|
||
|
+ {
|
||
|
+ struct stat_t
|
||
|
+ {
|
||
|
+ dev_t st_dev;
|
||
|
+ ino_t st_ino;
|
||
|
+ mode_t st_mode;
|
||
|
+ nlink_t st_nlink;
|
||
|
+
|
||
|
+ uid_t st_uid;
|
||
|
+ gid_t st_gid;
|
||
|
+ dev_t st_rdev;
|
||
|
+ c_ulong __pad;
|
||
|
+ off_t st_size;
|
||
|
+ blksize_t st_blksize;
|
||
|
+ int __pad2;
|
||
|
+ blkcnt_t st_blocks;
|
||
|
+
|
||
|
+ timespec st_atim;
|
||
|
+ timespec st_mtim;
|
||
|
+ timespec st_ctim;
|
||
|
+ uint[2] __unused;
|
||
|
+
|
||
|
+ extern(D) @safe @property inout pure nothrow
|
||
|
+ {
|
||
|
+ ref inout(time_t) st_atime() return { return st_atim.tv_sec; }
|
||
|
+ ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; }
|
||
|
+ ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else version (X86_64)
|
||
|
+ {
|
||
|
+ struct stat_t
|
||
|
+ {
|
||
|
+ dev_t st_dev;
|
||
|
+ ino_t st_ino;
|
||
|
+ nlink_t st_nlink;
|
||
|
+
|
||
|
+ mode_t st_mode;
|
||
|
+ uid_t st_uid;
|
||
|
+ gid_t st_gid;
|
||
|
+ uint __pad0;
|
||
|
+ dev_t st_rdev;
|
||
|
+ off_t st_size;
|
||
|
+ blksize_t st_blksize;
|
||
|
+ blkcnt_t st_blocks;
|
||
|
+
|
||
|
+ timespec st_atim;
|
||
|
+ timespec st_mtim;
|
||
|
+ timespec st_ctim;
|
||
|
+
|
||
|
+ c_long[3] __unused;
|
||
|
+
|
||
|
+ extern(D) @safe @property inout pure nothrow
|
||
|
+ {
|
||
|
+ ref inout(time_t) st_atime() return { return st_atim.tv_sec; }
|
||
|
+ ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; }
|
||
|
+ ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else version (X86)
|
||
|
+ {
|
||
|
+ struct stat_t
|
||
|
+ {
|
||
|
+ dev_t st_dev;
|
||
|
+ int __st_dev_padding;
|
||
|
+ c_long __st_ino_truncated;
|
||
|
+ mode_t st_mode;
|
||
|
+ nlink_t st_nlink;
|
||
|
+
|
||
|
+ uid_t st_uid;
|
||
|
+ gid_t st_gid;
|
||
|
+ dev_t st_rdev;
|
||
|
+ int __st_rdev_padding;
|
||
|
+ off_t st_size;
|
||
|
+ blksize_t st_blksize;
|
||
|
+ blkcnt_t st_blocks;
|
||
|
+
|
||
|
+ timespec st_atim;
|
||
|
+ timespec st_mtim;
|
||
|
+ timespec st_ctim;
|
||
|
+ ino_t st_ino;
|
||
|
+
|
||
|
+ extern(D) @safe @property inout pure nothrow
|
||
|
+ {
|
||
|
+ ref inout(time_t) st_atime() return { return st_atim.tv_sec; }
|
||
|
+ ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; }
|
||
|
+ ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; }
|
||
|
+ }
|
||
|
}
|
||
|
- long[3] __unused;
|
||
|
}
|
||
|
+ else version (MIPS64)
|
||
|
+ {
|
||
|
+ struct stat_t
|
||
|
+ {
|
||
|
+ dev_t st_dev;
|
||
|
+ int[3] __pad1;
|
||
|
+ ino_t st_ino;
|
||
|
+ mode_t st_mode;
|
||
|
+ nlink_t st_nlink;
|
||
|
+
|
||
|
+ uid_t st_uid;
|
||
|
+ gid_t st_gid;
|
||
|
+ dev_t st_rdev;
|
||
|
+ uint[2] __pad2;
|
||
|
+ off_t st_size;
|
||
|
+ int __pad3;
|
||
|
+
|
||
|
+ timespec st_atim;
|
||
|
+ timespec st_mtim;
|
||
|
+ timespec st_ctim;
|
||
|
+ blksize_t st_blksize;
|
||
|
+ uint __pad4;
|
||
|
+ blkcnt_t st_blocks;
|
||
|
+ int[14] __pad5;
|
||
|
+
|
||
|
+ extern(D) @safe @property inout pure nothrow
|
||
|
+ {
|
||
|
+ ref inout(time_t) st_atime() return { return st_atim.tv_sec; }
|
||
|
+ ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; }
|
||
|
+ ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else version (PPC64)
|
||
|
+ {
|
||
|
+ struct stat_t
|
||
|
+ {
|
||
|
+ dev_t st_dev;
|
||
|
+ ino_t st_ino;
|
||
|
+ nlink_t st_nlink;
|
||
|
+ mode_t st_mode;
|
||
|
+
|
||
|
+ uid_t st_uid;
|
||
|
+ gid_t st_gid;
|
||
|
+ dev_t st_rdev;
|
||
|
+ off_t st_size;
|
||
|
+ blksize_t st_blksize;
|
||
|
+ blkcnt_t st_blocks;
|
||
|
+
|
||
|
+ timespec st_atim;
|
||
|
+ timespec st_mtim;
|
||
|
+ timespec st_ctim;
|
||
|
+ c_ulong[3] __unused;
|
||
|
+
|
||
|
+ extern(D) @safe @property inout pure nothrow
|
||
|
+ {
|
||
|
+ ref inout(time_t) st_atime() return { return st_atim.tv_sec; }
|
||
|
+ ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; }
|
||
|
+ ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else version (SystemZ)
|
||
|
+ {
|
||
|
+ struct stat_t
|
||
|
+ {
|
||
|
+ dev_t st_dev;
|
||
|
+ ino_t st_ino;
|
||
|
+ nlink_t st_nlink;
|
||
|
+ mode_t st_mode;
|
||
|
+
|
||
|
+ uid_t st_uid;
|
||
|
+ gid_t st_gid;
|
||
|
+ dev_t st_rdev;
|
||
|
+ off_t st_size;
|
||
|
+
|
||
|
+ timespec st_atim;
|
||
|
+ timespec st_mtim;
|
||
|
+ timespec st_ctim;
|
||
|
+
|
||
|
+ blksize_t st_blksize;
|
||
|
+ blkcnt_t st_blocks;
|
||
|
+ c_ulong[3] __unused;
|
||
|
+
|
||
|
+ extern(D) @safe @property inout pure nothrow
|
||
|
+ {
|
||
|
+ ref inout(time_t) st_atime() return { return st_atim.tv_sec; }
|
||
|
+ ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; }
|
||
|
+ ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ }
|
||
|
+ else
|
||
|
+ static assert("Unsupported platform");
|
||
|
+
|
||
|
private
|
||
|
{
|
||
|
extern (D) bool S_ISTYPE( mode_t mode, uint mask )
|
||
|
diff -Nurp a/libphobos/libdruntime/core/sys/posix/sys/types.d b/libphobos/libdruntime/core/sys/posix/sys/types.d
|
||
|
--- a/libphobos/libdruntime/core/sys/posix/sys/types.d 2020-01-08 00:00:00.000000000 +0900
|
||
|
+++ b/libphobos/libdruntime/core/sys/posix/sys/types.d 2020-01-08 00:00:00.000000000 +0900
|
||
|
@@ -112,8 +112,26 @@ version (CRuntime_Glibc)
|
||
|
}
|
||
|
else version (CRuntime_Musl)
|
||
|
{
|
||
|
- alias c_long blksize_t;
|
||
|
- alias c_ulong nlink_t;
|
||
|
+ version (AArch64)
|
||
|
+ {
|
||
|
+ alias int blksize_t;
|
||
|
+ alias uint nlink_t;
|
||
|
+ }
|
||
|
+ else version (MIPS64)
|
||
|
+ {
|
||
|
+ alias c_long blksize_t;
|
||
|
+ alias uint nlink_t;
|
||
|
+ }
|
||
|
+ else version (RISCV64)
|
||
|
+ {
|
||
|
+ alias int blksize_t;
|
||
|
+ alias uint nlink_t;
|
||
|
+ }
|
||
|
+ else
|
||
|
+ {
|
||
|
+ alias c_long blksize_t;
|
||
|
+ alias c_ulong nlink_t;
|
||
|
+ }
|
||
|
alias long dev_t;
|
||
|
alias long blkcnt_t;
|
||
|
alias ulong ino_t;
|