projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Introduce build/env/argument override for 32-bit compat consumer
[lttng-tools.git]
/
lttng-sessiond
/
main.c
diff --git
a/lttng-sessiond/main.c
b/lttng-sessiond/main.c
index 3651e6c3e55ed997a4ee4c93f16cf75d9240a8d2..d0c1d406863c471cadfb948f43380c9acc62128b 100644
(file)
--- a/
lttng-sessiond/main.c
+++ b/
lttng-sessiond/main.c
@@
-159,6
+159,24
@@
static struct ltt_session_list *session_list_ptr;
int ust_consumer_fd;
int ust_consumer_fd;
+static const char *compat32_consumer_bindir =
+ __stringify(CONFIG_COMPAT_BIN_DIR);
+static const char *compat32_consumer_prog = "lttng-consumerd";
+
+static
+void setup_compat32_consumer(void)
+{
+ const char *bindir;
+
+ /*
+ * runtime env. var. overrides the build default.
+ */
+ bindir = getenv("LTTNG_TOOLS_COMPAT_BIN_DIR");
+ if (bindir) {
+ compat32_consumer_bindir = bindir;
+ }
+}
+
/*
* Create a poll set with O_CLOEXEC and add the thread quit pipe to the set.
*/
/*
* Create a poll set with O_CLOEXEC and add the thread quit pipe to the set.
*/
@@
-1060,9
+1078,10
@@
static void *thread_manage_apps(void *data)
/* Register applicaton to the session daemon */
ret = ust_app_register(&ust_cmd.reg_msg,
ust_cmd.sock);
/* Register applicaton to the session daemon */
ret = ust_app_register(&ust_cmd.reg_msg,
ust_cmd.sock);
- if (ret < 0) {
- /* Only critical ENOMEM error can be returned here */
+ if (ret == -ENOMEM) {
goto error;
goto error;
+ } else if (ret < 0) {
+ break;
}
/*
}
/*
@@
-2822,14
+2841,14
@@
static ssize_t cmd_list_channels(int domain, struct ltt_session *session,
if (session->kernel_session != NULL) {
nb_chan = session->kernel_session->channel_count;
}
if (session->kernel_session != NULL) {
nb_chan = session->kernel_session->channel_count;
}
- DBG3("Number of kernel channels %
l
d", nb_chan);
+ DBG3("Number of kernel channels %
z
d", nb_chan);
break;
case LTTNG_DOMAIN_UST:
if (session->ust_session != NULL) {
nb_chan = hashtable_get_count(
session->ust_session->domain_global.channels);
}
break;
case LTTNG_DOMAIN_UST:
if (session->ust_session != NULL) {
nb_chan = hashtable_get_count(
session->ust_session->domain_global.channels);
}
- DBG3("Number of UST global channels %
l
d", nb_chan);
+ DBG3("Number of UST global channels %
z
d", nb_chan);
break;
default:
*channels = NULL;
break;
default:
*channels = NULL;
@@
-3440,6
+3459,7
@@
static void usage(void)
fprintf(stderr, " --kconsumerd-cmd-sock PATH Specify path for the kernel consumer command socket\n");
fprintf(stderr, " --ustconsumerd-err-sock PATH Specify path for the UST consumer error socket\n");
fprintf(stderr, " --ustconsumerd-cmd-sock PATH Specify path for the UST consumer command socket\n");
fprintf(stderr, " --kconsumerd-cmd-sock PATH Specify path for the kernel consumer command socket\n");
fprintf(stderr, " --ustconsumerd-err-sock PATH Specify path for the UST consumer error socket\n");
fprintf(stderr, " --ustconsumerd-cmd-sock PATH Specify path for the UST consumer command socket\n");
+ fprintf(stderr, " --ustconsumerd-compat32 PATH Specify path for the 32-bit UST consumer daemon binary\n");
fprintf(stderr, " -d, --daemonize Start as a daemon.\n");
fprintf(stderr, " -g, --group NAME Specify the tracing group name. (default: tracing)\n");
fprintf(stderr, " -V, --version Show version number.\n");
fprintf(stderr, " -d, --daemonize Start as a daemon.\n");
fprintf(stderr, " -g, --group NAME Specify the tracing group name. (default: tracing)\n");
fprintf(stderr, " -V, --version Show version number.\n");
@@
-3463,6
+3483,7
@@
static int parse_args(int argc, char **argv)
{ "kconsumerd-err-sock", 1, 0, 'E' },
{ "ustconsumerd-cmd-sock", 1, 0, 'D' },
{ "ustconsumerd-err-sock", 1, 0, 'F' },
{ "kconsumerd-err-sock", 1, 0, 'E' },
{ "ustconsumerd-cmd-sock", 1, 0, 'D' },
{ "ustconsumerd-err-sock", 1, 0, 'F' },
+ { "ustconsumerd-compat32", 1, 0, 'u' },
{ "daemonize", 0, 0, 'd' },
{ "sig-parent", 0, 0, 'S' },
{ "help", 0, 0, 'h' },
{ "daemonize", 0, 0, 'd' },
{ "sig-parent", 0, 0, 'S' },
{ "help", 0, 0, 'h' },
@@
-3476,7
+3497,7
@@
static int parse_args(int argc, char **argv)
while (1) {
int option_index = 0;
while (1) {
int option_index = 0;
- c = getopt_long(argc, argv, "dhqvVS" "a:c:g:s:C:E:D:F:Z",
+ c = getopt_long(argc, argv, "dhqvVS" "a:c:g:s:C:E:D:F:Z
:u
",
long_options, &option_index);
if (c == -1) {
break;
long_options, &option_index);
if (c == -1) {
break;
@@
-3499,7
+3520,7
@@
static int parse_args(int argc, char **argv)
opt_daemon = 1;
break;
case 'g':
opt_daemon = 1;
break;
case 'g':
- opt_tracing_group =
strdup(optarg)
;
+ opt_tracing_group =
optarg
;
break;
case 'h':
usage();
break;
case 'h':
usage();
@@
-3532,6
+3553,9
@@
static int parse_args(int argc, char **argv)
case 'Z':
opt_verbose_consumer += 1;
break;
case 'Z':
opt_verbose_consumer += 1;
break;
+ case 'u':
+ compat32_consumer_bindir = optarg;
+ break;
default:
/* Unknown option or other error.
* Error is printed by getopt, just return */
default:
/* Unknown option or other error.
* Error is printed by getopt, just return */
@@
-3858,6
+3882,8
@@
int main(int argc, char **argv)
goto error;
}
goto error;
}
+ setup_compat32_consumer();
+
/* Parse arguments */
progname = argv[0];
if ((ret = parse_args(argc, argv) < 0)) {
/* Parse arguments */
progname = argv[0];
if ((ret = parse_args(argc, argv) < 0)) {
This page took
0.024444 seconds
and
4
git commands to generate.