Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
Ron Olson
c21258489f 5.8.1 for EPEL-10 as a step to bringing it up to parity with other branches 2024-12-19 08:24:49 -06:00
20 changed files with 656 additions and 355 deletions

32
cython_updates.patch Normal file
View file

@ -0,0 +1,32 @@
diff --color -Naur llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
--- llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp 2024-06-21 17:13:30.216450095 -0500
+++ llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp 2024-06-21 17:17:12.418191122 -0500
@@ -76,7 +76,7 @@
#elif PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 7
return _Py_Finalizing != nullptr;
#else
- return _Py_IsFinalizing();
+ return Py_IsFinalizing();
#endif
}
diff --color -Naur llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
--- llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp 2024-06-21 17:13:30.217450161 -0500
+++ llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp 2024-06-21 17:18:29.299291469 -0500
@@ -201,16 +201,6 @@
return;
#endif
- if (PyEval_ThreadsInitialized()) {
- Log *log = GetLog(LLDBLog::Script);
-
- m_was_already_initialized = true;
- m_gil_state = PyGILState_Ensure();
- LLDB_LOGV(log, "Ensured PyGILState. Previous state = {0}locked\n",
- m_gil_state == PyGILState_UNLOCKED ? "un" : "");
- return;
- }
-
// InitThreads acquires the GIL if it hasn't been called before.
PyEval_InitThreads();
}

11
debug_build.patch Normal file
View file

@ -0,0 +1,11 @@
--- swift/utils/build-presets.ini.orig 2024-12-18 16:04:59.478543323 -0600
+++ swift/utils/build-presets.ini 2024-12-18 16:07:08.704085878 -0600
@@ -857,7 +857,7 @@
mixin_linux_installation
build-subdir=buildbot_linux
lldb
-release
+debug
test
validation-test
long-test

39
disable_warning.patch Normal file
View file

@ -0,0 +1,39 @@
diff --color -Naur swift-corelibs-libdispatch-orig/src/apply.c swift-corelibs-libdispatch/src/apply.c
--- swift-corelibs-libdispatch-orig/src/apply.c 2022-10-01 10:48:05.000000000 -0500
+++ swift-corelibs-libdispatch/src/apply.c 2024-12-17 14:56:01.110477562 -0600
@@ -20,6 +20,9 @@
#include "internal.h"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-function-type-mismatch"
+
typedef void (*dispatch_apply_function_t)(void *, size_t);
static char const * const _dispatch_apply_key = "apply";
@@ -366,3 +369,6 @@
(dispatch_apply_function_t)_dispatch_Block_invoke(work));
}
#endif
+
+#pragma GCC diagnostic pop
+
diff --color -Naur swift-corelibs-libdispatch-orig/src/data.c swift-corelibs-libdispatch/src/data.c
--- swift-corelibs-libdispatch-orig/src/data.c 2022-10-01 10:48:05.000000000 -0500
+++ swift-corelibs-libdispatch/src/data.c 2024-12-17 14:57:39.514903781 -0600
@@ -20,6 +20,9 @@
#include "internal.h"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-function-type-mismatch"
+
/*
* Dispatch data objects are dispatch objects with standard retain/release
* memory management. A dispatch data object either points to a number of other
@@ -738,3 +741,5 @@
return mep;
}
#endif // HAVE_MACH
+
+#pragma GCC diagnostic pop

View file

@ -1,11 +0,0 @@
--- swift/utils/build-script-impl.orig 2024-06-25 09:36:26.767949217 -0500
+++ swift/utils/build-script-impl 2024-06-25 09:36:46.207322186 -0500
@@ -2243,7 +2243,7 @@
-DLLDB_ENABLE_CURSES=ON
-DLLDB_ENABLE_LIBEDIT=ON
-DLLDB_ENABLE_PYTHON=ON
- -DLLDB_ENABLE_LZMA=OFF
+ -DLLDB_ENABLE_LZMA=ON
-DLLDB_ENABLE_LUA=OFF
-DLLDB_INCLUDE_TESTS:BOOL="${should_configure_tests}"
-DLLDB_TEST_LIBCXX_ROOT_DIR:STRING="${libcxx_build_dir}"

11
enablelzma.patch Normal file
View file

@ -0,0 +1,11 @@
--- swift/utils/build-script-impl.orig 2022-04-12 11:12:59.832022240 -0500
+++ swift/utils/build-script-impl 2022-04-12 11:13:19.694223857 -0500
@@ -2272,7 +2272,7 @@
-DLLDB_ENABLE_CURSES=ON
-DLLDB_ENABLE_LIBEDIT=ON
-DLLDB_ENABLE_PYTHON=ON
- -DLLDB_ENABLE_LZMA=OFF
+ -DLLDB_ENABLE_LZMA=ON
-DLLDB_ENABLE_LUA=OFF
-DLLDB_INCLUDE_TESTS:BOOL=$(false_true ${BUILD_TOOLCHAIN_ONLY})
-DLLDB_TEST_USER_ARGS="${DOTEST_ARGS}"

40
fclose_issues.patch Normal file
View file

@ -0,0 +1,40 @@
--- swift-tools-support-core/Sources/TSCBasic/FileSystem.swift.orig 2024-06-07 15:57:58.282574272 -0500
+++ swift-tools-support-core/Sources/TSCBasic/FileSystem.swift 2024-06-07 16:00:41.442339293 -0500
@@ -425,19 +425,19 @@
if fp == nil {
throw FileSystemError(errno: errno, path)
}
- defer { fclose(fp) }
+ defer { fclose(fp!) }
// Read the data one block at a time.
let data = BufferedOutputByteStream()
var tmpBuffer = [UInt8](repeating: 0, count: 1 << 12)
while true {
- let n = fread(&tmpBuffer, 1, tmpBuffer.count, fp)
+ let n = fread(&tmpBuffer, 1, tmpBuffer.count, fp!)
if n < 0 {
if errno == EINTR { continue }
throw FileSystemError(.ioError(code: errno), path)
}
if n == 0 {
- let errno = ferror(fp)
+ let errno = ferror(fp!)
if errno != 0 {
throw FileSystemError(.ioError(code: errno), path)
}
@@ -455,12 +455,12 @@
if fp == nil {
throw FileSystemError(errno: errno, path)
}
- defer { fclose(fp) }
+ defer { fclose(fp!) }
// Write the data in one chunk.
var contents = bytes.contents
while true {
- let n = fwrite(&contents, 1, contents.count, fp)
+ let n = fwrite(&contents, 1, contents.count, fp!)
if n < 0 {
if errno == EINTR { continue }
throw FileSystemError(.ioError(code: errno), path)

15
fs.patch Normal file
View file

@ -0,0 +1,15 @@
--- llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp.orig 2022-08-03 19:13:51.591055629 -0500
+++ llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp 2022-08-03 19:13:56.112348435 -0500
@@ -73,7 +73,11 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
-#include <linux/fs.h>
+//#include <linux/fs.h>
+#define FS_IOC_GETFLAGS _IOR('f', 1, long)
+#define FS_IOC_SETFLAGS _IOW('f', 2, long)
+#define FS_IOC_GETVERSION _IOR('v', 1, long)
+#define FS_IOC_SETVERSION _IOW('v', 2, long)
#include <linux/hdreg.h>
#include <linux/input.h>
#include <linux/ioctl.h>

View file

@ -1,18 +0,0 @@
--- swift-corelibs-foundation/Sources/CoreFoundation/internalInclude/CoreFoundation_Prefix.h.orig 2024-07-31 10:29:42.005997906 -0500
+++ swift-corelibs-foundation/Sources/CoreFoundation/internalInclude/CoreFoundation_Prefix.h 2024-07-31 10:31:06.147568761 -0500
@@ -200,6 +200,7 @@
#endif
#if !TARGET_OS_MAC
+#if 0
#if !HAVE_STRLCPY
CF_INLINE size_t
strlcpy(char * dst, const char * src, size_t maxlen) {
@@ -229,6 +230,7 @@
return dstlen + srclen;
}
#endif
+#endif // XYZZY - We do have them in Fedora
#endif // !TARGET_OS_MAC
#if TARGET_OS_WIN32

View file

@ -1,8 +1,8 @@
diff --color -Naur llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
--- llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp 2024-08-03 13:04:05.441817601 -0500
+++ llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp 2024-08-03 13:14:00.001254584 -0500
@@ -74,7 +74,7 @@
#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 7
--- llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp 2024-09-19 10:08:49.705575598 -0500
+++ llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp 2024-09-19 10:10:32.912369606 -0500
@@ -76,7 +76,7 @@
#elif PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 7
return _Py_Finalizing != nullptr;
#else
- return _Py_IsFinalizing();
@ -11,9 +11,9 @@ diff --color -Naur llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Pytho
}
diff --color -Naur llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
--- llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp 2024-08-03 13:04:05.442817667 -0500
+++ llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp 2024-08-03 13:12:15.688335534 -0500
@@ -182,7 +182,7 @@
--- llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp 2024-09-19 10:08:49.706575663 -0500
+++ llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp 2024-09-19 10:12:11.357850178 -0500
@@ -201,7 +201,7 @@
return;
#endif
@ -22,7 +22,7 @@ diff --color -Naur llvm-project-orig/lldb/source/Plugins/ScriptInterpreter/Pytho
Log *log = GetLog(LLDBLog::Script);
m_was_already_initialized = true;
@@ -191,9 +191,6 @@
@@ -210,9 +210,6 @@
m_gil_state == PyGILState_UNLOCKED ? "un" : "");
return;
}

View file

@ -1,11 +0,0 @@
--- cmark/CMakeLists.txt.orig 2024-06-11 14:38:17.531997089 -0500
+++ cmark/CMakeLists.txt 2024-06-11 14:38:24.161433974 -0500
@@ -22,6 +22,8 @@
set(CMAKE_INCLUDE_CURRENT_DIR YES)
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
option(CMARK_FUZZ_QUADRATIC "Build quadratic fuzzing harness" OFF)
option(CMARK_LIB_FUZZER "Build libFuzzer fuzzing harness" OFF)
option(CMARK_THREADING "Add locks around static accesses" OFF)

27
new_glibc.patch Normal file
View file

@ -0,0 +1,27 @@
diff --color -Naur swift-corelibs-foundation-orig/CoreFoundation/Base.subproj/CoreFoundation_Prefix.h swift-corelibs-foundation/CoreFoundation/Base.subproj/CoreFoundation_Prefix.h
--- swift-corelibs-foundation-orig/CoreFoundation/Base.subproj/CoreFoundation_Prefix.h 2023-07-06 10:02:48.000000000 -0500
+++ swift-corelibs-foundation/CoreFoundation/Base.subproj/CoreFoundation_Prefix.h 2023-08-16 12:53:42.332226574 -0500
@@ -189,7 +189,7 @@
#define CF_RETAIN_BALANCED_ELSEWHERE(obj, identified_location) do { } while (0)
#endif
-#if (TARGET_OS_LINUX && !TARGET_OS_ANDROID && !TARGET_OS_CYGWIN) || TARGET_OS_WIN32
+#if (TARGET_OS_LINUX && !TARGET_OS_ANDROID && !TARGET_OS_CYGWIN && !ALREADY_HAVE_STRL_FUNCS) || TARGET_OS_WIN32
CF_INLINE size_t
strlcpy(char * dst, const char * src, size_t maxlen) {
const size_t srclen = strlen(src);
diff --color -Naur swift-corelibs-foundation-orig/CoreFoundation/CMakeLists.txt swift-corelibs-foundation/CoreFoundation/CMakeLists.txt
--- swift-corelibs-foundation-orig/CoreFoundation/CMakeLists.txt 2023-07-06 10:02:48.000000000 -0500
+++ swift-corelibs-foundation/CoreFoundation/CMakeLists.txt 2023-08-16 12:53:44.851386844 -0500
@@ -80,6 +80,11 @@
add_compile_definitions($<$<COMPILE_LANGUAGE:C>:HAVE_SCHED_GETAFFINITY>)
endif()
endif()
+ # XYZZY
+ check_symbol_exists(strlcpy "string.h" HAVE_NEW_GLIBC)
+ if(HAVE_NEW_GLIBC)
+ add_compile_definitions($<$<COMPILE_LANGUAGE:C>:ALREADY_HAVE_STRL_FUNCS>)
+ endif()
endif()
elseif(CMAKE_SYSTEM_NAME STREQUAL Windows)
# NOTE(compnerd) we only support building with the dynamic CRT as using the

11
no-test.patch Normal file
View file

@ -0,0 +1,11 @@
--- swift/utils/build-presets.ini.orig 2023-02-06 19:59:52.297617075 -0600
+++ swift/utils/build-presets.ini 2023-02-06 20:00:17.131186971 -0600
@@ -834,7 +834,7 @@
# Executes the lit tests for the installable package that is created
# Assumes the swift-integration-tests repo is checked out
-test-installable-package
+#test-installable-package
# Build the benchmarks against the toolchain.
toolchain-benchmarks

View file

@ -1,83 +0,0 @@
diff --color -Naur llvm-project/clang/utils/creduce-clang-crash.py llvm-project/clang/utils/creduce-clang-crash.py
--- llvm-project/clang/utils/creduce-clang-crash.py 2024-06-13 19:54:42.303016942 -0500
+++ llvm-project/clang/utils/creduce-clang-crash.py 2024-06-13 19:57:15.922473813 -0500
@@ -15,7 +15,6 @@
import stat
import sys
import subprocess
-import pipes
import shlex
import tempfile
import shutil
@@ -61,7 +60,7 @@
def quote_cmd(cmd):
- return " ".join(pipes.quote(arg) for arg in cmd)
+ return " ".join(shlex.quote(arg) for arg in cmd)
def write_to_script(text, filename):
@@ -220,7 +219,7 @@
)
for msg in self.expected_output:
- output += "grep -F %s t.log || exit 1\n" % pipes.quote(msg)
+ output += "grep -F %s t.log || exit 1\n" % shlex.quote(msg)
write_to_script(output, self.testfile)
self.check_interestingness()
diff --color -Naur llvm-project/libcxx/utils/libcxx/test/dsl.py llvm-project/libcxx/utils/libcxx/test/dsl.py
--- llvm-project/libcxx/utils/libcxx/test/dsl.py 2024-06-13 19:55:23.627829920 -0500
+++ llvm-project/libcxx/utils/libcxx/test/dsl.py 2024-06-13 19:57:42.124257373 -0500
@@ -8,7 +8,7 @@
import os
import pickle
-import pipes
+import shlex
import platform
import re
import shutil
@@ -281,7 +281,7 @@
}
#endif
"""
- return programSucceeds(config, program, args=[pipes.quote(l) for l in locales])
+ return programSucceeds(config, program, args=[shlex.quote(l) for l in locales])
@_memoizeExpensiveOperation(lambda c, flags="": (c.substitutions, c.environment, flags))
diff --color -Naur llvm-project/libcxx/utils/libcxx/test/format.py llvm-project/libcxx/utils/libcxx/test/format.py
--- llvm-project/libcxx/utils/libcxx/test/format.py 2024-06-13 19:55:23.627829920 -0500
+++ llvm-project/libcxx/utils/libcxx/test/format.py 2024-06-13 19:58:01.911604299 -0500
@@ -11,7 +11,7 @@
import lit
import lit.formats
import os
-import pipes
+import shlex
import re
import shutil
diff --color -Naur ninja/configure.py ninja/configure.py
--- ninja/configure.py 2024-06-13 19:54:39.050795565 -0500
+++ ninja/configure.py 2024-06-13 19:56:39.970026531 -0500
@@ -23,7 +23,7 @@
from optparse import OptionParser
import os
-import pipes
+import shlex
import string
import subprocess
import sys
@@ -264,7 +264,7 @@
env_keys = set(['CXX', 'AR', 'CFLAGS', 'CXXFLAGS', 'LDFLAGS'])
configure_env = dict((k, os.environ[k]) for k in os.environ if k in env_keys)
if configure_env:
- config_str = ' '.join([k + '=' + pipes.quote(configure_env[k])
+ config_str = ' '.join([k + '=' + shlex.quote(configure_env[k])
for k in configure_env])
n.variable('configure_env', config_str + '$ ')
n.newline()

270
no_pipes_58.patch Normal file
View file

@ -0,0 +1,270 @@
diff --color -Naur llvm-project/clang/utils/creduce-clang-crash.py llvm-project/clang/utils/creduce-clang-crash.py
--- llvm-project/clang/utils/creduce-clang-crash.py 2024-06-20 13:38:53.943180833 -0500
+++ llvm-project/clang/utils/creduce-clang-crash.py 2024-06-20 13:42:30.244711005 -0500
@@ -14,7 +14,6 @@
import stat
import sys
import subprocess
-import pipes
import shlex
import tempfile
import shutil
@@ -57,7 +56,7 @@
sys.exit("ERROR: `%s` not found in %s" % (cmd_name, cmd_dir))
def quote_cmd(cmd):
- return ' '.join(pipes.quote(arg) for arg in cmd)
+ return ' '.join(shlex.quote(arg) for arg in cmd)
def write_to_script(text, filename):
with open(filename, 'w') as f:
@@ -199,7 +198,7 @@
""" % (disable_symbolization, quote_cmd(self.get_crash_cmd()))
for msg in self.expected_output:
- output += 'grep -F %s t.log || exit 1\n' % pipes.quote(msg)
+ output += 'grep -F %s t.log || exit 1\n' % shlex.quote(msg)
write_to_script(output, self.testfile)
self.check_interestingness()
diff --color -Naur llvm-project/compiler-rt/test/asan/lit.cfg.py llvm-project/compiler-rt/test/asan/lit.cfg.py
--- llvm-project/compiler-rt/test/asan/lit.cfg.py 2024-06-20 13:38:17.808753484 -0500
+++ llvm-project/compiler-rt/test/asan/lit.cfg.py 2024-06-20 13:43:18.446949016 -0500
@@ -6,14 +6,8 @@
import lit.formats
-# Get shlex.quote if available (added in 3.3), and fall back to pipes.quote if
-# it's not available.
-try:
- import shlex
- sh_quote = shlex.quote
-except:
- import pipes
- sh_quote = pipes.quote
+import shlex
+sh_quote = shlex.quote
def get_required_attr(config, attr_name):
attr_value = getattr(config, attr_name, None)
diff --color -Naur llvm-project/compiler-rt/test/lit.common.cfg.py llvm-project/compiler-rt/test/lit.common.cfg.py
--- llvm-project/compiler-rt/test/lit.common.cfg.py 2024-06-20 13:38:17.788752141 -0500
+++ llvm-project/compiler-rt/test/lit.common.cfg.py 2024-06-20 13:43:44.961730162 -0500
@@ -12,14 +12,8 @@
import lit.formats
import lit.util
-# Get shlex.quote if available (added in 3.3), and fall back to pipes.quote if
-# it's not available.
-try:
- import shlex
- sh_quote = shlex.quote
-except:
- import pipes
- sh_quote = pipes.quote
+import shlex
+sh_quote = shlex.quote
def find_compiler_libdir():
"""
diff --color -Naur llvm-project/compiler-rt/test/memprof/lit.cfg.py llvm-project/compiler-rt/test/memprof/lit.cfg.py
--- llvm-project/compiler-rt/test/memprof/lit.cfg.py 2024-06-20 13:38:17.852756440 -0500
+++ llvm-project/compiler-rt/test/memprof/lit.cfg.py 2024-06-20 13:44:09.179356996 -0500
@@ -6,14 +6,8 @@
import lit.formats
-# Get shlex.quote if available (added in 3.3), and fall back to pipes.quote if
-# it's not available.
-try:
- import shlex
- sh_quote = shlex.quote
-except:
- import pipes
- sh_quote = pipes.quote
+import shlex
+sh_quote = shlex.quote
def get_required_attr(config, attr_name):
attr_value = getattr(config, attr_name, None)
diff --color -Naur llvm-project/compiler-rt/test/sanitizer_common/ios_commands/iossim_run.py llvm-project/compiler-rt/test/sanitizer_common/ios_commands/iossim_run.py
--- llvm-project/compiler-rt/test/sanitizer_common/ios_commands/iossim_run.py 2024-06-20 13:38:17.946762755 -0500
+++ llvm-project/compiler-rt/test/sanitizer_common/ios_commands/iossim_run.py 2024-06-20 13:48:37.348371396 -0500
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-import glob, os, pipes, sys, subprocess
+import glob, os, shlex, sys, subprocess
device_id = os.environ.get('SANITIZER_IOSSIM_TEST_DEVICE_IDENTIFIER')
@@ -39,7 +39,7 @@
rm_args.append(arg)
else:
# FIXME(dliew): pipes.quote() is deprecated
- rm_args.append(pipes.quote(arg))
+ rm_args.append(shlex.quote(arg))
rm_cmd_line = ["/bin/rm"] + rm_args
rm_cmd_line_str = ' '.join(rm_cmd_line)
# We use `shell=True` so that any wildcard globs get expanded by the shell.
diff --color -Naur llvm-project/libcxx/utils/libcxx/test/config.py llvm-project/libcxx/utils/libcxx/test/config.py
--- llvm-project/libcxx/utils/libcxx/test/config.py 2024-06-20 13:38:59.394547032 -0500
+++ llvm-project/libcxx/utils/libcxx/test/config.py 2024-06-20 13:45:49.931125052 -0500
@@ -9,7 +9,6 @@
import copy
import os
import pkgutil
-import pipes
import platform
import re
import shlex
@@ -434,7 +433,7 @@
def quote(self, s):
if platform.system() == 'Windows':
return lit.TestRunner.quote_windows_command([s])
- return pipes.quote(s)
+ return shlex.quote(s)
def configure_substitutions(self):
sub = self.config.substitutions
diff --color -Naur llvm-project/libcxx/utils/libcxx/test/dsl.py llvm-project/libcxx/utils/libcxx/test/dsl.py
--- llvm-project/libcxx/utils/libcxx/test/dsl.py 2024-06-20 13:38:59.394547032 -0500
+++ llvm-project/libcxx/utils/libcxx/test/dsl.py 2024-06-20 13:45:11.318531231 -0500
@@ -8,7 +8,7 @@
import os
import pickle
-import pipes
+import shlex
import platform
import re
import shutil
@@ -261,7 +261,7 @@
}
#endif
"""
- return programSucceeds(config, program, args=[pipes.quote(l) for l in locales])
+ return programSucceeds(config, program, args=[shlex.quote(l) for l in locales])
@_memoizeExpensiveOperation(lambda c, flags='': (c.substitutions, c.environment, flags))
def compilerMacros(config, flags=''):
diff --color -Naur llvm-project/libcxx/utils/libcxx/test/format.py llvm-project/libcxx/utils/libcxx/test/format.py
--- llvm-project/libcxx/utils/libcxx/test/format.py 2024-06-20 13:38:59.394547032 -0500
+++ llvm-project/libcxx/utils/libcxx/test/format.py 2024-06-20 13:45:31.689899688 -0500
@@ -9,7 +9,7 @@
import lit
import lit.formats
import os
-import pipes
+import shlex
import re
import shutil
diff --color -Naur ninja/configure.py ninja/configure.py
--- ninja/configure.py 2024-06-20 13:38:14.957561954 -0500
+++ ninja/configure.py 2024-06-20 13:46:12.859665292 -0500
@@ -23,7 +23,7 @@
from optparse import OptionParser
import os
-import pipes
+import shlex
import string
import subprocess
import sys
@@ -264,7 +264,7 @@
env_keys = set(['CXX', 'AR', 'CFLAGS', 'CXXFLAGS', 'LDFLAGS'])
configure_env = dict((k, os.environ[k]) for k in os.environ if k in env_keys)
if configure_env:
- config_str = ' '.join([k + '=' + pipes.quote(configure_env[k])
+ config_str = ' '.join([k + '=' + shlex.quote(configure_env[k])
for k in configure_env])
n.variable('configure_env', config_str + '$ ')
n.newline()
diff --color -Naur swift/utils/build_swift/build_swift/shell.py swift/utils/build_swift/build_swift/shell.py
--- swift/utils/build_swift/build_swift/shell.py 2024-06-20 13:39:16.267680494 -0500
+++ swift/utils/build_swift/build_swift/shell.py 2024-06-20 13:47:56.850650939 -0500
@@ -23,7 +23,7 @@
import sys
from copy import copy as _copy
from pathlib import Path
-from pipes import quote as _quote
+from shlex import quote as _quote
from shlex import split
from subprocess import CalledProcessError
diff --color -Naur swift/utils/sil-opt-verify-all-modules.py swift/utils/sil-opt-verify-all-modules.py
--- swift/utils/sil-opt-verify-all-modules.py 2024-06-20 13:39:17.951793627 -0500
+++ swift/utils/sil-opt-verify-all-modules.py 2024-06-20 13:40:50.278995757 -0500
@@ -13,7 +13,7 @@
import glob
import multiprocessing
import os
-import pipes
+import shlex
import subprocess
import sys
import tempfile
@@ -91,7 +91,7 @@
def quote_shell_command(args):
- return " ".join([pipes.quote(a) for a in args])
+ return " ".join([shlex.quote(a) for a in args])
def run_commands_in_parallel(commands):
diff --color -Naur swift/utils/swift_build_support/swift_build_support/build_script_invocation.py swift/utils/swift_build_support/swift_build_support/build_script_invocation.py
--- swift/utils/swift_build_support/swift_build_support/build_script_invocation.py 2024-06-20 13:39:16.270680695 -0500
+++ swift/utils/swift_build_support/swift_build_support/build_script_invocation.py 2024-06-20 13:41:40.348359192 -0500
@@ -11,7 +11,7 @@
# ===---------------------------------------------------------------------===#
import os
-import pipes
+import shlex
import platform
from build_swift.build_swift import argparse
@@ -128,9 +128,9 @@
"--build-jobs", str(args.build_jobs),
"--lit-jobs", str(args.lit_jobs),
"--common-cmake-options=%s" % ' '.join(
- pipes.quote(opt) for opt in cmake.common_options()),
+ shlex.quote(opt) for opt in cmake.common_options()),
"--build-args=%s" % ' '.join(
- pipes.quote(arg) for arg in cmake.build_args()),
+ shlex.quote(arg) for arg in cmake.build_args()),
"--dsymutil-jobs", str(args.dsymutil_jobs),
]
@@ -388,7 +388,7 @@
if args.extra_cmake_options:
impl_args += [
"--extra-cmake-options=%s" % ' '.join(
- pipes.quote(opt) for opt in args.extra_cmake_options)
+ shlex.quote(opt) for opt in args.extra_cmake_options)
]
if args.lto_type is not None:
diff --color -Naur swift/utils/swift_build_support/swift_build_support/shell.py swift/utils/swift_build_support/swift_build_support/shell.py
--- swift/utils/swift_build_support/swift_build_support/shell.py 2024-06-20 13:39:16.271680762 -0500
+++ swift/utils/swift_build_support/swift_build_support/shell.py 2024-06-20 13:42:02.214828084 -0500
@@ -14,7 +14,7 @@
# ----------------------------------------------------------------------------
import os
-import pipes
+import shlex
import platform
import shutil
import subprocess
@@ -35,7 +35,7 @@
def _quote(arg):
- return pipes.quote(str(arg))
+ return shlex.quote(str(arg))
def quote_command(args):

View file

@ -1,46 +0,0 @@
From f189a95d6371cdb44f773029f7a19b94f0d9a839 Mon Sep 17 00:00:00 2001
From: Finagolfin <finagolfin@tuta.io>
Date: Fri, 28 Jun 2024 20:06:06 +0530
Subject: [PATCH] [ClangImporter] Make sure the `-resource-dir` is checked
before the `-sdk`, as done everywhere else in the compiler
Otherwise, these module maps can be pulled from a system SDK instead when
building a fresh Swift stdlib, fixes #74696.
---
lib/ClangImporter/ClangIncludePaths.cpp | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/lib/ClangImporter/ClangIncludePaths.cpp b/lib/ClangImporter/ClangIncludePaths.cpp
index 23431af724459..7e6ca8c2a9cb6 100644
--- a/lib/ClangImporter/ClangIncludePaths.cpp
+++ b/lib/ClangImporter/ClangIncludePaths.cpp
@@ -35,10 +35,10 @@ static std::optional<Path> getActualModuleMapPath(
Path result;
- StringRef SDKPath = Opts.getSDKPath();
- if (!SDKPath.empty()) {
- result.append(SDKPath.begin(), SDKPath.end());
- llvm::sys::path::append(result, "usr", "lib", "swift");
+ if (!Opts.RuntimeResourcePath.empty()) {
+ result.clear();
+ result.append(Opts.RuntimeResourcePath.begin(),
+ Opts.RuntimeResourcePath.end());
llvm::sys::path::append(result, platform);
if (isArchSpecific) {
llvm::sys::path::append(result, arch);
@@ -52,10 +52,10 @@ static std::optional<Path> getActualModuleMapPath(
return result;
}
- if (!Opts.RuntimeResourcePath.empty()) {
- result.clear();
- result.append(Opts.RuntimeResourcePath.begin(),
- Opts.RuntimeResourcePath.end());
+ StringRef SDKPath = Opts.getSDKPath();
+ if (!SDKPath.empty()) {
+ result.append(SDKPath.begin(), SDKPath.end());
+ llvm::sys::path::append(result, "usr", "lib", "swift");
llvm::sys::path::append(result, platform);
if (isArchSpecific) {
llvm::sys::path::append(result, arch);

73
sources
View file

@ -1,44 +1,35 @@
SHA512 (cmake.tar.gz) = 193e6fb40f29b4e9ff216545248dd25c9e7a54bf79419a312bcdac630d4c9af621d8b4eccfbb9dd0a95af8bc66f410c9972e57e30fd839113ce1516a7f7905b4
SHA512 (cmark.tar.gz) = 5f5dd39e9e686b6872312193eb45d2b219e5d3867b5fb9c2a833adf6dbd93d54c022ce7e2b96c2a9006118c1b2acf676937a127a4a8341f316154c32ba6ba3ca
SHA512 (corelibs-foundation.tar.gz) = 4473cbf1601fcfa6931bb52e961c3fbaa7b649e3f8c53b9d192b1dd842b5b0d0ef97ced7bcd4e56b79beb19b05f7c1303de13a00fe371a039708b73bc78e7160
SHA512 (corelibs-libdispatch.tar.gz) = b277dcfa15a9c7d0b6a7148b0c0d8cb000df314c9af3fb9461c6128ab64e89909f0ac8e7c68521e019024894e4cff5dac03597abcf91596541dcd7d40da180c4
SHA512 (corelibs-xctest.tar.gz) = 9bfb582d42cc7a905df25204c6a7645ac3c0d167f9c3f1ea81be3ebe9cb6efabb5e410903c1644d2be06c18468caf3b9656c6a7e0abcc5b9b16cc9f0d2774a86
SHA512 (icu.zip) = 3deb56e8109783049c9dac04073aa084bcd92a0370b820ba4dbdad641a5a3f753f6ef8fd575ac82385fc1f2f224118313a6987d513991826ed7355307f6d9696
SHA512 (indexstore-db.tar.gz) = e7c6da5fdab81c9f385f456b5a9ef6c0724e353c26d13b6d9ef9deab042a6a512cb2627bcf797c1456f4a2d4e58403db55184ebc0a0dbbe8f63698fc65d1065b
SHA512 (llbuild.tar.gz) = d38e3df709f795c002d5d77ee2faf593179d591a9acb9e5a74c06dca4a52ff2f9533ba43b6b76579980a4f5c5a6058e188cf2c5e5443501b00cf7c0760917ae9
SHA512 (llvm-project.tar.gz) = c6943efd5407901ad8d5db885f3d03f5f5b7be006c01960c3a60a9a0f4e635e4e963bfa84d85cbdea10326f905524f091523ebdfbcd6b872b9c1a3d1ca94c691
SHA512 (cmake.tar.gz) = d00dc63627c452494f0f240792b742529a9ba00622cc69ba42bda26299dcdf0f5596e1e7e17bff0daf0543e94de1f23b37d8fce8a79e8c90aeaca10c50bd4605
SHA512 (cmark.tar.gz) = c53669e9d0166e8f62e7350455fdc96af181ca0c2876461807caa0a13a4ead466088d24f1e7de0e286e217806e0176c72c58da521750bfbca8860e177445158d
SHA512 (corelibs-foundation.tar.gz) = 6b574dbcd0f2fcc08093bb39a79bd1e8454ecdf3645ea9608e390370e8c63dad8e2e978084ac9e2c405b2c630287f5dab26cbbc9ee2ebad1892257776627eda2
SHA512 (corelibs-libdispatch.tar.gz) = a3344e9df912c5cf86aa7e225748a22a747f48a41354e9bc38d03a20231676c199d2a1cd66091cc1edc87e2236fff79d92988b205c4921ec732c2a695fea23b6
SHA512 (corelibs-xctest.tar.gz) = 1c804cfd6815a397241d2fcaa932950989507f3163c8d7ba777b726935d9ec1df59fbe2aa1b16c1dce0d52851ce14db64b0afec83113e4a1f754afad36b64a80
SHA512 (icu.tar.gz) = 6902ccee36b29f31d7615d5bf5ce78e0d33744c8dcefce1aec90de7e18e384f673b4301fcca1f3cbe81f236dc250763104bff1af240621ff54b65a053ba6f6d7
SHA512 (indexstore-db.tar.gz) = 6b088f42be7716ff03a77d8a14d0a5fed63f8d8680432badc76afd0a6ce8a61776b61fda59150165b12d9f5e54afcc493bd70ec28faac60a2ec6d9a48ba91945
SHA512 (llbuild.tar.gz) = 1106ee4468e57daef87e81563ecdac07d34a7967110dd73b034d5106f1423d23df51158c6c40d02dc5dd0366d790e00bb8e9b9e59a71941912d77055320c1109
SHA512 (llvm-project.tar.gz) = 16fbe31be33474d4d8bb2751dc7eb9634a001f2dfe929640b90995f2fece584427a9a83c7b84b63b8398737753acfab22ab11e016b2fab27b1a9a056d352c751
SHA512 (ninja.tar.gz) = 1bca38877c70ee6613f347ffccef5adc02ba0a3947c62ae004ea97f918442b5a3de92378e4f820ae2a7676bc7609d25fbc7d41f6cfb3a61e5e4b26ec3639e403
SHA512 (package-manager.tar.gz) = 483925892b96ae83aeb9849dd994ae4be2802735aa761b70809f155c3181cfba77cc7cfac72ccb3cad99ef3cdd6e62907915fcdafad05988a85994bb794959fc
SHA512 (sourcekit-lsp.tar.gz) = 9e96a03d47364627bdc5b5d6a028c2f4da99a790892045f2538bcb6b44d533c37b31278db8f3c1041d66e1acae913b618399494ab030664cdfb5f8d61c4a2582
SHA512 (swift-argument-parser.tar.gz) = 2fa09e86da67b6feb09f3c11b656e0e17c050243f9cdf40da3646c881f441bb545c3820345934da60ab80f2e77f575d1c1adb55d8017277e4fe01b68b5a2f692
SHA512 (swift-asn1.tar.gz) = f0e3bd7a4369b84a140e46a111d3985b62e74581ca631e4354ef769ae7f9190ffb3ff68ea3917df9c377fc308a8681a69b8dea4158a05daf798960be229a48c2
SHA512 (swift-atomics.tar.gz) = efd9a6e6b016fb0ad2de5d98fb219b893e271378a8c8d23d01215e855830fc6f1728eaec74ba33983ab9e8aece5ed65e310bbae84c289b43e458941080293351
SHA512 (swift-certificates.tar.gz) = ea645425fffdb377efe1de9b897a7a6e42dc6668ce93068bbe6de69d42ab6e9801b6d9ff817b728d58eb9e2f66c4932869c281864bc432bd9fb9acb829311c41
SHA512 (swift-collections.tar.gz) = 830a3a8923e498a58e5638bda5157c0a8ca20032daa73e752bb445314e3c8050cda85dfba78105f3e76d66832e804b8efc6c05aec117b687a83fc34e9c724639
SHA512 (swift-crypto.tar.gz) = 2d79147d32bfb8449726c73c8b267262cf1ddc7c18637f4168e3fd848ba71c0719b23b5683ca513260cbc537fc439e38488ae16010717303625bceb7d5edd36f
SHA512 (swift-docc-render-artifact.tar.gz) = 07c2512e46ea38109f89fe0d5f09f419ed6be85b9e407613c300be769570c65d5d895ffbd0bc392c57aa1f9d0b65db665b92c3f4e5c0c37b6967471ca7652665
SHA512 (swift-docc-symbolkit.tar.gz) = 2f7c87c77db7de1c9592b76e9586a148d5c1d63640fdc6bcea2b97fc7df43abf410aa220e3c6a86c98362d5867f2bb146b876f0944b4f2dc1390b8ee1a8a89f6
SHA512 (swift-docc.tar.gz) = 3e80aab54c509097ad8edb27d605c31d89e2dea7c1939386ac34c2dde41a841f352631012e942a112ad87a8655dcde9e25ba417119ee69626c40addae75ba211
SHA512 (swift-driver.tar.gz) = 42c9978ec26f9ed81b981f80bf4f12d4abf97a7f852a6d97bd564ca5eca8e26dad9e1acb19ed119b54301a828a6c6f52d6e5ab7f4fb29725fe42ca935978002d
SHA512 (swift-experimental-string-processing.tar.gz) = be5ef92d5ad8cd34fecd31dd427c275fdc537d2795ea5fd76e27484b6c43e1a3187b603c5544a5cde7806763f9fbf33103910a9054a2d27549028f847dac371f
SHA512 (swift-format.zip) = 1de7cbd484020e354347c19dc3f2da8ab169f938df00382e126a07b8312f515d52eefebf20d3da3b8700b9d4c2a7fee73edd0793b6dd0120f93e550f1f19a09a
SHA512 (swift-foundation-icu.zip) = f2e70bffcd6b998a6de6849e71f4cdc97bd28d8d5294823ef2857ee0a9aaabd98d76a4672858ec2c702a4775290d215b5ba81611dc17ec2da34a3dac46a26219
SHA512 (swift-foundation.zip) = 387549e00393d48db218cc95f5c0f66ea63f17cc3fc68ee3184fb4020a6ae88353377e771fc4a45b03bd580cb23386da15c00bbf3679dd6e7fc74438f0d099b2
SHA512 (swift-integration-tests.tar.gz) = 5a7719455e75a8ae54838ca272764154437c5d9a984c035aa23988585ea2698882f97419780ff84b74ffce5da1cf67d6f4af8eae4dacd9e394f3b3f398d510a3
SHA512 (swift-llvm-bindings.zip) = ef5f5daa8b4cbdd90411a85ebb95bd6279cb4ad30d7a7ea52c8e3d613daa12b8639f7fd5073a6ff759846e3f292773ef446ed3af6f20fa61c9b9a91d61817e4a
SHA512 (swift-lmdb.tar.gz) = d137067c79e802451fc4882908aebc986504f9b2c3cd25bdbfdf6d52aea1ee53c5a0f5ff5df591036814d241f5d1471a7a61bcef1dbafb80304ba807302b7b84
SHA512 (swift-markdown.tar.gz) = 394a4e4d2b176a19aa0f5c294ce6da30cf3fc1d696c7cb53363ffe0187905c4d43d0475c94a02c5dd98a6cc7f56ba2ac4c5b1ca5f6220e4cbadbfc04d0ea8b37
SHA512 (package-manager.tar.gz) = 9e725632568db8ebf1276dccc07efc8a28e5dc92821df87527e75529960d40412e02c840d7d14f9c2f1149de5cc30056bc05dc066bec5701bf47334c3b203184
SHA512 (sourcekit-lsp.tar.gz) = 3ce7581ab1cae33ebd814a56f21efed069587b14a08c31cfc0af7053a2f7f4df1f949fafc78ca5b4286df6c1d8a35131521d67f6723e5dc6f923059c60419149
SHA512 (swift-argument-parser.tar.gz) = f98558f3ea1f64a0046e037911b060b39a01ef60956c3529ddece76bb38181fbcf8fa6f08d3ee579755882e4a1a684316792627aeb698b20aafcac813d86dc9f
SHA512 (swift-atomics.tar.gz) = b538a9709eadfe96831393b977add28227da65d814b248bd03effc2bb7e36fff69cca692a6fd5946a029d43ddaca9b38aee91d9abf01e09ec8e5473d07d6886f
SHA512 (swift-collections.tar.gz) = f603f96827051fab8376ccb9d951e57e0ddd2e8a26350419c9d7356458e278ed7a9e8f1d240f5a9141880b476d53fb3c2148bf7ec15c928514acd1eed0ffc2ca
SHA512 (swift-crypto.tar.gz) = 93a1304a2ba7e7b7335f0c137339fb3ef510fd12120ed0ac1edaa678b6b013b32690d380f94936cc4bd76ce3f14f06b9e69e2eacdad6a1924749b71c08037217
SHA512 (swift-docc-render-artifact.tar.gz) = c15adec69b5768ffcbe57cc7b08162d0475b9857057bb972be3bf909b973a4ed0103a1a5f182f108dfdf2c8c71131b3003cbfe7519df7fa645414bbd29507434
SHA512 (swift-docc-symbolkit.tar.gz) = b4fa5587dbc85bb37af3904fd834efe1ead132ed07f076b146f78ee9947bb183a9fb6607686ed0cae4b92a19283fccfc39fefde378eb726396341ac12b874f58
SHA512 (swift-docc.tar.gz) = 3cda8e2b01264a4b92e78dcff8629da2320d4461469dfe3a5589a14862ec88198d718dd8fad843953c89397d06c0cb0bf418bcdbfab9be905dadce75b125eafa
SHA512 (swift-driver.tar.gz) = 9da3de6b4242406f3465da42101ac4d64e295916a54b6a52dce7334ab62ca1e40305d2a202873060cf69dcb921d9b0f8a8229090a25613461b991eb334df5bf8
SHA512 (swift-experimental-string-processing.tar.gz) = caebf49d60f589cdd377ccc72005f2c958e90e50cc650f077c42f8ee8e18e744925efa4786bfccbecb186f2cc383c859b75216a8449422a4a18f056e2e64ed99
SHA512 (swift-format.tar.gz) = 683850cd6035f750ff2e9e066e53cae92370cddcfadf5e4df61c646c4b5911c0c644d0652752b22f00df9753fdeb750e7d7d61c72236bc6e8753eb4958c20ec1
SHA512 (swift-integration-tests.tar.gz) = fbf26c69cd8b3e0f0f028aaf9da81f14ce528a2495f03b612ad0206e04c0c5b73dbe328b8953cbf168e406d11c01c72f6f38aa51965ca3fa72e9304b2057c8e2
SHA512 (swift-lmdb.tar.gz) = 2d63f67867b767e9d2763308d15d9eac546de24cc93226a6b3a9a3f2d506c47f1d32d54c3faf4accb859d2872d7233e258e40f91b77c7968389b81861cc71b98
SHA512 (swift-markdown.tar.gz) = a190320d309701fc86125fa78eb78bed01d831b00baab44f4f57ef6e27115180c29dbf6bafde3f1ed95a2c3584c8d47b96e586aaa69179b57a9f86cfe4273754
SHA512 (swift-nio-ssl.tar.gz) = 5ba54beb93d669715b05627455003aad29847f04886ed08fd6bcc37f3ffcb64183c033ae3220446d69bc720a3da5940f3979b8039ddbe8869d81d70a18c42e36
SHA512 (swift-nio.tar.gz) = e8b8bc5d49c92e327d660c1ee34a9bbdb169e19501211ed56765c51303905494f808d4b76ae9f9a50718db5efe337961ef6baad146197c9d7ba7a8b6c08e3a8e
SHA512 (swift-numerics.tar.gz) = 2d6a2c6aa21a86ece26983cbcaa366bd726e4e0c4341e4801510a0227be8856280102fd04726a91b5b335aaf7eb609b04113d6af824e904ae4c768755dd6707a
SHA512 (swift-stress-tester.tar.gz) = 7aecac7ffa302d1812a0d7ef4ab6f21ba867ad90cb76bc547bc4bc3ad46d8a2db009464dc22f008c12ad1b280fe779add77c2cafa3d68a401c018e09d867f7bc
SHA512 (swift-syntax.tar.gz) = 06b9f1cf65d7adb686b587a8c52f95362f1a2543d013aba47e5101a9e3c097584f338465c8a4e1dc08f5d8f24fa0c2533e3e43b199b627002e54ea0e1b413ff9
SHA512 (swift-system.tar.gz) = 64c53b2e43e0b01135f2566e11af0f527557b64d3acb63904cc6e7ed74a4c08118c887670fd2ecc82e3036d96ed1dffd6066f37d9c660b1e65a63a1f5cee7586
SHA512 (swift-testing.tar.gz) = b8ba58ed115dbbd4a0f864048a7a40df899d5639a24584a67bde7283b3e9495c55d133af774d57ad93fc3f697b9b90095e9541367a5cda0ccfca0b2deacd1697
SHA512 (swift-tools-support-core.tar.gz) = d37f65e7fda89578c2ecfda3a0f3edfbf67b43ce7a5821e86e72cbec8d17f329a9ea518ecf3e8a51aa54e183cf0e982593a9978472fae51440faa14478f0f74a
SHA512 (swift-xcode-playground-support.tar.gz) = 0ce3abcbf04c20f1c06cba3c932e1807eb0d097f11f644f86abeb8f32d9ae981e74edaf627820e32467554aa462635d72add3e5905f2e3b2f29d4104a95af1d6
SHA512 (swift.tar.gz) = f0cd74beb4312e6211f804f9ef5b3e66cc64e62e9f6c91863e1bb26a647a82e67ca041e5289a2a9922c24a4f24da7a8f44c41d682460084e67642d5df73a6dee
SHA512 (wasi-sdk.tar.gz) = e264240dc7dbcf6398c8ca09bc108298f4a8aa955af22de5a3015fbcde81cb09dd83cd48349090082d5de0e8a3dbcf746c7b14657c67657b3f2f1ab28bb9cf05
SHA512 (wasm.tar.gz) = b65ba20ec64b1c4fbaa7f4d0ce421bdae0cdc8c263dedeeca43c5ae1efec6dbd575a2d1bc80e0d43cfc9d3a6aea90e9ea56a49ea9d10d3141b4af8f2950ae3ff
SHA512 (yams.tar.gz) = a529f7c3419ec353c360a2b14a9d939e85deebdd534049896347dce74e311cbe99c66565886397193ead24d5914bf266d4531d1be8f6a5a67174aa87f62e1617
SHA512 (zlib13.zip) = 7309db617cfc389544d84b8d6cd89ac1720bcb66925e6f0e56e9240f12ea17ae14f36fd4016fbd2c77203812e43040cd80c4649a0b099f2884af959812d9a581
SHA512 (swift-numerics.tar.gz) = 7d0d8f27d8c639f92fb652183ade9032b36f39e19b966aa734cab5b4d43ce5d342856dddd87ac1d4cd605c18583c8e629f37634e440de34ec0d5e18aa138d0ba
SHA512 (swift-stress-tester.tar.gz) = e94601e1e26838c38a280008222a118ace80fbf45d6eadcf7467eafa2ef4bd4affa31478c299570018a89a0c3850466b70022d2523d708959c680dc2b089075e
SHA512 (swift-syntax.tar.gz) = b9c016b6cd2ff40db6321df710d21a0de286160c71bba6d41aef33d360ffcc5203ac9a50fb850c1fd74014510b2a6d560881a531f99bf8876569d8366866aba3
SHA512 (swift-system.tar.gz) = fec08fbc352197215596974303cd7e08b46ff44b1bd36c70b95be4e7490880f4d7e645e64e90f1c81bfca06d9302c600ccc02c9f5cc7b83a69da46489b105e1c
SHA512 (swift-tools-support-core.tar.gz) = f38400d2fb31017c4ff186bde408a1d3523ab6a6f1044668c4655a4737b7233552dbc2ec1035bdb18ecf07df500ac32e6a313df58292567069bab2ab52530f05
SHA512 (swift-xcode-playground-support.tar.gz) = 66b186c8d6e8574e693172fa2acde44dd4d7b2225130c4f701a2d3a0922a9fce25e5889f391ebfb8074b55614654349365ef696e4089f418ddeec4f0162162cc
SHA512 (swift.tar.gz) = 2cc0a34fc4451553acea9be14b56d8e33dfa9f4a65847426f0998113cb42af5cf56acbda7be55b07e3f1a8524af66a98d786f5e8b770cf733159d6b84588d21d
SHA512 (yams.tar.gz) = 91feecb95d1997235e443dea925ff11fa665e94c12c8eca2ed066ef340a51ec0253df2545d91184c31423cb4b039e1f89ac8f743cf3f154c9d93495eecc45432

View file

@ -1,9 +1,3 @@
# 6/27/24 - temporary disable __brp_add_determinism
# as it prevents the package from successfully building
%if 0%{?fedora} >= 41
# on Fedora 41/Rawhide
%undefine __brp_add_determinism
%endif
%global debug_package %{nil}
%undefine _auto_set_build_flags
@ -12,34 +6,28 @@
#################################################
# Make sure these are changed for every release!
#################################################
%global swift_version 6.0.1-RELEASE
%global package_version 6.0.1
%global fedora_release 1
%global swift_source_location swift-source
%global swift_version 5.8.1-RELEASE
%global fedora_release 6
%global package_version 5.8.1
# Set to the right version per the json file
%global icu_version 69
%global yams_version 5.0.6
%global swift_argument_parser_version 1.2.3
%global swift_crypto_version 3.0.0
%global swift_source_location swift-source
%global icu_version 65-1
%global yams_version 5.0.1
%global swift_argument_parser_version 1.0.3
%global swift_crypto_version 2.2.3
%global ninja_version 1.11.1
%global cmake_version 3.24.2
%global swift_atomics_version 1.2.0
%global swift_collections_version 1.1.2
%global swift_numerics_version 1.0.2
%global swift_system_version 1.3.0
%global cmake_version 3.19.6
%global swift_atomics_version 1.0.2
%global swift_collections_version 1.0.1
%global swift_numerics_version 1.0.1
%global swift_system_version 1.1.1
%global swift_nio_version 2.31.2
%global swift_nio_ssl_version 2.15.0
%global swift_certificates_version 1.0.1
%global swift_asn1_version 1.0.0
%global wasmkit_version 0.0.3
%global wasi_version 20
%global swift_format_version 6.0
%global swift_llvm_bindings_version 6.0
%global swift_foundation_icu_version 6.0
%global swift_foundation_version 6.0
%global zlib_version 1.3
# Temporary I presume as the json file suggests there should
# be eventually a release version of swift-format
%global swift_format_version 0.50700.1
Name: swift-lang
@ -64,66 +52,78 @@ Source11: https://github.com/apple/llvm-project/archive/swift-%{swift_vers
Source12: https://github.com/apple/swift-tools-support-core/archive/swift-%{swift_version}.tar.gz#/swift-tools-support-core.tar.gz
Source13: https://github.com/apple/swift-argument-parser/archive/%{swift_argument_parser_version}.tar.gz#/swift-argument-parser.tar.gz
Source14: https://github.com/apple/swift-driver/archive/swift-%{swift_version}.tar.gz#/swift-driver.tar.gz
Source15: https://github.com/apple/swift-syntax/archive/swift-%{swift_version}.zip#/swift-syntax.tar.gz
Source16: https://github.com/jpsim/Yams/archive/%{yams_version}.tar.gz#/yams.tar.gz
Source17: https://github.com/apple/swift-crypto/archive/refs/tags/%{swift_crypto_version}.tar.gz#/swift-crypto.tar.gz
Source18: https://github.com/ninja-build/ninja/archive/refs/tags/v%{ninja_version}.tar.gz#/ninja.tar.gz
Source19: https://github.com/KitWare/CMake/archive/refs/tags/v%{cmake_version}.tar.gz#/cmake.tar.gz
Source20: https://github.com/apple/swift-atomics/archive/%{swift_atomics_version}.tar.gz#/swift-atomics.tar.gz
Source21: https://github.com/apple/swift-stress-tester/archive/swift-%{swift_version}.tar.gz#/swift-stress-tester.tar.gz
Source22: https://github.com/apple/swift-docc/archive/swift-%{swift_version}.tar.gz#/swift-docc.tar.gz
Source23: https://github.com/apple/swift-docc-render-artifact/archive/swift-%{swift_version}.tar.gz#/swift-docc-render-artifact.tar.gz
Source24: https://github.com/apple/swift-docc-symbolkit/archive/swift-%{swift_version}.tar.gz#/swift-docc-symbolkit.tar.gz
Source25: https://github.com/apple/swift-collections/archive/%{swift_collections_version}.tar.gz#/swift-collections.tar.gz
Source26: https://github.com/apple/swift-numerics/archive/%{swift_numerics_version}.tar.gz#/swift-numerics.tar.gz
Source27: https://github.com/apple/swift-system/archive/%{swift_system_version}.tar.gz#/swift-system.tar.gz
Source28: https://github.com/apple/swift-nio/archive/%{swift_nio_version}.tar.gz#/swift-nio.tar.gz
Source29: https://github.com/apple/swift-nio-ssl/archive/%{swift_nio_ssl_version}.tar.gz#/swift-nio-ssl.tar.gz
Source30: https://github.com/apple/swift-format/archive/refs/heads/release/%{swift_format_version}.zip#/swift-format.zip
Source31: https://github.com/apple/swift-lmdb/archive/swift-%{swift_version}.tar.gz#/swift-lmdb.tar.gz
Source32: https://github.com/apple/swift-markdown/archive/swift-%{swift_version}.tar.gz#/swift-markdown.tar.gz
Source33: https://github.com/apple/swift-experimental-string-processing/archive/swift-%{swift_version}.tar.gz#/swift-experimental-string-processing.tar.gz
Source34: https://github.com/apple/swift-certificates/archive/%{swift_certificates_version}.tar.gz#/swift-certificates.tar.gz
Source35: https://github.com/apple/swift-asn1/archive/%{swift_asn1_version}.tar.gz#/swift-asn1.tar.gz
Source36: https://github.com/unicode-org/icu/archive/refs/heads/maint/maint-%{icu_version}.zip#/icu.zip
Source37: https://github.com/swiftwasm/WasmKit/archive/refs/tags/%{wasmkit_version}.tar.gz#/wasm.tar.gz
Source38: https://github.com/WebAssembly/wasi-libc/archive/refs/tags/wasi-sdk-%{wasi_version}.tar.gz#/wasi-sdk.tar.gz
Source39: https://github.com/apple/swift-llvm-bindings/archive/refs/heads/swift/release/%{swift_llvm_bindings_version}.zip#/swift-llvm-bindings.zip
Source40: https://github.com/apple/swift-foundation-icu/archive/refs/heads/release/%{swift_foundation_icu_version}.zip#/swift-foundation-icu.zip
Source41: https://github.com/apple/swift-foundation/archive/refs/heads/release/%{swift_foundation_version}.zip#/swift-foundation.zip
Source42: https://github.com/apple/swift-testing/archive/refs/tags/swift-%{swift_version}.tar.gz#/swift-testing.tar.gz
Source43: https://github.com/madler/zlib/releases/download/v%{zlib_version}/zlib13.zip
Source44: swiftlang.conf
Source15: https://github.com/unicode-org/icu/archive/release-%{icu_version}.tar.gz#/icu.tar.gz
Source16: https://github.com/apple/swift-syntax/archive/swift-%{swift_version}.zip#/swift-syntax.tar.gz
Source17: https://github.com/jpsim/Yams/archive/%{yams_version}.tar.gz#/yams.tar.gz
Source18: https://github.com/apple/swift-crypto/archive/refs/tags/%{swift_crypto_version}.tar.gz#/swift-crypto.tar.gz
Source19: https://github.com/ninja-build/ninja/archive/refs/tags/v%{ninja_version}.tar.gz#/ninja.tar.gz
Source20: https://github.com/KitWare/CMake/archive/refs/tags/v%{cmake_version}.tar.gz#/cmake.tar.gz
Source21: https://github.com/apple/swift-atomics/archive/%{swift_atomics_version}.tar.gz#/swift-atomics.tar.gz
Source22: https://github.com/apple/swift-stress-tester/archive/swift-%{swift_version}.tar.gz#/swift-stress-tester.tar.gz
Source23: https://github.com/apple/swift-docc/archive/swift-%{swift_version}.tar.gz#/swift-docc.tar.gz
Source24: https://github.com/apple/swift-docc-render-artifact/archive/swift-%{swift_version}.tar.gz#/swift-docc-render-artifact.tar.gz
Source25: https://github.com/apple/swift-docc-symbolkit/archive/swift-%{swift_version}.tar.gz#/swift-docc-symbolkit.tar.gz
Source26: https://github.com/apple/swift-collections/archive/%{swift_collections_version}.tar.gz#/swift-collections.tar.gz
Source27: https://github.com/apple/swift-numerics/archive/%{swift_numerics_version}.tar.gz#/swift-numerics.tar.gz
Source28: https://github.com/apple/swift-system/archive/%{swift_system_version}.tar.gz#/swift-system.tar.gz
Source29: https://github.com/apple/swift-nio/archive/%{swift_nio_version}.tar.gz#/swift-nio.tar.gz
Source30: https://github.com/apple/swift-nio-ssl/archive/%{swift_nio_ssl_version}.tar.gz#/swift-nio-ssl.tar.gz
%dnl Source31: https://github.com/apple/swift-format/archive/swift-%{swift_version}.tar.gz#/swift-format.tar.gz
Source31: https://github.com/apple/swift-format/archive/refs/tags/%{swift_format_version}.tar.gz#/swift-format.tar.gz
Source32: https://github.com/apple/swift-lmdb/archive/swift-%{swift_version}.tar.gz#/swift-lmdb.tar.gz
Source33: https://github.com/apple/swift-markdown/archive/swift-%{swift_version}.tar.gz#/swift-markdown.tar.gz
Source34: https://github.com/apple/swift-experimental-string-processing/archive/swift-%{swift_version}.tar.gz#/swift-experimental-string-processing.tar.gz
%dnl Source35: https://github.com/apple/swift-llvm-bindings/archive/swift-%{swift_version}.tar.gz#/swift-llvm-bindings.tar.gz
Patch1: need_pic.patch
Patch2: no_pipes.patch
Patch3: enable_lzma.patch
Patch4: resource_dir.patch
Patch5: have_strcat.patch
Patch6: latest_python.patch
Patch1: uintptr.patch
Patch2: enablelzma.patch
Patch3: fs.patch
Patch4: unusedvars.patch
Patch5: no-test.patch
Patch7: fclose_issues.patch
Patch8: new_glibc.patch
Patch9: no_pipes_58.patch
Patch10: cython_updates.patch
Patch11: latest_python.patch
Patch12: disable_warning.patch
Patch13: debug_build.patch
%ifarch aarch64
BuildRequires: clang >= 15
%else
BuildRequires: clang
%endif
BuildRequires: swig
BuildRequires: rsync
BuildRequires: python3
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-distro
BuildRequires: libbsd-devel
BuildRequires: libxml2-devel
BuildRequires: sqlite-devel
BuildRequires: libdispatch-devel
BuildRequires: libcurl-devel
BuildRequires: libuuid-devel
BuildRequires: libedit-devel
BuildRequires: libicu-devel
BuildRequires: perl-podlators
BuildRequires: swiftlang
BuildRequires: lld
BuildRequires: python3-six
BuildRequires: binutils-devel
%if ! 0%{?el8}
BuildRequires: python-unversioned-command
%endif
BuildRequires: binutils-gold
Requires: glibc-devel
Requires: binutils-gold
Requires: gcc
Requires: ncurses-devel
Requires: lldb
ExclusiveArch: x86_64 aarch64
Provides: swiftlang = %{version}-%{release}
Provides: swiftlang = %{version}-%{release}
%description
@ -139,12 +139,11 @@ correct programs easier for the developer.
%prep
%setup -q -c -n %{swift_source_location} -a 0 -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -a 7 -a 8 -a 9 -a 10 -a 11 -a 12 -a 13 -a 14 -a 15 -a 16 -a 17 -a 18 -a 19 -a 20 -a 21 -a 22 -a 23 -a 24 -a 25 -a 26 -a 27 -a 28 -a 29 -a 30 -a 31 -a 32 -a 33 -a 34 -a 35 -a 36 -a 37 -a 38 -a 39 -a 40 -a 41 -a 42 -a 43
%setup -q -c -n %{swift_source_location} -a 0 -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -a 7 -a 8 -a 9 -a 10 -a 11 -a 12 -a 13 -a 14 -a 15 -a 16 -a 17 -a 18 -a 19 -a 20 -a 21 -a 22 -a 23 -a 24 -a 25 -a 26 -a 27 -a 28 -a 29 -a 30 -a 31 -a 32 -a 33 -a 34
# The Swift build script requires directories to be named
# in a specific way so renaming the source directories is
# necessary
mv swift-cmark-swift-%{swift_version} cmark
mv swift-testing-swift-%{swift_version} swift-testing
mv swift-corelibs-foundation-swift-%{swift_version} swift-corelibs-foundation
mv swift-corelibs-libdispatch-swift-%{swift_version} swift-corelibs-libdispatch
mv swift-corelibs-xctest-swift-%{swift_version} swift-corelibs-xctest
@ -171,19 +170,15 @@ mv swift-numerics-%{swift_numerics_version} swift-numerics
mv swift-system-%{swift_system_version} swift-system
mv swift-nio-%{swift_nio_version} swift-nio
mv swift-nio-ssl-%{swift_nio_ssl_version} swift-nio-ssl
mv swift-format-release-%{swift_format_version} swift-format
%dnl mv swift-format-swift-%{swift_version} swift-format
mv swift-format-%{swift_format_version} swift-format
mv swift-lmdb-swift-%{swift_version} swift-lmdb
mv swift-markdown-swift-%{swift_version} swift-markdown
mv swift-stress-tester-swift-%{swift_version} swift-stress-tester
mv swift-experimental-string-processing-swift-%{swift_version} swift-experimental-string-processing
mv swift-certificates-%{swift_certificates_version} swift-certificates
mv swift-asn1-%{swift_asn1_version} swift-asn1
mv swift-llvm-bindings-swift-release-%{swift_llvm_bindings_version} swift-llvm-bindings
mv swift-foundation-icu-release-%{swift_foundation_icu_version} swift-foundation-icu
mv swift-foundation-release-%{swift_foundation_version} swift-foundation
# ICU
mv icu-maint-maint-%{icu_version} icu
mv icu-release-%{icu_version} icu
# Yams
mv Yams-%{yams_version} yams
@ -191,47 +186,59 @@ mv Yams-%{yams_version} yams
# Ninja
mv ninja-%{ninja_version} ninja
# WasmKit
mv WasmKit-%{wasmkit_version} wasmkit
# zlib
mv zlib-%{zlib_version} zlib
# Fix python to python3
%py3_shebang_fix swift/utils/api_checker/swift-api-checker.py
%py3_shebang_fix llvm-project/compiler-rt/lib/hwasan/scripts/hwasan_symbolize
# Enable PIC for cmark
# Fix for uinit_ptr not being declared implicitly
%patch -P1 -p0
# Pipes has been removed in Python
# Enable LZMA
%patch -P2 -p0
# Enable LZMA
%patch -P3 -p0
# https://github.com/swiftlang/swift/pull/74814
pushd swift
%patch -P4 -p1
popd
# Weird (hopefully temp) situation of strlcpy and strncat
# not being found at the system level
# This does not work for EPEL9, so we need to make sure
# that this patch is _not_ applied when building for EPEL9
%if ! 0%{?el9}
# Tests fail for some reason preventing the package from being built
%patch -P5 -p0
# Issue with >= F39 not liking not having the file object
# explicitly forced in an fclose()
%patch -P7 -p0
# 39 and later, so this patch modifies the CMakeLists.txt file
# to add a check for them, along with a patch to the header
# file that if they are present, don't define the functions
# seperately.
%patch -P8 -p0
# For 41 and later, python pipes are no longer a thing
%patch -P9 -p0
# For 41 and later, some additional old parts removed
%dnl %patch -P10 -p0
# Python 3.12 changes
%dnl %patch -P11 -p0
# Warning as error in EPEL 10
%patch -P12 -p0
# Trying to troubleshoot compiler crash on aarch64
%ifarch aarch64
%patch -P13 -p0
%endif
# After Python 3.12 certain functions have been removed,
# which is in Fedora 41
%if 0%{?fedora} >= 41
%patch -P6 -p0
%endif
%build
export VERBOSE=1
# Specific for aarch64 architecture
%ifarch aarch64
if [ ! -d $PWD/oldclang ] ; then
mkdir -p $PWD/oldclang
ln -s /usr/bin/clang-15 $PWD/oldclang/clang
ln -s /usr/bin/clang++-15 $PWD/oldclang/clang++
fi
export PATH=$PWD/oldclang:$PATH
%endif
# Here we go!
swift/utils/build-script --preset=buildbot_linux,no_test install_destdir=%{_builddir} installable_package=%{_builddir}/swift-%{version}-%{linux_version}.tar.gz
@ -247,11 +254,6 @@ mkdir -p %{buildroot}%{_mandir}/man1
cp %{_builddir}/usr/share/man/man1/swift.1 %{buildroot}%{_mandir}/man1/swift.1
mkdir -p %{buildroot}/usr/lib
ln -fs %{_libexecdir}/swift/%{package_version}/lib/swift %{buildroot}/usr/lib/swift
mkdir -p %{buildroot}%{_libdir}
ln -fs %{_libexecdir}/swift/%{package_version}/lib/lib{IndexStore,sourcekitdInProc,swiftDemangle}.so* %{buildroot}%{_libdir}/
mkdir -p %{buildroot}/%{_sysconfdir}/ld.so.conf.d/
install -m 0644 %{SOURCE44} %{buildroot}/%{_sysconfdir}/ld.so.conf.d/swiftlang.conf
# This is to fix an issue with check-rpaths complaining about
# how the Swift binaries use RPATH
@ -266,10 +268,6 @@ export QA_SKIP_RPATHS=1
%{_mandir}/man1/swift.1.gz
%{_libexecdir}/swift/
%{_usr}/lib/swift
%{_libdir}/libIndexStore.so*
%{_libdir}/libsourcekitdInProc.so*
%{_libdir}/libswiftDemangle.so*
%{_sysconfdir}/ld.so.conf.d/swiftlang.conf
%post -p /sbin/ldconfig
@ -277,30 +275,32 @@ export QA_SKIP_RPATHS=1
%changelog
* Wed Sep 25 2024 Ron Olson <tachoknight@gmail.com> - 6.0.1-1
- Updated to Swift 6.0.1-RELEASE
Resolves: rhbz#2313366
* Mon Sep 16 2024 Ron Olson <tachoknight@gmail.com> - 6.0-1
- Updated to Swift 6.0-RELEASE
* Mon Aug 26 2024 Zephyr Lykos <fedora@mochaa.ws> - 6.0-1
- Export Swift development tool libraries to libdir
* Mon Jul 22 2024 Byoungchan Lee <byoungchan.lee@gmx.com> - 6.0-1
- Minimize runtime/compile time dependencies
* Fri Jul 19 2024 Ron Olson <tachoknight@gmail.com> - 6.0-1
- Added file to add the Swift libraries to the ld.so.conf.d directory
* Sun Jun 30 2024 Ron Olson <tachoknight@gmail.com> - 6.0-1
- Patch from finagolfin
https://github.com/swiftlang/swift/pull/74814
* Tue Apr 23 2024 Ron Olson <tachoknight@gmail.com> - 6.0-1
- First attempt at getting 6.0 working
* Mon Sep 18 2023 Ron Olson <tachoknight@gmail.com> - 5.9-1
- Updated to Swift 5.9-RELEASE
Resolves: rhbz#2239543
* Fri Sep 15 2023 Ron Olson <tachoknight@gmail.com> - 5.10-1
- First working version of Swift 5.10
* Wed Mar 29 2023 Ron Olson <tachoknight@gmail.com> - 5.9-1
- Cleanup and first attempt at getting 5.9 going though
5.8 hasn't been released yet
* Tue Dec 17 2024 Ron Olson <tachoknight@gmail.com> 5.8.1-6
- Made 5.8.1 work for EPEL 10 as it is the last version of
Swift that could be built without another version of
Swift being present
* Fri Jun 21 2024 Ron Olson <tachoknight@gmail.com> 5.8.1-5
- Added another patch
* Thu Jun 20 2024 Ron Olson <tachoknight@gmail.com> 5.8.1-4
- Added patch to build without pipes on Rawhide and Fedora 41
* Fri Feb 16 2024 Ron Olson <tachoknight@gmail.com> 5.8.1-3
- Added symlink for future versions of Swift
* Tue Aug 22 2023 Ron Olson <tachoknight@gmail.com> 5.8.1-2
- Added patch to work with glibc 2.38
Resolves: rhbz#2226476
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.8.1-1.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 5.8.1-1.1
- Rebuilt for Python 3.12
* Fri Jun 02 2023 Ron Olson <tachoknight@gmail.com> - 5.8.1-1
- Updated to Swift 5.8.1-RELEASE
Resolves: rhbz#2211845
* Fri Mar 31 2023 Ron Olson <tachoknight@gmail.com> - 5.8-1
- Updated to Swift 5.8-RELEASE
Resolves: rhbz#2183429
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.7.2-1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Dec 27 2022 Ron Olson <tachoknight@gmail.com> - 5.8-1

View file

@ -1 +0,0 @@
/usr/lib/swift/linux

10
uintptr.patch Normal file
View file

@ -0,0 +1,10 @@
--- llvm-project/llvm/include/llvm/Support/Signals.h.orig 2023-01-25 12:42:42.006799309 -0600
+++ llvm-project/llvm/include/llvm/Support/Signals.h 2023-01-25 12:43:15.856946625 -0600
@@ -15,6 +15,7 @@
#define LLVM_SUPPORT_SIGNALS_H
#include <string>
+#include <stdint.h>
namespace llvm {
class StringRef;

14
unusedvars.patch Normal file
View file

@ -0,0 +1,14 @@
--- swift-corelibs-libdispatch/src/shims/yield.c.orig 2022-09-16 12:04:16.691448773 -0500
+++ swift-corelibs-libdispatch/src/shims/yield.c 2022-09-16 12:05:43.047145102 -0500
@@ -25,6 +25,11 @@
__DISPATCH_WAIT_FOR_ENQUEUER__(void **ptr)
{
int spins = 0;
+ int nothing = spins;
+ nothing = 23;
+ spins = nothing;
+ spins = 0;
+
void *value;
while ((value = os_atomic_load(ptr, relaxed)) == NULL) {
_dispatch_preemption_yield(++spins);