]> arthur.barton.de Git - netdata.git/commitdiff
autoconf for detecting 32/64 bit CPU
authorCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Tue, 27 Sep 2016 22:47:12 +0000 (01:47 +0300)
committerCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Tue, 27 Sep 2016 22:47:12 +0000 (01:47 +0300)
configure.ac
m4/ac_c___atomic.m4 [new file with mode: 0644]
m4/ac_c__generic.m4 [new file with mode: 0644]
src/appconfig.c
src/common.h

index 15d742a7146e076f3c5a03ccfc5a4c5d03ad0de2..8239dd11f25969ad786c44f304845a855219da16 100644 (file)
@@ -83,69 +83,10 @@ AC_TYPE_UINT16_T
 AC_TYPE_UINT32_T
 AC_C_INLINE
 AC_FUNC_STRERROR_R
-
-# https://lists.gnu.org/archive/html/autoconf-commit/2012-12/msg00004.html
-# AC_C__GENERIC
-# -------------
-# Define HAVE_C__GENERIC if _Generic works, a la C11.
-AN_IDENTIFIER([_Generic], [AC_C__GENERIC])
-AC_DEFUN([AC_C__GENERIC],
-[AC_CACHE_CHECK([for _Generic], ac_cv_c__Generic,
-[AC_COMPILE_IFELSE(
-   [AC_LANG_SOURCE(
-      [[int
-        main (int argc, char **argv)
-        {
-          int a = _Generic (argc, int: argc = 1);
-          int *b = &_Generic (argc, default: argc);
-          char ***c = _Generic (argv, int: argc, default: argv ? &argv : 0);
-          _Generic (1 ? 0 : b, int: a, default: b) = &argc;
-          _Generic (a = 1, default: a) = 3;
-          return a + !b + !c;
-        }
-      ]])],
-   [ac_cv_c__Generic=yes],
-   [ac_cv_c__Generic=no])])
-if test $ac_cv_c__Generic = yes; then
-  AC_DEFINE([HAVE_C__GENERIC], 1,
-           [Define to 1 if C11-style _Generic works.])
-fi
-])# AC_C__GENERIC
-
 AC_C__GENERIC
-
-# AC_C___ATOMIC
-# -------------
-# Define HAVE_C___ATOMIC if __atomic works.
-AN_IDENTIFIER([__atomic], [AC_C___ATOMIC])
-AC_DEFUN([AC_C___ATOMIC],
-[AC_CACHE_CHECK([for __atomic], ac_cv_c___atomic,
-[AC_COMPILE_IFELSE(
-   [AC_LANG_SOURCE(
-      [[int
-        main (int argc, char **argv)
-        {
-          volatile unsigned long ul1 = 1, ul2 = 0, ul3 = 2;
-          __atomic_compare_exchange(&ul1, &ul2, &ul3, 1, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
-          __atomic_fetch_add(&ul1, 1, __ATOMIC_SEQ_CST);
-          __atomic_fetch_sub(&ul3, 1, __ATOMIC_SEQ_CST);
-          volatile unsigned long long ull1 = 1, ull2 = 0, ull3 = 2;
-          __atomic_compare_exchange(&ull1, &ull2, &ull3, 1, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
-          __atomic_fetch_add(&ull1, 1, __ATOMIC_SEQ_CST);
-          __atomic_fetch_sub(&ull3, 1, __ATOMIC_SEQ_CST);
-          return 0;
-        }
-      ]])],
-   [ac_cv_c___atomic=yes],
-   [ac_cv_c___atomic=no])])
-if test $ac_cv_c___atomic = yes; then
-  AC_DEFINE([HAVE_C___ATOMIC], 1,
-           [Define to 1 if __atomic operations work.])
-fi
-])# AC_C___ATOMIC
-
 AC_C___ATOMIC
-
+AC_CANONICAL_HOST
+AC_CHECK_SIZEOF([void *])
 
 AC_ARG_VAR([MATH_CFLAGS], [C compiler flags for math])
 AC_ARG_VAR([MATH_LIBS], [linker flags for math])
diff --git a/m4/ac_c___atomic.m4 b/m4/ac_c___atomic.m4
new file mode 100644 (file)
index 0000000..046a551
--- /dev/null
@@ -0,0 +1,30 @@
+# AC_C___ATOMIC
+# -------------
+# Define HAVE_C___ATOMIC if __atomic works.
+AN_IDENTIFIER([__atomic], [AC_C___ATOMIC])
+AC_DEFUN([AC_C___ATOMIC],
+[AC_CACHE_CHECK([for __atomic], ac_cv_c___atomic,
+[AC_COMPILE_IFELSE(
+   [AC_LANG_SOURCE(
+      [[int
+        main (int argc, char **argv)
+        {
+          volatile unsigned long ul1 = 1, ul2 = 0, ul3 = 2;
+          __atomic_compare_exchange(&ul1, &ul2, &ul3, 1, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
+          __atomic_fetch_add(&ul1, 1, __ATOMIC_SEQ_CST);
+          __atomic_fetch_sub(&ul3, 1, __ATOMIC_SEQ_CST);
+          volatile unsigned long long ull1 = 1, ull2 = 0, ull3 = 2;
+          __atomic_compare_exchange(&ull1, &ull2, &ull3, 1, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
+          __atomic_fetch_add(&ull1, 1, __ATOMIC_SEQ_CST);
+          __atomic_fetch_sub(&ull3, 1, __ATOMIC_SEQ_CST);
+          return 0;
+        }
+      ]])],
+   [ac_cv_c___atomic=yes],
+   [ac_cv_c___atomic=no])])
+if test $ac_cv_c___atomic = yes; then
+  AC_DEFINE([HAVE_C___ATOMIC], 1,
+           [Define to 1 if __atomic operations work.])
+fi
+])# AC_C___ATOMIC
+
diff --git a/m4/ac_c__generic.m4 b/m4/ac_c__generic.m4
new file mode 100644 (file)
index 0000000..0c4dd52
--- /dev/null
@@ -0,0 +1,28 @@
+# https://lists.gnu.org/archive/html/autoconf-commit/2012-12/msg00004.html
+# AC_C__GENERIC
+# -------------
+# Define HAVE_C__GENERIC if _Generic works, a la C11.
+AN_IDENTIFIER([_Generic], [AC_C__GENERIC])
+AC_DEFUN([AC_C__GENERIC],
+[AC_CACHE_CHECK([for _Generic], ac_cv_c__Generic,
+[AC_COMPILE_IFELSE(
+   [AC_LANG_SOURCE(
+      [[int
+        main (int argc, char **argv)
+        {
+          int a = _Generic (argc, int: argc = 1);
+          int *b = &_Generic (argc, default: argc);
+          char ***c = _Generic (argv, int: argc, default: argv ? &argv : 0);
+          _Generic (1 ? 0 : b, int: a, default: b) = &argc;
+          _Generic (a = 1, default: a) = 3;
+          return a + !b + !c;
+        }
+      ]])],
+   [ac_cv_c__Generic=yes],
+   [ac_cv_c__Generic=no])])
+if test $ac_cv_c__Generic = yes; then
+  AC_DEFINE([HAVE_C__GENERIC], 1,
+           [Define to 1 if C11-style _Generic works.])
+fi
+])# AC_C__GENERIC
+
index 34fb6d7d36141f1801fb0361a0e3f4b66d65069c..dd51258cc038baff6f4e0a10ff478f113e17ef05 100644 (file)
@@ -464,9 +464,16 @@ void generate_config(BUFFER *wb, int only_changed)
         switch(i) {
             case 0:
                 buffer_strcat(wb,
-                    "# NetData Configuration\n"
+                    "# netdata configuration\n"
+                    "#\n"
+                    "# You can download the latest version of this file, using:\n"
+                    "#  wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf\n"
+                    "# or\n"
+                    "#  curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf\n"
+                    "#\n"
                     "# You can uncomment and change any of the options below.\n"
                     "# The value shown in the commented settings, is the default value.\n"
+                    "#\n"
                     "\n# global netdata configuration\n");
                 break;
 
index e98340ab5c61cb6ca1f0822e2ca2628498f78a8a..8af318cc1cc36dbdcd0b3d5b782d50c5d3c503dd 100644 (file)
 #include <zlib.h>
 #endif
 
-#ifdef __GNUC__
-#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
-
-#if __x86_64__ || __ppc64__
+#if (SIZEOF_VOID_P == 8)
 #define ENVIRONMENT64
-#else
+#elif (SIZEOF_VOID_P == 4)
 #define ENVIRONMENT32
+#else
+#error "Cannot detect if this is a 32 or 64 bit CPU"
 #endif
 
-#else // !__GNUC__
-#define NETDATA_NO_ATOMIC_INSTRUCTIONS 1
-#define ENVIRONMENT32
+#ifdef __GNUC__
+#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 #endif // __GNUC__
 
 #include "avl.h"