mirror of
git://repo.or.cz/tinycc.git
synced 2026-06-17 15:44:18 +08:00
arm64-win32 support : configure & Makefiles
from: https://github.com/bold84/tinycc
Author: Benjamin Oldenburg <benjamin.oldenburg@ordis.co.th> 2026-04-04 16:29:28
Committer: Benjamin Oldenburg <benjamin.oldenburg@ordis.co.th> 2026-04-04 16:29:28
Branch: win_arm64_clean
Commit: 8b5ab1bb01
Also here: https://repo.or.cz/tinycc.git/shortlog/refs/mob/mob_bold84/win_arm64_clean
This and the followup commits on mob is selected parts
of that original branch. So it is not everything.
It is not, for example:
- unrelated whitespace changes in many files
- a "pin msvcrt.dll" feature in tccpe.c (why that)
- a native getenv() replacement in tcc.c (why that)
- larger changes to the win32/lib runtime and tccrun.c (not needed)
- a very gcc specific detail for struct alignent in tccgen.c
- a custom set/longjmp implementation/replacement (not needed)
- lots of rather basic test files in the win32 folder
- a 'tests/asm' folder with some files (one file renamed to 140_test...c)
- a .docs folder with one file
This commit is contained in:
parent
d9a6d9aec0
commit
ff5d3b4874
8
Makefile
8
Makefile
@ -33,7 +33,7 @@ ifdef CONFIG_WIN32
|
||||
ifneq ($(CONFIG_debug),yes)
|
||||
LDFLAGS += -s
|
||||
endif
|
||||
NATIVE_TARGET = $(ARCH)-win$(if $(findstring arm,$(ARCH)),ce,32)
|
||||
NATIVE_TARGET = $(if $(findstring arm64,$(ARCH)),arm64-win32,$(ARCH)-win$(if $(findstring arm,$(ARCH)),ce,32))
|
||||
else
|
||||
CFG = -unx
|
||||
LIBS+=-lm
|
||||
@ -113,6 +113,7 @@ DEF-arm64-osx = $(DEF-arm64) -DTCC_TARGET_MACHO
|
||||
DEF-arm64-FreeBSD = $(DEF-arm64) -DTARGETOS_FreeBSD
|
||||
DEF-arm64-NetBSD = $(DEF-arm64) -DTARGETOS_NetBSD
|
||||
DEF-arm64-OpenBSD = $(DEF-arm64) -DTARGETOS_OpenBSD
|
||||
DEF-arm64-win32 = $(DEF-arm64) -DTCC_TARGET_PE
|
||||
DEF-riscv64 = -DTCC_TARGET_RISCV64
|
||||
DEF-c67 = -DTCC_TARGET_C67 -w # disable warnigs
|
||||
DEF-x86_64-FreeBSD = $(DEF-x86_64) -DTARGETOS_FreeBSD
|
||||
@ -130,7 +131,7 @@ TCCDOCS = tcc.1 tcc-doc.html tcc-doc.info
|
||||
all: $(PROGS) $(TCCLIBS) $(TCCDOCS)
|
||||
|
||||
# cross compiler targets to build
|
||||
TCC_X = i386 x86_64 i386-win32 x86_64-win32 x86_64-osx arm arm64 arm-wince c67
|
||||
TCC_X = i386 x86_64 i386-win32 x86_64-win32 x86_64-osx arm arm64 arm64-win32 arm-wince c67
|
||||
TCC_X += riscv64 arm64-osx
|
||||
# TCC_X += arm-fpa arm-fpa-ld arm-vfp arm-eabi
|
||||
|
||||
@ -212,8 +213,9 @@ arm-fpa-ld_FILES = $(arm_FILES)
|
||||
arm-vfp_FILES = $(arm_FILES)
|
||||
arm-eabi_FILES = $(arm_FILES)
|
||||
arm-eabihf_FILES = $(arm_FILES)
|
||||
arm64_FILES = $(CORE_FILES) arm64-gen.c arm64-link.c arm64-asm.c
|
||||
arm64_FILES = $(CORE_FILES) arm64-gen.c arm64-link.c arm64-asm.c arm64-tok.h
|
||||
arm64-osx_FILES = $(arm64_FILES) tccmacho.c
|
||||
arm64-win32_FILES = $(arm64_FILES) tccpe.c
|
||||
c67_FILES = $(CORE_FILES) c67-gen.c c67-link.c tcccoff.c
|
||||
riscv64_FILES = $(CORE_FILES) riscv64-gen.c riscv64-link.c riscv64-asm.c
|
||||
|
||||
|
||||
6
configure
vendored
6
configure
vendored
@ -266,7 +266,11 @@ default os_release "$(uname -r)"
|
||||
case $buildos in
|
||||
Windows_NT|MINGW*|MSYS*|CYGWIN*)
|
||||
buildos="WIN32"
|
||||
test "$MSYSTEM" = "MINGW32" && cpu_sys=i386
|
||||
case "$MSYSTEM" in
|
||||
MINGW32) cpu_sys=i386 ;;
|
||||
MINGW64) cpu_sys=x86_64 ;;
|
||||
CLANGARM64|MINGW_ARM64) cpu_sys=arm64 ;;
|
||||
esac
|
||||
;;
|
||||
Linux)
|
||||
if test "$(uname -o)" = "Android"; then
|
||||
|
||||
@ -65,6 +65,7 @@ OBJ-i386-win32 = $(I386_O) chkstk.o $(WIN_O)
|
||||
OBJ-x86_64-win32 = $(X86_64_O) chkstk.o $(WIN_O)
|
||||
OBJ-arm64 = $(ARM64_O) $(LIN_O)
|
||||
OBJ-arm64-osx = $(ARM64_O) $(OSX_O)
|
||||
OBJ-arm64-win32 = $(ARM64_O) chkstk.o $(WIN_O)
|
||||
OBJ-arm = $(ARM_O) $(LIN_O)
|
||||
OBJ-arm-fpa = $(OBJ-arm)
|
||||
OBJ-arm-fpa-ld = $(OBJ-arm)
|
||||
|
||||
@ -309,6 +309,7 @@ CROSS-TGTS = \
|
||||
arm-NetBSD \
|
||||
arm-wince \
|
||||
arm64 \
|
||||
arm64-win32 \
|
||||
arm64-osx \
|
||||
arm64-FreeBSD \
|
||||
arm64-NetBSD \
|
||||
|
||||
@ -46,6 +46,7 @@ clean:
|
||||
rm -f *.output
|
||||
|
||||
02.test : DIFF_OPTS += -w
|
||||
16.test : DIFF_OPTS += -B
|
||||
# 15.test : DIFF_OPTS += -I"^XXX:"
|
||||
|
||||
# diff options:
|
||||
|
||||
@ -48,6 +48,21 @@ ifeq (-$(CONFIG_WIN32)-,-yes-)
|
||||
SKIP += 117_builtins.test # win32 port doesn't define __builtins
|
||||
SKIP += 124_atomic_counter.test # No pthread support
|
||||
endif
|
||||
ifneq (,$(filter arm% riscv%,$(ARCH)))
|
||||
SKIP += 85_asm-outside-function.test
|
||||
SKIP += 98_al_ax_extend.test
|
||||
SKIP += 99_fastcall.test
|
||||
SKIP += 127_asm_goto.test
|
||||
endif
|
||||
ifeq (,$(filter arm64 aarch64,$(ARCH)))
|
||||
SKIP += 138_arm64_encoding.test
|
||||
SKIP += 139_arm64_errors.test
|
||||
endif
|
||||
ifneq (,$(findstring win32,$(CROSS_TARGET)))
|
||||
SKIP += 106_versym.test
|
||||
SKIP += 114_bound_signal.test
|
||||
SKIP += 124_atomic_counter.test
|
||||
endif
|
||||
ifneq (,$(filter OpenBSD FreeBSD NetBSD,$(TARGETOS)))
|
||||
SKIP += 106_versym.test # no pthread_condattr_setpshared
|
||||
SKIP += 114_bound_signal.test # libc problem signal/fork
|
||||
@ -73,6 +88,7 @@ endif
|
||||
|
||||
# These tests run several snippets from the same file one by one
|
||||
60_errors_and_warnings.test : FLAGS += -dt
|
||||
139_arm64_errors.test : FLAGS += -dt
|
||||
96_nodata_wanted.test : FLAGS += -dt
|
||||
|
||||
# Always generate certain .expects (don't put these in the GIT),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user