PLUGINS: Cleanup.

- Unify ELF loader handling in configure
- Rename ELF_LOADER_TARGET to USE_ELF_LOADER

svn-id: r52728
This commit is contained in:
Andre Heider 2010-09-15 07:43:16 +00:00
parent fd4189180d
commit 41834499ed
18 changed files with 110 additions and 98 deletions

View file

@ -237,7 +237,7 @@ CXXFLAGS= $(CFLAGS) -Wno-non-virtual-dtor -Wno-unknown-pragmas -Wno-reorder \
ASFLAGS = -mcpu=arm9tdmi -mthumb-interwork ASFLAGS = -mcpu=arm9tdmi -mthumb-interwork
DEFINES += -D__DS__ -DNDS -DARM9 -DNONSTANDARD_PORT -DDISABLE_TEXT_CONSOLE -DDISABLE_FANCY_THEMES -DVECTOR_RENDERER_FORMAT=1555 -DDISABLE_DOSBOX_OPL -DDISABLE_DEFAULT_SAVEFILEMANAGER -DELF_LOADER_TARGET -DARM -DARM_TARGET -DONE_PLUGIN_AT_A_TIME DEFINES += -D__DS__ -DNDS -DARM9 -DNONSTANDARD_PORT -DDISABLE_TEXT_CONSOLE -DDISABLE_FANCY_THEMES -DVECTOR_RENDERER_FORMAT=1555 -DDISABLE_DOSBOX_OPL -DDISABLE_DEFAULT_SAVEFILEMANAGER -DUSE_ELF_LOADER -DARM -DARM_TARGET -DONE_PLUGIN_AT_A_TIME
ifdef USE_MAD ifdef USE_MAD
DEFINES += -DUSE_MAD DEFINES += -DUSE_MAD
endif endif

View file

@ -78,7 +78,7 @@ DEPDIR = .deps
TARGET = elf/scummvm.elf TARGET = elf/scummvm.elf
DEFINES += -DUSE_VORBIS -DUSE_TREMOR -DUSE_MAD -DUSE_ZLIB -DFORCE_RTL -DDISABLE_SAVEGAME_SORTING -D_EE -D__PLAYSTATION2__ -G2 -O2 -Wall -Wno-multichar -fno-rtti -fno-exceptions -DNO_ADAPTOR DEFINES += -DUSE_VORBIS -DUSE_TREMOR -DUSE_MAD -DUSE_ZLIB -DFORCE_RTL -DDISABLE_SAVEGAME_SORTING -D_EE -D__PLAYSTATION2__ -G2 -O2 -Wall -Wno-multichar -fno-rtti -fno-exceptions -DNO_ADAPTOR
DEFINES += -DELF_LOADER_TARGET -DMIPS_TARGET -DONE_PLUGIN_AT_A_TIME DEFINES += -DUSE_ELF_LOADER -DMIPS_TARGET -DONE_PLUGIN_AT_A_TIME
INCLUDES = $(addprefix -I$(PS2_EXTRA),$(PS2_EXTRA_INCS)) INCLUDES = $(addprefix -I$(PS2_EXTRA),$(PS2_EXTRA_INCS))
INCLUDES += -I $(PS2SDK)/ee/include -I $(PS2SDK)/common/include -I ./common -I . -I $(srcdir) -I $(srcdir)/engines INCLUDES += -I $(PS2SDK)/ee/include -I $(PS2SDK)/common/include -I ./common -I . -I $(srcdir) -I $(srcdir)/engines

View file

@ -67,7 +67,7 @@ endif
# Variables for common Scummvm makefile # Variables for common Scummvm makefile
CXX = psp-g++ CXX = psp-g++
CXXFLAGS = -O3 -Wall -Wno-multichar -fno-exceptions -fno-rtti CXXFLAGS = -O3 -Wall -Wno-multichar -fno-exceptions -fno-rtti
DEFINES = -D__PSP__ -DNONSTANDARD_PORT -DDISABLE_TEXT_CONSOLE -DDISABLE_COMMAND_LINE -DUSE_ZLIB -DDISABLE_DOSBOX_OPL -DUSE_RGB_COLOR -DELF_LOADER_TARGET -DMIPS_TARGET DEFINES = -D__PSP__ -DNONSTANDARD_PORT -DDISABLE_TEXT_CONSOLE -DDISABLE_COMMAND_LINE -DUSE_ZLIB -DDISABLE_DOSBOX_OPL -DUSE_RGB_COLOR -DUSE_ELF_LOADER -DMIPS_TARGET
LDFLAGS := LDFLAGS :=
INCDIR := $(srcdir) . $(srcdir)/engines/ $(PSPSDK)/include INCDIR := $(srcdir) . $(srcdir)/engines/ $(PSPSDK)/include

View file

@ -23,9 +23,10 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(ARM_TARGET) #include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(ARM_TARGET)
#include "backends/plugins/elf/elf-loader.h"
#include "backends/plugins/elf/arm-loader.h" #include "backends/plugins/elf/arm-loader.h"
#include "common/debug.h" #include "common/debug.h"
@ -128,5 +129,5 @@ bool ARMDLObject::relocateRels(Elf32_Ehdr *ehdr, Elf32_Shdr *shdr) {
return true; return true;
} }
#endif /* defined(DYNAMIC_MODULES) && defined(ARM_TARGET) */ #endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(ARM_TARGET) */

View file

@ -23,11 +23,13 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(ARM_TARGET)
#ifndef BACKENDS_PLUGINS_ARM_LOADER_H #ifndef BACKENDS_PLUGINS_ARM_LOADER_H
#define BACKENDS_PLUGINS_ARM_LOADER_H #define BACKENDS_PLUGINS_ARM_LOADER_H
#include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(ARM_TARGET)
#include "backends/plugins/elf/elf-loader.h" #include "backends/plugins/elf/elf-loader.h"
class ARMDLObject : public DLObject { class ARMDLObject : public DLObject {
@ -41,6 +43,7 @@ public:
} }
}; };
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(ARM_TARGET) */
#endif /* BACKENDS_PLUGINS_ARM_LOADER_H */ #endif /* BACKENDS_PLUGINS_ARM_LOADER_H */
#endif /* defined(DYNAMIC_MODULES) && defined(ARM_TARGET) */

View file

@ -23,7 +23,9 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(ELF_LOADER_TARGET) #include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER)
#include "backends/plugins/elf/elf-loader.h" #include "backends/plugins/elf/elf-loader.h"
@ -423,5 +425,5 @@ void *DLObject::symbol(const char *name) {
return 0; return 0;
} }
#endif /* defined(DYNAMIC_MODULES) && defined(ELF_LOADER_TARGET) */ #endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) */

View file

@ -23,11 +23,13 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(ELF_LOADER_TARGET)
#ifndef BACKENDS_PLUGINS_ELF_LOADER_H #ifndef BACKENDS_PLUGINS_ELF_LOADER_H
#define BACKENDS_PLUGINS_ELF_LOADER_H #define BACKENDS_PLUGINS_ELF_LOADER_H
#include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER)
#include <stddef.h> #include <stddef.h>
#include "backends/plugins/elf/elf32.h" #include "backends/plugins/elf/elf32.h"
@ -96,7 +98,7 @@ public:
void discard_symtab(); void discard_symtab();
}; };
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) */
#endif /* BACKENDS_PLUGINS_ELF_LOADER_H */ #endif /* BACKENDS_PLUGINS_ELF_LOADER_H */
#endif /* defined(DYNAMIC_MODULES) && defined(ELF_LOADER_TARGET) */

View file

@ -23,7 +23,9 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(ELF_LOADER_TARGET) #include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER)
#ifdef ELF_LOADER_CXA_ATEXIT #ifdef ELF_LOADER_CXA_ATEXIT
#include <cxxabi.h> #include <cxxabi.h>
@ -158,4 +160,5 @@ bool ELFPluginProvider::isPluginFilename(const Common::FSNode &node) const {
return true; return true;
} }
#endif // defined(DYNAMIC_MODULES) && defined(ELF_LOADER_TARGET) #endif // defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER)

View file

@ -23,11 +23,13 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(ELF_LOADER_TARGET)
#ifndef BACKENDS_PLUGINS_ELF_PROVIDER_H #ifndef BACKENDS_PLUGINS_ELF_PROVIDER_H
#define BACKENDS_PLUGINS_ELF_PROVIDER_H #define BACKENDS_PLUGINS_ELF_PROVIDER_H
#include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER)
#include "backends/plugins/elf/elf-loader.h" #include "backends/plugins/elf/elf-loader.h"
#include "common/fs.h" #include "common/fs.h"
@ -74,6 +76,7 @@ protected:
bool isPluginFilename(const Common::FSNode &node) const; bool isPluginFilename(const Common::FSNode &node) const;
}; };
#endif // defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER)
#endif /* BACKENDS_PLUGINS_ELF_PROVIDER_H */ #endif /* BACKENDS_PLUGINS_ELF_PROVIDER_H */
#endif // defined(DYNAMIC_MODULES) && defined(ELF_LOADER_TARGET)

View file

@ -28,6 +28,8 @@
#include "common/scummsys.h" #include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER)
/** /**
* ELF stuff: * ELF stuff:
* The contents of this file were gathered mainly from the SYSTEM V APPLICATION BINARY INTERFACE. * The contents of this file were gathered mainly from the SYSTEM V APPLICATION BINARY INTERFACE.
@ -250,5 +252,7 @@ typedef struct {
__valgp; \ __valgp; \
} }
#endif // defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER)
#endif /* BACKENDS_ELF_H */ #endif /* BACKENDS_ELF_H */

View file

@ -23,7 +23,9 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(MIPS_TARGET) #include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET)
#include "backends/plugins/elf/mips-loader.h" #include "backends/plugins/elf/mips-loader.h"
@ -331,5 +333,5 @@ void MIPSDLObject::unload() {
} }
} }
#endif /* defined(DYNAMIC_MODULES) && defined(MIPS_TARGET) */ #endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET) */

View file

@ -24,11 +24,13 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(MIPS_TARGET)
#ifndef BACKENDS_PLUGINS_MIPS_LOADER_H #ifndef BACKENDS_PLUGINS_MIPS_LOADER_H
#define BACKENDS_PLUGINS_MIPS_LOADER_H #define BACKENDS_PLUGINS_MIPS_LOADER_H
#include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET)
#include "backends/plugins/elf/elf-loader.h" #include "backends/plugins/elf/elf-loader.h"
#include "backends/plugins/elf/shorts-segment-manager.h" #include "backends/plugins/elf/shorts-segment-manager.h"
@ -51,7 +53,7 @@ public:
} }
}; };
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET) */
#endif /* BACKENDS_PLUGINS_MIPS_LOADER_H */ #endif /* BACKENDS_PLUGINS_MIPS_LOADER_H */
#endif /* defined(DYNAMIC_MODULES) && defined(MIPS_TARGET) */

View file

@ -23,7 +23,9 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(PPC_TARGET) #include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(PPC_TARGET)
#include "backends/plugins/elf/elf-loader.h" #include "backends/plugins/elf/elf-loader.h"
#include "backends/plugins/elf/ppc-loader.h" #include "backends/plugins/elf/ppc-loader.h"
@ -123,5 +125,5 @@ bool PPCDLObject::relocateRels(Elf32_Ehdr *ehdr, Elf32_Shdr *shdr) {
return true; return true;
} }
#endif /* defined(DYNAMIC_MODULES) && defined(PPC_TARGET) */ #endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(PPC_TARGET) */

View file

@ -23,11 +23,13 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(PPC_TARGET)
#ifndef BACKENDS_PLUGINS_PPC_LOADER_H #ifndef BACKENDS_PLUGINS_PPC_LOADER_H
#define BACKENDS_PLUGINS_PPC_LOADER_H #define BACKENDS_PLUGINS_PPC_LOADER_H
#include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(PPC_TARGET)
#include "backends/plugins/elf/elf-loader.h" #include "backends/plugins/elf/elf-loader.h"
class PPCDLObject : public DLObject { class PPCDLObject : public DLObject {
@ -41,7 +43,7 @@ public:
} }
}; };
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(PPC_TARGET) */
#endif /* BACKENDS_PLUGINS_PPC_LOADER_H */ #endif /* BACKENDS_PLUGINS_PPC_LOADER_H */
#endif /* defined(DYNAMIC_MODULES) && defined(PPC_TARGET) */

View file

@ -23,7 +23,9 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(MIPS_TARGET) #include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET)
#include "backends/plugins/elf/shorts-segment-manager.h" #include "backends/plugins/elf/shorts-segment-manager.h"
@ -82,5 +84,6 @@ void ShortSegmentManager::deleteSegment(ShortSegmentManager::Segment *seg) {
delete seg; delete seg;
} }
#endif /* DYNAMIC_MODULES && MIPS_TARGET */ #endif // defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET)

View file

@ -23,11 +23,13 @@
* *
*/ */
#if defined(DYNAMIC_MODULES) && defined(MIPS_TARGET)
#ifndef SHORTS_SEGMENT_MANAGER_H #ifndef SHORTS_SEGMENT_MANAGER_H
#define SHORTS_SEGMENT_MANAGER_H #define SHORTS_SEGMENT_MANAGER_H
#include "common/scummsys.h"
#if defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET)
#include "backends/plugins/elf/elf32.h" #include "backends/plugins/elf/elf32.h"
#include "common/singleton.h" #include "common/singleton.h"
@ -109,7 +111,7 @@ private:
char *_highestAddress; char *_highestAddress;
}; };
#endif // defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET)
#endif /* SHORTS_SEGMENT_MANAGER_H */ #endif /* SHORTS_SEGMENT_MANAGER_H */
#endif /* defined(DYNAMIC_MODULES) && defined(MIPS_TARGET) */

View file

@ -91,10 +91,11 @@ extern int pluginTypeVersions[PLUGIN_TYPE_MAX];
(ENABLE_##ID && (ENABLE_##ID == DYNAMIC_PLUGIN) && DYNAMIC_MODULES) (ENABLE_##ID && (ENABLE_##ID == DYNAMIC_PLUGIN) && DYNAMIC_MODULES)
// see comments in backends/plugins/elf/elf-provider.cpp // see comments in backends/plugins/elf/elf-provider.cpp
#if defined(ELF_LOADER_TARGET) && defined(ELF_LOADER_CXA_ATEXIT) #if defined(USE_ELF_LOADER) && defined(ELF_LOADER_CXA_ATEXIT)
#define PLUGIN_DYNAMIC_EXTRA_DECL uint32 __dso_handle __attribute__((visibility ("hidden"))) = 0 #define PLUGIN_DYNAMIC_DSO_HANDLE \
uint32 __dso_handle __attribute__((visibility("hidden"))) = 0;
#else #else
#define PLUGIN_DYNAMIC_EXTRA_DECL void dummyFuncToAllowTrailingSemicolon() #define PLUGIN_DYNAMIC_DSO_HANDLE
#endif #endif
/** /**
@ -126,7 +127,7 @@ extern int pluginTypeVersions[PLUGIN_TYPE_MAX];
*/ */
#define REGISTER_PLUGIN_DYNAMIC(ID,TYPE,PLUGINCLASS) \ #define REGISTER_PLUGIN_DYNAMIC(ID,TYPE,PLUGINCLASS) \
extern "C" { \ extern "C" { \
PLUGIN_DYNAMIC_EXTRA_DECL; \ PLUGIN_DYNAMIC_DSO_HANDLE \
PLUGIN_EXPORT int32 PLUGIN_getVersion() { return PLUGIN_VERSION; } \ PLUGIN_EXPORT int32 PLUGIN_getVersion() { return PLUGIN_VERSION; } \
PLUGIN_EXPORT int32 PLUGIN_getType() { return TYPE; } \ PLUGIN_EXPORT int32 PLUGIN_getType() { return TYPE; } \
PLUGIN_EXPORT int32 PLUGIN_getTypeVersion() { return TYPE##_VERSION; } \ PLUGIN_EXPORT int32 PLUGIN_getTypeVersion() { return TYPE##_VERSION; } \

92
configure vendored
View file

@ -137,6 +137,7 @@ _indeo3=auto
_enable_prof=no _enable_prof=no
_unix=no _unix=no
_global_constructors=no _global_constructors=no
_elf_loader=no
# Default vkeybd/keymapper options # Default vkeybd/keymapper options
_vkeybd=no _vkeybd=no
_keymapper=no _keymapper=no
@ -1617,7 +1618,6 @@ if test -n "$_host"; then
DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE -DSTREAM_AUDIO_FROM_DISK" DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE -DSTREAM_AUDIO_FROM_DISK"
DEFINES="$DEFINES -DDISABLE_DOSBOX_OPL -DDISABLE_SID -DDISABLE_NES_APU" DEFINES="$DEFINES -DDISABLE_DOSBOX_OPL -DDISABLE_SID -DDISABLE_NES_APU"
DEFINES="$DEFINES -DDISABLE_COMMAND_LINE" DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
DEFINES="$DEFINES -DARM_TARGET"
_need_memalign=yes _need_memalign=yes
add_line_to_config_mk 'USE_ARM_SOUND_ASM = 1' add_line_to_config_mk 'USE_ARM_SOUND_ASM = 1'
add_line_to_config_mk 'USE_ARM_SMUSH_ASM = 1' add_line_to_config_mk 'USE_ARM_SMUSH_ASM = 1'
@ -2007,20 +2007,10 @@ POST_OBJS_FLAGS := -Wl,--no-whole-archive
' '
;; ;;
ds) ds)
DEFINES="$DEFINES -DELF_LOADER_TARGET -DELF_LOADER_CXA_ATEXIT -DONE_PLUGIN_AT_A_TIME" _elf_loader=yes
_def_plugin=' DEFINES="$DEFINES -DARM_TARGET -DELF_LOADER_CXA_ATEXIT -DONE_PLUGIN_AT_A_TIME"
#define PLUGIN_PREFIX ""
#define PLUGIN_SUFFIX ".plg"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1 PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/ds/plugin.ld -mthumb-interwork -mno-fpu
PLUGIN_PREFIX :=
PLUGIN_SUFFIX := .plg
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
CXXFLAGS += -DDYNAMIC_MODULES
PLUGIN_LDFLAGS = -nostartfiles -Wl,-q,--just-symbols,$(EXECUTABLE),-T$(srcdir)/backends/plugins/ds/plugin.ld -mthumb-interwork -mno-fpu -Wl,--retain-symbols-file,$(srcdir)/backends/plugins/elf/plugin.syms
PRE_OBJS_FLAGS := -Wl,--whole-archive
POST_OBJS_FLAGS := -Wl,--no-whole-archive
' '
;; ;;
freebsd*) freebsd*)
@ -2041,20 +2031,10 @@ POST_OBJS_FLAGS := -Wl,-no-whole-archive
' '
;; ;;
gamecube | wii) gamecube | wii)
DEFINES="$DEFINES -DELF_LOADER_TARGET -DPPC_TARGET -DELF_LOADER_CXA_ATEXIT -DONE_PLUGIN_AT_A_TIME" _elf_loader=yes
_def_plugin=' DEFINES="$DEFINES -DPPC_TARGET -DELF_LOADER_CXA_ATEXIT -DONE_PLUGIN_AT_A_TIME"
#define PLUGIN_PREFIX ""
#define PLUGIN_SUFFIX ".plg"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1 PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/wii/plugin.ld
PLUGIN_PREFIX :=
PLUGIN_SUFFIX := .plg
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
CXXFLAGS += -DDYNAMIC_MODULES
PLUGIN_LDFLAGS = -nostartfiles -Wl,-q,--just-symbols,$(EXECUTABLE),-T$(srcdir)/backends/plugins/wii/plugin.ld -Wl,--retain-symbols-file,$(srcdir)/backends/plugins/elf/plugin.syms
PRE_OBJS_FLAGS := -Wl,--whole-archive
POST_OBJS_FLAGS := -Wl,--no-whole-archive
' '
;; ;;
linux*|android) linux*|android)
@ -2092,40 +2072,19 @@ POST_OBJS_FLAGS := -Wl,--export-all-symbols -Wl,--no-whole-archive -Wl,--out-im
' '
;; ;;
ps2) ps2)
DEFINES="$DEFINES -DELF_LOADER_TARGET -DMIPS_TARGET" _elf_loader=yes
_def_plugin=' DEFINES="$DEFINES -DMIPS_TARGET"
#define PLUGIN_PREFIX ""
#define PLUGIN_SUFFIX ".plg"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1 LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -T$(srcdir)/backends/plugins/ps2/main_prog.ld
PLUGIN_PREFIX := PLUGIN_LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -Wl,-T$(srcdir)/backends/plugins/ps2/plugin.ld -lstdc++ -lc
PLUGIN_SUFFIX := .plg
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
CXXFLAGS += -DDYNAMIC_MODULES
LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -T$(srcdir)/backends/plugins/ps2/main_prog.ld
PLUGIN_LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o
PLUGIN_LDFLAGS += -nostartfiles -Wl,-q,--just-symbols,$(EXECUTABLE),-T$(srcdir)/backends/plugins/ps2/plugin.ld,--retain-symbols-file,$(srcdir)/backends/plugins/elf/plugin.syms -lstdc++ -lc
PRE_OBJS_FLAGS := -Wl,--whole-archive
POST_OBJS_FLAGS := -Wl,--no-whole-archive
' '
;; ;;
psp) psp)
DEFINES="$DEFINES -DELF_LOADER_TARGET -DMIPS_TARGET -DELF_LOADER_CXA_ATEXIT" _elf_loader=yes
_def_plugin=' DEFINES="$DEFINES -DMIPS_TARGET -DELF_LOADER_CXA_ATEXIT"
#define PLUGIN_PREFIX ""
#define PLUGIN_SUFFIX ".plg"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1 LDFLAGS += -Wl,-T$(srcdir)/backends/platform/psp/main_prog.ld
PLUGIN_PREFIX := PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/psp/plugin.ld -lc -Wl,--wrap,memcpy
PLUGIN_SUFFIX := .plg
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
CXXFLAGS += -DDYNAMIC_MODULES
LDFLAGS += -Wl,-T$(srcdir)/backends/platform/psp/main_prog.ld
PLUGIN_LDFLAGS = -nostartfiles -Wl,-q,--just-symbols,$(EXECUTABLE),--retain-symbols-file,$(srcdir)/backends/plugins/elf/plugin.syms,-T$(srcdir)/backends/plugins/psp/plugin.ld -lc -Wl,--wrap,memcpy
PRE_OBJS_FLAGS := -Wl,--whole-archive
POST_OBJS_FLAGS := -Wl,--no-whole-archive
' '
;; ;;
*) *)
@ -2137,6 +2096,27 @@ POST_OBJS_FLAGS := -Wl,--no-whole-archive
echo "$_dynamic_modules" echo "$_dynamic_modules"
fi fi
#
# Check whether integrated ELF loader support is requested
#
define_in_config_if_yes "$_elf_loader" 'USE_ELF_LOADER'
if test "$_elf_loader" = yes; then
CXXFLAGS="$CXXFLAGS -DDYNAMIC_MODULES"
_def_plugin='
#define PLUGIN_PREFIX ""
#define PLUGIN_SUFFIX ".plg"
'
_mak_plugins='
DYNAMIC_MODULES := 1
PLUGIN_PREFIX :=
PLUGIN_SUFFIX := .plg
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
PLUGIN_LDFLAGS = -nostartfiles -Wl,-q,--just-symbols,$(EXECUTABLE),--retain-symbols-file,$(srcdir)/backends/plugins/elf/plugin.syms
PRE_OBJS_FLAGS := -Wl,--whole-archive
POST_OBJS_FLAGS := -Wl,--no-whole-archive
'"$_mak_plugins"
fi
# #
# Check whether integrated MT-32 emulator support is requested # Check whether integrated MT-32 emulator support is requested