diff options
author | neonloop | 2023-07-24 22:07:02 +0000 |
---|---|---|
committer | neonloop | 2023-07-24 22:07:02 +0000 |
commit | 694af47e2b3dc8c24dac704f293f4bcf9ab67858 (patch) | |
tree | 381e226413736125f116696671bbc58d61cc2981 /patches | |
parent | ecb3c7bf765a84413ac0a53ffca7c8bf470c821f (diff) | |
download | picoarch-694af47e2b3dc8c24dac704f293f4bcf9ab67858.tar.gz picoarch-694af47e2b3dc8c24dac704f293f4bcf9ab67858.tar.bz2 picoarch-694af47e2b3dc8c24dac704f293f4bcf9ab67858.zip |
Changes funkey-s platform to unix-armv7-hardfloat-neon
More generic platform is supported by more cores, fewer patches needed
to get cores to build. Adding new cores is easier.
unix-armv7-cortexa7-hardfloat-neon causes warnings, maybe SDK bug?
Generic platform may not be as optimized, but speed difference can be
fixed with patches if discovered.
Diffstat (limited to 'patches')
-rw-r--r-- | patches/dosbox-pure/0001-add-auto-cycle-limit.patch | 17 | ||||
-rw-r--r-- | patches/dosbox-pure/0002-avoid-armv7-buggy-assembly.patch | 13 | ||||
-rw-r--r-- | patches/dosbox-pure/1000-funkey-s-support.patch | 30 | ||||
-rw-r--r-- | patches/fake-08/0002-arm-generic-target.patch | 42 | ||||
-rw-r--r-- | patches/fake-08/1000-funkey-s-build.patch | 17 | ||||
-rw-r--r-- | patches/mame2000/0002-arm-generic-target.patch | 43 | ||||
-rw-r--r-- | patches/snes9x2005/0001-frameskip-interval.patc_ | 107 | ||||
-rw-r--r-- | patches/snes9x2005/1000-trimui-support.patc_ | 46 | ||||
-rw-r--r-- | patches/snes9x2005/1001-funkey-s-support.patch | 93 | ||||
-rw-r--r-- | patches/snes9x2005_plus/1001-funkey-s-support.patch | 93 |
10 files changed, 114 insertions, 387 deletions
diff --git a/patches/dosbox-pure/0001-add-auto-cycle-limit.patch b/patches/dosbox-pure/0001-add-auto-cycle-limit.patch index f524ee6..44a7711 100644 --- a/patches/dosbox-pure/0001-add-auto-cycle-limit.patch +++ b/patches/dosbox-pure/0001-add-auto-cycle-limit.patch @@ -1,5 +1,20 @@ +diff --git a/Makefile b/Makefile +index 3e7941c..8c54b71 100644 +--- a/Makefile ++++ b/Makefile +@@ -181,6 +181,10 @@ else + endif + endif + ++ifneq (,$(CYCLE_LIMIT)) ++ COMMONFLAGS += -DCYCLE_LIMIT=$(CYCLE_LIMIT) ++endif ++ + ifeq ($(BUILD),DEBUG) + BUILDDIR := debug + CFLAGS := -DDEBUG -D_DEBUG -g -O0 diff --git a/dosbox_pure_libretro.cpp b/dosbox_pure_libretro.cpp -index af4c66f..bd59842 100644 +index 4f4ca7e..40ddef3 100644 --- a/dosbox_pure_libretro.cpp +++ b/dosbox_pure_libretro.cpp @@ -544,15 +544,30 @@ void DBP_SetRealModeCycles() diff --git a/patches/dosbox-pure/0002-avoid-armv7-buggy-assembly.patch b/patches/dosbox-pure/0002-avoid-armv7-buggy-assembly.patch new file mode 100644 index 0000000..3ec7acb --- /dev/null +++ b/patches/dosbox-pure/0002-avoid-armv7-buggy-assembly.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile b/Makefile +index 3e7941c..104d457 100644 +--- a/Makefile ++++ b/Makefile +@@ -200,6 +200,8 @@ else + BUILDDIR := release + ifeq ($(platform),vita) + CFLAGS := -DNDEBUG -O3 -fno-ident -fno-partial-inlining ++ else ifneq (,$(findstring armv7,$(platform))) ++ CFLAGS := -DNDEBUG -Ofast -fno-ident + else + CFLAGS := -DNDEBUG -O2 -fno-ident + endif diff --git a/patches/dosbox-pure/1000-funkey-s-support.patch b/patches/dosbox-pure/1000-funkey-s-support.patch deleted file mode 100644 index 59f7888..0000000 --- a/patches/dosbox-pure/1000-funkey-s-support.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/Makefile b/Makefile -index f0acd51..7b42e9b 100644 ---- a/Makefile -+++ b/Makefile -@@ -104,6 +104,16 @@ else ifeq ($(platform),ctr) - COMMONFLAGS += -fomit-frame-pointer -fstrict-aliasing -ffast-math -fpermissive - COMMONFLAGS += -I$(DEVKITPRO)/libctru/include - STATIC_LINKING = 1 -+else ifeq ($(platform),classic_armv7_a7) -+ OUTNAME := dosbox_pure_libretro.so -+ CXX := $(CROSS_COMPILE)g++ -+ LDFLAGS := -Wl,--gc-sections -fno-ident -+ COMMONFLAGS += -pthread -DCYCLE_LIMIT=8200 -+ CPUFLAGS += -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7ve -+ STRIPCMD := $(CROSS_COMPILE)strip --strip-all -+ ifeq ($(DEBUG), 1) -+ BUILD = DEBUG -+ endif - else ifeq ($(platform),ngc) - OUTNAME := dosbox_pure_libretro_ngc.a - CXX := $(DEVKITPPC)/bin/powerpc-eabi-g++ -@@ -200,6 +210,8 @@ else - BUILDDIR := release - ifeq ($(platform),vita) - CFLAGS := -DNDEBUG -O3 -fno-ident -fno-partial-inlining -+ else ifeq ($(platform),classic_armv7_a7) -+ CFLAGS := -DNDEBUG -Ofast -fno-ident - else - CFLAGS := -DNDEBUG -O2 -fno-ident - endif diff --git a/patches/fake-08/0002-arm-generic-target.patch b/patches/fake-08/0002-arm-generic-target.patch new file mode 100644 index 0000000..2ca8831 --- /dev/null +++ b/patches/fake-08/0002-arm-generic-target.patch @@ -0,0 +1,42 @@ +diff --git a/platform/libretro/Makefile b/platform/libretro/Makefile +index 40805b8..d890e0c 100644 +--- a/platform/libretro/Makefile ++++ b/platform/libretro/Makefile +@@ -123,7 +123,36 @@ else ifeq ($(platform), miyoomini) + CXXFLAGS += -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7ve -D_NEED_FULL_PATH_ + fpic := -fPIC + SHARED := -shared -Wl,--version-script=link.T +- ++else ifneq (,$(findstring armv,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ SHARED := -shared -Wl,--no-undefined,-Bsymbolic ++ fpic := -fPIC ++ ifneq (,$(findstring cortexa5,$(platform))) ++ CFLAGS += -marm -mcpu=cortex-a5 ++ ASFLAGS += -mcpu=cortex-a5 ++ else ifneq (,$(findstring cortexa8,$(platform))) ++ CFLAGS += -marm -mcpu=cortex-a8 ++ ASFLAGS += -mcpu=cortex-a8 ++ else ifneq (,$(findstring cortexa9,$(platform))) ++ CFLAGS += -marm -mcpu=cortex-a9 ++ ASFLAGS += -mcpu=cortex-a9 ++ else ifneq (,$(findstring cortexa15a7,$(platform))) ++ CFLAGS += -marm -mcpu=cortex-a15.cortex-a7 ++ ASFLAGS += -mcpu=cortex-a15.cortex-a7 ++ else ++ CFLAGS += -marm ++ endif ++ ifneq (,$(findstring neon,$(platform))) ++ CFLAGS += -mfpu=neon ++ ASFLAGS += -mfpu=neon ++ endif ++ ifneq (,$(findstring softfloat,$(platform))) ++ CFLAGS += -mfloat-abi=softfp ++ ASFLAGS += -mfloat-abi=softfp ++ else ifneq (,$(findstring hardfloat,$(platform))) ++ CFLAGS += -mfloat-abi=hard ++ ASFLAGS += -mfloat-abi=hard ++ endif + else ifeq ($(platform), gcw0) + TARGET := $(TARGET_NAME)_libretro_gcw0.so + CC = /opt/gcw0-toolchain/usr/bin/mipsel-linux-gcc diff --git a/patches/fake-08/1000-funkey-s-build.patch b/patches/fake-08/1000-funkey-s-build.patch deleted file mode 100644 index e5f5046..0000000 --- a/patches/fake-08/1000-funkey-s-build.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/platform/libretro/Makefile b/platform/libretro/Makefile -index 420f9b7..b247ec0 100644 ---- a/platform/libretro/Makefile -+++ b/platform/libretro/Makefile -@@ -123,7 +123,11 @@ else ifeq ($(platform), miyoomini) - CXXFLAGS += -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7ve - fpic := -fPIC - SHARED := -shared -Wl,--version-script=link.T -- -+else ifeq ($(platform), classic_armv7_a7) -+ TARGET := $(TARGET_NAME)_libretro.so -+ CXXFLAGS += -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7ve -+ fpic := -fPIC -+ SHARED := -shared -Wl,--version-script=link.T - else ifeq ($(platform), gcw0) - TARGET := $(TARGET_NAME)_libretro_gcw0.so - CC = /opt/gcw0-toolchain/usr/bin/mipsel-linux-gcc diff --git a/patches/mame2000/0002-arm-generic-target.patch b/patches/mame2000/0002-arm-generic-target.patch new file mode 100644 index 0000000..c1a76a3 --- /dev/null +++ b/patches/mame2000/0002-arm-generic-target.patch @@ -0,0 +1,43 @@ +diff --git a/Makefile b/Makefile +index 57163e4..647eaaf 100644 +--- a/Makefile ++++ b/Makefile +@@ -269,6 +269,38 @@ else ifeq ($(platform), classic_armv7_a7) + endif + ####################################### + ++# ARM ++else ifneq (,$(findstring armv,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ SHARED := -shared -Wl,--no-undefined,-Bsymbolic ++ fpic := -fPIC ++ ifneq (,$(findstring cortexa5,$(platform))) ++ CFLAGS += -marm -mcpu=cortex-a5 ++ ASFLAGS += -mcpu=cortex-a5 ++ else ifneq (,$(findstring cortexa8,$(platform))) ++ CFLAGS += -marm -mcpu=cortex-a8 ++ ASFLAGS += -mcpu=cortex-a8 ++ else ifneq (,$(findstring cortexa9,$(platform))) ++ CFLAGS += -marm -mcpu=cortex-a9 ++ ASFLAGS += -mcpu=cortex-a9 ++ else ifneq (,$(findstring cortexa15a7,$(platform))) ++ CFLAGS += -marm -mcpu=cortex-a15.cortex-a7 ++ ASFLAGS += -mcpu=cortex-a15.cortex-a7 ++ else ++ CFLAGS += -marm ++ endif ++ ifneq (,$(findstring neon,$(platform))) ++ CFLAGS += -mfpu=neon ++ ASFLAGS += -mfpu=neon ++ endif ++ ifneq (,$(findstring softfloat,$(platform))) ++ CFLAGS += -mfloat-abi=softfp ++ ASFLAGS += -mfloat-abi=softfp ++ else ifneq (,$(findstring hardfloat,$(platform))) ++ CFLAGS += -mfloat-abi=hard ++ ASFLAGS += -mfloat-abi=hard ++ endif ++ ARM = 1 + + # CTR(3DS) + else ifeq ($(platform), ctr) diff --git a/patches/snes9x2005/0001-frameskip-interval.patc_ b/patches/snes9x2005/0001-frameskip-interval.patc_ deleted file mode 100644 index f1c431d..0000000 --- a/patches/snes9x2005/0001-frameskip-interval.patc_ +++ /dev/null @@ -1,107 +0,0 @@ -diff --git a/libretro.c b/libretro.c -index 9b4599e..c768c42 100644 ---- a/libretro.c -+++ b/libretro.c -@@ -58,13 +58,11 @@ static int32_t samplerate = (((SNES_CLOCK_SPEED * 6) / (32 * ONE_APU_CYCLE))); - static unsigned frameskip_type = 0; - static unsigned frameskip_threshold = 0; - static uint16_t frameskip_counter = 0; -+static unsigned frameskip_interval = 0; - - static bool retro_audio_buff_active = false; - static unsigned retro_audio_buff_occupancy = 0; - static bool retro_audio_buff_underrun = false; --/* Maximum number of consecutive frames that -- * can be skipped */ --#define FRAMESKIP_MAX 30 - - static unsigned retro_audio_latency = 0; - static bool update_audio_latency = false; -@@ -345,6 +343,7 @@ void retro_deinit(void) - frameskip_type = 0; - frameskip_threshold = 0; - frameskip_counter = 0; -+ frameskip_interval = 0; - retro_audio_buff_active = false; - retro_audio_buff_occupancy = 0; - retro_audio_buff_underrun = false; -@@ -418,7 +417,7 @@ static void check_variables(bool first_run) - { - if (strcmp(var.value, "auto") == 0) - frameskip_type = 1; -- else if (strcmp(var.value, "manual") == 0) -+ else if (strcmp(var.value, "auto_threshold") == 0) - frameskip_type = 2; - } - -@@ -430,6 +429,14 @@ static void check_variables(bool first_run) - if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) - frameskip_threshold = strtol(var.value, NULL, 10); - -+ var.key = "snes9x_2005_frameskip_interval"; -+ var.value = NULL; -+ -+ frameskip_interval = 4; -+ -+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) -+ frameskip_interval = strtol(var.value, NULL, 10); -+ - var.key = "snes9x_2005_overclock_cycles"; - var.value = NULL; - -@@ -535,7 +542,7 @@ void retro_run(void) - - if (skip_frame) - { -- if(frameskip_counter < FRAMESKIP_MAX) -+ if(frameskip_counter < frameskip_interval) - { - IPPU.RenderThisFrame = false; - frameskip_counter++; -diff --git a/libretro_core_options.h b/libretro_core_options.h -index 9b89154..41d5ff1 100644 ---- a/libretro_core_options.h -+++ b/libretro_core_options.h -@@ -87,9 +87,9 @@ struct retro_core_option_v2_definition option_defs_us[] = { - NULL, - NULL, - { -- { "disabled", NULL }, -- { "auto", "Auto" }, -- { "manual", "Manual" }, -+ { "disabled", NULL }, -+ { "auto", "Auto" }, -+ { "auto_threshold", "Threshold" }, - { NULL, NULL }, - }, - "disabled" -@@ -122,6 +122,29 @@ struct retro_core_option_v2_definition option_defs_us[] = { - }, - "33" - }, -+ { -+ "snes9x_2005_frameskip_interval", -+ "Frameskip Interval", -+ NULL, -+ "The maximum number of frames that can be skipped before a new frame is rendered.", -+ NULL, -+ NULL, -+ { -+ { "0", NULL }, -+ { "1", NULL }, -+ { "2", NULL }, -+ { "3", NULL }, -+ { "4", NULL }, -+ { "5", NULL }, -+ { "6", NULL }, -+ { "7", NULL }, -+ { "8", NULL }, -+ { "9", NULL }, -+ { "10", NULL }, -+ { NULL, NULL }, -+ }, -+ "4" -+ }, - { - "snes9x_2005_overclock_cycles", - "Reduce Slowdown (Hack, Unsafe, Restart)", diff --git a/patches/snes9x2005/1000-trimui-support.patc_ b/patches/snes9x2005/1000-trimui-support.patc_ deleted file mode 100644 index 96dcb78..0000000 --- a/patches/snes9x2005/1000-trimui-support.patc_ +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/Makefile b/Makefile -index b293853..bc220bd 100644 ---- a/Makefile -+++ b/Makefile -@@ -282,6 +282,20 @@ else ifeq ($(platform), gcw0) - FLAGS += -fomit-frame-pointer -ffast-math -march=mips32 -mtune=mips32r2 -mhard-float - FLAGS += -DFAST_LSB_WORD_ACCESS - -+else ifeq ($(platform), trimui) -+ TARGET := $(TARGET_NAME)_libretro.so -+ CC = $(CROSS_COMPILE)gcc -+ AR = $(CROSS_COMPILE)ar -+ SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined -+ CFLAGS += -fsingle-precision-constant -fno-PIC -flto -+ CFLAGS += -DLSB_FIRST -DFAST_ALIGNED_LSB_WORD_ACCESS -DRIGHTSHIFT_IS_SAR -+ CFLAGS += -std=c99 -fomit-frame-pointer -ffast-math -mcpu=arm926ej-s -mtune=arm926ej-s -+ LDFLAGS += -flto -+ OPTIMIZE += -Ofast -DNDEBUG=1 -+ ifeq (,$(DEBUG)) -+ LDFLAGS += -s -+ endif -+ - # (armv7 a7, hard point, neon based) ### - # NESC, SNESC, C64 mini - else ifeq ($(platform), classic_armv7_a7) -@@ -570,10 +584,20 @@ endif - - ifeq ($(DEBUG),1) - FLAGS += -O0 -g -+else ifneq (,$(OPTIMIZE)) -+ FLAGS += $(OPTIMIZE) - else - FLAGS += -O2 -DNDEBUG - endif - -+ -+ifeq ($(PROFILE), GENERATE) -+ CFLAGS += -fprofile-generate=./profile/snes9x2005 -+ LIBS += -lgcov -+else ifeq ($(PROFILE), APPLY) -+ CFLAGS += -fprofile-use -fprofile-dir=../profile/snes9x2005 -fbranch-probabilities -+endif -+ - ifneq (,$(findstring msvc,$(platform))) - ifeq ($(DEBUG),1) - FLAGS += -MTd diff --git a/patches/snes9x2005/1001-funkey-s-support.patch b/patches/snes9x2005/1001-funkey-s-support.patch deleted file mode 100644 index 1825917..0000000 --- a/patches/snes9x2005/1001-funkey-s-support.patch +++ /dev/null @@ -1,93 +0,0 @@ -diff --git a/Makefile b/Makefile -index 23b8979..0a09e85 100644 ---- a/Makefile -+++ b/Makefile -@@ -74,13 +74,46 @@ ifeq ($(platform), unix) - fpic := -fPIC - SHARED := -shared -Wl,--no-undefined -Wl,--version-script=link.T - CFLAGS += -fno-builtin -fno-exceptions -ffunction-sections --# ARM -+# (armv7 a7, hard point, neon based) ### -+# NESC, SNESC, C64 mini -+else ifeq ($(platform), classic_armv7_a7) -+ TARGET := $(TARGET_NAME)_libretro.so -+ fpic := -fPIC -+ SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined -+ CFLAGS += -Ofast \ -+ -flto=4 -fwhole-program -fuse-linker-plugin \ -+ -fdata-sections -ffunction-sections -Wl,--gc-sections \ -+ -fno-stack-protector -fno-ident -fomit-frame-pointer \ -+ -falign-functions=1 -falign-jumps=1 -falign-loops=1 \ -+ -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-unroll-loops \ -+ -fmerge-all-constants -fno-math-errno \ -+ -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -+ CC = $(CROSS_COMPILE)gcc -+ AR = $(CROSS_COMPILE)ar -+ CXXFLAGS += $(CFLAGS) -+ CPPFLAGS += $(CFLAGS) -+ ASFLAGS += $(CFLAGS) -+ HAVE_NEON = 1 -+ ARCH = arm -+ BUILTIN_GPU = neon -+ USE_DYNAREC = 1 -+ ifeq ($(shell echo `$(CC) -dumpversion` "< 4.9" | bc -l), 1) -+ CFLAGS += -march=armv7-a -+ else -+ CFLAGS += -march=armv7ve -+ # If gcc is 5.0 or later -+ ifeq ($(shell echo `$(CC) -dumpversion` ">= 5" | bc -l), 1) -+ LDFLAGS += -static-libgcc -static-libstdc++ -+ endif -+ endif -+####################################### -+# generic ARM - else ifneq (,$(findstring armv,$(platform))) - TARGET := $(TARGET_NAME)_libretro.so - fpic := -fPIC - SHARED := -shared -Wl,--no-undefined -Wl,--version-script=link.T -- CC = gcc -- CXX = g++ -+ CC = $(CROSS_COMPILE)gcc -+ CXX = $(CROSS_COMPILE)g++ - PLATFORM_DEFINES += -marm - ifneq (,$(findstring softfloat,$(platform))) - PLATFORM_DEFINES += -mfloat-abi=softfp -@@ -306,38 +339,6 @@ else - endif - OPTIMIZE += -Ofast -DNDEBUG=1 - --# (armv7 a7, hard point, neon based) ### --# NESC, SNESC, C64 mini --else ifeq ($(platform), classic_armv7_a7) -- TARGET := $(TARGET_NAME)_libretro.so -- fpic := -fPIC -- SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined -- CFLAGS += -Ofast \ -- -flto=4 -fwhole-program -fuse-linker-plugin \ -- -fdata-sections -ffunction-sections -Wl,--gc-sections \ -- -fno-stack-protector -fno-ident -fomit-frame-pointer \ -- -falign-functions=1 -falign-jumps=1 -falign-loops=1 \ -- -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-unroll-loops \ -- -fmerge-all-constants -fno-math-errno \ -- -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -- CXXFLAGS += $(CFLAGS) -- CPPFLAGS += $(CFLAGS) -- ASFLAGS += $(CFLAGS) -- HAVE_NEON = 1 -- ARCH = arm -- BUILTIN_GPU = neon -- USE_DYNAREC = 1 -- ifeq ($(shell echo `$(CC) -dumpversion` "< 4.9" | bc -l), 1) -- CFLAGS += -march=armv7-a -- else -- CFLAGS += -march=armv7ve -- # If gcc is 5.0 or later -- ifeq ($(shell echo `$(CC) -dumpversion` ">= 5" | bc -l), 1) -- LDFLAGS += -static-libgcc -static-libstdc++ -- endif -- endif --####################################### -- - # Windows MSVC 2010 x64 - else ifeq ($(platform), windows_msvc2010_x64) - CC = cl.exe diff --git a/patches/snes9x2005_plus/1001-funkey-s-support.patch b/patches/snes9x2005_plus/1001-funkey-s-support.patch deleted file mode 100644 index 1825917..0000000 --- a/patches/snes9x2005_plus/1001-funkey-s-support.patch +++ /dev/null @@ -1,93 +0,0 @@ -diff --git a/Makefile b/Makefile -index 23b8979..0a09e85 100644 ---- a/Makefile -+++ b/Makefile -@@ -74,13 +74,46 @@ ifeq ($(platform), unix) - fpic := -fPIC - SHARED := -shared -Wl,--no-undefined -Wl,--version-script=link.T - CFLAGS += -fno-builtin -fno-exceptions -ffunction-sections --# ARM -+# (armv7 a7, hard point, neon based) ### -+# NESC, SNESC, C64 mini -+else ifeq ($(platform), classic_armv7_a7) -+ TARGET := $(TARGET_NAME)_libretro.so -+ fpic := -fPIC -+ SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined -+ CFLAGS += -Ofast \ -+ -flto=4 -fwhole-program -fuse-linker-plugin \ -+ -fdata-sections -ffunction-sections -Wl,--gc-sections \ -+ -fno-stack-protector -fno-ident -fomit-frame-pointer \ -+ -falign-functions=1 -falign-jumps=1 -falign-loops=1 \ -+ -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-unroll-loops \ -+ -fmerge-all-constants -fno-math-errno \ -+ -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -+ CC = $(CROSS_COMPILE)gcc -+ AR = $(CROSS_COMPILE)ar -+ CXXFLAGS += $(CFLAGS) -+ CPPFLAGS += $(CFLAGS) -+ ASFLAGS += $(CFLAGS) -+ HAVE_NEON = 1 -+ ARCH = arm -+ BUILTIN_GPU = neon -+ USE_DYNAREC = 1 -+ ifeq ($(shell echo `$(CC) -dumpversion` "< 4.9" | bc -l), 1) -+ CFLAGS += -march=armv7-a -+ else -+ CFLAGS += -march=armv7ve -+ # If gcc is 5.0 or later -+ ifeq ($(shell echo `$(CC) -dumpversion` ">= 5" | bc -l), 1) -+ LDFLAGS += -static-libgcc -static-libstdc++ -+ endif -+ endif -+####################################### -+# generic ARM - else ifneq (,$(findstring armv,$(platform))) - TARGET := $(TARGET_NAME)_libretro.so - fpic := -fPIC - SHARED := -shared -Wl,--no-undefined -Wl,--version-script=link.T -- CC = gcc -- CXX = g++ -+ CC = $(CROSS_COMPILE)gcc -+ CXX = $(CROSS_COMPILE)g++ - PLATFORM_DEFINES += -marm - ifneq (,$(findstring softfloat,$(platform))) - PLATFORM_DEFINES += -mfloat-abi=softfp -@@ -306,38 +339,6 @@ else - endif - OPTIMIZE += -Ofast -DNDEBUG=1 - --# (armv7 a7, hard point, neon based) ### --# NESC, SNESC, C64 mini --else ifeq ($(platform), classic_armv7_a7) -- TARGET := $(TARGET_NAME)_libretro.so -- fpic := -fPIC -- SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined -- CFLAGS += -Ofast \ -- -flto=4 -fwhole-program -fuse-linker-plugin \ -- -fdata-sections -ffunction-sections -Wl,--gc-sections \ -- -fno-stack-protector -fno-ident -fomit-frame-pointer \ -- -falign-functions=1 -falign-jumps=1 -falign-loops=1 \ -- -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-unroll-loops \ -- -fmerge-all-constants -fno-math-errno \ -- -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -- CXXFLAGS += $(CFLAGS) -- CPPFLAGS += $(CFLAGS) -- ASFLAGS += $(CFLAGS) -- HAVE_NEON = 1 -- ARCH = arm -- BUILTIN_GPU = neon -- USE_DYNAREC = 1 -- ifeq ($(shell echo `$(CC) -dumpversion` "< 4.9" | bc -l), 1) -- CFLAGS += -march=armv7-a -- else -- CFLAGS += -march=armv7ve -- # If gcc is 5.0 or later -- ifeq ($(shell echo `$(CC) -dumpversion` ">= 5" | bc -l), 1) -- LDFLAGS += -static-libgcc -static-libstdc++ -- endif -- endif --####################################### -- - # Windows MSVC 2010 x64 - else ifeq ($(platform), windows_msvc2010_x64) - CC = cl.exe |