enable link-time-optimizations by default
Costa Tsaousis (ktsaou) committed
Mar 11, 2017 at 23:53 UTC
cdf6740f46999b1b15665feb9eea7593c0aafc3c
3 files changed
+44
-2
configure.ac
+24
-1
@@ -101,6 +101,12 @@ AC_ARG_ENABLE(
101
,
102
[enable_x86_sse="yes"]
103
)
104
+AC_ARG_ENABLE(
105
+ [lto],
106
+ [AS_HELP_STRING([--disable-lto], [Link Time Optimizations @<:@default enabled@:>@])],
107
+ ,
108
+ [enable_lto="detect"]
109
+)
110
111
112
# -----------------------------------------------------------------------------
@@ -145,6 +151,7 @@ AC_CHECK_HEADERS_ONCE([sys/prctl.h])
151
# -----------------------------------------------------------------------------
152
# operating system detection
153
154
+AC_MSG_CHECKING([operating system])
155
case "$host_os" in
156
freebsd*)
157
build_target=freebsd
@@ -161,6 +168,7 @@ esac
168
AM_CONDITIONAL([FREEBSD], [test "${build_target}" = "freebsd"])
169
AM_CONDITIONAL([MACOS], [test "${build_target}" = "macos"])
170
AM_CONDITIONAL([LINUX], [test "${build_target}" = "linux"])
171
+AC_MSG_RESULT([${build_target}])
172
173
174
# -----------------------------------------------------------------------------
@@ -173,8 +181,23 @@ AS_CASE([$host_cpu],
181
AC_SUBST([SSE_CANDIDATE])
182
if test "${SSE_CANDIDATE}" = "yes" -a "${enable_x86_sse}" = "yes"; then
183
opt="-msse2 -mfpmath=sse"
176
- AX_CHECK_COMPILE_FLAG($opt, [CFLAGS="$CFLAGS $opt"], [])
184
+ AX_CHECK_COMPILE_FLAG(${opt}, [CFLAGS="${CFLAGS} ${opt}"], [])
185
+fi
186
+
187
+if test "${enable_lto}" != "no"; then
188
+ opt="-flto"
189
+ AX_CHECK_COMPILE_FLAG(${opt}, [have_lto=yes], [have_lto=no])
190
+fi
191
+test "${enable_lto}" = "yes" -a "${have_lto}" != "yes" && \
192
+ AC_MSG_ERROR([LTO is required but is not available.])
193
+AC_MSG_CHECKING([if LTO should be enabled])
194
+if test "${enable_lto}" != "no" -a "${have_lto}" = "yes"; then
195
+ enable_lto="yes"
196
+ CFLAGS="${CFLAGS} -flto"
197
+else
198
+ enable_lto="no"
199
fi
200
+AC_MSG_RESULT([${enable_lto}])
201
202
if test "${GCC}" = "yes"; then
203
AC_DEFINE_UNQUOTED([likely(x)], [__builtin_expect(!!(x), 1)], [gcc branch optimization])
netdata-installer.sh
+14
@@ -104,6 +104,12 @@ Valid <installer options> are:
104
Enable/disable the FreeIPMI plugin.
105
Default: enable it when libipmimonitoring is available.
106
107
+ --enable-lto
108
+ --disable-lto
109
+
110
+ Enable/disable Link-Time-Optimization
111
+ Default: enabled
112
+
113
--zlib-is-really-here
114
--libs-are-really-here
115
@@ -199,6 +205,14 @@ do
205
then
206
NETDATA_CONFIGURE_OPTIONS="${NETDATA_CONFIGURE_OPTIONS} --disable-plugin-freeipmi"
207
shift 1
208
+ elif [ "$1" = "--enable-lto" ]
209
+ then
210
+ NETDATA_CONFIGURE_OPTIONS="${NETDATA_CONFIGURE_OPTIONS} --enable-lto"
211
+ shift 1
212
+ elif [ "$1" = "--disable-lto" ]
213
+ then
214
+ NETDATA_CONFIGURE_OPTIONS="${NETDATA_CONFIGURE_OPTIONS} --disable-lto"
215
+ shift 1
216
elif [ "$1" = "--help" -o "$1" = "-h" ]
217
then
218
usage
src/clocks.c
+6
-1
@@ -27,8 +27,13 @@ static inline usec_t now_usec(clockid_t clk_id) {
27
28
static inline int now_timeval(clockid_t clk_id, struct timeval *tv) {
29
struct timespec ts;
30
- if(unlikely(clock_gettime(clk_id, &ts) == -1))
30
+
31
+ if(unlikely(clock_gettime(clk_id, &ts) == -1)) {
32
+ tv->tv_sec = 0;
33
+ tv->tv_usec = 0;
34
return -1;
35
+ }
36
+
37
tv->tv_sec = ts.tv_sec;
38
tv->tv_usec = (suseconds_t)((ts.tv_nsec % NSEC_PER_SEC) / NSEC_PER_USEC);
39
return 0;