Two Squashed commits, from: 1)Qualcomm & 2)AOSP
1. Reduce incorrect PATHS & linker errors from msm clang, especially 3.5,
   by adding -no-canonical-prefixes to: TARGET_GLOBAL_LDFLAGS for msm-% clang,
   as well as addding the following AOSP commit which adds
   -no-canonical-prefixes to: TARGET_GLOBAL_CFLAGS, which are both taken directly
   from the Stock Released Qualcomm llvm/clang setup.mk files, which can both be seen here:
https://github.com/sudosurootdev/prebuilts_clang_linux-x86_host_msm-3.4/blob/stock/arm-linux-androideabi-snapdragonclang3.4/setup.mk
&
https://github.com/sudosurootdev/prebuilts_clang_linux-x86_host_msm-3.5/blob/stock/arm-linux-androideabi-snapdragonclang3.5/setup.mk

2. Disable canonical prefixes of system headers

GCC know a few pre-defined paths (relative to its location) to
search for headers, libraries, program, etc.  By default GCC prefixes
its own path(argv[0]) and calls realpath() which result in absolute
path with all symlink, . and .. removed.

It's usually good to have canonicalised paths, but absolute paths
in *.d file can cause unnecessary relinking when stale entries
in ccache cache hit

Add -no-canonical-prefixes (gcc>=4.6) and
-fno-canonical-system-headers (gcc>4.6) to disable realpath() on
prefixed paths

Change-Id: I58d739e61fb013015fb05a9c98b2132b307f915a
Signed-off-by: sudosurootdev <sudosurootdev@gmail.com>

Conflicts:
	core/combo/TARGET_linux-arm.mk
	core/combo/TARGET_linux-x86.mk
	core/llvm_config.mk
Fix an error with gcc 4.7 introduced by the -fno-canonical-system-headers addition

Change-Id: I2b1696de2d4b496ce3d9496d177d37ddd7b2585f

Conflicts:
	core/combo/TARGET_linux-arm.mk
Handle spaces in bootjars before dexpreopt

Change-Id: Ife29efba35de2737de8d1d08e3c5e0c759840c95
Introduce Link Time Optimization

Summary:
This introduces the following improvements:
  - Can be globally enabled with TARGET_ENABLE_LTO := true
  - Can be locally disabled with LOCAL_NO_LTO_SUPPORT.
  - Host modules now build without LTO by default.
  - Modules built with clang no longer need -fno-lto specified locally (LTO disabled here automatically)
  - Modules built with clang no longer have -fno-toplevel-reorder unnecessarily set.

http://pastebin.com/FaxSUzVy

ps5: don't enable it by default because of poor device support
ps6: make additional clang ignores lto-dependant
ps7: fix caucasian space
ps8: turn off section anchors when LTO is on (fixes "cc1plus: error: section anchors must be disabled when toplevel reorder is disabled")

Signed-off-by: bart452 <bart_96@live.nl>

Change-Id: I17ea1d46cf1ba9bace70acd89a80143060f3bc31
QCPERF + vendor/extra - need boardconfig and product.mk to make libqc-opt happy

Change-Id: I4671568dea8e8c09edf949ac4be6f4a06eb387b5
Deal with CM changing vars (WITH_QC_PERF) for no reason, and still be able to
use future changes where they use TARGET_HAVE_QC_PERF without difficulty.

Change-Id: I46f8eb031f03e859561dae32401cebf328e05274

Conflicts:
	core/config.mk