From 5682f4cc041d1b53448739f8656ed6fd120e7dbe Mon Sep 17 00:00:00 2001 From: Matthew Leeds Date: Fri, 4 Aug 2017 13:18:40 -0700 Subject: [PATCH] main: Fix subcommand usage output This commit sets prgname correctly so that the "ostree subcommand --help" output prints the subcommand rather than just "ostree". This was removed in commit f0519e541f29 because it tripped the thread sanitizer, but it's being added back conditionally so most users who don't compile with -fsanitize=adress see proper help output. Closes: #1054 Approved by: cgwalters --- configure.ac | 13 +++++++++++++ src/ostree/ot-main.c | 8 ++++++++ 2 files changed, 21 insertions(+) diff --git a/configure.ac b/configure.ac index 58689cc0..228ee84b 100644 --- a/configure.ac +++ b/configure.ac @@ -58,6 +58,19 @@ else AC_MSG_RESULT([no]) fi AM_CONDITIONAL(BUILDOPT_ASAN, [test x$using_asan = xyes]) +AM_COND_IF([BUILDOPT_ASAN], + [AC_DEFINE([BUILDOPT_ASAN], 1, [Define if we are building with -fsanitize=address])]) + +AC_MSG_CHECKING([for -fsanitize=thread in CFLAGS]) +if echo $CFLAGS | grep -q -e -fsanitize=thread; then + AC_MSG_RESULT([yes]) + using_tsan=yes +else + AC_MSG_RESULT([no]) +fi +AM_CONDITIONAL(BUILDOPT_TSAN, [test x$using_tsan = xyes]) +AM_COND_IF([BUILDOPT_TSAN], + [AC_DEFINE([BUILDOPT_TSAN], 1, [Define if we are building with -fsanitize=thread])]) # Initialize libtool LT_PREREQ([2.2.4]) diff --git a/src/ostree/ot-main.c b/src/ostree/ot-main.c index 56d247b4..5b6e301d 100644 --- a/src/ostree/ot-main.c +++ b/src/ostree/ot-main.c @@ -117,6 +117,9 @@ ostree_run (int argc, OstreeCommand *command; GError *error = NULL; GCancellable *cancellable = NULL; +#ifndef BUILDOPT_TSAN + g_autofree char *prgname = NULL; +#endif const char *command_name = NULL; gboolean success = FALSE; int in, out; @@ -192,6 +195,11 @@ ostree_run (int argc, goto out; } +#ifndef BUILDOPT_TSAN + prgname = g_strdup_printf ("%s %s", g_get_prgname (), command_name); + g_set_prgname (prgname); +#endif + if (!command->fn (argc, argv, cancellable, &error)) goto out;