From 4fccaf61241a5eb72b0777b3a44bd7abbea48604 Mon Sep 17 00:00:00 2001 From: "Avi Halachmi (:avih)" Date: Sun, 18 Jan 2026 08:27:47 +0200 Subject: [PATCH] Revert "build c2str.exe with the host compiler; default it to gcc if cross prefix given" This reverts commit 41fa74fc8485be8e7f6eb92de93997d8e3b0a7f7. Reasons for the revert: 1. The commit message is lacking and the use case is not obvious. At the very least a concrete example of use case should be given (likely cross-building tcc on platform X for running on platform Y), followed by an issue description in such use case, and fix descr. (e.g. "On platform X, when running ./configure ... && make ..., the build fails because whatever. this commit does Y and fixes it"). 2. assign_opt is used incorrectly: 1st arg must be --OPTNAME=VALUE but it's not. The only thing it does is unconditional host_cc=gcc if --cross-prefix=... is used - no need for "assign_opt" at all. 3. cross-building tcc currently has several triggers: build/target cpu differ, or build/target OS differ, or --cross-prefix=... is used, but that commit only covers the --cross-prefix=... case. It's possible that it's intentional to only cover one case, but if so then it's not explained why. 4. The var name host_cc is likely incorrect and probably meant to be "native_cc", judging by the assigned value "gcc". 5. "gcc" is used unconditionally in such case, without any way to use a different native compiler (assuming that's indeed the goal). A better approach is likely supporting --native-cc=... option which defaults to $cc (which already defaults to "gcc") _before_ $cross_prefix is added in-front. --- Makefile | 2 +- configure | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 56c27c16..d21f1cad 100644 --- a/Makefile +++ b/Makefile @@ -256,7 +256,7 @@ endif $S./c2str.exe $< $@ c2str.exe : conftest.c - $S$(HOST_CC) -DC2STR $< -o $@ + $S$(CC) -DC2STR $< -o $@ # target specific object rule $(X)%.o : %.c $(LIBTCC_INC) diff --git a/configure b/configure index 2217029c..c1abffc9 100755 --- a/configure +++ b/configure @@ -58,8 +58,6 @@ build_cross= test -n "$CC" && cc="$CC" test -n "$AR" && ar="$AR" -host_cc="$CC" - # set default CFLAGS if unset in environment test -z "$CFLAGS" && CFLAGS="-Wall -O2" @@ -124,7 +122,7 @@ for opt do ;; --source-path=*) assign_opt "$opt" source_path ;; - --cross-prefix=*) assign_opt "$opt" cross_prefix; assign_opt "gcc" host_cc + --cross-prefix=*) assign_opt "$opt" cross_prefix ;; --os-release=*) assign_opt "$opt" os_release ;; @@ -586,7 +584,6 @@ mandir=\$(DESTDIR)$mandir infodir=\$(DESTDIR)$infodir docdir=\$(DESTDIR)$docdir CC=$cc -HOST_CC=$host_cc CC_NAME=$cc_name GCC_MAJOR=$gcc_major GCC_MINOR=$gcc_minor