summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2020-05-22 10:39:26 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2020-05-22 10:39:26 +0100
commitd91cd5bdc56a6fcb71a998fd8ba81b47c9a13246 (patch)
treeb090ad124b76287189cff6c1019c1c80397d8cbc
parentgcc-config: add a TODO to use 'sort -V' (diff)
downloadgcc-config-d91cd5bdc56a6fcb71a998fd8ba81b47c9a13246.tar.gz
gcc-config-d91cd5bdc56a6fcb71a998fd8ba81b47c9a13246.tar.bz2
gcc-config-d91cd5bdc56a6fcb71a998fd8ba81b47c9a13246.zip
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@gentoo.org>
-rw-r--r--Makefile8
-rwxr-xr-xgcc-config8
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."
;;