commit:     d91cd5bdc56a6fcb71a998fd8ba81b47c9a13246
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Fri May 22 09:39:26 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri May 22 09:39:26 2020 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-config.git/commit/?id=d91cd5bd

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 <slyfox <AT> gentoo.org>

 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."
                        ;;

Reply via email to