You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2017/02/04 17:37:24 UTC

[5/9] lucy-charmonizer git commit: Don't run 64-bit format string probe under C99

Don't run 64-bit format string probe under C99

Feature tests for format strings can't be compile-only but require
execution of a test program which breaks when cross-compiling. But if
C99's inttypes.h is available, there's no need for a probe at all.


Project: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/commit/bf016446
Tree: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/tree/bf016446
Diff: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/diff/bf016446

Branch: refs/heads/master
Commit: bf0164464849fa7872d0805fba617e78299dc6d3
Parents: 7740918
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Fri Feb 3 17:56:07 2017 +0100
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sat Feb 4 18:10:18 2017 +0100

----------------------------------------------------------------------
 src/Charmonizer/Probe/Integers.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/blob/bf016446/src/Charmonizer/Probe/Integers.c
----------------------------------------------------------------------
diff --git a/src/Charmonizer/Probe/Integers.c b/src/Charmonizer/Probe/Integers.c
index 6ae12a0..885dd59 100644
--- a/src/Charmonizer/Probe/Integers.c
+++ b/src/Charmonizer/Probe/Integers.c
@@ -174,7 +174,7 @@ chaz_Integers_run(void) {
     }
 
     /* Probe for 64-bit printf format string modifier. */
-    if (has_64) {
+    if (!has_inttypes && has_64) {
         int i;
         const char *options[] = {
             "ll",
@@ -503,7 +503,7 @@ chaz_Integers_run(void) {
         chaz_ConfWriter_add_sys_include("inttypes.h");
     }
 
-    {
+    if (!has_inttypes || !has_intptr_t) {
         /* We support only the following subset of inttypes.h
          *   PRId32
          *   PRIi32
@@ -540,10 +540,9 @@ chaz_Integers_run(void) {
             int c = ptr[0];
 
             if (has_32) {
-                sprintf(scratch, "\"%s%c\"", printf_modifier_32, c);
-
+                macro_name_32[3] = c;
                 if (!has_inttypes) {
-                    macro_name_32[3] = c;
+                    sprintf(scratch, "\"%s%c\"", printf_modifier_32, c);
                     chaz_ConfWriter_add_global_def(macro_name_32, scratch);
                     if (!has_64) {
                         macro_name_max[3] = c;
@@ -553,21 +552,22 @@ chaz_Integers_run(void) {
                 }
                 if (!has_intptr_t && sizeof_ptr == 4) {
                     macro_name_ptr[3] = c;
-                    chaz_ConfWriter_add_global_def(macro_name_ptr, scratch);
+                    chaz_ConfWriter_add_global_def(macro_name_ptr,
+                                                   macro_name_32);
                 }
             }
             if (has_64) {
-                sprintf(scratch, "\"%s%c\"", printf_modifier_64, c);
-
+                macro_name_64[3] = c;
                 if (!has_inttypes) {
-                    macro_name_64[3] = c;
+                    sprintf(scratch, "\"%s%c\"", printf_modifier_64, c);
                     chaz_ConfWriter_add_global_def(macro_name_64, scratch);
                     macro_name_max[3] = c;
                     chaz_ConfWriter_add_global_def(macro_name_max, scratch);
                 }
                 if (!has_intptr_t && sizeof_ptr == 8) {
                     macro_name_ptr[3] = c;
-                    chaz_ConfWriter_add_global_def(macro_name_ptr, scratch);
+                    chaz_ConfWriter_add_global_def(macro_name_ptr,
+                                                   macro_name_64);
                 }
             }
         }