aboutsummaryrefslogtreecommitdiffstats
path: root/cc
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Publish Soong configuration to Make variables"Dan Willemsen2016-05-131-0/+111
|\
| * Publish Soong configuration to Make variablesDan Willemsen2016-05-121-0/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For configuration like TARGET_GLOBAL_CFLAGS, it would be good to have Make and Soong use the same values. This change adds an interface for packages like cc to verify the current value of make variables match the Soong equivalents, and once they're satisfied with the results, remove the make definition and use the value from Soong. The cc implementation exports a few variables currently that I expect to match between both implementations in all cases. It also checks {CLANG,}{HOST,TARGET}_GLOBAL_{C,LD}FLAGS, which should be mostly similar between make and soong now. Bug: 23566674 Change-Id: Idc8582ef31ace11a8baefcf525c3683f08a573aa
* | Merge "Support SANITIZE_TARGET=safe-stack in soong."Evgenii Stepanov2016-05-121-2/+12
|\ \
| * | Support SANITIZE_TARGET=safe-stack in soong.Evgenii Stepanov2016-05-121-2/+12
| |/ | | | | | | Change-Id: I570a7033ece82c5e76815dc1b81622b481930de4
* / Include objs from whole static libs before local objsDan Willemsen2016-05-121-4/+4
|/ | | | | | This matches the make behavior. Change-Id: I8265fb481424734062b0fca944cdbbe283b7236d
* Merge "Move local ldflags after the toolchain ldflags"Treehugger Robot2016-05-111-2/+2
|\
| * Move local ldflags after the toolchain ldflagsDan Willemsen2016-05-101-2/+2
| | | | | | | | | | | | | | This way a local module can override a global flag (like libm overriding -Wl,--hash-style=) Change-Id: If32774381fc46b5767f2c13bf45c3a84acb2697e
* | Add a 32-bit x86_64 arch variantDan Willemsen2016-05-101-0/+9
|/ | | | | | | | | | | In make, the current 32-bit configuration for generic x86_64 targets inherits some variables (SSE4 support) from the 64-bit configuration, and overrides the make variables used for other configurations (SSSE3). We don't have that problem in Soong, but this is the configuration matching what Make is using. Change-Id: Ia934ff40f9388f9c202a0fe0608e7b45b77a2714
* Merge "Fix X86 flags"Dan Willemsen2016-05-102-2/+19
|\
| * Fix X86 flagsDan Willemsen2016-05-092-2/+19
| | | | | | | | | | | | | | Add extra clang cflags, and correct the clang triple for X86 device builds. Change-Id: I95abbd0f0f943ebdede905733785ee3659610058
* | Merge "Fix mips flags"Dan Willemsen2016-05-101-2/+10
|\ \
| * | Fix mips flagsDan Willemsen2016-05-091-2/+10
| |/ | | | | | | Change-Id: Ica7851e19d9a709d03a752dbd4f88f07fc8ce1ee
* / Clean up and fix Krait cflagsDan Willemsen2016-05-091-5/+12
|/ | | | | | | | | For krait, we were using the cortex-a15 cflags for GCC, but a completely separate set for Clang. To make it more readable, and prevent the LPAE flag from being missed for Clang, explicitly define krait cflags for GCC as well. Change-Id: I6dc00a22e2b298ee3755190bf09f28e427c8c70d
* Add missing arm64 -Werror=implicit-function-declarationDan Willemsen2016-05-071-0/+1
| | | | | | This exists for all of the 64-bit architectures in the make build system Change-Id: I023ef1afdaaa790aac4243a5c040f533b8814684
* Add -mpopcnt for X86_64 targets if they support popcntDan Willemsen2016-05-061-0/+1
| | | | Change-Id: I09668a220f207d3d7510f058610846e4427d815e
* Remove duplicate -B entry for host linux clang ldflagsDan Willemsen2016-05-061-1/+0
| | | | | | | | In cc/cc.go, we already add -B{GccRoot}/{GccTriple}/bin to all clang cflags, asflags, and ldflags. So we don't need to add a linux specific version here. Change-Id: I42d71662c78a8170463dfec932a633e4d4ff52c8
* Support prepended arch-specific propertiesColin Cross2016-05-051-2/+2
| | | | | | | | Arch-specific static libraries should be prepended so that the common static libraries can depend on them. Bug: 26968262 Change-Id: I40a21d18ece8f6d20824437e7180628b29ffdd04
* Fix Android.mk LOCAL_EXPORT_C_INCLUDE_DIRS generationDan Willemsen2016-05-051-2/+2
| | | | | | | | | We were keeping the original array, and adding duplicates with -I removed. Instead, only add entries that start with -I, but continue stripping that off. This removes the -isystem arguments from the NDK libraries. Change-Id: I8fd71bbd6b7a051aad7e80a92a05dbdc05a6b87a
* Support sanitizer builds inside makeColin Cross2016-05-033-10/+32
| | | | | | | Make expects libraries built with address sanitizer to be installed into /data, and can't handle multiple variants of modules. Change-Id: Ice575ff6f0788a88f296e7b3ee521a2b9771f55f
* Fix stripping on DarwinColin Cross2016-05-033-13/+36
| | | | | | | The strip tool is different on Darwin, use a separate darwinStrip rule instead of calling strip.sh for host builds on Darwin. Change-Id: I6d421cba0dcea04367d5bc638a03f64c81e2ead0
* Remove trailing / from install pathColin Cross2016-05-031-1/+1
| | | | | | | Prevents make installing files with a double /: Install: out/target/product/generic_arm64/system/lib//libc.so Change-Id: Iee237f344e8140c4938aa9d1e6940e4fdbfa7cd8
* Support stripping shared libraries and binariesColin Cross2016-05-032-18/+107
| | | | | | | Strip all shared libraries and binaries by default. Use a shell script to wrap the long sequences of commands needed by some strip variants. Change-Id: I465bf7cc48330913e60e24762fd55fa2a7731c26
* Move shell and python scripts to scripts/ directoryColin Cross2016-04-291-1/+1
| | | | Change-Id: Icdff44a54d14ddfc2266d99cf0578a8105716918
* Switch to clang-2812033.Stephen Hines2016-04-261-1/+1
| | | | Change-Id: Ie44a0536a50aa6b443be0c015fca1ea9fa02590c
* Use exported gtest include directoriesColin Cross2016-04-251-4/+0
| | | | | | | | Manually inserting gtest include directories causes build failures in manifests that don't have external/gtest. external/gtest already exports its include directories so remove the manual include directory. Change-Id: I6baac4bd3bea7dba3aa134d18b66f02a6dc9a54a
* Add support for sanitizer propertyColin Cross2016-04-218-25/+449
| | | | | | | | Add a new feature to cc modules that adds the cflags and libraries necessary to implement AddressSanitizer, ThreadSanitizer, and UndefinedBehaviorSanitizer. Change-Id: Ibe5ffadc7ece56080a2521f2c7c00da9ef712584
* Support "none" for stl when using ndkColin Cross2016-04-211-0/+2
| | | | Change-Id: I13ecf0a6be591814546a9a1c8b8356988348feb0
* Promote stl to a fixed featureColin Cross2016-04-212-10/+19
| | | | | | | cc needs to know what stl was selected, promote stl from a generic feature implementation to a fixed type pointer. Change-Id: I950ef947f7cd254fe3074f4ff240bb2b90b9116c
* Refactor out exported cflagsColin Cross2016-04-211-27/+42
| | | | | | | Exported cflags are needed by a variety of cc module types. Refactor them into an object that can be composed into any cc module type. Change-Id: I7427ba71085917ca3ec522abadfa2bf33ab43440
* Fix generated sources and headersDan Willemsen2016-04-202-26/+65
| | | | | | | | | | | | | | | | | Add two cc properties: `generated_sources` and `generated_headers`, instead of just adding genrule modules to `deps`. Label these with the dep tagging mechanism, add the generated_headers paths to the include paths, and add dependencies to generated headers for each compile. Add dependencies so that regular sources can include generated yacc headers, not just other generated lex/yacc files. Static/shared specific sources still don't have dependencies to or from regular sources though. Switch from an implicit dependency on generated files to an orderonly dependency, since the depfile will take care of the necessary implicit dependencies for incremental builds. Change-Id: I436675acb1f57329d98b81c56dcb4384201a68ea
* Update sanitize property formatColin Cross2016-04-151-6/+14
| | | | Change-Id: Ibca493a70a19cd3dfb58b5404b1c9ed42e068748
* Use blueprint DependencyTagsColin Cross2016-04-122-158/+190
| | | | | | | | Blueprint now requres DependencyTags to be passed to AddDependency calls. Use the tags to avoid setting member variables on modules, which will be lost after the mutators have been called. Change-Id: I8c1d9ed1db85a300e14394b911a516d361ba9f75
* Rename deps property to objs in cc_objectsColin Cross2016-04-111-6/+13
| | | | | | | The deps property is handled by blueprint, which doesn't give the flexibilty of handling it within soong. Switch to using objs instead. Change-Id: Ib8273546578b31b186a3cf1566e80a5eb11943b7
* libm's headers have moved to live with their libc cousins.android-n-preview-2Elliott Hughes2016-04-047-13/+0
| | | | | | (To reduce the need for this kind of thing in the various build systems.) Change-Id: I75d11497bbf42695f804bcc9ea9ba3b3a12ac764
* Move runpaths out of global ldflagsDan Willemsen2016-03-313-9/+30
| | | | | | | | | | | | | | The make macros add these to the linker lines even if the default compiler flags are being skipped. This also allows us to add another runpath for test binaries, which are currently being installed in: <out>/host/linux-x86/nativetest[64]/<test>/<binary> So they need to use ../../lib[64] as a rpath. Change-Id: Ia7e954cdf63bc627a8f71d01c953530355c248ab
* Fix ToolchainLdflags callsDan Willemsen2016-03-303-6/+14
| | | | | | | | | Instead of having the baseCompiler adjust the Ldflags, teach objectLinker about ToolchainLdflags. And don't assume that ToolchainLdflags will work for Clang too, add a ToolchainClangLdflags call. Change-Id: I5f546e46f32edf3fcf75a44bee2c5ee103bc5de3
* Various host flag updates to match MakeDan Willemsen2016-03-303-11/+15
| | | | | | | Some of these are updates from the old build system, others are just differences/bugs being corrected. Change-Id: Ied7f47ade495dcb26ba3611e636869cba283860f
* Merge "Only add -fdebug-prefix-map on Linux hosts"Dan Willemsen2016-03-301-1/+4
|\
| * Only add -fdebug-prefix-map on Linux hostsDan Willemsen2016-03-291-1/+4
| | | | | | | | Change-Id: I4fb865fbe40020f2d69d598491e755f793b62b7c
* | Merge "Remove extension from LOCAL_MODULE_STEM"Colin Cross2016-03-301-2/+4
|\ \
| * | Remove extension from LOCAL_MODULE_STEMColin Cross2016-03-291-2/+4
| |/ | | | | | | | | | | | | LOCAL_MODULE_STEM adds the expected extension to the installation path, remove the extension from the filename. Change-Id: I54dbcfa73d8d07fc3630caf2d582160003e28f79
* | Fix arm[64] cflagsDan Willemsen2016-03-303-32/+101
| | | | | | | | | | | | | | | | Limit arm cpu variants to armv7-a-neon only, and handle a generic armv7-a-neon cpu variant. Add arm64 cortex-a53 cpu variant. Sanity check the arch variant against supported versions. Change-Id: I8ecdea4cd36d9c82e1f29b158efc131f8b1cbc4d
* | Mark the cortex-{a7,a53,a53.57} chips as supporting LPAEDan Willemsen2016-03-291-0/+7
|/ | | | | | Port of Id3994c6d334c8bb673fc3849550f591136a8dd6a Change-Id: Ic9d96ff81f9119e012f45e8e3b3a76961a922a21
* Don't install static librariesColin Cross2016-03-251-0/+2
| | | | | | | Disable installing static libraries for now by resetting the installer when creating a static library variant. Change-Id: I9360b5c57d95fc0712539accb9450b5fa402fade
* Use correct install paths in generated Android.mkColin Cross2016-03-242-2/+15
| | | | | | | Extract Soong's install path and put it in the generated Android.mk file so that tests get installed in the correct place. Change-Id: Id4726855c5677855406de20773a5da533bdd4cea
* Refactor ccColin Cross2016-03-214-1142/+1403
| | | | | | | | | | | | Refactor all of cc in order to use composition instead of inheritance. All cc module types exported by cc are now *cc.Module objects, with compilation, linking, and installing steps delegated to different objects in order to form the full module type. Additional features that modify dependencies and flags can be inserted in a features object list, and custom module types can be created by adding a Customizer object that can modify properties. Change-Id: Ie1283d14920f7856f6947b0530606b2f4d58fab0
* Update clang version to 2690385Colin Cross2016-03-211-1/+1
| | | | | | Matches changes in I1226f24b50319e321ea538362b2f26fcd227ca39 Change-Id: Iecb2c7388d91fe9975dbe035b5ce6fec8d32a435
* Allow overriding of Clang prebuiltsDan Willemsen2016-03-161-1/+14
| | | | | | | | | | | | These are the environment variables used by make to override the llvm/clang prebuilts. As far as I know, these should only be used when building or testing a new clang drop. I would have this handled by make and put in soong.variables, but I expect this to be one of the first options removed from make and exported from Soong to Kati. Change-Id: I7a3a70ee44fc4b1e56a5e200e2a7ced77d4c5692
* Propagate missing dependencies when using whole_static_libsDan Willemsen2016-03-111-0/+18
| | | | | | | | Currently, whole_static_libs with missing dependencies are silently ignored. Instead, when getting the object files from the other module, add its missing dependencies to the current module. Change-Id: I12472dede2dfafdded56268bfd37f60063b637c4
* Switch to clang-2658975Dan Willemsen2016-03-111-1/+1
| | | | | | Port of https://android-review.googlesource.com/206366 Change-Id: Ife2e0ab84de839ea73744cb65f995a11e3145304