Remove obsolete coding for early macOS.
authorThomas Munro
Tue, 21 Feb 2023 20:53:15 +0000 (09:53 +1300)
committerThomas Munro
Tue, 21 Feb 2023 20:55:43 +0000 (09:55 +1300)
Commits 04cad8f7 and 0c088568 supported old macOS systems that didn't
define O_CLOEXEC or O_DSYNC yet, but those arrived in macOS releases
10.7 and 10.6 (respectively), which themselves reached EOL around a
decade ago.  We've already made use of other POSIX features that early
macOS vintages can't compile (for example commits 623cc673d2e15083).

A later commit will use O_CLOEXEC on POSIX systems so it would be
strange to pretend here that it's optional, and we might as well give
O_DSYNC the same treatment since the reference is also guarded by a test
for a macOS-specific macro, and we know that current Macs have it.

Discussion: https://postgr.es/m/CA%2BhUKGKb6FsAdQWcRL35KJsftv%2B9zXqQbzwkfRf1i0J2e57%2BhQ%40mail.gmail.com

src/backend/storage/file/fd.c

index 926d000f2ead6d0ad44e67f029cd4edf0f5d2d6d..ea690f05c69639eabded4f33dbe322151add5a61 100644 (file)
@@ -1025,7 +1025,9 @@ tryAgain:
     */
    StaticAssertStmt((PG_O_DIRECT &
                      (O_APPEND |
+                      O_CLOEXEC |
                       O_CREAT |
+                      O_DSYNC |
                       O_EXCL |
                       O_RDWR |
                       O_RDONLY |
@@ -1033,15 +1035,6 @@ tryAgain:
                       O_TRUNC |
                       O_WRONLY)) == 0,
                     "PG_O_DIRECT value collides with standard flag");
-#if defined(O_CLOEXEC)
-   StaticAssertStmt((PG_O_DIRECT & O_CLOEXEC) == 0,
-                    "PG_O_DIRECT value collides with O_CLOEXEC");
-#endif
-#if defined(O_DSYNC)
-   StaticAssertStmt((PG_O_DIRECT & O_DSYNC) == 0,
-                    "PG_O_DIRECT value collides with O_DSYNC");
-#endif
-
    fd = open(fileName, fileFlags & ~PG_O_DIRECT, fileMode);
 #else
    fd = open(fileName, fileFlags, fileMode);