build: add support for a prebuilt clang

- this toolchain replaces the clang that is builded inline and has additional optimization for krait devices
- it gives a noticable performance boost
- more information is found in the pfd at prebuilts/clang/linux-x86/host/msm-3.4

build: add support for a prebuilt clang

- set TARGET_CLANG_VERSION to your desired clang version to use it

ps2: RETAIN SUPPORT FOR STOCK CLANG... ASDLKJSHADLKSJAHDLKDHJA
ps3: derp
ps4: set stock clang
ps5: fixup the header inclusion
ps6: add guard for default clang version
ps7: cortex-15 if supported by both clang versions, and fixup header inclusion
ps8: fix derp
ps9: FIX SHIT UP FOR REAL?
ps10: copy/paste derp
ps11: ifeq--->ifneq
ps12: don't enable by default
ps14: revise conditionalization if CLANG_EXTRA_INCLUDES and restore mcpu substitution for global stock clang
Change-Id: I07c1725bec1600d7082ff3b57d0b82820eb408a1
Signed-off-by: bart452 <bart4524@gmail.com>

Conflicts:
	core/clear_vars.mk
	core/dumpvar.mk

build: fix renderscript header inclusion

- to build frameworks/rs with the prebuilt clang

credits to @xboxfanj for the idea

Change-Id: Ifb79d60840bdd8e8dbf5a50cf73b4ae4082e4c3a
Signed-off-by: bart452 <bart4524@gmail.com>

build: add  -funsafe-loop-optimizations to unknows clang flags

- not supported by clang

Change-Id: I280d57a94b2d45b66ef6efaa42d28d822d9b2d2e

build: update configuration for msm clang

Change-Id: Ib2eb53863b39492fbcfec98f1dbe258287224cfc
Signed-off-by: bart452 <bart4524@gmail.com>

build: drop LOCAL_STOCK_CLANG

- not needed and should not be needed, better to fix it the right way

Change-Id: Ifbd4852661f72d2be1f9640811f5271e65fa639d
Signed-off-by: bart452 <bart4524@gmail.com>
TARGET_NEEDS_EXTRA_DEBUGGING: reduce debugging symbols unless otherwise specified

todo: tie to userdebug/user variant

Background on flags
-fomit-frame-pointer: don't generate frame pointers for leaf functions.  frees up a register.
-g builds default debugging (-g2) information into the output file for GDB use
-DNDEBUG turns off assertion macro debugging in CPP files that have included <assert.h>.
  infomration at http://oopweb.com/CPP/Documents/DebugCPP/Volume/techniques.html

Since debugging code can increase output size and reduce performance we should introduce a
variable FLAG_CPP_DEBUGGING to be introduced for userdebug/developement and release builds.
The flag may be also set in the boardconfigs of unstable devices or introduced when necessary.

PS13: Renamed master switch CFLAG
        Minimized disturbance to existing cflags (with TARGET_NEEDS_EXTRA_DEBUGGING := true, ccache from before this commit should remain valid)
        Reduce redundant definitions by defining the flags in select.mk, which includes TARGET_linux-arm.mk, and is included before llvm_config.mk

Change-Id: Ic78c547b54db4ad3e0c28e6f4092f5a5a3978d1a

Conflicts:
	core/combo/TARGET_linux-arm.mk
	core/combo/select.mk
	core/llvm_config.mk
build: add mkdirty function

PS2: Restore authorship

Change-Id: Ia1dc7995745c3923b9b7261d29d30691ee5c6373
Signed-off-by: Arnav Gosain <nolinuxnoparty@gmail.com>
?

Change-Id: Ic6a839c03424a4e581b44f957d81ac02e1f1e312