From d91cd5bdc56a6fcb71a998fd8ba81b47c9a13246 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Fri, 22 May 2020 10:39:26 +0100 Subject: gcc-config: add build-time and runtime switches to disable native symlinks We have two knobs here: 1. Build-time knob USE_NATIVE_LINKS to set a default, defaults to 'yes' (existing behaviour) 2. Run-time --enable-native-links / --disable-native-links knobs. These are not persistent across gcc-config runs and are meant for manual testing. Undocumented for now. Reported-by: Kent Fredric Bug: https://bugs.gentoo.org/724454 Signed-off-by: Sergei Trofimovich --- Makefile | 8 ++++++++ gcc-config | 8 ++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 2b3b235..c74adec 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,10 @@ +# configurable options: +# Avoid installing native symlinks like: +# /usr/bin/gcc -> ${CTARGET}-gcc +# and keep only +# ${CTARGET}-gcc +USE_NATIVE_LINKS ?= yes + EPREFIX ?= PN = gcc-config @@ -27,6 +34,7 @@ clean: -e 's:@GENTOO_EPREFIX@:$(EPREFIX):g' \ -e 's:@GENTOO_LIBDIR@:$(SUBLIBDIR):g' \ -e 's:@PV@:$(PV):g' \ + -e 's:@USE_NATIVE_LINKS@:$(USE_NATIVE_LINKS):g' \ $< > $@ chmod a+rx $@ diff --git a/gcc-config b/gcc-config index beeb82a..9dc09e0 100755 --- a/gcc-config +++ b/gcc-config @@ -261,9 +261,10 @@ update_wrappers() { done # For all toolchains, we want to create the fully qualified - # `tuple-foo`. Only native ones do we want the simple `foo`. + # `tuple-foo`. Only native ones do we want the simple `foo` + # and only for USE_NATIVE_LINKS=yes mode. local all_wrappers=( ${new_wrappers[@]/#/${CTARGET}-} ) - if ! is_cross_compiler ; then + if ! is_cross_compiler && [[ ${USE_NATIVE_LINKS} == yes ]] ; then all_wrappers+=( "${new_wrappers[@]}" ) # There are a few fun extra progs which we have to handle #412319 all_wrappers+=( cc:gcc f77:g77 ) @@ -952,6 +953,7 @@ FORCE="no" CC_COMP= ENV_D="${EROOT}etc/env.d" GCC_ENV_D="${ENV_D}/gcc" +USE_NATIVE_LINKS="@USE_NATIVE_LINKS@" for x in "$@" ; do case "${x}" in @@ -1005,6 +1007,8 @@ for x in "$@" ; do echo "${argv0}: @PV@" exit 0 ;; + --enable-native-links) USE_NATIVE_LINKS="yes" ;; + --disable-native-links) USE_NATIVE_LINKS="no" ;; -*) die "Invalid switch! Run ${argv0} without parameters for help." ;; -- cgit v1.2.3-65-gdbad