diff --git a/dev-lang/swift/files/swift-6.0.3/gentoo-build-preset.patch b/dev-lang/swift/files/swift-6.0.3/gentoo-build-preset.patch
index 5a00098402..654c4a51c5 100644
--- a/dev-lang/swift/files/swift-6.0.3/gentoo-build-preset.patch
+++ b/dev-lang/swift/files/swift-6.0.3/gentoo-build-preset.patch
@@ -29,7 +29,7 @@
--- a/swift/utils/build-presets.ini
+++ b/swift/utils/build-presets.ini
-@@ -3051,3 +3051,17 @@ skip-test-cmark
+@@ -3051,3 +3051,24 @@ skip-test-cmark
llvm-cmake-options=
-DCLANG_DEFAULT_LINKER=gold
@@ -47,3 +47,10 @@
+llvm-targets-to-build=host
+skip-build-curl
+skip-build-zlib
++
++[preset: gentoo,libcxx]
++mixin-preset=gentoo
++libcxx
++llvm-cmake-options=
++ -DCLANG_DEFAULT_LINKER=lld
++ -DCLANG_DEFAULT_CXX_STDLIB=libc++
diff --git a/dev-lang/swift/metadata.xml b/dev-lang/swift/metadata.xml
index e059c62b31..fc6ca1c2ab 100644
--- a/dev-lang/swift/metadata.xml
+++ b/dev-lang/swift/metadata.xml
@@ -8,6 +8,11 @@
swiftlang/swift
+
The original slot for swift-5.10.1; should no longer be used.
diff --git a/dev-lang/swift/swift-6.0.3.ebuild b/dev-lang/swift/swift-6.0.3.ebuild
index dd3fd5746b..8853d13cc2 100644
--- a/dev-lang/swift/swift-6.0.3.ebuild
+++ b/dev-lang/swift/swift-6.0.3.ebuild
@@ -64,6 +64,7 @@ LICENSE="Apache-2.0"
SLOT="6/0"
KEYWORDS="~amd64"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+IUSE="libcxx"
RESTRICT="strip"
@@ -182,10 +183,16 @@ src_compile() {
swift_version="${swift_version#${CATEGORY}/}" # reduce to ${PVR} form
swift_version="${swift_version%-r[[:digit:]]*}" # reduce to ${P} form
+ local swift_preset='gentoo'
+
+ if use libcxx; then
+ swift_preset='gentoo,libcxx'
+ fi
+
local original_path="${PATH}"
export PATH="/usr/lib64/${swift_version}/usr/bin:${original_path}"
"${S}/swift/utils/build-script" \
- --preset=gentoo \
+ --preset="${swift_preset}" \
install_destdir="${S}/${P}" \
installable_package="" \
|| die