From: Xinhui Yang Date: Tue, 11 Nov 2025 02:19:35 +0000 (+0800) Subject: gcc: check if target install name equals the full driver name X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=722bd6847643ae5d3f66af2a68cc83374730bee6;p=thirdparty%2Fgcc.git gcc: check if target install name equals the full driver name When a major version program suffix is specified, along with --with-gcc-major-version-only, GCC tries to install $TRIPLE-gcc-tmp into the destination BINDIR and link it to TRIPLE-gcc-SUFFIX. However this executable is installed in the previous step, thus leaving the gcc-tmp unmodified. This is because when --program-suffix=15 (any major version) and --with-gcc-major-version-only, $(version) will be the major version number, thus making FULL_DRIVER_NAME and GCC_TARGET_INSTALL_NAME identical to each other. We check if these two is identical and skip the latter step if they are. gcc/ PR bootstrap/105664 * Makefile.in (install-driver): detect name collision when installing the driver program. Signed-off-by: Xinhui Yang --- diff --git a/gcc/Makefile.in b/gcc/Makefile.in index d05e15e2b6c..02cc38ce57e 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -4253,7 +4253,8 @@ install-driver: installdirs xgcc$(exeext) $(LN) $(GCC_INSTALL_NAME)$(exeext) $(FULL_DRIVER_NAME) ); \ fi; \ if [ ! -f gcc-cross$(exeext) ] \ - && [ "$(GCC_INSTALL_NAME)" != "$(GCC_TARGET_INSTALL_NAME)" ]; then \ + && [ "$(GCC_INSTALL_NAME)" != "$(GCC_TARGET_INSTALL_NAME)" ] \ + && [ "$(GCC_TARGET_INSTALL_NAME)$(exeext)" != "$(FULL_DRIVER_NAME)" ] ; then \ rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-tmp$(exeext); \ ( cd $(DESTDIR)$(bindir) && \ $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-tmp$(exeext) && \