From: Adric Norris <landstander...@gmail.com>

When asking for bug reports to include the output of `git version
--build-options`, the idea is that we get a better idea of the
environment where said bug occurs. In this context, it is useful to
distinguish between 32 and 64-bit builds.

We start by distinguishing between x86 and x86_64 (hoping that
interested parties will extend this to other architectures in the
future).  In addition, all 32-bit variants (i686, i586, etc.) are
collapsed into `x86'. An example of the output is:

   $ git version --build-options
   git version 2.9.3.windows.2.826.g06c0f2f
   sizeof-long: 4
   machine: x86_64

The label of `machine' was chosen so the new information will approximate
the output of `uname -m'.

Signed-off-by: Adric Norris <landstander...@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schinde...@gmx.de>
---
 help.c |  2 ++
 help.h | 13 +++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/help.c b/help.c
index 88a3aeaeb9f..df1332fa3c9 100644
--- a/help.c
+++ b/help.c
@@ -390,6 +390,7 @@ const char *help_unknown_cmd(const char *cmd)
 
 int cmd_version(int argc, const char **argv, const char *prefix)
 {
+       static char build_platform[] = GIT_BUILD_PLATFORM;
        int build_options = 0;
        const char * const usage[] = {
                N_("git version [<options>]"),
@@ -413,6 +414,7 @@ int cmd_version(int argc, const char **argv, const char 
*prefix)
 
        if (build_options) {
                printf("sizeof-long: %d\n", (int)sizeof(long));
+               printf("machine: %s\n", build_platform);
                /* NEEDSWORK: also save and output GIT-BUILD_OPTIONS? */
        }
        return 0;
diff --git a/help.h b/help.h
index b21d7c94e8c..42dd9852194 100644
--- a/help.h
+++ b/help.h
@@ -33,3 +33,16 @@ extern void list_commands(unsigned int colopts, struct 
cmdnames *main_cmds, stru
  */
 extern void help_unknown_ref(const char *ref, const char *cmd, const char 
*error);
 #endif /* HELP_H */
+
+/*
+ * identify build platform
+ */
+#ifndef GIT_BUILD_PLATFORM
+       #if defined __x86__ || defined __i386__ || defined __i586__ || defined 
__i686__
+               #define GIT_BUILD_PLATFORM "x86"
+       #elif defined __x86_64__
+               #define GIT_BUILD_PLATFORM "x86_64"
+       #else
+               #define GIT_BUILD_PLATFORM "unknown"
+       #endif
+#endif
-- 
2.15.1.windows.2


Reply via email to