Hi Emily, On Thu, 13 Feb 2020, Emily Shaffer wrote: > 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'. I agree with the need for the compiler information, but in the patch I only see information about glibc being printed out. Shouldn't we use `__GNUC__` and `__GNUC_MINOR__` here? Don't get me wrong, the glibc version is good and all, but the compiler information might be even more crucial. Git for Windows had to hold back compiling with GCC v8.x for a while, for example, because the stacksmasher was broken. Similar issues are not unheard of, and could help pinpoint compiler-related problems a lot quicker. Thanks, Dscho > > Signed-off-by: Emily Shaffer <emilyshaffer@xxxxxxxxxx> > --- > Documentation/git-bugreport.txt | 1 + > bugreport.c | 5 +++++ > compat/compiler.h | 24 ++++++++++++++++++++++++ > 3 files changed, 30 insertions(+) > create mode 100644 compat/compiler.h > > diff --git a/Documentation/git-bugreport.txt b/Documentation/git-bugreport.txt > index 4dd72c60f5..8bbc4c960c 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 > > OPTIONS > ------- > diff --git a/bugreport.c b/bugreport.c > index b76a1dfb2a..4f9101caeb 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) > { > @@ -24,6 +25,10 @@ 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_complete_line(sys_info); > } > > static const char * const bugreport_usage[] = { > diff --git a/compat/compiler.h b/compat/compiler.h > new file mode 100644 > index 0000000000..bda5098e1b > --- /dev/null > +++ b/compat/compiler.h > @@ -0,0 +1,24 @@ > +#ifndef COMPILER_H > +#define COMPILER_H > + > +#include "git-compat-util.h" > +#include "strbuf.h" > + > +#ifdef __GLIBC__ > +#include <gnu/libc-version.h> > + > +static inline void get_compiler_info(struct strbuf *info) > +{ > + strbuf_addf(info, "glibc: %s", gnu_get_libc_version()); > +} > + > +#else > + > +static inline void get_compiler_info(struct strbuf *info) > +{ > + strbuf_addstr(info, "get_compiler_info() not implemented"); > +} > + > +#endif > + > +#endif /* COMPILER_H */ > -- > 2.25.0.265.gbab2e86ba0-goog > >