diff --git a/.gitlab/gen_ci.hs b/.gitlab/gen_ci.hs index 9510cf73103a264c4ca469df4c795de8d60a2392..a86dd3759b889ce90c36d969e83b2020e69599b9 100755 --- a/.gitlab/gen_ci.hs +++ b/.gitlab/gen_ci.hs @@ -419,7 +419,7 @@ opsysVariables AArch64 (Darwin {}) = ] opsysVariables Amd64 (Darwin {}) = mconcat [ "NIX_SYSTEM" =: "x86_64-darwin" - , "MACOSX_DEPLOYMENT_TARGET" =: "10.13" + , "MACOSX_DEPLOYMENT_TARGET" =: "11.0" -- "# Only Sierra and onwards supports clock_gettime. See #12858" , "ac_cv_func_clock_gettime" =: "no" -- # Only newer OS Xs support utimensat. See #17895 diff --git a/.gitlab/jobs.yaml b/.gitlab/jobs.yaml index 61ea32517c3f81b27524ca0eef640eecdc3ba3c2..c601a6502c8bfe36e7a255c3f5f9e4030db44a65 100644 --- a/.gitlab/jobs.yaml +++ b/.gitlab/jobs.yaml @@ -595,7 +595,7 @@ "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi ", "HADRIAN_ARGS": "--docs=no-sphinx-pdfs", "LANG": "en_US.UTF-8", - "MACOSX_DEPLOYMENT_TARGET": "10.13", + "MACOSX_DEPLOYMENT_TARGET": "11.0", "NIX_SYSTEM": "x86_64-darwin", "TEST_ENV": "x86_64-darwin-validate", "XZ_OPT": "-9", @@ -2895,7 +2895,7 @@ "HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx-pdfs", "IGNORE_PERF_FAILURES": "all", "LANG": "en_US.UTF-8", - "MACOSX_DEPLOYMENT_TARGET": "10.13", + "MACOSX_DEPLOYMENT_TARGET": "11.0", "NIX_SYSTEM": "x86_64-darwin", "TEST_ENV": "x86_64-darwin-release", "XZ_OPT": "-9", @@ -4133,7 +4133,7 @@ "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi ", "HADRIAN_ARGS": "--docs=no-sphinx-pdfs", "LANG": "en_US.UTF-8", - "MACOSX_DEPLOYMENT_TARGET": "10.13", + "MACOSX_DEPLOYMENT_TARGET": "11.0", "NIX_SYSTEM": "x86_64-darwin", "TEST_ENV": "x86_64-darwin-validate", "ac_cv_func_clock_gettime": "no", diff --git a/rts/rts.cabal.in b/rts/rts.cabal.in index c8da60df7a661e146275b69b9917a23c6db8609a..cff9707ecb239b2ee928b36640b8012c8c7952cc 100644 --- a/rts/rts.cabal.in +++ b/rts/rts.cabal.in @@ -495,8 +495,6 @@ library if os(osx) ld-options: "-Wl,-search_paths_first" - -- See Note [fd_set_overflow] - "-Wl,-U,___darwin_check_fd_set_overflow" -- See Note [Undefined symbols in the RTS] "-Wl,-undefined,dynamic_lookup" if !arch(x86_64) && !arch(aarch64) @@ -702,48 +700,6 @@ library -- We don't want to compile posix/ticker/*.c, these will be #included -- from Ticker.c - --- Note [fd_set_overflow] --- ~~~~~~~~~~~~~~~~~~~~~~ --- In this note is the very sad tale of __darwin_fd_set_overflow. --- The 8.10.5 release was broken because it was built in an environment --- where the libraries were provided by XCode 12.*, these libraries introduced --- a reference to __darwin_fd_set_overflow via the FD_SET macro which is used in --- Select.c. Unfortunately, this symbol is not available with XCode 11.* which --- led to a linker error when trying to link anything. This is almost certainly --- a bug in XCode but we still have to work around it. - --- Undefined symbols for architecture x86_64: --- "___darwin_check_fd_set_overflow", referenced from: --- _awaitEvent in libHSrts.a(Select.o) --- ld: symbol(s) not found for architecture x86_64 - --- One way to fix this is to upgrade your version of xcode, but this would --- force the upgrade on users prematurely. Fortunately it also seems safe to pass --- the linker option "-Wl,-U,___darwin_check_fd_set_overflow" because the usage of --- the symbol is guarded by a guard to check if it's defined. - --- __header_always_inline int --- __darwin_check_fd_set(int _a, const void *_b) --- { --- if ((uintptr_t)&__darwin_check_fd_set_overflow != (uintptr_t) 0) { ---#if defined(_DARWIN_UNLIMITED_SELECT) || defined(_DARWIN_C_SOURCE) --- return __darwin_check_fd_set_overflow(_a, _b, 1); ---#else --- return __darwin_check_fd_set_overflow(_a, _b, 0); ---#endif --- } else { --- return 1; --- } ---} - --- Across the internet there are many other reports of this issue --- See: https://github.com/mono/mono/issues/19393 --- , https://github.com/sitsofe/fio/commit/b6a1e63a1ff607692a3caf3c2db2c3d575ba2320 - --- The issue was originally reported in #19950 - - -- Note [Undefined symbols in the RTS] -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- The RTS is built with a number of `-u` flags. This is to handle cyclic