mirror of
https://github.com/netbirdio/FreeBSD-ports.git
synced 2026-05-22 18:42:42 -07:00
lang/swift510: New port
The Swift programming language -- a modern programming language with many great features. This port includes: * the Swift compiler * the Swift standard library * various tools * the Foundation framework * the Swift Package Manager (SwiftPM) * the run-time support that you need for running compiled programs PR: 286454 Reviewed-by: kib
This commit is contained in:
committed by
Kurt Jaeger
parent
0710519547
commit
95f54e5626
@@ -372,6 +372,7 @@
|
||||
SUBDIR += squeak
|
||||
SUBDIR += squirrel
|
||||
SUBDIR += starlark-rust
|
||||
SUBDIR += swift510
|
||||
SUBDIR += swipl
|
||||
SUBDIR += tauthon
|
||||
SUBDIR += tcbasic
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
PORTNAME= swift510
|
||||
DISTVERSION= 5.10.1
|
||||
CATEGORIES= lang
|
||||
DIST_SUBDIR= ${PORTNAME}
|
||||
|
||||
MAINTAINER= jgopensource@proton.me
|
||||
COMMENT= Swift programming language
|
||||
WWW= https://www.swift.org/
|
||||
|
||||
ONLY_FOR_ARCHS= aarch64 amd64
|
||||
|
||||
BUILD_DEPENDS= bash:shells/bash \
|
||||
cmake-core>=3.19.6:devel/cmake-core
|
||||
LIB_DEPENDS= libcurl.so:ftp/curl \
|
||||
libicuuc.so:devel/icu \
|
||||
libuuid.so:misc/e2fsprogs-libuuid \
|
||||
libxml2.so:textproc/libxml2 \
|
||||
libzstd.so:archivers/zstd
|
||||
|
||||
USES= libedit ninja:build perl5 pkgconfig python:3.6+ \
|
||||
shebangfix sqlite:3
|
||||
USE_GITHUB= nodefault
|
||||
# The common tag which applies to most repos.
|
||||
tag= swift-${DISTVERSION}-RELEASE
|
||||
GH_TUPLE=\
|
||||
swiftlang:indexstore-db:${tag}:indexstore_db/indexstore-db \
|
||||
swiftlang:llvm-project:${tag}:llvm_project/llvm-project \
|
||||
swiftlang:sourcekit-lsp:${tag}:sourcekit_lsp/sourcekit-lsp \
|
||||
swiftlang:swift:${tag}:swift/swift \
|
||||
swiftlang:swift-cmark:${tag}:swift_cmark/cmark \
|
||||
swiftlang:swift-corelibs-foundation:${tag}:swift_corelibs_foundation/swift-corelibs-foundation \
|
||||
swiftlang:swift-corelibs-libdispatch:${tag}:swift_corelibs_libdispatch/swift-corelibs-libdispatch \
|
||||
swiftlang:swift-corelibs-xctest:${tag}:swift_corelibs_xctest/swift-corelibs-xctest \
|
||||
swiftlang:swift-docc:${tag}:swift_docc/swift-docc \
|
||||
swiftlang:swift-docc-symbolkit:${tag}:swift_docc_symbolkit/swift-docc-symbolkit \
|
||||
swiftlang:swift-driver:${tag}:swift_driver/swift-driver \
|
||||
swiftlang:swift-experimental-string-processing:${tag}:swift_experimental_string_processing/swift-experimental-string-processing \
|
||||
swiftlang:swift-format:${tag}:swift_format/swift-format \
|
||||
swiftlang:swift-llbuild:${tag}:llbuild/llbuild \
|
||||
swiftlang:swift-lmdb:${tag}:swift_lmdb/swift-lmdb \
|
||||
swiftlang:swift-markdown:${tag}:swift_markdown/swift-markdown \
|
||||
swiftlang:swift-package-manager:${tag}:swiftpm/swiftpm \
|
||||
swiftlang:swift-stress-tester:${tag}:swift_stress_tester/swift-stress-tester \
|
||||
swiftlang:swift-syntax:${tag}:swift_syntax/swift-syntax \
|
||||
swiftlang:swift-tools-support-core:${tag}:swift_tools_support_core/swift-tools-support-core
|
||||
GH_TUPLE+=\
|
||||
apple:swift-argument-parser:1.2.3:swift_argument_parser/swift-argument-parser \
|
||||
apple:swift-asn1:1.0.0:swift_asn1/swift-asn1 \
|
||||
apple:swift-certificates:1.0.1:swift_certificates/swift-certificates \
|
||||
apple:swift-collections:1.0.1:swift_collections/swift-collections \
|
||||
apple:swift-crypto:3.0.0:swift_crypto/swift-crypto \
|
||||
apple:swift-nio:2.31.2:swift_nio/swift-nio \
|
||||
apple:swift-system:1.1.1:swift_system/swift-system
|
||||
GH_TUPLE+=jpsim:Yams:5.0.1:yams/yams
|
||||
USE_PERL5= build
|
||||
|
||||
SHEBANG_FILES=\
|
||||
swift/utils/api_checker/sdk-module-lists/infer-imports.py \
|
||||
swift/utils/api_checker/swift-api-checker.py \
|
||||
swift/utils/build-script \
|
||||
swift/utils/swift-api-dump.py \
|
||||
swift-driver/Utilities/build-script-helper.py \
|
||||
swiftpm/Utilities/bootstrap \
|
||||
|
||||
CONFLICTS= libdispatch-[0-9]*
|
||||
|
||||
value_for_aarch64= aarch64
|
||||
value_for_amd64= x86_64
|
||||
swift_arch= ${value_for_${ARCH}}
|
||||
early_stage_dir= ${WRKDIR}/EarlyStageDir
|
||||
swift_install_prefix= ${PREFIX}/${PORTNAME}
|
||||
MANDIRS= ${swift_install_prefix}/share/man
|
||||
|
||||
SUB_FILES= pkg-message
|
||||
SUB_LIST= SWIFT_INSTALL_PREFIX=${swift_install_prefix}
|
||||
|
||||
WRKSRC= ${WRKDIR}/swift-project
|
||||
|
||||
PLIST_SUB= SWIFT_ARCH=${swift_arch} \
|
||||
SWIFT_TARGET_TRIPLE=${swift_arch}-unknown-freebsd${OSREL}
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${OSVERSION} >= 1304500 && ${OSVERSION} <= 1305502
|
||||
BROKEN= Unbuildable due to a problem with libc++. See <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286342>
|
||||
.endif
|
||||
|
||||
pre-patch:
|
||||
@${MKDIR} ${WRKSRC}/llbuild/lib/LLBSQLite3
|
||||
|
||||
post-patch:
|
||||
@${SED} -E -e 's@^python3=python3$$@python3=${PYTHON_CMD}@' -i .bak ${WRKSRC}/swift/utils/build-script-impl
|
||||
|
||||
do-build:
|
||||
@${MKDIR} ${early_stage_dir}
|
||||
@${SH} ${FILESDIR}/start-build.sh ${WRKSRC} ${early_stage_dir} ${swift_install_prefix} ${WRKDIR}/clang-module-cache
|
||||
|
||||
do-install:
|
||||
@${FIND} ${early_stage_dir}${swift_install_prefix}/bin -type f -not -name '*.py' -not -name '*.sh' -not -name '*.txt' -exec ${STRIP_CMD} '{}' ';' ; \
|
||||
${FIND} ${early_stage_dir}${swift_install_prefix} -type f -name '*.so*' -exec ${STRIP_CMD} '{}' ';' ; \
|
||||
cd ${early_stage_dir} ; \
|
||||
${COPYTREE_BIN} .${swift_install_prefix}/bin ${STAGEDIR} ; \
|
||||
for subdir in include lib local share; do \
|
||||
${COPYTREE_SHARE} .${swift_install_prefix}/$${subdir} ${STAGEDIR} ; \
|
||||
done ; \
|
||||
${RM} ${STAGEDIR}/var/run/libuuid/*
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
@@ -0,0 +1,57 @@
|
||||
TIMESTAMP = 1744804731
|
||||
SHA256 (swift510/swiftlang-indexstore-db-swift-5.10.1-RELEASE_GH0.tar.gz) = 8be52307236e21e942972417fd3c8182a7865757f7890eec167851c75d156996
|
||||
SIZE (swift510/swiftlang-indexstore-db-swift-5.10.1-RELEASE_GH0.tar.gz) = 909365
|
||||
SHA256 (swift510/swiftlang-llvm-project-swift-5.10.1-RELEASE_GH0.tar.gz) = fad2de34c6c005b7bc63ce7b4f20d6cdf0e1d60109a7a589ffd782180c23102b
|
||||
SIZE (swift510/swiftlang-llvm-project-swift-5.10.1-RELEASE_GH0.tar.gz) = 171145818
|
||||
SHA256 (swift510/swiftlang-sourcekit-lsp-swift-5.10.1-RELEASE_GH0.tar.gz) = f83aabe6e66adc2d3ffb7e948ddfd805f7f58fd43c6b33d48bb4a50186ce0abb
|
||||
SIZE (swift510/swiftlang-sourcekit-lsp-swift-5.10.1-RELEASE_GH0.tar.gz) = 301167
|
||||
SHA256 (swift510/swiftlang-swift-swift-5.10.1-RELEASE_GH0.tar.gz) = 087c59a1b79c46dd23f8e6cb4fe12a27935a5b6581282f48db952827bb3fdf57
|
||||
SIZE (swift510/swiftlang-swift-swift-5.10.1-RELEASE_GH0.tar.gz) = 31977733
|
||||
SHA256 (swift510/swiftlang-swift-cmark-swift-5.10.1-RELEASE_GH0.tar.gz) = 6d209b8bf81fe0d67ae6d55913e7750ec752bc7fc29fc0ef5da2fdf8a6057406
|
||||
SIZE (swift510/swiftlang-swift-cmark-swift-5.10.1-RELEASE_GH0.tar.gz) = 311407
|
||||
SHA256 (swift510/swiftlang-swift-corelibs-foundation-swift-5.10.1-RELEASE_GH0.tar.gz) = 94dadc18f527f25cf1ce486d0ddce7de00f725063bc43526bdb73e534c8d97c3
|
||||
SIZE (swift510/swiftlang-swift-corelibs-foundation-swift-5.10.1-RELEASE_GH0.tar.gz) = 4479830
|
||||
SHA256 (swift510/swiftlang-swift-corelibs-libdispatch-swift-5.10.1-RELEASE_GH0.tar.gz) = affa3544b0fdb60f8f175bc0d2846177436d5848ef8ca73e3e560d23986f38b3
|
||||
SIZE (swift510/swiftlang-swift-corelibs-libdispatch-swift-5.10.1-RELEASE_GH0.tar.gz) = 594770
|
||||
SHA256 (swift510/swiftlang-swift-corelibs-xctest-swift-5.10.1-RELEASE_GH0.tar.gz) = cec269b435a9f32edcf90958abec16fcf50febcb99e389ed56e9e692c3270e27
|
||||
SIZE (swift510/swiftlang-swift-corelibs-xctest-swift-5.10.1-RELEASE_GH0.tar.gz) = 85377
|
||||
SHA256 (swift510/swiftlang-swift-docc-swift-5.10.1-RELEASE_GH0.tar.gz) = 1712b83aef420815e0cae2c10e43012435b249e3d138b2a6700adb18b4fc5b81
|
||||
SIZE (swift510/swiftlang-swift-docc-swift-5.10.1-RELEASE_GH0.tar.gz) = 16281601
|
||||
SHA256 (swift510/swiftlang-swift-docc-symbolkit-swift-5.10.1-RELEASE_GH0.tar.gz) = 2675a9faa010623e9252f84cefc82fbce217a6f3860c7495311cb9bdffa82159
|
||||
SIZE (swift510/swiftlang-swift-docc-symbolkit-swift-5.10.1-RELEASE_GH0.tar.gz) = 171631
|
||||
SHA256 (swift510/swiftlang-swift-driver-swift-5.10.1-RELEASE_GH0.tar.gz) = 75530eab66f4dffb9cecf422d0c5e582f08f84c8289ce245d48010e73ad1fc71
|
||||
SIZE (swift510/swiftlang-swift-driver-swift-5.10.1-RELEASE_GH0.tar.gz) = 2444415
|
||||
SHA256 (swift510/swiftlang-swift-experimental-string-processing-swift-5.10.1-RELEASE_GH0.tar.gz) = 7e6ea60653b580abaf0801d697971610e7e22b4eb427edcee486b741b14d2724
|
||||
SIZE (swift510/swiftlang-swift-experimental-string-processing-swift-5.10.1-RELEASE_GH0.tar.gz) = 2579674
|
||||
SHA256 (swift510/swiftlang-swift-format-swift-5.10.1-RELEASE_GH0.tar.gz) = 1e204fed64ef34217cc871b49a18ab4ddca4930945ac5f564723aadc3daf0bc5
|
||||
SIZE (swift510/swiftlang-swift-format-swift-5.10.1-RELEASE_GH0.tar.gz) = 253210
|
||||
SHA256 (swift510/swiftlang-swift-llbuild-swift-5.10.1-RELEASE_GH0.tar.gz) = 64d135c1aaf96636b0ff6a2682e605474fe9e33f740a8ba2a3c469e2c8ae9f38
|
||||
SIZE (swift510/swiftlang-swift-llbuild-swift-5.10.1-RELEASE_GH0.tar.gz) = 7092051
|
||||
SHA256 (swift510/swiftlang-swift-lmdb-swift-5.10.1-RELEASE_GH0.tar.gz) = fd9279b0a007f7c09bc28c614ecd0b055642aa3b08caeee607ca2c4904881ead
|
||||
SIZE (swift510/swiftlang-swift-lmdb-swift-5.10.1-RELEASE_GH0.tar.gz) = 153468
|
||||
SHA256 (swift510/swiftlang-swift-markdown-swift-5.10.1-RELEASE_GH0.tar.gz) = 568335f685b65f941edbb6771b4d13172ab8a538bf57a040bf8b61cf5717ac10
|
||||
SIZE (swift510/swiftlang-swift-markdown-swift-5.10.1-RELEASE_GH0.tar.gz) = 107990
|
||||
SHA256 (swift510/swiftlang-swift-package-manager-swift-5.10.1-RELEASE_GH0.tar.gz) = 3d35e35b6e7a061042d3cd4913030525462faa357901a91a2d2f037d12e5987c
|
||||
SIZE (swift510/swiftlang-swift-package-manager-swift-5.10.1-RELEASE_GH0.tar.gz) = 1522538
|
||||
SHA256 (swift510/swiftlang-swift-stress-tester-swift-5.10.1-RELEASE_GH0.tar.gz) = d5ef9fa05b28f773423a77caed1687f0744b01627fce50989c9ef09f76211c06
|
||||
SIZE (swift510/swiftlang-swift-stress-tester-swift-5.10.1-RELEASE_GH0.tar.gz) = 97998
|
||||
SHA256 (swift510/swiftlang-swift-syntax-swift-5.10.1-RELEASE_GH0.tar.gz) = 500ff2c6d9435311fa42ad2e87927a3025b6c3682c18ecb9710c522c0be52a53
|
||||
SIZE (swift510/swiftlang-swift-syntax-swift-5.10.1-RELEASE_GH0.tar.gz) = 1142270
|
||||
SHA256 (swift510/swiftlang-swift-tools-support-core-swift-5.10.1-RELEASE_GH0.tar.gz) = fbc2d5dcf4eb27e7e786a19559e4ab5af6469238e3e89b910511145874bdfc52
|
||||
SIZE (swift510/swiftlang-swift-tools-support-core-swift-5.10.1-RELEASE_GH0.tar.gz) = 240649
|
||||
SHA256 (swift510/apple-swift-argument-parser-1.2.3_GH0.tar.gz) = 4a10bbef290a2167c5cc340b39f1f7ff6a8cf4e1b5433b68548bf5f1e542e908
|
||||
SIZE (swift510/apple-swift-argument-parser-1.2.3_GH0.tar.gz) = 645638
|
||||
SHA256 (swift510/apple-swift-asn1-1.0.0_GH0.tar.gz) = e0da995ae53e6fcf8251887f44d4030f6600e2f8f8451d9c92fcaf52b41b6c35
|
||||
SIZE (swift510/apple-swift-asn1-1.0.0_GH0.tar.gz) = 72780
|
||||
SHA256 (swift510/apple-swift-certificates-1.0.1_GH0.tar.gz) = fcaca458aab45ee69b0f678b72c2194b15664cc5f6f5e48d0e3f62bc5d1202ca
|
||||
SIZE (swift510/apple-swift-certificates-1.0.1_GH0.tar.gz) = 456979
|
||||
SHA256 (swift510/apple-swift-collections-1.0.1_GH0.tar.gz) = 575cf0f88d9068411f9acc6e3ca5d542bef1cc9e87dc5d69f7b5a1d5aec8c6b6
|
||||
SIZE (swift510/apple-swift-collections-1.0.1_GH0.tar.gz) = 3787804
|
||||
SHA256 (swift510/apple-swift-crypto-3.0.0_GH0.tar.gz) = 5c860c0306d0393ff06268f361aaf958656e1288353a0e23c3ad20de04319154
|
||||
SIZE (swift510/apple-swift-crypto-3.0.0_GH0.tar.gz) = 6840005
|
||||
SHA256 (swift510/apple-swift-nio-2.31.2_GH0.tar.gz) = 8818b8e991d36e886b207ae1023fa43c5eada7d6a1951a52ad70f7f71f57d9fe
|
||||
SIZE (swift510/apple-swift-nio-2.31.2_GH0.tar.gz) = 761397
|
||||
SHA256 (swift510/apple-swift-system-1.1.1_GH0.tar.gz) = 865b8c380455eef27e73109835142920c60ae4c4f4178a3d12ad04acc83f1371
|
||||
SIZE (swift510/apple-swift-system-1.1.1_GH0.tar.gz) = 69981
|
||||
SHA256 (swift510/jpsim-Yams-5.0.1_GH0.tar.gz) = ec1ad699c30f0db45520006c63a88cc1c946a7d7b36dff32a96460388c0a4af2
|
||||
SIZE (swift510/jpsim-Yams-5.0.1_GH0.tar.gz) = 658324
|
||||
@@ -0,0 +1,33 @@
|
||||
--- llbuild/Package.swift.orig 2024-01-09 06:44:05 UTC
|
||||
+++ llbuild/Package.swift
|
||||
@@ -71,6 +71,13 @@ let package = Package(
|
||||
exclude: []
|
||||
),
|
||||
|
||||
+ // MARK: sqlite3 as a system library
|
||||
+ .systemLibrary(
|
||||
+ name: "LLBSQLite3",
|
||||
+ path: "lib/LLBSQLite3",
|
||||
+ pkgConfig: "sqlite3"
|
||||
+ ),
|
||||
+
|
||||
// MARK: Components
|
||||
|
||||
.target(
|
||||
@@ -80,7 +87,7 @@ let package = Package(
|
||||
),
|
||||
.target(
|
||||
name: "llbuildCore",
|
||||
- dependencies: ["llbuildBasic"],
|
||||
+ dependencies: ["llbuildBasic", "LLBSQLite3"],
|
||||
path: "lib/Core",
|
||||
linkerSettings: [.linkedLibrary("sqlite3")]
|
||||
),
|
||||
@@ -227,6 +234,7 @@ let package = Package(
|
||||
path: "lib/llvm/Support",
|
||||
linkerSettings: [
|
||||
.linkedLibrary("m", .when(platforms: [.linux])),
|
||||
+ .linkedLibrary("execinfo"),
|
||||
.linkedLibrary("ncurses", .when(platforms: [.linux, .macOS, .android]))]
|
||||
),
|
||||
],
|
||||
@@ -0,0 +1,11 @@
|
||||
--- llbuild/include/llvm/Config/config.h.orig 2024-01-09 06:44:05 UTC
|
||||
+++ llbuild/include/llvm/Config/config.h
|
||||
@@ -131,7 +131,7 @@
|
||||
/* #undef HAVE_LSEEK64 */
|
||||
|
||||
/* Define to 1 if you have the `mallctl' function. */
|
||||
-/* #undef HAVE_MALLCTL */
|
||||
+#define HAVE_MALLCTL 1
|
||||
|
||||
/* Define to 1 if you have the `mallinfo' function. */
|
||||
/* #undef HAVE_MALLINFO */
|
||||
@@ -0,0 +1,8 @@
|
||||
--- llbuild/lib/LLBSQLite3/module.modulemap.orig 2025-01-01 00:00:00 UTC
|
||||
+++ llbuild/lib/LLBSQLite3/module.modulemap
|
||||
@@ -0,0 +1,5 @@
|
||||
+module LLBSQLite3 [system] {
|
||||
+ header "sqlite.h"
|
||||
+ link "sqlite3"
|
||||
+ export *
|
||||
+}
|
||||
@@ -0,0 +1,17 @@
|
||||
--- llbuild/lib/LLBSQLite3/sqlite.h.orig 2025-01-01 00:00:00 UTC
|
||||
+++ llbuild/lib/LLBSQLite3/sqlite.h
|
||||
@@ -0,0 +1,14 @@
|
||||
+//===----------------------------------------------------------------------===//
|
||||
+//
|
||||
+// This source file is part of the Swift open source project
|
||||
+//
|
||||
+// Copyright (c) 2014-2020 Apple Inc. and the Swift project authors
|
||||
+// Licensed under Apache License v2.0 with Runtime Library Exception
|
||||
+//
|
||||
+// See http://swift.org/LICENSE.txt for license information
|
||||
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
||||
+//
|
||||
+//===----------------------------------------------------------------------===//
|
||||
+
|
||||
+#pragma once
|
||||
+#include <sqlite3.h>
|
||||
@@ -0,0 +1,11 @@
|
||||
--- llbuild/utils/adjust-times/adjust-times.cpp.orig 2024-01-09 06:44:05 UTC
|
||||
+++ llbuild/utils/adjust-times/adjust-times.cpp
|
||||
@@ -50,7 +50,7 @@ static int file_time_set_fixed(const char* filename, s
|
||||
struct timeval times[2] = { tv, tv };
|
||||
return utimes(filename, times);
|
||||
}
|
||||
-#elif defined __linux__
|
||||
+#elif defined __linux__ || defined(__FreeBSD__)
|
||||
struct timespec times[2] = { time_to_set, time_to_set };
|
||||
return utimensat(AT_FDCWD, filename, times, 0);
|
||||
#else
|
||||
@@ -0,0 +1,42 @@
|
||||
--- llvm-project/clang/tools/IndexStore/IndexStore.exports.orig 2024-05-24 18:46:43 UTC
|
||||
+++ llvm-project/clang/tools/IndexStore/IndexStore.exports
|
||||
@@ -10,9 +10,7 @@ indexstore_store_get_unit_name_from_output_path
|
||||
indexstore_store_dispose
|
||||
indexstore_store_get_unit_modification_time
|
||||
indexstore_store_get_unit_name_from_output_path
|
||||
-indexstore_store_units_apply
|
||||
indexstore_store_units_apply_f
|
||||
-indexstore_store_set_unit_event_handler
|
||||
indexstore_store_set_unit_event_handler_f
|
||||
indexstore_store_start_unit_event_listening
|
||||
indexstore_store_stop_unit_event_listening
|
||||
@@ -33,19 +31,13 @@ indexstore_occurrence_get_line_col
|
||||
indexstore_occurrence_get_symbol
|
||||
indexstore_occurrence_get_roles
|
||||
indexstore_occurrence_get_line_col
|
||||
-indexstore_occurrence_relations_apply
|
||||
indexstore_occurrence_relations_apply_f
|
||||
indexstore_record_reader_create
|
||||
indexstore_record_reader_dispose
|
||||
-indexstore_record_reader_search_symbols
|
||||
indexstore_record_reader_search_symbols_f
|
||||
-indexstore_record_reader_symbols_apply
|
||||
indexstore_record_reader_symbols_apply_f
|
||||
-indexstore_record_reader_occurrences_apply
|
||||
indexstore_record_reader_occurrences_apply_f
|
||||
-indexstore_record_reader_occurrences_in_line_range_apply
|
||||
indexstore_record_reader_occurrences_in_line_range_apply_f
|
||||
-indexstore_record_reader_occurrences_of_symbols_apply
|
||||
indexstore_record_reader_occurrences_of_symbols_apply_f
|
||||
indexstore_unit_dependency_get_kind
|
||||
indexstore_unit_dependency_get_filepath
|
||||
@@ -68,9 +60,7 @@ indexstore_unit_reader_get_target
|
||||
indexstore_unit_reader_get_output_file
|
||||
indexstore_unit_reader_get_sysroot_path
|
||||
indexstore_unit_reader_get_target
|
||||
-indexstore_unit_reader_dependencies_apply
|
||||
indexstore_unit_reader_dependencies_apply_f
|
||||
-indexstore_unit_reader_includes_apply
|
||||
indexstore_unit_reader_includes_apply_f
|
||||
indexstore_unit_reader_has_main_file
|
||||
indexstore_unit_reader_is_debug_compilation
|
||||
@@ -0,0 +1,13 @@
|
||||
--- llvm-project/compiler-rt/cmake/config-ix.cmake.orig 2024-05-24 18:46:43 UTC
|
||||
+++ llvm-project/compiler-rt/cmake/config-ix.cmake
|
||||
@@ -237,6 +237,10 @@ test_targets()
|
||||
|
||||
test_targets()
|
||||
|
||||
+if(COMPILER_RT_SUPPORTED_ARCH)
|
||||
+ list(REMOVE_ITEM COMPILER_RT_SUPPORTED_ARCH i386)
|
||||
+endif()
|
||||
+
|
||||
# Returns a list of architecture specific target cflags in @out_var list.
|
||||
function(get_target_flags_for_arch arch out_var)
|
||||
list(FIND COMPILER_RT_SUPPORTED_ARCH ${arch} ARCH_INDEX)
|
||||
@@ -0,0 +1,11 @@
|
||||
--- llvm-project/compiler-rt/lib/tsan/dd/CMakeLists.txt.orig 2024-05-24 18:46:43 UTC
|
||||
+++ llvm-project/compiler-rt/lib/tsan/dd/CMakeLists.txt
|
||||
@@ -23,7 +23,7 @@ set_target_properties(dd PROPERTIES FOLDER "Compiler-R
|
||||
set_target_properties(dd PROPERTIES FOLDER "Compiler-RT Misc")
|
||||
|
||||
# Deadlock detector is currently supported on 64-bit Linux only.
|
||||
-if(CAN_TARGET_x86_64 AND UNIX AND NOT APPLE AND NOT ANDROID)
|
||||
+if(FALSE)
|
||||
set(arch "x86_64")
|
||||
add_compiler_rt_runtime(clang_rt.dd
|
||||
STATIC
|
||||
@@ -0,0 +1,15 @@
|
||||
--- swift-asn1/cmake/modules/SwiftSupport.cmake.orig 2023-09-18 10:20:51 UTC
|
||||
+++ swift-asn1/cmake/modules/SwiftSupport.cmake
|
||||
@@ -42,6 +42,12 @@ function(get_swift_host_arch result_var_name)
|
||||
set("${result_var_name}" "armv7" PARENT_SCOPE)
|
||||
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "AMD64")
|
||||
set("${result_var_name}" "x86_64" PARENT_SCOPE)
|
||||
+ elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "amd64")
|
||||
+ if("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
|
||||
+ set("${result_var_name}" "x86_64" PARENT_SCOPE)
|
||||
+ else()
|
||||
+ set("${result_var_name}" "amd64" PARENT_SCOPE)
|
||||
+ endif()
|
||||
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "IA64")
|
||||
set("${result_var_name}" "itanium" PARENT_SCOPE)
|
||||
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86")
|
||||
@@ -0,0 +1,15 @@
|
||||
--- swift-certificates/cmake/modules/SwiftSupport.cmake.orig 2023-09-25 17:11:14 UTC
|
||||
+++ swift-certificates/cmake/modules/SwiftSupport.cmake
|
||||
@@ -42,6 +42,12 @@ function(get_swift_host_arch result_var_name)
|
||||
set("${result_var_name}" "armv7" PARENT_SCOPE)
|
||||
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "AMD64")
|
||||
set("${result_var_name}" "x86_64" PARENT_SCOPE)
|
||||
+ elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "amd64")
|
||||
+ if("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
|
||||
+ set("${result_var_name}" "x86_64" PARENT_SCOPE)
|
||||
+ else()
|
||||
+ set("${result_var_name}" "amd64" PARENT_SCOPE)
|
||||
+ endif()
|
||||
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "IA64")
|
||||
set("${result_var_name}" "itanium" PARENT_SCOPE)
|
||||
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86")
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
--- swift-corelibs-foundation/CoreFoundation/Base.subproj/CFPlatform.c.orig 2024-05-31 00:46:27 UTC
|
||||
+++ swift-corelibs-foundation/CoreFoundation/Base.subproj/CFPlatform.c
|
||||
@@ -125,7 +125,7 @@ static inline void _CFSetProgramNameFromPath(const cha
|
||||
__CFprogname = (__CFprogname ? __CFprogname + 1 : __CFProcessPath);
|
||||
}
|
||||
|
||||
-#if TARGET_OS_BSD && defined(__OpenBSD__)
|
||||
+#if TARGET_OS_BSD && (defined(__OpenBSD__) || defined(__FreeBSD__))
|
||||
#include <sys/types.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/exec.h>
|
||||
@@ -199,6 +199,14 @@ const char *_CFProcessPath(void) {
|
||||
struct ps_strings *ps = _ps.val;
|
||||
char *res = realpath(ps->ps_argvstr[0], NULL);
|
||||
argv0 = res? res: strdup(ps->ps_argvstr[0]);
|
||||
+ }
|
||||
+#elif defined(__FreeBSD__)
|
||||
+ int mib[2] = {CTL_KERN, KERN_PS_STRINGS};
|
||||
+ struct ps_strings *ps;
|
||||
+ size_t oldlen = sizeof(ps);
|
||||
+ if (sysctl(mib, 2, &ps, &oldlen, NULL, 0) != -1 && oldlen == sizeof(ps)) {
|
||||
+ char *res = realpath(ps->ps_argvstr[0], NULL);
|
||||
+ argv0 = (res != NULL) ? res : strdup(ps->ps_argvstr[0]);
|
||||
}
|
||||
#endif
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
--- swift-corelibs-foundation/CoreFoundation/Base.subproj/CoreFoundation_Prefix.h.orig 2024-05-31 00:46:27 UTC
|
||||
+++ swift-corelibs-foundation/CoreFoundation/Base.subproj/CoreFoundation_Prefix.h
|
||||
@@ -260,6 +260,10 @@ CF_INLINE uint64_t mach_absolute_time() {
|
||||
ULONGLONG ullTime;
|
||||
QueryUnbiasedInterruptTimePrecise(&ullTime);
|
||||
return ullTime;
|
||||
+#elif defined(__FreeBSD__)
|
||||
+ struct timespec ts;
|
||||
+ clock_gettime(CLOCK_UPTIME, &ts);
|
||||
+ return (uint64_t)ts.tv_nsec + (uint64_t)ts.tv_sec * 1000000000UL;
|
||||
#elif TARGET_OS_LINUX || TARGET_OS_BSD || TARGET_OS_MAC
|
||||
struct timespec ts;
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
--- swift-corelibs-foundation/CoreFoundation/NumberDate.subproj/CFDate.c.orig 2024-05-31 00:46:27 UTC
|
||||
+++ swift-corelibs-foundation/CoreFoundation/NumberDate.subproj/CFDate.c
|
||||
@@ -176,6 +176,10 @@ CF_PRIVATE void __CFDateInitialize(void) {
|
||||
// To get seconds we need to divide the value by 1e7 (10000000).
|
||||
__CFTSRRate = 1.0e7;
|
||||
__CF1_TSRRate = 1.0 / __CFTSRRate;
|
||||
+#elif defined(__FreeBSD__)
|
||||
+ // FreeBSD uses nanoseconds
|
||||
+ __CFTSRRate = 1.0E9;
|
||||
+ __CF1_TSRRate = 1.0 / __CFTSRRate;
|
||||
#elif TARGET_OS_LINUX || TARGET_OS_BSD || TARGET_OS_WASI
|
||||
struct timespec res;
|
||||
if (clock_getres(CLOCK_MONOTONIC, &res) != 0) {
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
--- swift-corelibs-foundation/CoreFoundation/PlugIn.subproj/CFBundle_Internal.h.orig 2024-05-31 00:46:27 UTC
|
||||
+++ swift-corelibs-foundation/CoreFoundation/PlugIn.subproj/CFBundle_Internal.h
|
||||
@@ -429,7 +429,7 @@ static bool _CFGetPathFromFileDescriptor(int fd, char
|
||||
// The buffer must be PATH_MAX long or more.
|
||||
static bool _CFGetPathFromFileDescriptor(int fd, char *path);
|
||||
|
||||
-#if TARGET_OS_MAC || (TARGET_OS_BSD && !defined(__OpenBSD__))
|
||||
+#if TARGET_OS_MAC
|
||||
|
||||
static bool _CFGetPathFromFileDescriptor(int fd, char *path) {
|
||||
return fcntl(fd, F_GETPATH, path) != -1;
|
||||
+324
@@ -0,0 +1,324 @@
|
||||
--- swift-corelibs-foundation/CoreFoundation/RunLoop.subproj/CFRunLoop.c.orig 2024-05-31 00:46:27 UTC
|
||||
+++ swift-corelibs-foundation/CoreFoundation/RunLoop.subproj/CFRunLoop.c
|
||||
@@ -115,6 +115,14 @@ extern void _dispatch_main_queue_callback_4CF(void *_N
|
||||
dispatch_runloop_handle_t _dispatch_get_main_queue_port_4CF(void);
|
||||
extern void _dispatch_main_queue_callback_4CF(void *_Null_unspecified msg);
|
||||
|
||||
+#elif defined(__FreeBSD__)
|
||||
+
|
||||
+#include <sys/event.h>
|
||||
+#include <dlfcn.h>
|
||||
+
|
||||
+extern dispatch_runloop_handle_t _dispatch_get_main_queue_port_4CF(void);
|
||||
+extern void _dispatch_main_queue_callback_4CF(void *_Null_unspecified msg);
|
||||
+
|
||||
#else
|
||||
dispatch_runloop_handle_t _dispatch_get_main_queue_port_4CF(void);
|
||||
extern void _dispatch_main_queue_callback_4CF(void *_Null_unspecified msg);
|
||||
@@ -451,6 +459,98 @@ CF_INLINE void __CFPortSetFree(__CFPortSet portSet) {
|
||||
CF_INLINE void __CFPortSetFree(__CFPortSet portSet) {
|
||||
close(portSet);
|
||||
}
|
||||
+
|
||||
+#elif defined(__FreeBSD__)
|
||||
+
|
||||
+// A file descriptor.
|
||||
+typedef int __CFPort;
|
||||
+// A timer port is a kqueue which monitors a single EVFILT_TIMER event (when the timer is armed).
|
||||
+// A wakeup port is a kqueue which monitors a single EVFILT_USER event.
|
||||
+
|
||||
+#define CFPORT_NULL (-1)
|
||||
+
|
||||
+// A kqueue file descriptor.
|
||||
+typedef int __CFPortSet;
|
||||
+
|
||||
+#define CFPORTSET_NULL (-1)
|
||||
+
|
||||
+
|
||||
+static void __THE_SYSTEM_HAS_NO_PORTS_AVAILABLE__(kern_return_t ret) __attribute__((noinline));
|
||||
+static void __THE_SYSTEM_HAS_NO_PORTS_AVAILABLE__(kern_return_t ret) { HALT; };
|
||||
+
|
||||
+static __CFPort __CFPortAllocate(uintptr_t guard) {
|
||||
+ __CFPort kq = kqueuex(KQUEUE_CLOEXEC);
|
||||
+ if (kq == -1) {
|
||||
+ __THE_SYSTEM_HAS_NO_PORTS_AVAILABLE__(errno);
|
||||
+ return CFPORT_NULL;
|
||||
+ }
|
||||
+ struct kevent kev = {
|
||||
+ .ident = 0,
|
||||
+ .filter = EVFILT_USER,
|
||||
+ .flags = EV_ADD | EV_CLEAR,
|
||||
+ };
|
||||
+ int r = kevent(kq, &kev, 1, NULL, 0, NULL);
|
||||
+ if (r == -1) {
|
||||
+ HALT;
|
||||
+ return CFPORT_NULL;
|
||||
+ }
|
||||
+ return kq;
|
||||
+}
|
||||
+
|
||||
+static void __CFPortFree(__CFPort port, uintptr_t guard) {
|
||||
+ close(port);
|
||||
+}
|
||||
+
|
||||
+static void __THE_SYSTEM_HAS_NO_PORT_SETS_AVAILABLE__(kern_return_t ret) __attribute__((noinline));
|
||||
+static void __THE_SYSTEM_HAS_NO_PORT_SETS_AVAILABLE__(kern_return_t ret) { HALT; }
|
||||
+
|
||||
+static __CFPortSet __CFPortSetAllocate(void) {
|
||||
+ __CFPort kq = kqueuex(KQUEUE_CLOEXEC);
|
||||
+ if (kq == -1) {
|
||||
+ __THE_SYSTEM_HAS_NO_PORT_SETS_AVAILABLE__(errno);
|
||||
+ return CFPORT_NULL;
|
||||
+ }
|
||||
+ return kq;
|
||||
+}
|
||||
+
|
||||
+static kern_return_t __CFPortSetInsert(__CFPort port, __CFPortSet portSet) {
|
||||
+ if (port == CFPORT_NULL) {
|
||||
+ return -1;
|
||||
+ }
|
||||
+ struct kevent kev = {
|
||||
+ .ident = (uintptr_t)port,
|
||||
+ .filter = EVFILT_READ,
|
||||
+ .flags = EV_ADD,
|
||||
+ };
|
||||
+ int r = kevent(portSet, &kev, 1, NULL, 0, NULL);
|
||||
+ if (r == -1) {
|
||||
+ return errno;
|
||||
+ } else {
|
||||
+ return 0;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static kern_return_t __CFPortSetRemove(__CFPort port, __CFPortSet portSet) {
|
||||
+ if (port == CFPORT_NULL) {
|
||||
+ return -1;
|
||||
+ }
|
||||
+ struct kevent kev = {
|
||||
+ .ident = (uintptr_t)port,
|
||||
+ .filter = EVFILT_READ,
|
||||
+ .flags = EV_DELETE,
|
||||
+ };
|
||||
+ int r = kevent(portSet, &kev, 1, NULL, 0, NULL);
|
||||
+ if (r == -1) {
|
||||
+ return errno;
|
||||
+ } else {
|
||||
+ return 0;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void __CFPortSetFree(__CFPortSet portSet) {
|
||||
+ close(portSet);
|
||||
+}
|
||||
+
|
||||
#elif TARGET_OS_BSD
|
||||
|
||||
#include <sys/types.h>
|
||||
@@ -823,6 +923,58 @@ static kern_return_t mk_timer_cancel(HANDLE name, Abso
|
||||
}
|
||||
return (int)res;
|
||||
}
|
||||
+#elif defined(__FreeBSD__)
|
||||
+static __CFPort mk_timer_create(void) {
|
||||
+ __CFPort kq = kqueuex(KQUEUE_CLOEXEC);
|
||||
+ if (kq == -1) {
|
||||
+ HALT;
|
||||
+ return CFPORT_NULL;
|
||||
+ }
|
||||
+ return kq;
|
||||
+}
|
||||
+
|
||||
+static kern_return_t mk_timer_destroy(__CFPort name) {
|
||||
+ return close(name);
|
||||
+}
|
||||
+
|
||||
+static kern_return_t mk_timer_cancel(__CFPort timer, AbsoluteTime *result_time) {
|
||||
+ struct kevent kev = {
|
||||
+ .ident = 0,
|
||||
+ .filter = EVFILT_TIMER,
|
||||
+ .flags = EV_DELETE,
|
||||
+ };
|
||||
+ int r = kevent(timer, &kev, 1, NULL, 0, NULL);
|
||||
+ // The returned values are ignored.
|
||||
+ *result_time = (struct UnsignedWide){ .hi = 0, .lo = 0 };
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static kern_return_t mk_timer_arm(__CFPort timer, uint64_t expire_time) {
|
||||
+ struct kevent kev = {
|
||||
+ .ident = 0,
|
||||
+ .filter = EVFILT_TIMER,
|
||||
+ .flags = EV_ADD,
|
||||
+ .fflags = NOTE_NSECONDS | NOTE_ABSTIME,
|
||||
+ .data = (int64_t)expire_time,
|
||||
+ };
|
||||
+ int r = kevent(timer, &kev, 1, NULL, 0, NULL);
|
||||
+ // The returned value is ignored.
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static Boolean __CFPortTriggerWakeup(__CFPort wakeupPort) {
|
||||
+ struct kevent kev = {
|
||||
+ .ident = 0,
|
||||
+ .filter = EVFILT_USER,
|
||||
+ .fflags = NOTE_TRIGGER,
|
||||
+ };
|
||||
+ int r = kevent(wakeupPort, &kev, 1, NULL, 0, NULL);
|
||||
+ if (r == -1) {
|
||||
+ return false;
|
||||
+ } else {
|
||||
+ return true;
|
||||
+ }
|
||||
+}
|
||||
#elif TARGET_OS_BSD
|
||||
/*
|
||||
* This implementation of the mk_timer_* stubs is defined with the
|
||||
@@ -1136,7 +1288,7 @@ static CFRunLoopModeRef __CFRunLoopCopyMode(CFRunLoopR
|
||||
if (KERN_SUCCESS != ret) CRASH("*** Unable to insert timer port into port set. (%d) ***", ret);
|
||||
#endif
|
||||
rlm->_timerPort = CFPORT_NULL;
|
||||
-#if TARGET_OS_BSD
|
||||
+#if TARGET_OS_BSD && !defined(__FreeBSD__)
|
||||
rlm->_timerPort = mk_timer_create(rlm->_portSet);
|
||||
#else
|
||||
rlm->_timerPort = mk_timer_create();
|
||||
@@ -2412,7 +2564,7 @@ static void __CFArmNextTimerInMode(CFRunLoopModeRef rl
|
||||
// <rdar://problem/14447675>
|
||||
|
||||
// Cancel the mk timer
|
||||
- if (rlm->_mkTimerArmed && rlm->_timerPort) {
|
||||
+ if (rlm->_mkTimerArmed && rlm->_timerPort != CFPORT_NULL) {
|
||||
AbsoluteTime dummy;
|
||||
mk_timer_cancel(rlm->_timerPort, &dummy);
|
||||
rlm->_mkTimerArmed = false;
|
||||
@@ -2430,20 +2582,20 @@ static void __CFArmNextTimerInMode(CFRunLoopModeRef rl
|
||||
}
|
||||
|
||||
// Arm the mk timer
|
||||
- if (rlm->_timerPort) {
|
||||
+ if (rlm->_timerPort != CFPORT_NULL) {
|
||||
mk_timer_arm(rlm->_timerPort, nextSoftDeadline);
|
||||
rlm->_mkTimerArmed = true;
|
||||
}
|
||||
}
|
||||
#else
|
||||
- if (rlm->_timerPort) {
|
||||
+ if (rlm->_timerPort != CFPORT_NULL) {
|
||||
mk_timer_arm(rlm->_timerPort, nextSoftDeadline);
|
||||
}
|
||||
#endif
|
||||
} else if (nextSoftDeadline == UINT64_MAX) {
|
||||
// Disarm the timers - there is no timer scheduled
|
||||
|
||||
- if (rlm->_mkTimerArmed && rlm->_timerPort) {
|
||||
+ if (rlm->_mkTimerArmed && rlm->_timerPort != CFPORT_NULL) {
|
||||
AbsoluteTime dummy;
|
||||
mk_timer_cancel(rlm->_timerPort, &dummy);
|
||||
rlm->_mkTimerArmed = false;
|
||||
@@ -2916,6 +3068,56 @@ static Boolean __CFRunLoopWaitForMultipleObjects(__CFP
|
||||
return result;
|
||||
}
|
||||
|
||||
+#elif defined(__FreeBSD__)
|
||||
+
|
||||
+#define TIMEOUT_INFINITY (-1)
|
||||
+
|
||||
+static Boolean __CFRunLoopServicePorts(__CFPortSet portSet, __CFPort singlePort, __CFPort *livePort, int timeout) {
|
||||
+ *livePort = CFPORT_NULL;
|
||||
+ if (TIMEOUT_INFINITY == timeout) {
|
||||
+ CFRUNLOOP_SLEEP();
|
||||
+ } else {
|
||||
+ CFRUNLOOP_POLL();
|
||||
+ }
|
||||
+ const struct timespec poll_ts = { .tv_sec = 0, .tv_nsec = 0 };
|
||||
+ struct kevent kev;
|
||||
+ if (portSet != CFPORTSET_NULL) {
|
||||
+ // Find out which port has an event waiting.
|
||||
+ int r = kevent(portSet, NULL, 0, &kev, 1, (timeout == TIMEOUT_INFINITY) ? NULL : &poll_ts);
|
||||
+ CFRUNLOOP_WAKEUP(r);
|
||||
+ if (r == 1) {
|
||||
+ int kq2 = (int)kev.ident;
|
||||
+ // Receive the event.
|
||||
+ int r2 = kevent(kq2, NULL, 0, &kev, 1, &poll_ts);
|
||||
+ if (r2 == 1) {
|
||||
+ *livePort = kq2;
|
||||
+ return true;
|
||||
+ } else if (r2 == 0) {
|
||||
+ return false;
|
||||
+ } else {
|
||||
+ HALT;
|
||||
+ return false;
|
||||
+ }
|
||||
+ } else if (r == 0) {
|
||||
+ return false;
|
||||
+ } else {
|
||||
+ HALT;
|
||||
+ return false;
|
||||
+ }
|
||||
+ } else {
|
||||
+ int r = kevent(singlePort, NULL, 0, &kev, 1, (timeout == TIMEOUT_INFINITY) ? NULL : &poll_ts);
|
||||
+ CFRUNLOOP_WAKEUP(r);
|
||||
+ if (r == 1) {
|
||||
+ *livePort = singlePort;
|
||||
+ return true;
|
||||
+ } else if (r == 0) {
|
||||
+ return false;
|
||||
+ } else {
|
||||
+ HALT;
|
||||
+ return false;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
#endif
|
||||
|
||||
/* rl, rlm are locked on entrance and exit */
|
||||
@@ -3034,6 +3236,10 @@ static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLo
|
||||
if (__CFRunLoopWaitForMultipleObjects(NULL, &dispatchPort, 0, 0, &livePort, NULL)) {
|
||||
goto handle_msg;
|
||||
}
|
||||
+#elif defined(__FreeBSD__)
|
||||
+ if (__CFRunLoopServicePorts(CFPORTSET_NULL, dispatchPort, &livePort, 0)) {
|
||||
+ goto handle_msg;
|
||||
+ }
|
||||
#elif TARGET_OS_BSD
|
||||
if (__CFRunLoopServiceFileDescriptors(CFPORTSET_NULL, dispatchPort, 0, &livePort)) {
|
||||
goto handle_msg;
|
||||
@@ -3095,6 +3301,8 @@ static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLo
|
||||
__CFRunLoopWaitForMultipleObjects(waitSet, NULL, poll ? 0 : TIMEOUT_INFINITY, rlm->_msgQMask, &livePort, &windowsMessageReceived);
|
||||
#elif TARGET_OS_LINUX
|
||||
__CFRunLoopServiceFileDescriptors(waitSet, CFPORT_NULL, poll ? 0 : TIMEOUT_INFINITY, &livePort);
|
||||
+#elif defined(__FreeBSD__)
|
||||
+ __CFRunLoopServicePorts(waitSet, CFPORT_NULL, &livePort, poll ? 0 : TIMEOUT_INFINITY);
|
||||
#elif TARGET_OS_BSD
|
||||
__CFRunLoopServiceFileDescriptors(waitSet, CFPORT_NULL, poll ? 0 : TIMEOUT_INFINITY, &livePort);
|
||||
#else
|
||||
@@ -3406,6 +3614,9 @@ void CFRunLoopWakeUp(CFRunLoopRef rl) {
|
||||
CFAssert1(0 == ret, __kCFLogAssertion, "%s(): Unable to send wake message to eventfd", __PRETTY_FUNCTION__);
|
||||
#elif TARGET_OS_WIN32
|
||||
SetEvent(rl->_wakeUpPort);
|
||||
+#elif defined(__FreeBSD__)
|
||||
+ Boolean success = __CFPortTriggerWakeup(rl->_wakeUpPort);
|
||||
+ if (!success) HALT;
|
||||
#elif TARGET_OS_BSD
|
||||
__CFPortTrigger(rl->_wakeUpPort);
|
||||
#else
|
||||
@@ -4131,6 +4342,10 @@ CFRunLoopSourceRef CFRunLoopSourceCreate(CFAllocatorRe
|
||||
size = sizeof(CFRunLoopSourceContext);
|
||||
break;
|
||||
case 1:
|
||||
+#if defined(__FreeBSD__)
|
||||
+ // V1 sources are not implemented on FreeBSD yet
|
||||
+ HALT;
|
||||
+#endif
|
||||
size = sizeof(CFRunLoopSourceContext1);
|
||||
break;
|
||||
}
|
||||
@@ -4275,7 +4490,7 @@ static CFStringRef __CFRunLoopObserverCopyDescription(
|
||||
}
|
||||
#if TARGET_OS_WIN32
|
||||
result = CFStringCreateWithFormat(kCFAllocatorSystemDefault, NULL, CFSTR("<CFRunLoopObserver %p [%p]>{valid = %s, activities = 0x%x, repeats = %s, order = %d, callout = %p, context = %@}"), cf, CFGetAllocator(rlo), __CFIsValid(rlo) ? "Yes" : "No", rlo->_activities, __CFRunLoopObserverRepeats(rlo) ? "Yes" : "No", rlo->_order, rlo->_callout, contextDesc);
|
||||
-#elif TARGET_OS_MAC || (TARGET_OS_LINUX && !TARGET_OS_CYGWIN)
|
||||
+#elif TARGET_OS_MAC || (TARGET_OS_LINUX && !TARGET_OS_CYGWIN) || defined(__FreeBSD__)
|
||||
void *addr = rlo->_callout;
|
||||
Dl_info info;
|
||||
const char *name = (dladdr(addr, &info) && info.dli_saddr == addr && info.dli_sname) ? info.dli_sname : "???";
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
--- swift-corelibs-foundation/Sources/Foundation/FileManager+POSIX.swift.orig 2024-05-31 00:46:27 UTC
|
||||
+++ swift-corelibs-foundation/Sources/Foundation/FileManager+POSIX.swift
|
||||
@@ -70,7 +70,7 @@ extension FileManager {
|
||||
}
|
||||
urls = mountPoints(statBuf, Int(fsCount))
|
||||
}
|
||||
-#elseif os(OpenBSD)
|
||||
+#elseif os(OpenBSD) || os(FreeBSD)
|
||||
func mountPoints(_ statBufs: UnsafePointer<statfs>, _ fsCount: Int) -> [URL] {
|
||||
var urls: [URL] = []
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
--- swift-corelibs-foundation/Sources/Foundation/FileManager.swift.orig 2024-05-31 00:46:27 UTC
|
||||
+++ swift-corelibs-foundation/Sources/Foundation/FileManager.swift
|
||||
@@ -389,7 +389,7 @@ open class FileManager : NSObject {
|
||||
}
|
||||
#if os(macOS) || os(iOS)
|
||||
let modeT = number.uint16Value
|
||||
- #elseif os(Linux) || os(Android) || os(Windows) || os(OpenBSD)
|
||||
+ #elseif os(Linux) || os(Android) || os(Windows) || os(OpenBSD) || os(FreeBSD)
|
||||
let modeT = number.uint32Value
|
||||
#endif
|
||||
#if os(Windows)
|
||||
@@ -465,7 +465,7 @@ open class FileManager : NSObject {
|
||||
flags |= flagsToSet
|
||||
flags &= ~flagsToUnset
|
||||
|
||||
- guard chflags(fsRep, flags) == 0 else {
|
||||
+ guard chflags(fsRep, UInt(flags)) == 0 else {
|
||||
throw _NSErrorWithErrno(errno, reading: false, path: path)
|
||||
}
|
||||
#endif
|
||||
@@ -872,7 +872,7 @@ open class FileManager : NSObject {
|
||||
#elseif canImport(Darwin)
|
||||
return Int(mode & ~UInt32(S_IFMT))
|
||||
#else
|
||||
- return Int(mode & ~S_IFMT)
|
||||
+ return Int(mode & ~UInt32(S_IFMT))
|
||||
#endif
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user