Skip to content

Commit 7a02e95

Browse files
authored
Merge pull request #20475 from mikeash/remove-swiftprivate-swiftdarwin-dependency-5.0
[Stdlib] Remove SwiftPrivate's dependency on Darwin.
2 parents a950321 + 8e418db commit 7a02e95

File tree

4 files changed

+38
-28
lines changed

4 files changed

+38
-28
lines changed

stdlib/private/SwiftPrivate/IO.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
import SwiftShims
14-
import SwiftOverlayShims
1514

1615
public struct _FDInputStream {
1716
public let fd: CInt

stdlib/public/SwiftShims/LibcOverlayShims.h

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ typedef int mode_t;
2929
#include <semaphore.h>
3030
#include <sys/ioctl.h>
3131
#include <sys/types.h>
32-
#include <unistd.h>
3332
#endif
3433

3534
#include <errno.h>
@@ -114,32 +113,6 @@ int static inline _swift_stdlib_openat(int fd, const char *path, int oflag,
114113
}
115114
#endif
116115

117-
static inline __swift_ssize_t
118-
_swift_stdlib_read(int fd, void *buf, size_t nbyte) {
119-
#if defined(_WIN32)
120-
return _read(fd, buf, nbyte);
121-
#else
122-
return read(fd, buf, nbyte);
123-
#endif
124-
}
125-
126-
static inline __swift_ssize_t
127-
_swift_stdlib_write(int fd, const void *buf, size_t nbyte) {
128-
#if defined(_WIN32)
129-
return _write(fd, buf, nbyte);
130-
#else
131-
return write(fd, buf, nbyte);
132-
#endif
133-
}
134-
135-
static inline int _swift_stdlib_close(int fd) {
136-
#if defined(_WIN32)
137-
return _close(fd);
138-
#else
139-
return close(fd);
140-
#endif
141-
}
142-
143116
#if __has_feature(nullability)
144117
#pragma clang assume_nonnull end
145118
#endif

stdlib/public/SwiftShims/LibcShims.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,14 @@ static inline void _swift_stdlib_free(void *ptr) {
6262
free(ptr);
6363
}
6464

65+
// <unistd.h>
66+
SWIFT_RUNTIME_STDLIB_SPI
67+
__swift_ssize_t _swift_stdlib_read(int fd, void *buf, __swift_size_t nbyte);
68+
SWIFT_RUNTIME_STDLIB_SPI
69+
__swift_ssize_t _swift_stdlib_write(int fd, const void *buf, __swift_size_t nbyte);
70+
SWIFT_RUNTIME_STDLIB_SPI
71+
int _swift_stdlib_close(int fd);
72+
6573
// String handling <string.h>
6674
SWIFT_READONLY
6775
static inline __swift_size_t _swift_stdlib_strlen(const char *s) {

stdlib/public/stubs/LibcShims.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
#include <stdio.h>
2525
#include <sys/types.h>
26+
#include <unistd.h>
2627

2728
#include <type_traits>
2829

@@ -50,3 +51,32 @@ __swift_size_t swift::_swift_stdlib_fwrite_stdout(const void *ptr,
5051
__swift_size_t nitems) {
5152
return fwrite(ptr, size, nitems, stdout);
5253
}
54+
55+
SWIFT_RUNTIME_STDLIB_SPI
56+
__swift_ssize_t
57+
swift::_swift_stdlib_read(int fd, void *buf, __swift_size_t nbyte) {
58+
#if defined(_WIN32)
59+
return _read(fd, buf, nbyte);
60+
#else
61+
return read(fd, buf, nbyte);
62+
#endif
63+
}
64+
65+
SWIFT_RUNTIME_STDLIB_SPI
66+
__swift_ssize_t
67+
swift::_swift_stdlib_write(int fd, const void *buf, __swift_size_t nbyte) {
68+
#if defined(_WIN32)
69+
return _write(fd, buf, nbyte);
70+
#else
71+
return write(fd, buf, nbyte);
72+
#endif
73+
}
74+
75+
SWIFT_RUNTIME_STDLIB_SPI
76+
int swift::_swift_stdlib_close(int fd) {
77+
#if defined(_WIN32)
78+
return _close(fd);
79+
#else
80+
return close(fd);
81+
#endif
82+
}

0 commit comments

Comments
 (0)