Commit graph

14 commits

Author SHA1 Message Date
Jiyong Park
842a985f90 install *.so in different paths for their types
Shared libraries are now installed to different directories depending on
their types.

* NDK libraries: /system/lib/ndk (with symlink from /system/lib)
* VNDK libraries: /system/lib/vndk
* VNDK-ext libraries: /system/lib/vndk-ext
* Framework-only libraries: /system/lib
* Vendor-only libraries: /vendor/lib
* Same-process HALs: /vendor/lib/sameprocess

However, if LOCAL_MODULE_PATH is explicitly set, then it is respected,
with a warning message. Module owners are highly encouraged to
investigate the warnings and use alternatives to LOCAL_MODULE_PATH;
combination of LOCAL_[PROPRIETARY|OEM|ODM]_MODULE, LOCAL_MODULE_CLASS
and LOCAL_RELATIVE_PATH will cover most of the cases.

Furthermore, for each shared libraries whose path is changed, a symolic
link from the original path to the new path is *temporarily* generated.
e.g. /system/lib/libbase.so -> vndk/libbase.so. This is
to prevent sudden breakage of the code expecting the lib from the old
path. This symbolic links will eventually be removed before O launch
(b/34917183).

Finally, BOARD_SAME_PROCESS_HAL_DEPS is added. It contains the list of
shared libraries implementing the same-process HALs and its internal sub
libraries. This is designed to be defined in BoardConfig.mk

Bug: 33681361
Test: build & run. Libraries must be in the correct directories.
Symlinks from the old path to the new path must exist.

Change-Id: I46130aac09ae65400fd4d0abbc2e12dddd154fb1
2017-03-13 08:27:09 +09:00
Treehugger Robot
e317a2d19e Merge "Support path exclusion for native coverage." 2017-02-28 02:06:57 +00:00
Ryan Campbell
b55ff74713 Support path exclusion for native coverage.
Specify list of paths to exclude from coverage instrumentation.

Test: make NATIVE_COVERAGE=true COVERAGE_PATHS=hardware/interfaces
COVERAGE_EXCLUDE_PATHS=hardware/interfaces/graphics
Bug: 35769817

Change-Id: I3747fdddb381101b9ebf51909b9686e820148aad
2017-02-27 09:09:16 -08:00
Colin Cross
119e97b375 Remove cpusets and schedboost product variables
They are no longer needed, remove them.

Bug: 35129304
Bug: 35128496
Test: builds
Change-Id: Ic0bb04f80d78a1aef2adfeb2af816eecabdbc4ba
2017-02-23 09:47:36 -08:00
Dan Willemsen
0f90908026 Support Soong native coverage
Soong (or any other prebuilt) can provide a .gcnodir file using
LOCAL_PREBUILT_COVERAGE_ARCHIVE. Just like today, if one isn't provided
for static libraries, an empty one will be created for Make modules to
use.

Also fixes a problem I noticed including whole static libs having
coverage into static libs. It was trying to write to /WHOLE since
PRIVATE_INTERMEDIATES_DIR was not set.

Bug: 32749731
Test: See build/soong change for soong-side tests
Test: Enabled coverage of a soong static lib, then include it in a make
static lib with LOCAL_WHOLE_STATIC_LIBRARIES and ensure that the any
shared libraries using the make static lib get the embedded coverage
information.
Change-Id: I32762f099c9757074fec922ee4822f819c9ceaf5
2017-02-10 09:27:35 -08:00
Jack He
fae1cd13f0 Remove mk file parser variables that are no longer required by system/bt
* Removed BLUETOOTH_HCI_USE_MCT
* Removed BOARD_BLUETOOTH_BDROID_HCILP_INCLUDED

Bug: 35203653, 34951912
Test: Code compilation, no user visible effects
Change-Id: Ic575d3a0fac541da3e70543d0f144ea4792bc058
2017-02-09 14:28:00 -08:00
Hiroshi Yamauchi
bf6ad34962 Enable PRODUCT_ART_USE_READ_BARRIER by default.
Bug: 34084559
Bug: 34576638
Test: Boot gce_x86_phone on master
Change-Id: If284beb9551e55a4a698679399feb26e4acfd3d9
2017-01-24 11:15:32 -08:00
Vishwath Mohan
a5ff3e4133 Hide CFI behind a global flag.
This CL ensures that locally enabling CFI in a .bp file is not honored
unless it is enabled globally using ENABLE_CFI=true first, effectively
hiding it behind a flag.

Bug: 30227045
Bug: 22033465
Test: m -j40 works and device boots
Test: cfi is correctly honored only when the global flag is set.
Change-Id: Id026302e7f714b90a9e2c996f7a9314f534f90c2
2017-01-19 14:35:31 -08:00
Jack He
da214cd572 Add mk file parsers to support build variables required by system/bt
* BtConfigIncludeDir: Path to device specific config headers
                      BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR
* BTHcilpIncluded: Path to Hcilp headers
                   BOARD_BLUETOOTH_BDROID_HCILP_INCLUDED
* BtHciUseMct: Whether MCT is used
               BLUETOOTH_HCI_USE_MCT

Bug: 32958753
Test: Code compilation, no user visible effects

Change-Id: I94cad65c77464e5b467abee05951ddfd35b9f27d
2017-01-11 17:11:32 -08:00
Hiroshi Yamauchi
64594c4f53 Add ART_USE_READ_BARRIER to product variables.
Bug: 33492005
Test: top-level build for angler.
Change-Id: I12aa2e18487c16423223f110b6dfb0d6dff1e7e8
2016-12-19 16:25:00 -08:00
Colin Cross
3753e8a335 Pass eng product varible to soong
Test: mmma -j frameworks/compile/libbcc
Change-Id: I79a903528948b728f730385a9de5e431617ff257
2016-12-08 10:05:55 -08:00
Dan Willemsen
c077871f68 Tell Soong about TARGET_COPY_OUT_VENDOR
So that it can properly install proprietary components in system/vendor/
or vendor/

Test: lunch aosp_arm-eng; m -j vulkan.default
Test: lunch aosp_flounder-eng; m -j vulkan.default
Change-Id: I98384d2b4f09c3b5de2ed04417880f366828234e
2016-12-05 17:46:30 -08:00
Dan Willemsen
bab0fa6928 Add basic VNDK support in Make
Add BOARD_VNDK_VERSION and LOCAL_USE_VNDK to specify the version of the
VNDK that will be used globally, and whether to use the VNDK on a module
basis.

If the board is using the VNDK:

* LOCAL_COPY_HEADERS may only be used by modules defining LOCAL_USE_VNDK
* LOCAL_USE_VNDK modules will compile against the NDK headers and stub
  libraries, but continue to use the platform libc++.
* LOCAL_USE_VNDK modules will not have the global includes like
  system/core/include, but it will use device-specific kernel headers.

This change does not attempt to enforce any linking constraints, that
will come in a later patch.

Test: out/build-aosp_arm.ninja is identical before/after
Change-Id: Icce65d4974f085093d500b5b2516983788fe2905
2016-11-28 13:46:17 -08:00
Dan Willemsen
04f53ed923 Split (ninja|soong).mk into config and rule portions
So that an external tool can read the configuration using
dump-many-vars, and write out the soong.variables file while only
loading config.mk.

Also remove dumpvar-% from PARSE_TIME_MAKE_GOALS, since it's only used
with CALLED_FROM_SETUP / config.mk. This provides an easy way to test
this change as well.

Test: get_build_var NINJA
Test: get_build_var ANDROID_GOALS
Test: get_build_var NINJA_GOALS
Test: get_build_var KATI_GOALS
Test: MAKECMDGOALS="droid sdk dumpvar-ANDROID_GOALS" get_build_var ANDROID_GOALS
Test: MAKECMDGOALS="droid sdk dumpvar-NINJA_GOALS" get_build_var NINJA_GOALS
Test: MAKECMDGOALS="droid sdk dumpvar-KATI_GOALS" get_build_var KATI_GOALS
Test: MAKECMDGOALS="out/build-a.ninja dumpvar-ANDROID_GOALS" get_build_var ANDROID_GOALS
Test: get_build_var SOONG_MAKEVARS_MK
Test: get_build_var SOONG_VARIABLES
Test: CALLED_FROM_SETUP=true BUILD_SYSTEM=build/core make -f build/core/config.mk out/soong/soong.variables showcommands
Test: Compare soong.variables from above, and before/after with `m`
Test: Compare out before/after with `m doesnotexist`
Test: `m dist doesnotexist`
Change-Id: I1bc291aa165297c930fe600067edad6ce4979210
2016-11-09 17:53:33 -08:00