From 4abd2871cc87171bf7e6ca8a3b42ade92e754402 Mon Sep 17 00:00:00 2001 From: Hugo Hromic Date: Sat, 20 Apr 2019 10:50:06 +0100 Subject: [PATCH] Backport check for Thumb instructions from configure script The recompiler can't handle Thumb instructions, so they must be disabled. This is accomplished via the `-marm` flag being set for different platforms. However, when using `platform=unix` and manually configuring the build, the check for Thumb instructions is not done in `Makefile.libretro`. Therefore, when building with a compiler that defaults to Thumb instructions (e.g. ODROID-XU4), the build can fail with this error: libpcsxcore/new_dynarec/backends/psx/pcsxmem.c:18:2: error: #error the dynarec is incompatible with Thumb functions, libpcsxcore/new_dynarec/backends/psx/pcsxmem.c:19:2: error: #error please add -marm to compile flags To address this, we simply backport the define check from the configure script for when we build with `ARCH=arm`. This change doesn't affect the buildbot. --- Makefile.libretro | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile.libretro b/Makefile.libretro index 5a59aeaf..2cda1d04 100644 --- a/Makefile.libretro +++ b/Makefile.libretro @@ -47,6 +47,12 @@ ifeq ($(platform), unix) ifneq ($(findstring SunOS,$(shell uname -s)),) CC = gcc endif +ifeq ($(ARCH), arm) +ifneq ($(findstring __thumb__,$(shell $(CC) -E -dD $(CFLAGS) include/arm_features.h)),) + # must disable thumb as recompiler can't handle it + CFLAGS += -marm +endif +endif else ifeq ($(platform), linux-portable) TARGET := $(TARGET_NAME)_libretro.so -- 2.39.5