This article has mostly been replaced with the official WIP documentation at Project:Toolchain/23.0 update instructions which is a safer way to switch for those wanting to test early. This article now just lists common traps a user may face when switching to now what to do when things go wrong.
By default 23.0 uses merge-usr on all profiles unless using a split-usr profile which is the opposite of the default behavior in 17.1 profiles. This means the system needs to be migrated to merge-usr.
emerge --ask sys-apps/merge-usr
If there are no issues then run the command without
--dryrun otherwise these need to be solved first.
musl libc users need to update to version 1.2.4 before going further.
Finally the system can be updated so all the changes can take effect a before the toolchain docs.