Fix undefined symbols when compiling libretro core as debug build When building with `cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_LIBRETRO=1` the resulting lib has undefined symbols that cause issues when loading the core in GDB. Functionality is being ifdefed out with the define MINIMAL_CORE, but still in a few places those symbols are used. $ ldd -r mgba_libretro.so undefined symbol: GBAVideoProxyRendererCreate (./mgba_libretro.so) undefined symbol: GBAVideoProxyRendererUnshim (./mgba_libretro.so) undefined symbol: GBAVideoProxyRendererShim (./mgba_libretro.so) undefined symbol: GBVideoProxyRendererCreate (./mgba_libretro.so) undefined symbol: GBVideoProxyRendererUnshim (./mgba_libretro.so) undefined symbol: GBVideoProxyRendererShim (./mgba_libretro.so) undefined symbol: mVideoLogContextInitialState (./mgba_libretro.so) undefined symbol: mVideoLoggerAddChannel (./mgba_libretro.so) undefined symbol: mVideoLoggerAttachChannel (./mgba_libretro.so) undefined symbol: mVideoLoggerRendererCreate (./mgba_libretro.so)
Christian Fetzer fetzer.ch@gmail.com
Wed, 29 Nov 2017 20:50:04 +0100
2 files changed,
4 insertions(+),
0 deletions(-)
M
src/gb/core.c
→
src/gb/core.c
@@ -746,6 +746,7 @@ break;
} } +#ifndef MINIMAL_CORE static void _GBCoreStartVideoLog(struct mCore* core, struct mVideoLogContext* context) { struct GBCore* gbcore = (struct GBCore*) core; struct GB* gb = core->board;@@ -768,6 +769,7 @@ GBVideoProxyRendererUnshim(&gb->video, &gbcore->proxyRenderer);
free(gbcore->proxyRenderer.logger); gbcore->proxyRenderer.logger = NULL; } +#endif struct mCore* GBCoreCreate(void) { struct GBCore* gbcore = malloc(sizeof(*gbcore));
M
src/gba/core.c
→
src/gba/core.c
@@ -803,6 +803,7 @@ break;
} } +#ifndef MINIMAL_CORE static void _GBACoreStartVideoLog(struct mCore* core, struct mVideoLogContext* context) { struct GBACore* gbacore = (struct GBACore*) core; struct GBA* gba = core->board;@@ -829,6 +830,7 @@ GBAVideoProxyRendererUnshim(&gba->video, &gbacore->proxyRenderer);
free(gbacore->proxyRenderer.logger); gbacore->proxyRenderer.logger = NULL; } +#endif struct mCore* GBACoreCreate(void) { struct GBACore* gbacore = malloc(sizeof(*gbacore));