diff --git a/.gitlab/generate-ci/gen_ci.hs b/.gitlab/generate-ci/gen_ci.hs index e1dfce2a30abf8fb7b92c29d6c1739022a22cbd1..2bf7eb2ae43f0d6b793c297298d19904e768e04b 100644 --- a/.gitlab/generate-ci/gen_ci.hs +++ b/.gitlab/generate-ci/gen_ci.hs @@ -418,7 +418,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 6d52c592e9d6af1d306b7fce007ebe06cf0c4cd1..029e4d4d783e34dc4a774bcb962b5d020d1e6dc1 100644 --- a/.gitlab/jobs.yaml +++ b/.gitlab/jobs.yaml @@ -685,7 +685,7 @@ "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "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", "RUNTEST_ARGS": "", "TEST_ENV": "x86_64-darwin-validate", @@ -3159,7 +3159,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", "RUNTEST_ARGS": "", "TEST_ENV": "x86_64-darwin-release", @@ -4457,7 +4457,7 @@ "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "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", "RUNTEST_ARGS": "", "TEST_ENV": "x86_64-darwin-validate", diff --git a/rts/rts.cabal b/rts/rts.cabal index 0083697a70d62dcb9940acd827f92b7068fee81b..259e7de3294435e6119d73ebf23eba34afbc1529 100644 --- a/rts/rts.cabal +++ b/rts/rts.cabal @@ -328,8 +328,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) @@ -539,48 +537,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