Revert "build c2str.exe with the host compiler; default it to gcc if cross prefix given"

This reverts commit 41fa74fc84.

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.
This commit is contained in:
Avi Halachmi (:avih)
2026-01-18 08:27:47 +02:00
parent 41fa74fc84
commit 4fccaf6124
2 changed files with 2 additions and 5 deletions

View File

@@ -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)

5
configure vendored
View File

@@ -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