Enable link-time optimization in the Makefile when compiling with clang.
Also update travis.yml to use clang++-5.0 and llvm-5.0-dev.
No functional change.
compiler: clang
addons:
apt:
compiler: clang
addons:
apt:
- sources: ['ubuntu-toolchain-r-test']
- packages: ['clang', 'g++-multilib', 'valgrind', 'expect']
+ sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-5.0']
+ packages: ['clang-5.0', 'llvm-5.0-dev', 'g++-multilib', 'valgrind', 'expect']
+ - LDFLAGS=-fuse-ld=gold
ifeq ($(comp),clang)
ifeq ($(KERNEL),Darwin)
ifeq ($(comp),clang)
ifeq ($(KERNEL),Darwin)
- CXXFLAGS += -flto
- LDFLAGS += $(CXXFLAGS)
ifeq ($(arch),i386)
CXXFLAGS += -mdynamic-no-pic
endif
ifeq ($(arch),i386)
CXXFLAGS += -mdynamic-no-pic
endif
### 3.8 Link Time Optimization, it works since gcc 4.5 but not on mingw under Windows.
### This is a mix of compile and link time options because the lto link phase
### needs access to the optimization flags.
### 3.8 Link Time Optimization, it works since gcc 4.5 but not on mingw under Windows.
### This is a mix of compile and link time options because the lto link phase
### needs access to the optimization flags.
-ifeq ($(comp),gcc)
- ifeq ($(optimize),yes)
- ifeq ($(debug),no)
+ifeq ($(optimize),yes)
+ifeq ($(debug), no)
+ ifeq ($(comp),$(filter $(comp),gcc clang))
CXXFLAGS += -flto
LDFLAGS += $(CXXFLAGS)
endif
CXXFLAGS += -flto
LDFLAGS += $(CXXFLAGS)
endif
- ifeq ($(optimize),yes)
- ifeq ($(debug),no)
CXXFLAGS += -flto
LDFLAGS += $(CXXFLAGS)
endif
endif
CXXFLAGS += -flto
LDFLAGS += $(CXXFLAGS)
endif
endif
endif
### 3.9 Android 5 can only run position independent executables. Note that this
endif
### 3.9 Android 5 can only run position independent executables. Note that this