这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions packages/libdispatch/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ TERMUX_PKG_HOMEPAGE=https://github.com/swiftlang/swift-corelibs-libdispatch
TERMUX_PKG_DESCRIPTION="The libdispatch project, for concurrency on multicore hardware"
TERMUX_PKG_LICENSE="Apache-2.0"
TERMUX_PKG_MAINTAINER="@finagolfin"
TERMUX_PKG_VERSION="1:6.1"
TERMUX_PKG_REVISION=1
TERMUX_PKG_VERSION="1:6.2.1"
TERMUX_PKG_SRCURL=https://github.com/swiftlang/swift-corelibs-libdispatch/archive/swift-${TERMUX_PKG_VERSION:2}-RELEASE.tar.gz
TERMUX_PKG_SHA256=5bba8d7442890f7dbd37a9245340c5bb0c4c924dee6180ba30385b24e3fdf121
TERMUX_PKG_SHA256=18c6d5945e6668c1928deb72f524dfa26ad9d1b226c7d618cdf766885ccc433c
TERMUX_PKG_AUTO_UPDATE=false
TERMUX_PKG_DEPENDS="libc++, libblocksruntime"
5 changes: 2 additions & 3 deletions packages/llbuild/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ TERMUX_PKG_HOMEPAGE=https://github.com/swiftlang/swift-llbuild
TERMUX_PKG_DESCRIPTION="A low-level build system, used by the Swift Package Manager"
TERMUX_PKG_LICENSE="Apache-2.0, NCSA"
TERMUX_PKG_MAINTAINER="@finagolfin"
TERMUX_PKG_VERSION=6.1
TERMUX_PKG_REVISION=1
TERMUX_PKG_VERSION=6.2.1
TERMUX_PKG_SRCURL=https://github.com/swiftlang/swift-llbuild/archive/swift-${TERMUX_PKG_VERSION}-RELEASE.tar.gz
TERMUX_PKG_SHA256=68df17453b52ac9fd334dec53e05f87c49e3458db0800273ff1f675525504996
TERMUX_PKG_SHA256=fdc26af47b53779776f1294f674886c774636ef0b0b1b2c2ed90f9626bd018ed
TERMUX_PKG_DEPENDS="libc++, libandroid-spawn, libsqlite"
TERMUX_PKG_NO_STATICSPLIT=true
2 changes: 1 addition & 1 deletion packages/llbuild/lib-llvm-Support-CmakeLists.txt.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ index 8e79e18..a844183 100644
@@ -65,5 +65,5 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
endif()

if(${CMAKE_SYSTEM_NAME} MATCHES "Android|Darwin|Linux")
if(${CMAKE_SYSTEM_NAME} MATCHES "Android|Darwin|Linux|FreeBSD")
- target_link_libraries(llvmSupport PRIVATE curses)
+ target_link_libraries(llvmSupport PRIVATE android-spawn curses)
endif()
61 changes: 34 additions & 27 deletions packages/swift/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://swift.org/
TERMUX_PKG_DESCRIPTION="Swift is a high-performance system programming language"
TERMUX_PKG_LICENSE="Apache-2.0, NCSA"
TERMUX_PKG_MAINTAINER="@finagolfin"
TERMUX_PKG_VERSION=6.1.3
TERMUX_PKG_VERSION=6.2.1
SWIFT_RELEASE="RELEASE"
TERMUX_PKG_SRCURL=https://github.com/swiftlang/swift/archive/swift-$TERMUX_PKG_VERSION-$SWIFT_RELEASE.tar.gz
TERMUX_PKG_SHA256=2a4f0045f7439c3dbed39f67487729a10bc8a8042c4a1d24a63db455ee67cd5f
TERMUX_PKG_SHA256=39825af3b1ab523ed4970e1315a14b5379fb5f8046170c27a330a179d982fe2a
TERMUX_PKG_AUTO_UPDATE=false
TERMUX_PKG_HOSTBUILD=true
TERMUX_PKG_DEPENDS="clang, libandroid-execinfo, libandroid-glob, libandroid-posix-semaphore, libandroid-shmem, libandroid-spawn, libandroid-spawn-static, libandroid-sysv-semaphore, libcurl, libuuid, libxml2, libdispatch, llbuild, pkg-config, swift-sdk-${TERMUX_ARCH/_/-}"
Expand Down Expand Up @@ -35,30 +35,36 @@ termux_step_post_get_source() {
mv .temp swift

declare -A library_checksums
library_checksums[swift-cmark]=bc69d7838b25c66f8cdafcb4d6f957a33b8136de69dbed08653a47a880867da4
library_checksums[llvm-project]=831136c438a64742f32a0d3280d2842311d2470101d5f6fc9509cbfcaab1ccd2
library_checksums[swift-experimental-string-processing]=e60e4cf4c8c2f4d31e77e7511b80f957b5898b1d6977c1d50f6166d777250f30
library_checksums[swift-syntax]=6c02c84c4e8064eb243b3f411fb2b52421b823a5ed77b85805f20e8ea4accf85
library_checksums[swift-corelibs-libdispatch]=9599cc787f7e52f1815de127389aaf2359f5fe430844c1d97b1a3e9838ceea54
library_checksums[swift-corelibs-foundation]=3ab783ec14137c8eca5d2afac1903cae7a6b2b16e43ef56c175807c161e6965e
library_checksums[swift-foundation]=4a628ebec75da0de604d58162a84b0bba2b668b3baf36a9c45ab971197738be5
library_checksums[swift-foundation-icu]=f7d19fb430004ecf69c312bab9b355e9f542c839e43848353b19fa04901e7fc6
library_checksums[swift-corelibs-xctest]=d36525da839ceacbcf944111a05e55141ca469aeb7257a8ad40072c7ee9a908b
library_checksums[swift-cmark]=4f54c388f9a98527cf751ffedb35898c2198b4f23cf16d109203f9ba54a62379
library_checksums[llvm-project]=c0bd5b4bc69dceda1dda5aabee6f24e42e87ec2ccb0ee5f002448ab3c4769fdf
library_checksums[swift-experimental-string-processing]=a0055310ebc885ba4781edbcc9aaf44f7ae0cdbc633846bc0a9a6b3f53b29029
library_checksums[swift-syntax]=c407424ca6da371425fbbe2a3f097f9df25118764a45b4a3af5e6d0ca4abc14a
library_checksums[swift-corelibs-libdispatch]=18c6d5945e6668c1928deb72f524dfa26ad9d1b226c7d618cdf766885ccc433c
library_checksums[swift-corelibs-foundation]=c395a3ca39291bda0f03946c2c4b5730ed02d629a3539adaf90184300228ea72
library_checksums[swift-foundation]=411b967971eaa6c6ab4a1ba84fd145c17f4cb053515277bb903f18bf0183edb0
library_checksums[swift-foundation-icu]=6e8ce5b8491821e840ea720b795264b5dcc98ad38ea122bc016593ac2be1f520
library_checksums[swift-corelibs-xctest]=b0d7922af89146ab5a12d9744e965ca3bf587c9bbda2f435ab56a6dad86004a5
library_checksums[swift-toolchain-sqlite]=c8704e70c4847a8dbd47aafb25d293fbe1e1bafade16cfa64e04f751e33db0ca
library_checksums[swift-llbuild]=ab40529401814b69e45c15a5ca5618063819197c9d905c1bad73c9b41976a573
library_checksums[swift-testing]=81db185d5c0d7e3914b1e01a45ba79a316a1e711a790254c0b00cbc87f8b59ce
library_checksums[swift-llbuild]=fdc26af47b53779776f1294f674886c774636ef0b0b1b2c2ed90f9626bd018ed
library_checksums[swift-testing]=871e4eb07c1467dcac331f2bfa591cbd0a46dc2fee953f67f9b1402941fbd681
library_checksums[swift-argument-parser]=d5bad3a1da66d9f4ceb0a347a197b8fdd243a91ff6b2d72b78efb052b9d6dd33
library_checksums[Yams]=a81c6b93f5d26bae1b619b7f8babbfe7c8abacf95b85916961d488888df886fb
library_checksums[swift-collections]=7e5e48d0dc2350bed5919be5cf60c485e72a30bd1f2baf718a619317677b91db
library_checksums[swift-crypto]=5c860c0306d0393ff06268f361aaf958656e1288353a0e23c3ad20de04319154
library_checksums[swift-system]=02e13a7f77887c387f5aa1de05f4d4b8b158c35145450e1d9557d6c42b06cd1f
library_checksums[swift-system]=4bf5d5db04d48f484289371b63dd7bdced0db1ab1307c49127b9f894341a521d
library_checksums[swift-asn1]=e0da995ae53e6fcf8251887f44d4030f6600e2f8f8451d9c92fcaf52b41b6c35
library_checksums[swift-certificates]=fcaca458aab45ee69b0f678b72c2194b15664cc5f6f5e48d0e3f62bc5d1202ca
library_checksums[swift-driver]=7ec505045455629d64bed8405da486760fc4016a6675fe2029f00fb957f86e2d
library_checksums[swift-tools-support-core]=77c8cbe97273c15a216b7319ccbc862c150b15c5bd4f0184b06f111bba89977e
library_checksums[swift-package-manager]=016dea5cc0bcd18735f7fb44231ae1e2143f10da9f9b2a3bd198d5c3ecbb63b8
library_checksums[indexstore-db]=23d80191e3d0acf2b67b2ee8af271af90e9c0d7c48ee3623d9600f63f4923207
library_checksums[sourcekit-lsp]=8d7dc4ec1475d560dadb620e364c0b0e344224549b74de607aaf10aa7e18c67e
library_checksums[swift-driver]=004db94c753b437c7ec8260a27f0b79509389503e661dacd244547fdfa1edc23
library_checksums[swift-tools-support-core]=a1783534192eaef6de498c10ac02fab70aa64cbc9750252b30ff856046962530
library_checksums[swift-build]=6284de0771da435c99af96aa1109029ffa47c18a3fb507d1c3266c42e9e7b0f1
library_checksums[swift-package-manager]=b8f9d96ec4095e46d021dce896d47991ab30d7a487511054a9e630aff4303e42
library_checksums[indexstore-db]=d13695451dfdbb5719527ec66f588da1f5b350553c231655d5dc1e4e84105cec
library_checksums[swift-docc]=954dcba69da56c63e1636f0dece60d4c8c1250e6bc2b97e20f72e50b068fdd1d
library_checksums[swift-docc-symbolkit]=47e9b732a3e03a803e962333f6934d2648e6685f17328dad7c56874047366b1d
library_checksums[swift-lmdb]=0e60fb6e3ff82253c529f1e0e902f556e8749c963ceb4db8305d2af152da465e
library_checksums[swift-markdown]=2cdb1751c22a22eb16b92cd12bb7c7d27d7af103173df1893c2c813dc2098a9e
library_checksums[swift-nio]=feb16b6d0e6d010be14c6732d7b02ddbbdc15a22e3912903f08ef5d73928f90d
library_checksums[swift-atomics]=33d9f4fbaeddee4bda3af2be126791ee8acf3d3c24a2244457641a20d39aec12
library_checksums[sourcekit-lsp]=0ff9f6f2547b6585512193ee6d87980bc45b71051e19a74d3f09ba257b8123fe

for library in "${!library_checksums[@]}"; do \
GH_ORG="apple"
Expand All @@ -68,6 +74,9 @@ termux_step_post_get_source() {
elif [ "$library" = "swift-asn1" ]; then
SRC_VERSION="1.0.0"
TAR_NAME=$SRC_VERSION
elif [ "$library" = "swift-atomics" ]; then
SRC_VERSION="1.2.0"
TAR_NAME=$SRC_VERSION
elif [ "$library" = "swift-certificates" ]; then
SRC_VERSION="1.0.1"
TAR_NAME=$SRC_VERSION
Expand All @@ -77,17 +86,16 @@ termux_step_post_get_source() {
elif [ "$library" = "swift-crypto" ]; then
SRC_VERSION="3.0.0"
TAR_NAME=$SRC_VERSION
elif [ "$library" = "swift-nio" ]; then
SRC_VERSION="2.65.0"
TAR_NAME=$SRC_VERSION
elif [ "$library" = "swift-system" ]; then
SRC_VERSION="1.3.0"
SRC_VERSION="1.5.0"
TAR_NAME=$SRC_VERSION
elif [ "$library" = "swift-toolchain-sqlite" ]; then
GH_ORG="swiftlang"
SRC_VERSION="1.0.1"
TAR_NAME=$SRC_VERSION
elif [ "$library" = "Yams" ]; then
GH_ORG="jpsim"
SRC_VERSION="5.0.6"
TAR_NAME=$SRC_VERSION
else
GH_ORG="swiftlang"
SRC_VERSION=$SWIFT_RELEASE
Expand All @@ -104,7 +112,6 @@ termux_step_post_get_source() {

mv swift-cmark cmark
mv swift-llbuild llbuild
mv Yams yams
mv swift-package-manager swiftpm
}

Expand Down Expand Up @@ -171,7 +178,7 @@ termux_step_make_install() {
rm $TERMUX_PREFIX/lib/swift{,_static}/dispatch/*.h
rm $TERMUX_PREFIX/lib/swift/android/lib{dispatch,BlocksRuntime}.so
mv $TERMUX_PREFIX/lib/swift/android/lib[^_]*.so $TERMUX_PREFIX/opt/ndk-multilib/$TERMUX_ARCH-linux-android*/lib
mv $TERMUX_PREFIX/lib/swift/android/lib_FoundationICU.so $TERMUX_PREFIX/opt/ndk-multilib/$TERMUX_ARCH-linux-android*/lib
mv $TERMUX_PREFIX/lib/swift/android/lib_{Testing_,}Foundation*.so $TERMUX_PREFIX/opt/ndk-multilib/$TERMUX_ARCH-linux-android*/lib
mv $TERMUX_PREFIX/lib/swift/android/lib*.a $TERMUX_PREFIX/lib/swift/android/$SWIFT_ARCH
mv $TERMUX_PREFIX/lib/swift_static/android/lib*.a $TERMUX_PREFIX/lib/swift_static/android/$SWIFT_ARCH

Expand Down
18 changes: 9 additions & 9 deletions packages/swift/swift-android-spawn.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ index 8e79e18..a844183 100644
@@ -65,5 +65,5 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
endif()

if(${CMAKE_SYSTEM_NAME} MATCHES "Android|Darwin|Linux")
if(${CMAKE_SYSTEM_NAME} MATCHES "Android|Darwin|Linux|FreeBSD")
- target_link_libraries(llvmSupport PRIVATE curses)
+ target_link_libraries(llvmSupport PRIVATE android-spawn curses)
endif()
Expand Down Expand Up @@ -90,11 +90,11 @@ diff --git a/swiftpm/Utilities/bootstrap b/swiftpm/Utilities/bootstrap
index 085056de..1ded1a90 100755
--- a/swiftpm/Utilities/bootstrap
+++ b/swiftpm/Utilities/bootstrap
@@ -827,6 +827,7 @@ def get_swiftpm_flags(args):
# Don't use GNU strerror_r on Android.
if '-android' in args.build_target:
build_flags.extend(["-Xswiftc", "-Xcc", "-Xswiftc", "-U_GNU_SOURCE"])
+ build_flags.extend(["-Xlinker", "-landroid-spawn"])

cross_compile_hosts = args.cross_compile_hosts
if cross_compile_hosts:
@@ -941,6 +941,7 @@ def get_swiftpm_flags(args):
build_flags += ["--arch", "x86_64", "--arch", "arm64"]
elif cross_compile_hosts.startswith('android-'):
build_flags.extend(["--destination", args.cross_compile_config])
+ build_flags.extend(["-Xlinker", "-landroid-spawn"])
else:
logging.error("cannot cross-compile for %s", cross_compile_hosts)
raise SystemExit(1)
13 changes: 0 additions & 13 deletions packages/swift/swift-arm-casts.patch

This file was deleted.

167 changes: 167 additions & 0 deletions packages/swift/swift-build-arm.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
From 434d3a1ee5e666eec1437615ad328497662aa363
From: Allan Shortlidge <shortlidge@apple.com>
Date: Thu, 25 Sep 2025 22:34:25 -0700
Subject: [PATCH] AST: Give `CustomAvailabilityDomain` 8 byte alignment.

`AvailabilityDomain` is a pointer union over `CustomAvailabilityDomain` and an
opaque pointer-like 24-bit value, which means the number of spare bits in an
`AvailabilityDomain` representation is one fewer than a
`CustomAvailabilityDomain` pointer. Other structures in the compiler rely on
there being at least 2 spare bits in `AvailabilityDomain`, though, which was
not the case when building for a 32 bit architecture. To ensure there are
enough spare bits, always align `CustomAvailabilityDomain` to 8 bytes, the same
as many AST data structures.

diff --git a/swift/include/swift/AST/AvailabilityDomain.h b/swift/include/swift/AST/AvailabilityDomain.h
index 7d5ecac7df03c..3c28bf0ba757e 100644
--- a/swift/include/swift/AST/AvailabilityDomain.h
+++ b/swift/include/swift/AST/AvailabilityDomain.h
@@ -22,6 +22,7 @@
#include "swift/AST/AvailabilityRange.h"
#include "swift/AST/Identifier.h"
#include "swift/AST/PlatformKind.h"
+#include "swift/AST/TypeAlignments.h"
#include "swift/Basic/Assertions.h"
#include "swift/Basic/LLVM.h"
#include "swift/Basic/SourceLoc.h"
@@ -334,7 +335,8 @@ struct StableAvailabilityDomainComparator {
};

/// Represents an availability domain that has been defined in a module.
-class CustomAvailabilityDomain : public llvm::FoldingSetNode {
+class alignas(1 << CustomAvailabilityDomainAlignInBits) CustomAvailabilityDomain
+ : public llvm::FoldingSetNode {
public:
enum class Kind {
/// A domain that is known to be enabled at compile time.
diff --git a/swift/include/swift/AST/TypeAlignments.h b/swift/include/swift/AST/TypeAlignments.h
index b4eb926d6a1e9..c9b5d49b8f78a 100644
--- a/swift/include/swift/AST/TypeAlignments.h
+++ b/swift/include/swift/AST/TypeAlignments.h
@@ -34,6 +34,7 @@ namespace swift {
class AttributeBase;
class BraceStmt;
class CaptureListExpr;
+ class CustomAvailabilityDomain;
class Decl;
class DeclContext;
class DifferentiableAttr;
@@ -80,6 +81,7 @@ namespace swift {
constexpr size_t ASTContextAlignInBits = 2;
constexpr size_t TypeVariableAlignInBits = 4;
constexpr size_t StoredDefaultArgumentAlignInBits = 3;
+ constexpr size_t CustomAvailabilityDomainAlignInBits = 3;

// Well, this is the *minimum* pointer alignment; it's going to be 3 on
// 64-bit targets, but that doesn't matter.
@@ -165,6 +167,9 @@ LLVM_DECLARE_TYPE_ALIGNMENT(swift::CaseLabelItem, swift::PatternAlignInBits)
LLVM_DECLARE_TYPE_ALIGNMENT(swift::StmtConditionElement,
swift::PatternAlignInBits)

+LLVM_DECLARE_TYPE_ALIGNMENT(swift::CustomAvailabilityDomain,
+ swift::CustomAvailabilityDomainAlignInBits)
+
static_assert(alignof(void*) >= 2, "pointer alignment is too small");

#endif
diff --git a/swift/include/swift/Basic/Feature.h b/swift/include/swift/Basic/Feature.h
index b05080bbf3a..ebec19d9e53 100644
--- a/swift/include/swift/Basic/Feature.h
+++ b/swift/include/swift/Basic/Feature.h
@@ -35,7 +35,9 @@ struct Feature {
constexpr Feature(unsigned inputKind) : kind(InnerKind(inputKind)) {}

constexpr operator InnerKind() const { return kind; }
+#if !defined(__arm__)
constexpr explicit operator unsigned() const { return unsigned(kind); }
+#endif
constexpr explicit operator size_t() const { return size_t(kind); }

static constexpr unsigned getNumFeatures() {
diff --git a/swift-build/Sources/SWBUtil/FSProxy.swift b/swift-build/Sources/SWBUtil/FSProxy.swift
index b446d21..f88f3c3 100644
--- a/swift-build/Sources/SWBUtil/FSProxy.swift
+++ b/swift-build/Sources/SWBUtil/FSProxy.swift
@@ -49,7 +49,7 @@ public struct FileInfo: Equatable, Sendable {
#if os(Windows)
return (statBuf.st_mode & UInt16(ucrt.S_IFREG)) != 0
#else
- return (statBuf.st_mode & S_IFREG) != 0
+ return (mode_t(statBuf.st_mode) & S_IFREG) != 0
#endif
}

@@ -57,7 +57,7 @@ public struct FileInfo: Equatable, Sendable {
#if os(Windows)
return (statBuf.st_mode & UInt16(ucrt.S_IFDIR)) != 0
#else
- return (statBuf.st_mode & S_IFDIR) != 0
+ return (mode_t(statBuf.st_mode) & S_IFDIR) != 0
#endif
}

@@ -65,7 +65,7 @@ public struct FileInfo: Equatable, Sendable {
#if os(Windows)
return (statBuf.st_mode & UInt16(S_IFLNK)) == S_IFLNK
#else
- return (statBuf.st_mode & S_IFMT) == S_IFLNK
+ return (mode_t(statBuf.st_mode) & S_IFMT) == S_IFLNK
#endif
}

@@ -75,7 +75,7 @@ public struct FileInfo: Equatable, Sendable {
// Don't use FileManager.isExecutableFile due to https://github.com/swiftlang/swift-foundation/issues/860
return (statBuf.st_mode & UInt16(_S_IEXEC)) != 0
#else
- return (statBuf.st_mode & S_IXUSR) != 0
+ return (mode_t(statBuf.st_mode) & S_IXUSR) != 0
#endif
}

@@ -1395,9 +1395,9 @@ public class PseudoFS: FSProxy, @unchecked Sendable {
#else
info.st_mtimespec = timespec(tv_sec: time_t(node.timestamp), tv_nsec: 0)
#endif
- info.st_size = off_t(contents.bytes.count)
- info.st_dev = node.device
- info.st_ino = node.inode
+ info.st_size = numericCast(contents.bytes.count)
+ info.st_dev = numericCast(node.device)
+ info.st_ino = numericCast(node.inode)
return createFileInfo(info)
case .directory(let dir):
var info = stat()
@@ -1405,12 +1405,12 @@ public class PseudoFS: FSProxy, @unchecked Sendable {
info.st_mode = UInt16(ucrt.S_IFDIR)
info.st_mtimespec = timespec(tv_sec: Int64(node.timestamp), tv_nsec: 0)
#else
- info.st_mode = S_IFDIR
+ info.st_mode = numericCast(S_IFDIR)
info.st_mtimespec = timespec(tv_sec: time_t(node.timestamp), tv_nsec: 0)
#endif
- info.st_size = off_t(dir.contents.count)
- info.st_dev = node.device
- info.st_ino = node.inode
+ info.st_size = numericCast(dir.contents.count)
+ info.st_dev = numericCast(node.device)
+ info.st_ino = numericCast(node.inode)
return createFileInfo(info)
case .symlink(_):
var info = stat()
@@ -1418,12 +1418,12 @@ public class PseudoFS: FSProxy, @unchecked Sendable {
info.st_mode = UInt16(S_IFLNK)
info.st_mtimespec = timespec(tv_sec: Int64(node.timestamp), tv_nsec: 0)
#else
- info.st_mode = S_IFLNK
+ info.st_mode = numericCast(S_IFLNK)
info.st_mtimespec = timespec(tv_sec: time_t(node.timestamp), tv_nsec: 0)
#endif
- info.st_size = off_t(0)
- info.st_dev = node.device
- info.st_ino = node.inode
+ info.st_size = numericCast(0)
+ info.st_dev = numericCast(node.device)
+ info.st_ino = numericCast(node.inode)
return createFileInfo(info)
}
}
Loading