all repos — mgba @ 9cedf74b77dc0ea1341343cc285ace153ff5ed23

mGBA Game Boy Advance Emulator

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
commit

9cedf74b77dc0ea1341343cc285ace153ff5ed23

parent

8bc6e7e0b96c3bfe68b02ceba68e1a5d82fdc60e

2 files changed, 4 insertions(+), 0 deletions(-)

jump to
M src/gb/core.csrc/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.csrc/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));