lightrec: Set program name to /proc/self/exe on Linux
authorPaul Cercueil <paul@crapouillou.net>
Tue, 11 Jun 2024 08:36:01 +0000 (10:36 +0200)
committerPaul Cercueil <paul@crapouillou.net>
Tue, 11 Jun 2024 08:37:32 +0000 (10:37 +0200)
On Linux, /proc/self/exe is a virtual link to the ELF program being
executed. Use this instead of hardcoding "retroarch.exe".

This is used when compiling Lightrec with disassembler support.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
libpcsxcore/lightrec/plugin.c

index 200ce81..7f500fd 100644 (file)
 #      define unlikely(x)     (x)
 #endif
 
+#ifndef LIGHTREC_PROG_NAME
+#  ifdef __linux__
+#    define LIGHTREC_PROG_NAME "/proc/self/exe"
+#  else
+#    define LIGHTREC_PROG_NAME "retroarch.exe"
+#  endif
+#endif
+
 psxRegisters psxRegs;
 Rcnt rcnts[4];
 
@@ -60,8 +68,6 @@ void* code_buffer;
 
 static struct lightrec_state *lightrec_state;
 
-static char *name = "retroarch.exe";
-
 static bool use_lightrec_interpreter;
 static bool use_pcsx_interpreter;
 static bool block_stepping;
@@ -458,7 +464,7 @@ static int lightrec_plugin_init(void)
 
        use_lightrec_interpreter = !!getenv("LIGHTREC_INTERPRETER");
 
-       lightrec_state = lightrec_init(name,
+       lightrec_state = lightrec_init(LIGHTREC_PROG_NAME,
                        lightrec_map, ARRAY_SIZE(lightrec_map),
                        &lightrec_ops);