summaryrefslogtreecommitdiff
path: root/metadata/news/2023-01-28-rap-prefix-sysroot
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-01-29 02:53:24 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-01-29 02:53:24 +0000
commitb8ec9071f5d20d8518b02d0077428b2c9f88861b (patch)
tree6214c0d63a2bd5ae464941924a90f415687fa63c /metadata/news/2023-01-28-rap-prefix-sysroot
parentbdf6e70da7a28f45617c02a251bb6b3844202bc5 (diff)
gentoo auto-resync : 29:01:2023 - 02:53:24
Diffstat (limited to 'metadata/news/2023-01-28-rap-prefix-sysroot')
-rw-r--r--metadata/news/2023-01-28-rap-prefix-sysroot/2023-01-28-rap-prefix-sysroot.en.txt67
1 files changed, 67 insertions, 0 deletions
diff --git a/metadata/news/2023-01-28-rap-prefix-sysroot/2023-01-28-rap-prefix-sysroot.en.txt b/metadata/news/2023-01-28-rap-prefix-sysroot/2023-01-28-rap-prefix-sysroot.en.txt
new file mode 100644
index 000000000000..205250b9c120
--- /dev/null
+++ b/metadata/news/2023-01-28-rap-prefix-sysroot/2023-01-28-rap-prefix-sysroot.en.txt
@@ -0,0 +1,67 @@
+Title: Breaking changes to the RAP Prefix toolchain
+Author: James Le Cuirot <chewi@gentoo.org>
+Posted: 2023-01-28
+Revision: 1
+News-Item-Format: 2.0
+Display-If-Profile: default/linux/amd64/17.0/no-multilib/prefix/*
+Display-If-Profile: default/linux/amd64/17.1/no-multilib/prefix/*
+Display-If-Profile: default/linux/amd64/23.0/no-multilib/prefix/*
+Display-If-Profile: default/linux/amd64/23.0/split-usr/no-multilib/prefix/*
+Display-If-Profile: default/linux/arm/17.0/armv7a/prefix/*
+Display-If-Profile: default/linux/arm/23.0/armv7a/prefix/*
+Display-If-Profile: default/linux/arm/23.0/split-usr/armv7a/prefix/*
+Display-If-Profile: default/linux/arm64/17.0/prefix/*
+Display-If-Profile: default/linux/arm64/23.0/prefix/*
+Display-If-Profile: default/linux/arm64/23.0/split-usr/prefix/*
+Display-If-Profile: default/linux/ppc64le/17.0/prefix/*
+Display-If-Profile: default/linux/riscv/20.0/rv64gc/lp64d/prefix/*
+Display-If-Profile: default/linux/riscv/23.0/rv64/lp64d/prefix/*
+Display-If-Profile: default/linux/riscv/23.0/rv64/split-usr/lp64d/prefix/*
+Display-If-Profile: default/linux/x86/17.0/prefix/*
+Display-If-Profile: default/linux/x86/23.0/prefix/*
+Display-If-Profile: default/linux/x86/23.0/split-usr/prefix/*
+
+We are changing the way the toolchain operates on RAP Prefix systems in order to
+reduce the number of hacks we need to apply and make cross-compiling easier.
+
+If you using a non-RAP "Prefix Guest" or "Prefix Stack" variant (e.g. macOS)
+then this does not apply.
+
+If you're not sure what kind of prefix you have, then check whether the
+prefix-guest USE flag is enabled.
+
+ portageq envvar USE | grep prefix-guest
+
+If you are using a libc other than glibc (e.g. musl) then this *does* apply, but
+your libc will *not* break, so you should not carry out the following procedure.
+The only other package known to be affected is dev-libs/libbsd, which you can
+simply update. If you find another package affected by this, then please file a
+bug report.
+
+WARNING! It is important that you carry out the following procedure, otherwise
+your toolchain will break when you next update your compiler or glibc.
+
+ 1. Run the following to create a temporary symlink:
+
+ EPREFIX=$(portageq envvar EPREFIX)
+ mkdir -p "${EPREFIX}${EPREFIX%/*}"
+ ln -sn "${EPREFIX}" "${EPREFIX}${EPREFIX}"
+
+ 2. Update or rebuild all installed slots of sys-devel/gcc and sys-devel/clang
+ (if any). Feel free to remove any you no longer need.
+
+ 3. Update or rebuild sys-libs/glibc.
+
+ 4. Run the following to remove the symlink:
+
+ EPREFIX=$(portageq envvar EPREFIX)
+ rm "${EPREFIX}${EPREFIX}"
+
+ 5. If dev-libs/libbsd is installed, then update it to 0.11.7-r2 or later.
+
+If you are reading this having updated glibc first and you are no longer able to
+build anything, then don't panic. Simply execute the lines below and then carry
+out the regular procedure above.
+
+ EPREFIX=$(portageq envvar EPREFIX)
+ portageq contents "${EPREFIX}" $(portageq best_version "${EPREFIX}" sys-libs/glibc) | xargs grep -lIF -d skip "GNU ld script" | xargs sed -i -r "s: /(usr|lib): ${EPREFIX}/\1:g"