summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac63
-rw-r--r--m4/ac_c___atomic.m430
-rw-r--r--m4/ac_c__generic.m428
-rw-r--r--src/appconfig.c9
-rw-r--r--src/common.h14
5 files changed, 74 insertions, 70 deletions
diff --git a/configure.ac b/configure.ac
index 15d742a714..8239dd11f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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
index 0000000000..046a5514b8
--- /dev/null
+++ b/m4/ac_c___atomic.m4
@@ -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
index 0000000000..0c4dd52c6a
--- /dev/null
+++ b/m4/ac_c__generic.m4
@@ -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
+
diff --git a/src/appconfig.c b/src/appconfig.c
index 34fb6d7d36..dd51258cc0 100644
--- a/src/appconfig.c
+++ b/src/appconfig.c
@@ -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;
diff --git a/src/common.h b/src/common.h
index e98340ab5c..8af318cc1c 100644
--- a/src/common.h
+++ b/src/common.h
@@ -60,18 +60,16 @@
#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"