mirror of https://github.com/mgba-emu/mgba.git
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 defines MINIMAL_CORE and DISABLE_THREADING, but some symbols are still used in a few places. $ 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) undefined symbol: mCoreThreadMarkCrashed (./mgba_libretro.so)
This commit is contained in:
parent
4d2675e3e8
commit
db408920ca
|
@ -625,7 +625,9 @@ static void _mCoreLog(struct mLogger* logger, int category, enum mLogLevel level
|
||||||
printf("\n");
|
printf("\n");
|
||||||
struct mCoreThread* thread = mCoreThreadGet();
|
struct mCoreThread* thread = mCoreThreadGet();
|
||||||
if (thread && level == mLOG_FATAL) {
|
if (thread && level == mLOG_FATAL) {
|
||||||
|
#ifndef DISABLE_THREADING
|
||||||
mCoreThreadMarkCrashed(thread);
|
mCoreThreadMarkCrashed(thread);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -812,6 +812,7 @@ static void _GBCoreEnableAudioChannel(struct mCore* core, size_t id, bool enable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef MINIMAL_CORE
|
||||||
static void _GBCoreStartVideoLog(struct mCore* core, struct mVideoLogContext* context) {
|
static void _GBCoreStartVideoLog(struct mCore* core, struct mVideoLogContext* context) {
|
||||||
struct GBCore* gbcore = (struct GBCore*) core;
|
struct GBCore* gbcore = (struct GBCore*) core;
|
||||||
struct GB* gb = core->board;
|
struct GB* gb = core->board;
|
||||||
|
@ -834,6 +835,7 @@ static void _GBCoreEndVideoLog(struct mCore* core) {
|
||||||
free(gbcore->proxyRenderer.logger);
|
free(gbcore->proxyRenderer.logger);
|
||||||
gbcore->proxyRenderer.logger = NULL;
|
gbcore->proxyRenderer.logger = NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
struct mCore* GBCoreCreate(void) {
|
struct mCore* GBCoreCreate(void) {
|
||||||
struct GBCore* gbcore = malloc(sizeof(*gbcore));
|
struct GBCore* gbcore = malloc(sizeof(*gbcore));
|
||||||
|
|
|
@ -825,6 +825,7 @@ static void _GBACoreEnableAudioChannel(struct mCore* core, size_t id, bool enabl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef MINIMAL_CORE
|
||||||
static void _GBACoreStartVideoLog(struct mCore* core, struct mVideoLogContext* context) {
|
static void _GBACoreStartVideoLog(struct mCore* core, struct mVideoLogContext* context) {
|
||||||
struct GBACore* gbacore = (struct GBACore*) core;
|
struct GBACore* gbacore = (struct GBACore*) core;
|
||||||
struct GBA* gba = core->board;
|
struct GBA* gba = core->board;
|
||||||
|
@ -851,6 +852,7 @@ static void _GBACoreEndVideoLog(struct mCore* core) {
|
||||||
free(gbacore->proxyRenderer.logger);
|
free(gbacore->proxyRenderer.logger);
|
||||||
gbacore->proxyRenderer.logger = NULL;
|
gbacore->proxyRenderer.logger = NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
struct mCore* GBACoreCreate(void) {
|
struct mCore* GBACoreCreate(void) {
|
||||||
struct GBACore* gbacore = malloc(sizeof(*gbacore));
|
struct GBACore* gbacore = malloc(sizeof(*gbacore));
|
||||||
|
|
Loading…
Reference in New Issue