git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v13 5/5] bugreport: add compiler info

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Apr 8, 2021, 22:23 UTC
Message-ID
<87k0pcifev.fsf@evledraar.gmail.com>
In-Reply-To
<20200416211807.60811-6-emilyshaffer@google.com>
On Thu, Apr 16 2020, Emily Shaffer wrote:
Show 48 quoted lines
> To help pinpoint the source of a regression, it is useful to know some
> info about the compiler which the user's Git client was built with. By
> adding a generic get_compiler_info() in 'compat/' we can choose which
> relevant information to share per compiler; to get started, let's
> demonstrate the version of glibc if the user built with 'gcc'.
>
> Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
> Helped-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
> Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
> ---
>  Documentation/git-bugreport.txt |  1 +
>  bugreport.c                     |  6 +++++
>  compat/compiler.h               | 41 +++++++++++++++++++++++++++++++++
>  3 files changed, 48 insertions(+)
>  create mode 100644 compat/compiler.h
>
> diff --git a/Documentation/git-bugreport.txt b/Documentation/git-bugreport.txt
> index 17b0d14e8d..643d1b2884 100644
> --- a/Documentation/git-bugreport.txt
> +++ b/Documentation/git-bugreport.txt
> @@ -27,6 +27,7 @@ The following information is captured automatically:
>  
>   - 'git version --build-options'
>   - uname sysname, release, version, and machine strings
> + - Compiler-specific info string
>  
>  This tool is invoked via the typical Git setup process, which means that in some
>  cases, it might not be able to launch - for example, if a relevant config file
> diff --git a/bugreport.c b/bugreport.c
> index 1a3172bcec..089b939a87 100644
> --- a/bugreport.c
> +++ b/bugreport.c
> @@ -4,6 +4,7 @@
>  #include "strbuf.h"
>  #include "time.h"
>  #include "help.h"
> +#include "compat/compiler.h"
>  
>  static void get_system_info(struct strbuf *sys_info)
>  {
> @@ -25,6 +26,11 @@ static void get_system_info(struct strbuf *sys_info)
>  			    uname_info.release,
>  			    uname_info.version,
>  			    uname_info.machine);
> +
> +	strbuf_addstr(sys_info, _("compiler info: "));
> +	get_compiler_info(sys_info);
> +	strbuf_addstr(sys_info, _("libc info: "));

These are marked with _() but not the "clang" etc. below. I'd think that for a git-bugreport tool we'd be better off without any i18n.

Show 33 quoted lines
> +	get_libc_info(sys_info);
>  }
>  
>  static const char * const bugreport_usage[] = {
> diff --git a/compat/compiler.h b/compat/compiler.h
> new file mode 100644
> index 0000000000..10dbb65937
> --- /dev/null
> +++ b/compat/compiler.h
> @@ -0,0 +1,41 @@
> +#ifndef COMPILER_H
> +#define COMPILER_H
> +
> +#include "git-compat-util.h"
> +#include "strbuf.h"
> +
> +#ifdef __GLIBC__
> +#include <gnu/libc-version.h>
> +#endif
> +
> +static inline void get_compiler_info(struct strbuf *info)
> +{
> +	int len = info->len;
> +#ifdef __clang__
> +	strbuf_addf(info, "clang: %s\n", __clang_version__);
> +#elif defined(__GNUC__)
> +	strbuf_addf(info, "gnuc: %d.%d\n", __GNUC__, __GNUC_MINOR__);
> +#endif
> +
> +#ifdef _MSC_VER
> +	strbuf_addf(info, "MSVC version: %02d.%02d.%05d\n",
> +		    _MSC_VER / 100, _MSC_VER % 100, _MSC_FULL_VER % 100000);
> +#endif

Why the ifdef/elif/ifdef instead of ifdef/elif/elif? Isn't _MSC_VER mutually exclusive with __clang__ and __GNUC__?

Previous: Emily ShafferNext: Đoàn Trần Công Danh
Message 39 of 40 in “git-bugreport with fixed VS build”
  1. 0/5 git-bugreport with fixed VS buildEmily Shaffer, Apr 16, 2020
  2. 1/5 help: move list_config_help to builtin/helpEmily Shaffer, Apr 16, 2020
  3. Junio C HamanoApr 16, 2020
  4. Junio C HamanoApr 16, 2020
  5. Emily ShafferApr 17, 2020
  6. Danh DoanApr 17, 2020
  7. Danh DoanApr 17, 2020
  8. Makefile: add missing dependencies of 'config-list.h'SZEDER Gábor, Apr 8, 2021
  9. Ævar Arnfjörð BjarmasonApr 8, 2021
  10. Jeff KingApr 8, 2021
  11. SZEDER GáborApr 9, 2021
  12. Junio C HamanoApr 16, 2021
  13. SZEDER GáborApr 16, 2021
  14. Junio C HamanoApr 16, 2021
  15. Ævar Arnfjörð BjarmasonApr 13, 2021
  16. 2/5 bugreport: add tool to generate debugging infoEmily Shaffer, Apr 16, 2020
  17. SZEDER GáborAug 12, 2020
  18. SZEDER GáborApr 8, 2021
  19. 4/5 bugreport: add uname infoEmily Shaffer, Apr 16, 2020
  20. Ævar Arnfjörð BjarmasonApr 8, 2021
  21. Junio C HamanoApr 8, 2021
  22. Ævar Arnfjörð BjarmasonApr 8, 2021
  23. Emily ShafferApr 8, 2021
  24. Junio C HamanoApr 8, 2021
  25. SZEDER GáborApr 9, 2021
  26. t0091-bugreport.sh: actually verify some content of reportMartin Ågren, Apr 11, 2021
  27. Junio C HamanoApr 12, 2021
  28. Martin ÅgrenApr 13, 2021
  29. Ævar Arnfjörð BjarmasonApr 13, 2021
  30. Emily ShafferApr 13, 2021
  31. t0091-bugreport.sh: actually verify some content of reportMartin Ågren, Jul 1, 2023
  32. Phillip WoodJul 3, 2023
  33. Martin ÅgrenJul 5, 2023
  34. t0091-bugreport.sh: actually verify some content of reportMartin Ågren, Jul 5, 2023
  35. Phillip WoodJul 5, 2023
  36. SZEDER GáborApr 13, 2021
  37. 3/5 bugreport: gather git version and build infoEmily Shaffer, Apr 16, 2020
  38. 5/5 bugreport: add compiler infoEmily Shaffer, Apr 16, 2020
  39. Ævar Arnfjörð BjarmasonApr 8, 2021
  40. Đoàn Trần Công DanhApr 8, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.