summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/qemu/find_datadir.patch
blob: 9a4c11267a5e01c994535bad11ca946d0211c867 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
qemu: search for datadir as in version 4.2

os_find_datadir() was changed after the 4.2 release.  We need to check for
../share/qemu relative to the executable because that is where the runqemu
configuration assumes it will be.

Upstream-Status: Submitted [qemu-devel@nongnu.org]

Signed-off-by: Joe Slater <joe.slater@windriver.com>


Index: qemu-5.1.0/os-posix.c
===================================================================
--- qemu-5.1.0.orig/os-posix.c
+++ qemu-5.1.0/os-posix.c
@@ -82,8 +82,9 @@ void os_setup_signal_handling(void)
 
 /*
  * Find a likely location for support files using the location of the binary.
+ * Typically, this would be "$bindir/../share/qemu".
  * When running from the build tree this will be "$bindir/../pc-bios".
- * Otherwise, this is CONFIG_QEMU_DATADIR.
+ * Otherwise, this is CONFIG_QEMU_DATADIR as constructed by configure.
  *
  * The caller must use g_free() to free the returned data when it is
  * no longer required.
@@ -96,6 +97,12 @@ char *os_find_datadir(void)
     exec_dir = qemu_get_exec_dir();
     g_return_val_if_fail(exec_dir != NULL, NULL);
 
+    dir = g_build_filename(exec_dir, "..", "share", "qemu", NULL);
+    if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
+        return g_steal_pointer(&dir);
+    }
+    g_free(dir);  /* no autofree this time */
+
     dir = g_build_filename(exec_dir, "..", "pc-bios", NULL);
     if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
         return g_steal_pointer(&dir);