From 05906fba985bc4488c24c005e37d409830ceddc5 Mon Sep 17 00:00:00 2001
From: "Andreas K. Hüttel" <dilfridge@gentoo.org>
Date: Sat, 1 Jun 2024 16:05:46 +0200
Subject: profiles: deprecate musl 17.0 / 20.0 profiles
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
---
 .../default/linux/amd64/17.0/musl/clang/deprecated | 104 +++++++++++++++++++++
 profiles/default/linux/amd64/17.0/musl/deprecated  | 104 +++++++++++++++++++++
 .../linux/amd64/17.0/musl/hardened/deprecated      | 104 +++++++++++++++++++++
 .../amd64/17.0/musl/hardened/selinux/deprecated    | 104 +++++++++++++++++++++
 .../default/linux/arm/17.0/musl/armv6j/deprecated  | 104 +++++++++++++++++++++
 .../linux/arm/17.0/musl/armv6j/hardened/deprecated | 104 +++++++++++++++++++++
 .../17.0/musl/armv6j/hardened/selinux/deprecated   | 104 +++++++++++++++++++++
 .../default/linux/arm/17.0/musl/armv7a/deprecated  | 104 +++++++++++++++++++++
 .../linux/arm/17.0/musl/armv7a/hardened/deprecated | 104 +++++++++++++++++++++
 .../17.0/musl/armv7a/hardened/selinux/deprecated   | 104 +++++++++++++++++++++
 profiles/default/linux/arm64/17.0/musl/deprecated  | 104 +++++++++++++++++++++
 .../linux/arm64/17.0/musl/hardened/deprecated      | 104 +++++++++++++++++++++
 .../arm64/17.0/musl/hardened/selinux/deprecated    | 104 +++++++++++++++++++++
 .../default/linux/arm64/17.0/musl/llvm/deprecated  | 104 +++++++++++++++++++++
 profiles/default/linux/m68k/17.0/musl/deprecated   | 104 +++++++++++++++++++++
 .../linux/mips/17.0/mipsel/n64/musl/deprecated     | 104 +++++++++++++++++++++
 .../linux/mips/17.0/mipsel/o32/musl/deprecated     | 104 +++++++++++++++++++++
 .../default/linux/mips/17.0/n64/musl/deprecated    | 104 +++++++++++++++++++++
 .../default/linux/mips/17.0/o32/musl/deprecated    | 104 +++++++++++++++++++++
 profiles/default/linux/ppc/17.0/musl/deprecated    | 104 +++++++++++++++++++++
 .../linux/ppc/17.0/musl/hardened/deprecated        | 104 +++++++++++++++++++++
 profiles/default/linux/ppc64/17.0/musl/deprecated  | 104 +++++++++++++++++++++
 .../linux/ppc64/17.0/musl/hardened/deprecated      | 104 +++++++++++++++++++++
 .../default/linux/ppc64le/17.0/musl/deprecated     | 104 +++++++++++++++++++++
 .../linux/ppc64le/17.0/musl/hardened/deprecated    | 104 +++++++++++++++++++++
 .../linux/riscv/20.0/rv64gc/lp64/musl/deprecated   | 104 +++++++++++++++++++++
 .../linux/riscv/20.0/rv64gc/lp64d/musl/deprecated  | 104 +++++++++++++++++++++
 profiles/default/linux/x86/17.0/musl/deprecated    | 104 +++++++++++++++++++++
 .../default/linux/x86/17.0/musl/selinux/deprecated | 104 +++++++++++++++++++++
 29 files changed, 3016 insertions(+)
 create mode 100644 profiles/default/linux/amd64/17.0/musl/clang/deprecated
 create mode 100644 profiles/default/linux/amd64/17.0/musl/deprecated
 create mode 100644 profiles/default/linux/amd64/17.0/musl/hardened/deprecated
 create mode 100644 profiles/default/linux/amd64/17.0/musl/hardened/selinux/deprecated
 create mode 100644 profiles/default/linux/arm/17.0/musl/armv6j/deprecated
 create mode 100644 profiles/default/linux/arm/17.0/musl/armv6j/hardened/deprecated
 create mode 100644 profiles/default/linux/arm/17.0/musl/armv6j/hardened/selinux/deprecated
 create mode 100644 profiles/default/linux/arm/17.0/musl/armv7a/deprecated
 create mode 100644 profiles/default/linux/arm/17.0/musl/armv7a/hardened/deprecated
 create mode 100644 profiles/default/linux/arm/17.0/musl/armv7a/hardened/selinux/deprecated
 create mode 100644 profiles/default/linux/arm64/17.0/musl/deprecated
 create mode 100644 profiles/default/linux/arm64/17.0/musl/hardened/deprecated
 create mode 100644 profiles/default/linux/arm64/17.0/musl/hardened/selinux/deprecated
 create mode 100644 profiles/default/linux/arm64/17.0/musl/llvm/deprecated
 create mode 100644 profiles/default/linux/m68k/17.0/musl/deprecated
 create mode 100644 profiles/default/linux/mips/17.0/mipsel/n64/musl/deprecated
 create mode 100644 profiles/default/linux/mips/17.0/mipsel/o32/musl/deprecated
 create mode 100644 profiles/default/linux/mips/17.0/n64/musl/deprecated
 create mode 100644 profiles/default/linux/mips/17.0/o32/musl/deprecated
 create mode 100644 profiles/default/linux/ppc/17.0/musl/deprecated
 create mode 100644 profiles/default/linux/ppc/17.0/musl/hardened/deprecated
 create mode 100644 profiles/default/linux/ppc64/17.0/musl/deprecated
 create mode 100644 profiles/default/linux/ppc64/17.0/musl/hardened/deprecated
 create mode 100644 profiles/default/linux/ppc64le/17.0/musl/deprecated
 create mode 100644 profiles/default/linux/ppc64le/17.0/musl/hardened/deprecated
 create mode 100644 profiles/default/linux/riscv/20.0/rv64gc/lp64/musl/deprecated
 create mode 100644 profiles/default/linux/riscv/20.0/rv64gc/lp64d/musl/deprecated
 create mode 100644 profiles/default/linux/x86/17.0/musl/deprecated
 create mode 100644 profiles/default/linux/x86/17.0/musl/selinux/deprecated

(limited to 'profiles')

diff --git a/profiles/default/linux/amd64/17.0/musl/clang/deprecated b/profiles/default/linux/amd64/17.0/musl/clang/deprecated
new file mode 100644
index 000000000000..f4c5ed652f3e
--- /dev/null
+++ b/profiles/default/linux/amd64/17.0/musl/clang/deprecated
@@ -0,0 +1,104 @@
+default/linux/amd64/23.0/split-usr/musl/llvm
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/amd64/17.0/musl/deprecated b/profiles/default/linux/amd64/17.0/musl/deprecated
new file mode 100644
index 000000000000..fb300c26f9ab
--- /dev/null
+++ b/profiles/default/linux/amd64/17.0/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/amd64/23.0/split-usr/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/amd64/17.0/musl/hardened/deprecated b/profiles/default/linux/amd64/17.0/musl/hardened/deprecated
new file mode 100644
index 000000000000..20c9fedaf0a9
--- /dev/null
+++ b/profiles/default/linux/amd64/17.0/musl/hardened/deprecated
@@ -0,0 +1,104 @@
+default/linux/amd64/23.0/split-usr/musl/hardened
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/amd64/17.0/musl/hardened/selinux/deprecated b/profiles/default/linux/amd64/17.0/musl/hardened/selinux/deprecated
new file mode 100644
index 000000000000..d11cd2c3257f
--- /dev/null
+++ b/profiles/default/linux/amd64/17.0/musl/hardened/selinux/deprecated
@@ -0,0 +1,104 @@
+default/linux/amd64/23.0/split-usr/musl/hardened/selinux
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/arm/17.0/musl/armv6j/deprecated b/profiles/default/linux/arm/17.0/musl/armv6j/deprecated
new file mode 100644
index 000000000000..5d36c73cd850
--- /dev/null
+++ b/profiles/default/linux/arm/17.0/musl/armv6j/deprecated
@@ -0,0 +1,104 @@
+default/linux/arm/23.0/split-usr/armv6j_hf/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/arm/17.0/musl/armv6j/hardened/deprecated b/profiles/default/linux/arm/17.0/musl/armv6j/hardened/deprecated
new file mode 100644
index 000000000000..de12cbfb2272
--- /dev/null
+++ b/profiles/default/linux/arm/17.0/musl/armv6j/hardened/deprecated
@@ -0,0 +1,104 @@
+default/linux/arm/23.0/split-usr/armv6j_hf/musl/hardened
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/arm/17.0/musl/armv6j/hardened/selinux/deprecated b/profiles/default/linux/arm/17.0/musl/armv6j/hardened/selinux/deprecated
new file mode 100644
index 000000000000..32c22267e806
--- /dev/null
+++ b/profiles/default/linux/arm/17.0/musl/armv6j/hardened/selinux/deprecated
@@ -0,0 +1,104 @@
+default/linux/arm/23.0/split-usr/armv6j_hf/musl/hardened/selinux
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/arm/17.0/musl/armv7a/deprecated b/profiles/default/linux/arm/17.0/musl/armv7a/deprecated
new file mode 100644
index 000000000000..6fc6daceb3ca
--- /dev/null
+++ b/profiles/default/linux/arm/17.0/musl/armv7a/deprecated
@@ -0,0 +1,104 @@
+default/linux/arm/23.0/split-usr/armv7a_hf/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/arm/17.0/musl/armv7a/hardened/deprecated b/profiles/default/linux/arm/17.0/musl/armv7a/hardened/deprecated
new file mode 100644
index 000000000000..b06f94740d02
--- /dev/null
+++ b/profiles/default/linux/arm/17.0/musl/armv7a/hardened/deprecated
@@ -0,0 +1,104 @@
+default/linux/arm/23.0/split-usr/armv7a_hf/musl/hardened
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/arm/17.0/musl/armv7a/hardened/selinux/deprecated b/profiles/default/linux/arm/17.0/musl/armv7a/hardened/selinux/deprecated
new file mode 100644
index 000000000000..05defdaa7231
--- /dev/null
+++ b/profiles/default/linux/arm/17.0/musl/armv7a/hardened/selinux/deprecated
@@ -0,0 +1,104 @@
+default/linux/arm/23.0/split-usr/armv7a_hf/musl/hardened/selinux
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/arm64/17.0/musl/deprecated b/profiles/default/linux/arm64/17.0/musl/deprecated
new file mode 100644
index 000000000000..96ea042000bf
--- /dev/null
+++ b/profiles/default/linux/arm64/17.0/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/arm64/23.0/split-usr/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/arm64/17.0/musl/hardened/deprecated b/profiles/default/linux/arm64/17.0/musl/hardened/deprecated
new file mode 100644
index 000000000000..7a1a18659361
--- /dev/null
+++ b/profiles/default/linux/arm64/17.0/musl/hardened/deprecated
@@ -0,0 +1,104 @@
+default/linux/arm64/23.0/split-usr/musl/hardened
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/arm64/17.0/musl/hardened/selinux/deprecated b/profiles/default/linux/arm64/17.0/musl/hardened/selinux/deprecated
new file mode 100644
index 000000000000..da1bf7ef3770
--- /dev/null
+++ b/profiles/default/linux/arm64/17.0/musl/hardened/selinux/deprecated
@@ -0,0 +1,104 @@
+default/linux/arm64/23.0/split-usr/musl/hardened/selinux
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/arm64/17.0/musl/llvm/deprecated b/profiles/default/linux/arm64/17.0/musl/llvm/deprecated
new file mode 100644
index 000000000000..8e6ae643caf1
--- /dev/null
+++ b/profiles/default/linux/arm64/17.0/musl/llvm/deprecated
@@ -0,0 +1,104 @@
+default/linux/arm64/23.0/split-usr/musl/llvm
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/m68k/17.0/musl/deprecated b/profiles/default/linux/m68k/17.0/musl/deprecated
new file mode 100644
index 000000000000..d9c8615f02bd
--- /dev/null
+++ b/profiles/default/linux/m68k/17.0/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/m68k/23.0/split-usr/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/mips/17.0/mipsel/n64/musl/deprecated b/profiles/default/linux/mips/17.0/mipsel/n64/musl/deprecated
new file mode 100644
index 000000000000..085b11b8d942
--- /dev/null
+++ b/profiles/default/linux/mips/17.0/mipsel/n64/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/mips/23.0/split-usr/mipsel/n64/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/mips/17.0/mipsel/o32/musl/deprecated b/profiles/default/linux/mips/17.0/mipsel/o32/musl/deprecated
new file mode 100644
index 000000000000..970442e531a0
--- /dev/null
+++ b/profiles/default/linux/mips/17.0/mipsel/o32/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/mips/23.0/split-usr/mipsel/o32/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/mips/17.0/n64/musl/deprecated b/profiles/default/linux/mips/17.0/n64/musl/deprecated
new file mode 100644
index 000000000000..4f0f9630cede
--- /dev/null
+++ b/profiles/default/linux/mips/17.0/n64/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/mips/23.0/split-usr/n64/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/mips/17.0/o32/musl/deprecated b/profiles/default/linux/mips/17.0/o32/musl/deprecated
new file mode 100644
index 000000000000..0eadddb9a36b
--- /dev/null
+++ b/profiles/default/linux/mips/17.0/o32/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/mips/23.0/split-usr/o32/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/ppc/17.0/musl/deprecated b/profiles/default/linux/ppc/17.0/musl/deprecated
new file mode 100644
index 000000000000..e719c6300283
--- /dev/null
+++ b/profiles/default/linux/ppc/17.0/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/ppc/23.0/split-usr/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/ppc/17.0/musl/hardened/deprecated b/profiles/default/linux/ppc/17.0/musl/hardened/deprecated
new file mode 100644
index 000000000000..4f477a5098aa
--- /dev/null
+++ b/profiles/default/linux/ppc/17.0/musl/hardened/deprecated
@@ -0,0 +1,104 @@
+default/linux/ppc/23.0/split-usr/musl/hardened
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/ppc64/17.0/musl/deprecated b/profiles/default/linux/ppc64/17.0/musl/deprecated
new file mode 100644
index 000000000000..7b217795bc28
--- /dev/null
+++ b/profiles/default/linux/ppc64/17.0/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/ppc64/23.0/split-usr/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/ppc64/17.0/musl/hardened/deprecated b/profiles/default/linux/ppc64/17.0/musl/hardened/deprecated
new file mode 100644
index 000000000000..254125d4eb92
--- /dev/null
+++ b/profiles/default/linux/ppc64/17.0/musl/hardened/deprecated
@@ -0,0 +1,104 @@
+default/linux/ppc64/23.0/split-usr/musl/hardened
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/ppc64le/17.0/musl/deprecated b/profiles/default/linux/ppc64le/17.0/musl/deprecated
new file mode 100644
index 000000000000..f439ee75b0df
--- /dev/null
+++ b/profiles/default/linux/ppc64le/17.0/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/ppc64le/23.0/split-usr/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/ppc64le/17.0/musl/hardened/deprecated b/profiles/default/linux/ppc64le/17.0/musl/hardened/deprecated
new file mode 100644
index 000000000000..41718e4bc2b7
--- /dev/null
+++ b/profiles/default/linux/ppc64le/17.0/musl/hardened/deprecated
@@ -0,0 +1,104 @@
+default/linux/ppc64le/23.0/split-usr/musl/hardened
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/riscv/20.0/rv64gc/lp64/musl/deprecated b/profiles/default/linux/riscv/20.0/rv64gc/lp64/musl/deprecated
new file mode 100644
index 000000000000..892b778d212c
--- /dev/null
+++ b/profiles/default/linux/riscv/20.0/rv64gc/lp64/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/riscv/23.0/rv64/split-usr/lp64/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/riscv/20.0/rv64gc/lp64d/musl/deprecated b/profiles/default/linux/riscv/20.0/rv64gc/lp64d/musl/deprecated
new file mode 100644
index 000000000000..d7c4a35e16c3
--- /dev/null
+++ b/profiles/default/linux/riscv/20.0/rv64gc/lp64d/musl/deprecated
@@ -0,0 +1,104 @@
+default/linux/riscv/23.0/rv64/split-usr/lp64d/musl
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/x86/17.0/musl/deprecated b/profiles/default/linux/x86/17.0/musl/deprecated
new file mode 100644
index 000000000000..063fe9af04c0
--- /dev/null
+++ b/profiles/default/linux/x86/17.0/musl/deprecated
@@ -0,0 +1,104 @@
+
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
diff --git a/profiles/default/linux/x86/17.0/musl/selinux/deprecated b/profiles/default/linux/x86/17.0/musl/selinux/deprecated
new file mode 100644
index 000000000000..063fe9af04c0
--- /dev/null
+++ b/profiles/default/linux/x86/17.0/musl/selinux/deprecated
@@ -0,0 +1,104 @@
+
+
+A profile upgrade to version 23.0 is available for your architecture.
+The new 23.0 profiles enable some toolchain hardening features and 
+performance enhancements by default, and standardize settings.
+You can find the list of changes on the wiki tracking page [1].
+
+Upgrade instructions
+
+Note 1: If you have manually changed your CHOST to a value different from 
+what the stages and profiles set, you may have to do that in the future too.
+In that case you should know what you are doing, hopefully; please read the 
+instructions with a critical eye then.
+
+Note 2: In case you are already familiar with binary packages, you should be
+able to add "--getbinpkg" to the emerge calls to speed things up.
+The use of binary packages is completely optional though, and also not
+as much tested as the source-based upgrade path yet.
+
+1. Ensure your system backups are up to date. Please also update
+   your system fully and depclean before proceeding.
+   glibc older than 2.36 and musl older than 1.2.4 is not supported anymore.
+
+2. If you are still using one of the long-deprecated amd64 17.0 profiles 
+   (other than x32 or musl), then first complete the migration to the 
+   corresponding 17.1 profile. Instructions can be found at [3].
+   
+3. If you are currently using systemd in a split-usr configuration, then first 
+   complete the migration to the corresponding merged-usr profile of the 
+   same profile version. Details on how to do this can be found in the news 
+   item [4].
+   If you are currently using openrc, migrate to 23.0 first, keeping your disk
+   layout. If you want to move from split-usr to merged-usr, do that afterwards.
+
+4. Run "emerge --info" and note down the value of the CHOST variable.
+
+5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable,
+   remove it. Also delete all lines defining CHOST_... variables.
+
+6. Select the 23.0 profile corresponding to your current profile, either using
+   "eselect profile" or by manually setting the profile symlink.
+   Note that old profiles are by default split-usr and the 23.0 profiles by
+   default merged-usr. Do NOT change directory scheme now, since this will
+   mess up your system! 
+   Instead, make sure that the new profile has the same property: for example, 
+   OLD default/linux/amd64/17.1  
+        ==>  NEW default/linux/amd64/23.0/split-usr
+             (added "split-usr")
+   OLD default/linux/amd64/17.1/systemd/merged-usr  
+        ==>  NEW default/linux/amd64/23.0/systemd
+             (removed "merged-usr")
+   A detailed table of the upgrade paths can be found at [5]. Please consult it.
+   In some cases (hppa, x86) the table will tell you to pick between two choices. 
+   What you need should be obvious from your *old* CHOST value (from step 4).
+
+7. Delete the contents of your binary package cache at ${PKGDIR}
+     rm -r /var/cache/binpkgs/*
+
+8. In the file or directory /etc/portage/binrepos.conf (if existing), update
+   the URI in all configuration such that they point to 23.0 profile binhost 
+   directories. The exact paths can be found in the table at [5], too.
+
+9. Rebuild or reinstall from binary (if available) the following packages in
+   this order, with the same version as already active:
+     emerge --ask --oneshot sys-devel/binutils
+   (you may have to run binutils-config and re-select your binutils now)
+     emerge --ask --oneshot sys-devel/gcc
+   (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do 
+    that; instead, abort and try again with --nodeps added to the command line.)
+   (you may have to run gcc-config and re-select your gcc now)
+   and the C library, i.e. for glibc-based systems
+     emerge --ask --oneshot sys-libs/glibc
+   or for musl-based systems
+     emerge --ask --oneshot sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 4.
+
+If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, 
+
+11. Recheck with binutils-config and gcc-config that valid installed versions
+   of binutils and gcc are selected.
+
+12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that
+   refer to the *OLD* CHOST value, and remove them. 
+   Examples how to do this can be found in the similar procedure at [6].
+
+13. Run env-update && source /etc/profile
+
+14. Re-emerge libtool:
+   emerge --ask --oneshot libtool
+
+15. Just for safety, delete the contents of your binary package cache at 
+    ${PKGDIR} again:
+     rm -r /var/cache/binpkgs/*
+
+16. Rebuild world:
+   emerge --ask --emptytree @world
+
+[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition
+[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline
+[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
+[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html
+[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table
+[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work
-- 
cgit v1.2.3-65-gdbad