diff options
author | James Le Cuirot <chewi@gentoo.org> | 2023-01-28 22:10:13 +0000 |
---|---|---|
committer | James Le Cuirot <chewi@gentoo.org> | 2023-01-28 22:10:32 +0000 |
commit | 3adad1954b1463ddfe5c9f7d39e308d6b57b2769 (patch) | |
tree | eb3ed46b0d32d4927aaa747a8bf329c1afff96a2 | |
parent | 2023-01-01-hardening-fortify-assertions: add missing hardened (SELinux) profiles (diff) | |
download | gentoo-news-3adad1954b1463ddfe5c9f7d39e308d6b57b2769.tar.gz gentoo-news-3adad1954b1463ddfe5c9f7d39e308d6b57b2769.tar.bz2 gentoo-news-3adad1954b1463ddfe5c9f7d39e308d6b57b2769.zip |
2023-01-28-rap-prefix-sysroot: Add news item
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
-rw-r--r-- | 2023-01-28-rap-prefix-sysroot/2023-01-28-rap-prefix-sysroot.en.txt | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/2023-01-28-rap-prefix-sysroot/2023-01-28-rap-prefix-sysroot.en.txt b/2023-01-28-rap-prefix-sysroot/2023-01-28-rap-prefix-sysroot.en.txt new file mode 100644 index 0000000..205250b --- /dev/null +++ b/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" |