From 8d96a758d00c98c67e42862f82345831e2c232c7 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 23 Aug 2020 13:08:55 -0600 Subject: [PATCH] cs: support cross compile for Arm Linux --- racket/src/cs/c/Makefile.in | 12 +++++++++++- racket/src/cs/c/gen-system.rkt | 12 ++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in index 553216b79f..9a7f102922 100644 --- a/racket/src/cs/c/Makefile.in +++ b/racket/src/cs/c/Makefile.in @@ -361,6 +361,12 @@ plain-install-upcased: $(STRIP_DEBUG) $(libpltdir)/MzStart.exe $(STRIP_DEBUG) $(libpltdir)/MrStart.exe $(MAKE) system-install + $(MAKE) install-cross + +# ---------------------------------------- +# Cross-compiled install + +install-cross: $(MAKE) compile-xpatch.$(TARGET_MACH) $(MAKE) library-xpatch.$(TARGET_MACH) @@ -449,7 +455,7 @@ no-setup-install: echo done plain-install@NOT_OSX@@NOT_MINGW@: - $(MAKE) unix-install + $(MAKE) unix-install@T_CROSS_MODE@ plain-install@OSX@: $(MAKE) macos-install @@ -489,6 +495,10 @@ unix-install: $(RACKET) -cu "$(srcdir)/../../bc/collects-path.rkt" "$(DESTDIR)$(libpltdir)/gracket$(CS_INSTALLED)" $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@ $(MAKE) unix-@INSTALL_LIBS_ENABLE@-libs +unix-install-cross: + $(MAKE) unix-install + $(MAKE) install-cross + unix-install-libs: $(MAKE) unix-install-boot-files diff --git a/racket/src/cs/c/gen-system.rkt b/racket/src/cs/c/gen-system.rkt index 41a01b6c72..24d9dece77 100644 --- a/racket/src/cs/c/gen-system.rkt +++ b/racket/src/cs/c/gen-system.rkt @@ -26,7 +26,11 @@ (machine-lookup '((ta6nt . "win32\\x86_64") (a6nt . "win32\\x86_64") (ti3nt . "win32\\i386") - (i3nt . "win32\\i386")) + (i3nt . "win32\\i386") + (tarm32le . "arm-linux") + (arm32le . "arm-linux") + (tarm64le . "aarch64-linux") + (arm64le . "aarch64-linux")) (bytes->string/utf-8 (path->bytes (system-library-subpath #f))))) (define-values (ht) @@ -34,7 +38,11 @@ 'word (machine-lookup '((ta6nt . 64) (a6nt . 64) (ti3nt . 32) - (i3nt . 32)) + (i3nt . 32) + (tarm32le . 32) + (arm32le . 32) + (tarm64le . 64) + (arm64le . 64)) (system-type 'word)) 'gc 'cs 'vm 'chez-scheme