|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] lib: drop (replace) debug_build()
On 23/12/2020 16:05, Jan Beulich wrote:
> Its expansion shouldn't be tied to NDEBUG - down the road we may want to
> allow enabling assertions independently of CONFIG_DEBUG. Replace the few
> uses by a new xen_build_info() helper, subsuming gcov_string at the same
> time (while replacing the stale CONFIG_GCOV used there) and also adding
> CONFIG_UBSAN indication.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, although...
> ---
> v2: Introduce xen_build_info() including also gcov and ubsan info.
>
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -175,14 +175,14 @@ static void print_xen_info(void)
> {
> char taint_str[TAINT_STRING_MAX_LEN];
>
> - printk("----[ Xen-%d.%d%s %s debug=%c " gcov_string " %s ]----\n",
> + printk("----[ Xen-%d.%d%s %s %s %s ]----\n",
> xen_major_version(), xen_minor_version(), xen_extra_version(),
> #ifdef CONFIG_ARM_32
> "arm32",
> #else
> "arm64",
> #endif
> - debug_build() ? 'y' : 'n', print_tainted(taint_str));
> + xen_build_info(), print_tainted(taint_str));
> }
>
> #ifdef CONFIG_ARM_32
> --- a/xen/arch/x86/x86_64/traps.c
> +++ b/xen/arch/x86/x86_64/traps.c
> @@ -29,9 +29,9 @@ static void print_xen_info(void)
> {
> char taint_str[TAINT_STRING_MAX_LEN];
>
> - printk("----[ Xen-%d.%d%s x86_64 debug=%c " gcov_string " %s ]----\n",
> + printk("----[ Xen-%d.%d%s x86_64 %s %s ]----\n",
> xen_major_version(), xen_minor_version(), xen_extra_version(),
> - debug_build() ? 'y' : 'n', print_tainted(taint_str));
> + xen_build_info(), print_tainted(taint_str));
> }
>
> enum context { CTXT_hypervisor, CTXT_pv_guest, CTXT_hvm_guest };
> --- a/xen/common/version.c
> +++ b/xen/common/version.c
> @@ -70,6 +70,30 @@ const char *xen_deny(void)
> return "<denied>";
> }
>
> +static const char build_info[] =
> + "debug="
> +#ifdef CONFIG_DEBUG
> + "y"
> +#else
> + "n"
> +#endif
> +#ifdef CONFIG_COVERAGE
> +# ifdef __clang__
> + " llvmcov=y"
> +# else
> + " gcov=y"
> +# endif
> +#endif
> +#ifdef CONFIG_UBSAN
> + " ubsan=y"
> +#endif
> + "";
> +
> +const char *xen_build_info(void)
> +{
> + return build_info;
> +}
... do we really need a function here?
Wouldn't an extern const char build_info[] do?
~Andrew
> +
> static const void *build_id_p __read_mostly;
> static unsigned int build_id_len __read_mostly;
>
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -1002,10 +1002,10 @@ void __init console_init_preirq(void)
> spin_lock(&console_lock);
> __putstr(xen_banner());
> spin_unlock(&console_lock);
> - printk("Xen version %d.%d%s (%s@%s) (%s) debug=%c " gcov_string " %s\n",
> + printk("Xen version %d.%d%s (%s@%s) (%s) %s %s\n",
> xen_major_version(), xen_minor_version(), xen_extra_version(),
> - xen_compile_by(), xen_compile_domain(),
> - xen_compiler(), debug_build() ? 'y' : 'n', xen_compile_date());
> + xen_compile_by(), xen_compile_domain(), xen_compiler(),
> + xen_build_info(), xen_compile_date());
> printk("Latest ChangeSet: %s\n", xen_changeset());
>
> /* Locate and print the buildid, if applicable. */
> --- a/xen/include/xen/lib.h
> +++ b/xen/include/xen/lib.h
> @@ -48,21 +48,13 @@
> #define BUILD_BUG_ON(cond) ((void)BUILD_BUG_ON_ZERO(cond))
> #endif
>
> -#ifdef CONFIG_GCOV
> -#define gcov_string "gcov=y"
> -#else
> -#define gcov_string ""
> -#endif
> -
> #ifndef NDEBUG
> #define ASSERT(p) \
> do { if ( unlikely(!(p)) ) assert_failed(#p); } while (0)
> #define ASSERT_UNREACHABLE() assert_failed("unreachable")
> -#define debug_build() 1
> #else
> #define ASSERT(p) do { if ( 0 && (p) ) {} } while (0)
> #define ASSERT_UNREACHABLE() do { } while (0)
> -#define debug_build() 0
> #endif
>
> #define ABS(_x) ({ \
> --- a/xen/include/xen/version.h
> +++ b/xen/include/xen/version.h
> @@ -16,6 +16,7 @@ const char *xen_extra_version(void);
> const char *xen_changeset(void);
> const char *xen_banner(void);
> const char *xen_deny(void);
> +const char *xen_build_info(void);
> int xen_build_id(const void **p, unsigned int *len);
>
> #ifdef BUILD_ID
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |