From f9d4e65603fcce4f065129e3d47bb77dd170230a Mon Sep 17 00:00:00 2001 From: meepingsnesroms Date: Thu, 8 Nov 2018 13:59:48 -0800 Subject: [PATCH] Try to fix duplicate symbols error on emscripten --- libretroBuildSystem/Makefile.libretro | 18 +++++------ libretroBuildSystem/build/Makefile.common | 35 +++++++++++---------- src/makefile.all | 38 +++++++++++------------ 3 files changed, 47 insertions(+), 44 deletions(-) diff --git a/libretroBuildSystem/Makefile.libretro b/libretroBuildSystem/Makefile.libretro index 658e766..9721fd6 100644 --- a/libretroBuildSystem/Makefile.libretro +++ b/libretroBuildSystem/Makefile.libretro @@ -95,7 +95,7 @@ ifeq ($(platform), unix) EXT ?= so TARGET := $(TARGET_NAME)_libretro$(PLAT).$(EXT) fpic := -fPIC - SHARED := -shared -Wl,--version-script=build/link.T + SHARED := -shared -Wl,--version-script=$(BUILD_DIR)/link.T ifneq ($(findstring Haiku,$(shell uname -a)),) LIBM := endif @@ -105,7 +105,7 @@ else ifeq ($(platform), linux-portable) EXT ?= so TARGET := $(TARGET_NAME)_libretro.$(EXT) fpic := -fPIC -nostdlib - SHARED := -shared -Wl,--version-script=build/link.T + SHARED := -shared -Wl,--version-script=$(BUILD_DIR)/link.T LIBM := # OS X @@ -167,7 +167,7 @@ else ifeq ($(platform), qnx) EXT ?= so TARGET := $(TARGET_NAME)_libretro_qnx.$(EXT) fpic := -fPIC - SHARED := -shared -Wl,--version-script=build/link.T + SHARED := -shared -Wl,--version-script=$(BUILD_DIR)/link.T CC = qcc -Vgcc_ntoarmv7le AR = qcc -Vgcc_ntoarmv7le @@ -251,7 +251,7 @@ else ifeq ($(platform), ctr) else ifeq ($(platform), rpi2) TARGET := $(TARGET_NAME)_libretro.so fpic := -fPIC - SHARED := -shared -Wl,--version-script=build/link.T -Wl,--no-undefined + SHARED := -shared -Wl,--version-script=$(BUILD_DIR)/link.T -Wl,--no-undefined CFLAGS += -DARM CFLAGS += -marm -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -funsafe-math-optimizations CFLAGS += -fomit-frame-pointer -ffast-math @@ -261,7 +261,7 @@ else ifeq ($(platform), rpi2) else ifeq ($(platform), rpi3) TARGET := $(TARGET_NAME)_libretro.so fpic := -fPIC - SHARED := -shared -Wl,--version-script=build/link.T -Wl,--no-undefined + SHARED := -shared -Wl,--version-script=$(BUILD_DIR)/link.T -Wl,--no-undefined CFLAGS += -DARM CFLAGS += -marm -mcpu=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -funsafe-math-optimizations CFLAGS += -fomit-frame-pointer -ffast-math @@ -281,7 +281,7 @@ else ifeq ($(platform), xenon) else ifeq ($(platform), nintendoc) TARGET := $(TARGET_NAME)_libretro.so fpic := -fPIC - SHARED := -shared -Wl,--version-script=build/link.T -Wl,--no-undefined + SHARED := -shared -Wl,--version-script=$(BUILD_DIR)/link.T -Wl,--no-undefined CFLAGS += -DARM CFLAGS += -marm -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -funsafe-math-optimizations CFLAGS += -fomit-frame-pointer -ffast-math @@ -360,7 +360,7 @@ else ifeq ($(platform), gcw0) CC = /opt/gcw0-toolchain/usr/bin/mipsel-linux-gcc CXX = /opt/gcw0-toolchain/usr/bin/mipsel-linux-g++ AR = /opt/gcw0-toolchain/usr/bin/mipsel-linux-ar - SHARED := -shared -Wl,--version-script=build/link.T + SHARED := -shared -Wl,--version-script=$(BUILD_DIR)/link.T fpic := -fPIC CFLAGS += $(PTHREAD_FLAGS) CFLAGS += -ffast-math -march=mips32 -mtune=mips32r2 -mhard-float @@ -414,7 +414,7 @@ else EXT ?= dll TARGET := $(TARGET_NAME)_libretro.$(EXT) CC = gcc - SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=build/link.T + SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=$(BUILD_DIR)/link.T CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__ endif @@ -482,7 +482,7 @@ all: $(TARGET) $(TARGET): $(OBJECTS) ifeq ($(platform), emscripten) - $(CC) $(CFLAGS) --version-script=build/link.T $(OBJOUT)$@ $^ + $(CC) $(CFLAGS) $(OBJOUT)$@ $^ else ifeq ($(STATIC_LINKING_LINK),1) ifneq (,$(findstring msvc,$(platform))) $(LD) $(LINKOUT)$@ $(OBJECTS) diff --git a/libretroBuildSystem/build/Makefile.common b/libretroBuildSystem/build/Makefile.common index 8d0a746..815e3c9 100644 --- a/libretroBuildSystem/build/Makefile.common +++ b/libretroBuildSystem/build/Makefile.common @@ -5,19 +5,19 @@ COREDEFINES = INCFLAGS := -I$(LIBRETRO_COMM_DIR)/include ifeq ($(DEBUG), 1) - COREDEFINES += -DEMU_DEBUG -DEMU_SANDBOX + COREDEFINES += -DEMU_DEBUG -DEMU_SANDBOX else - COREDEFINES += -DEMU_NO_SAFETY + COREDEFINES += -DEMU_NO_SAFETY endif ifneq (,$(findstring msvc200,$(platform))) - INCFLAGS += -I$(LIBRETRO_COMM_DIR)/include/compat/msvc + INCFLAGS += -I$(LIBRETRO_COMM_DIR)/include/compat/msvc endif ifneq (,$(findstring msvc20,$(platform))) - #Mu is dependent on stdbool.h and the standard inline directive existing - INCFLAGS += -I$(CORE_DIR)/fixIncludes/stdbool - COREDEFINES += -Dinline=_inline -DINLINE=_inline + #Mu is dependent on stdbool.h and the standard inline directive existing + INCFLAGS += -I$(CORE_DIR)/fixIncludes/stdbool + COREDEFINES += -Dinline=_inline -DINLINE=_inline endif include $(EMU_PATH)/makefile.all @@ -25,15 +25,18 @@ include $(EMU_PATH)/makefile.all COREDEFINES += $(EMU_DEFINES) SOURCES_C := $(CORE_DIR)/libretro.c \ - $(CORE_DIR)/cursors.c \ - $(LIBRETRO_COMM_DIR)/compat/compat_posix_string.c \ - $(LIBRETRO_COMM_DIR)/compat/compat_strl.c \ - $(LIBRETRO_COMM_DIR)/compat/fopen_utf8.c \ - $(LIBRETRO_COMM_DIR)/encodings/encoding_utf.c \ - $(LIBRETRO_COMM_DIR)/memmap/memmap.c \ - $(LIBRETRO_COMM_DIR)/streams/file_stream.c \ - $(LIBRETRO_COMM_DIR)/string/stdstring.c \ - $(LIBRETRO_COMM_DIR)/vfs/vfs_implementation.c \ - $(EMU_SOURCES_C) + $(CORE_DIR)/cursors.c \ + $(EMU_SOURCES_C) + +ifneq ($(STATIC_LINKING), 1) + SOURCES_C += $(LIBRETRO_COMM_DIR)/compat/compat_strl.c \ + $(LIBRETRO_COMM_DIR)/compat/compat_posix_string.c \ + $(LIBRETRO_COMM_DIR)/compat/fopen_utf8.c \ + $(LIBRETRO_COMM_DIR)/encodings/encoding_utf.c \ + $(LIBRETRO_COMM_DIR)/memmap/memmap.c \ + $(LIBRETRO_COMM_DIR)/streams/file_stream.c \ + $(LIBRETRO_COMM_DIR)/string/stdstring.c \ + $(LIBRETRO_COMM_DIR)/vfs/vfs_implementation.c +endif SOURCES_ASM := $(EMU_SOURCES_ASM) diff --git a/src/makefile.all b/src/makefile.all index f1e138b..7625a65 100644 --- a/src/makefile.all +++ b/src/makefile.all @@ -1,26 +1,26 @@ EMU_DEFINES := EMU_SOURCES_ASM := EMU_SOURCES_C := $(EMU_PATH)/emulator.c \ - $(EMU_PATH)/memoryAccess.c \ - $(EMU_PATH)/hardwareRegisters.c \ - $(EMU_PATH)/sed1376.c \ - $(EMU_PATH)/ads7846.c \ - $(EMU_PATH)/pdiUsbD12.c \ - $(EMU_PATH)/sdCard.c \ - $(EMU_PATH)/silkscreen.c \ - $(EMU_PATH)/flx68000.c \ - $(EMU_PATH)/audio/blip_buf.c \ - $(EMU_PATH)/audio/inductor.c \ - $(EMU_PATH)/debug/sandbox.c + $(EMU_PATH)/memoryAccess.c \ + $(EMU_PATH)/hardwareRegisters.c \ + $(EMU_PATH)/sed1376.c \ + $(EMU_PATH)/ads7846.c \ + $(EMU_PATH)/pdiUsbD12.c \ + $(EMU_PATH)/sdCard.c \ + $(EMU_PATH)/silkscreen.c \ + $(EMU_PATH)/flx68000.c \ + $(EMU_PATH)/audio/blip_buf.c \ + $(EMU_PATH)/audio/inductor.c \ + $(EMU_PATH)/debug/sandbox.c ifeq ($(EMU_OPTIMIZE_FOR_ARM), true) - EMU_DEFINES += -DEMU_OPTIMIZE_FOR_ARM - EMU_SOURCES_ASM += $(EMU_PATH)/m68k/cyclone/Cyclone.s + EMU_DEFINES += -DEMU_OPTIMIZE_FOR_ARM + EMU_SOURCES_ASM += $(EMU_PATH)/m68k/cyclone/Cyclone.s else - EMU_SOURCES_C += $(EMU_PATH)/m68k/musashi/m68kops.c \ - $(EMU_PATH)/m68k/musashi/m68kopnz.c \ - $(EMU_PATH)/m68k/musashi/m68kopdm.c \ - $(EMU_PATH)/m68k/musashi/m68kopac.c \ - $(EMU_PATH)/m68k/musashi/m68kdasm.c \ - $(EMU_PATH)/m68k/musashi/m68kcpu.c + EMU_SOURCES_C += $(EMU_PATH)/m68k/musashi/m68kops.c \ + $(EMU_PATH)/m68k/musashi/m68kopnz.c \ + $(EMU_PATH)/m68k/musashi/m68kopdm.c \ + $(EMU_PATH)/m68k/musashi/m68kopac.c \ + $(EMU_PATH)/m68k/musashi/m68kdasm.c \ + $(EMU_PATH)/m68k/musashi/m68kcpu.c endif