From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Subject: [PATCH 03/13] oslib-posix: default exec_dir to bindir
Date: Tue, 1 Sep 2020 02:20:10 -0400 [thread overview]
Message-ID: <20200901062020.26660-4-pbonzini@redhat.com> (raw)
In-Reply-To: <20200901062020.26660-1-pbonzini@redhat.com>
If the exec_dir cannot be retrieved, just assume it's the installation
directory that was specified at configure time. This makes it simpler
to reason about what the callers will do if they get back an empty
path.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 2 +-
util/oslib-posix.c | 23 ++++++++---------------
util/oslib-win32.c | 2 ++
3 files changed, 11 insertions(+), 16 deletions(-)
diff --git a/meson.build b/meson.build
index 93182d36e3..10ab189bc5 100644
--- a/meson.build
+++ b/meson.build
@@ -415,7 +415,7 @@ config_host_data.set('QEMU_VERSION_MINOR', meson.project_version().split('.')[1]
config_host_data.set('QEMU_VERSION_MICRO', meson.project_version().split('.')[2])
arrays = ['CONFIG_AUDIO_DRIVERS', 'CONFIG_BDRV_RW_WHITELIST', 'CONFIG_BDRV_RO_WHITELIST']
-strings = ['HOST_DSOSUF', 'CONFIG_IASL', 'qemu_confdir', 'qemu_datadir',
+strings = ['HOST_DSOSUF', 'CONFIG_IASL', 'bindir', 'qemu_confdir', 'qemu_datadir',
'qemu_moddir', 'qemu_localstatedir', 'qemu_helperdir', 'qemu_localedir',
'qemu_icondir', 'qemu_desktopdir', 'qemu_firmwarepath']
foreach k, v: config_host
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index 0dd8d24076..a68fccb52d 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -358,15 +358,14 @@ void qemu_set_tty_echo(int fd, bool echo)
tcsetattr(fd, TCSANOW, &tty);
}
-static char exec_dir[PATH_MAX];
+static char *exec_dir;
void qemu_init_exec_dir(const char *argv0)
{
- char *dir;
char *p = NULL;
char buf[PATH_MAX];
- if (exec_dir[0]) {
+ if (exec_dir) {
return;
}
@@ -425,20 +424,14 @@ void qemu_init_exec_dir(const char *argv0)
#endif
/* If we don't have any way of figuring out the actual executable
location then try argv[0]. */
- if (!p) {
- if (!argv0) {
- return;
- }
+ if (!p && argv0) {
p = realpath(argv0, buf);
- if (!p) {
- return;
- }
}
- dir = g_path_get_dirname(p);
-
- pstrcpy(exec_dir, sizeof(exec_dir), dir);
-
- g_free(dir);
+ if (p) {
+ exec_dir = g_path_get_dirname(p);
+ } else {
+ exec_dir = g_strdup(CONFIG_BINDIR);
+ }
}
const char *qemu_get_exec_dir(void)
diff --git a/util/oslib-win32.c b/util/oslib-win32.c
index 1a33912944..8d3f940a54 100644
--- a/util/oslib-win32.c
+++ b/util/oslib-win32.c
@@ -341,6 +341,8 @@ void qemu_init_exec_dir(const char *argv0)
*p = 0;
if (access(buf, R_OK) == 0) {
exec_dir = g_strdup(buf);
+ } else {
+ exec_dir = g_strdup(CONFIG_BINDIR);
}
}
--
2.26.2
next prev parent reply other threads:[~2020-09-01 6:22 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-01 6:20 [PATCH 00/13] Make QEMU installation relocatable Paolo Bonzini
2020-09-01 6:20 ` [PATCH 01/13] fuzz: use qemu_get_exec_dir Paolo Bonzini
2020-09-01 9:18 ` Thomas Huth
2020-09-01 14:36 ` Alexander Bulekov
2020-09-01 6:20 ` [PATCH 02/13] oslib: do not call g_strdup from qemu_get_exec_dir Paolo Bonzini
2020-09-02 10:30 ` Thomas Huth
2020-09-01 6:20 ` Paolo Bonzini [this message]
2020-09-01 18:04 ` [PATCH 03/13] oslib-posix: default exec_dir to bindir Richard Henderson
2020-09-01 18:40 ` Paolo Bonzini
2020-09-01 6:20 ` [PATCH 04/13] cutils: introduce get_relocated_path Paolo Bonzini
2020-09-01 6:20 ` [PATCH 05/13] oslib-posix: relocate path to /var Paolo Bonzini
2020-09-02 8:20 ` Philippe Mathieu-Daudé
2020-09-01 6:20 ` [PATCH 06/13] module: relocate path to modules Paolo Bonzini
2020-09-01 6:20 ` [PATCH 07/13] net: relocate paths to helpers and scripts Paolo Bonzini
2020-09-02 8:24 ` Philippe Mathieu-Daudé
2020-09-02 8:40 ` Paolo Bonzini
2020-09-01 6:20 ` [PATCH 08/13] vl: relocate paths to data directories Paolo Bonzini
2020-09-02 8:28 ` Philippe Mathieu-Daudé
2020-09-02 8:35 ` Paolo Bonzini
2020-09-02 8:41 ` Philippe Mathieu-Daudé
2020-09-01 6:20 ` [PATCH 09/13] vl: relocate path to configuration file Paolo Bonzini
2020-09-02 8:28 ` Philippe Mathieu-Daudé
2020-09-01 6:20 ` [PATCH 10/13] qemu-bridge-helper: relocate path to default ACL Paolo Bonzini
2020-09-01 6:20 ` [PATCH 11/13] qga: relocate path to default configuration and hook Paolo Bonzini
2020-09-01 6:20 ` [PATCH 12/13] ui: relocate paths to icons and translations Paolo Bonzini
2020-09-02 8:29 ` Philippe Mathieu-Daudé
2020-09-01 6:20 ` [PATCH 13/13] configure: use a platform-neutral prefix Paolo Bonzini
2020-09-01 21:14 ` [PATCH 00/13] Make QEMU installation relocatable Mark Cave-Ayland
2020-09-01 21:22 ` Paolo Bonzini
2020-09-02 6:09 ` Mark Cave-Ayland
2020-09-02 6:42 ` Paolo Bonzini
2020-09-02 11:42 ` Mark Cave-Ayland
2020-09-02 11:45 ` Mark Cave-Ayland
2020-09-02 12:16 ` Paolo Bonzini
2020-09-02 18:45 ` Mark Cave-Ayland
2020-09-02 20:20 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200901062020.26660-4-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).