Commit Graph

2458 Commits

Author SHA1 Message Date
Fabien Sanglard 163bdc0658 Merge "CMakelists generator: Maintain include order"
am: e7ee3c7bc2

Change-Id: I77beff2a83ea038b9dbf530378e526a1be0e155b
2017-03-23 23:43:11 +00:00
Fabien Sanglard e7ee3c7bc2 Merge "CMakelists generator: Maintain include order" 2017-03-23 23:38:36 +00:00
Colin Cross dc03a8407e Remove -Wl,--allow-shlib-undefined from arm64
Hopefully this isn't needed any more.

Test: m -j checkbuild
Change-Id: I8cd1ef21c37bb85a322674532b3cd6816280da67
2017-03-22 17:10:29 -07:00
Nan Zhang 513d87314a Merge "Added functionality in soong_zip that supports adding root prefix."
am: e28c098504

Change-Id: I0f769fc5a3573b841548ba54cfcf2fd683730931
2017-03-22 01:42:53 +00:00
Treehugger Robot e28c098504 Merge "Added functionality in soong_zip that supports adding root prefix." 2017-03-22 01:39:20 +00:00
Fabien Sanglard 6747241b83 CMakelists generator: Maintain include order
For some library, the order of includes is important. e.g: library
can include "system/window.h". Dependending on the dependency order
this could mean libs/nativewindow/include/system/window.h or
system/core/include/system/window.h

This patch changes search path storage from map to array in order
to preserve order the order in which they were received from
soong.

Change-Id: I8ef788633985f4ed04ec3432686eb1427f73d600
Test: Manual
2017-03-21 11:18:10 -07:00
Alexey Frunze 45d6962046 Merge "MIPS: Adjust LibartImgDeviceBaseAddress() for CC GC."
am: 2b4908b578

Change-Id: I595712ec3eb8e5763ec6af9c45b1aa6526105b75
2017-03-21 12:06:41 +00:00
Treehugger Robot 2b4908b578 Merge "MIPS: Adjust LibartImgDeviceBaseAddress() for CC GC." 2017-03-21 12:02:28 +00:00
Alexey Frunze 6e5dfaaeb1 MIPS: Adjust LibartImgDeviceBaseAddress() for CC GC.
The concurrent copying GC allocates large contiguous
space at low addresses. This moves the image(s) out
of the way to higher addresses.

Test: booted MIPS32R2 in QEMU
Test: booted MIPS64 (with 2nd arch MIPS32R2) in QEMU

Change-Id: I1c54e6142844ab1ad7820765ae313650e9ab8875
2017-03-20 16:58:43 -07:00
Colin Cross 79e8c7dc6a Merge "Support owner property"
am: 43dd94cf66

Change-Id: Ica82eba5e737f554934faff62fe208597bd25742
2017-03-20 22:40:05 +00:00
Colin Cross 43dd94cf66 Merge "Support owner property" 2017-03-20 22:34:55 +00:00
Vishwath Mohan d8e1da8281 Merge "Add ar flags for CFI enabled components in Soong."
am: ed1665dc8a

Change-Id: Ie527e5b108fd6220498f3c7098711d5bed199ec2
2017-03-20 22:14:45 +00:00
Treehugger Robot ed1665dc8a Merge "Add ar flags for CFI enabled components in Soong." 2017-03-20 22:08:03 +00:00
Colin Cross c6bcdef0fe Merge changes from topic 'prebuilts'
am: e3918170ae

Change-Id: I1c41397dacf36a9e496373cda09a3639b0958078
2017-03-20 20:57:35 +00:00
Colin Cross 86f096f3fe Rename to cc_prebuilts_library_shared
am: dfee1bcf43

Change-Id: I62997de7c8911ca8cd88346e6d0864259515b6e2
2017-03-20 20:57:30 +00:00
Colin Cross 1ec90a17ff Fix installing prebuilts with no source module
am: c3e7fa65b4

Change-Id: Ia73b5cccce98b12beee2796b325d46d0c80139c2
2017-03-20 20:57:24 +00:00
Colin Cross e3918170ae Merge changes from topic 'prebuilts'
* changes:
  Add support for binary and static library and prebuilts
  Rename to cc_prebuilts_library_shared
  Fix installing prebuilts with no source module
2017-03-20 20:51:45 +00:00
Colin Cross 55708f3fb3 Support owner property
Support owner properties in Android.bp files and propagate the value
to make using LOCAL_MODULE_OWNER.

Bug: 36413696
Test: builds
Change-Id: Iac1cf7f2a14c9e3e6d85d6e09d5adb08a7078d00
2017-03-20 13:33:45 -07:00
Nan Zhang 9067b04ffb Added functionality in soong_zip that supports adding root prefix.
Added -P flag in soong_zip:
It provided a path prefix which will be added in front after -f/-l was
applied with -C.

eg. ./soong_zip -o /path1/../ -P a/c -C d/e -f d/e/test.txt

zip_dest: a/c/test.txt

Bug: b/31676493
Test: go build -a to build a real soong_zip, and test it with real
files.
Change-Id: Ic924ba252e963ca5847c370f733058888426b696
2017-03-20 10:59:49 -07:00
Dan Willemsen d6d00b3281 Merge "Revert "install *.so in different paths for their types""
am: 3250879667

Change-Id: Ia5867d7b44c3601a2d87b6943580fb9d6fa602ec
2017-03-17 22:52:56 +00:00
Treehugger Robot 3250879667 Merge "Revert "install *.so in different paths for their types"" 2017-03-17 22:45:31 +00:00
Colin Cross dfee1bcf43 Rename to cc_prebuilts_library_shared
Rename cc_prebuilts_shared_library to cc_prebuilts_library_shared
to match cc_library_shared.

Test: builds
Change-Id: I2f48263c3a0830a99ace4e2374de4a702d48c2e4
2017-03-17 14:06:28 -07:00
Colin Cross de89fb8707 Add support for binary and static library and prebuilts
Add cc_prebuilt_library_static and cc_prebuilt_binary module types.

Bug: 35576244
Test: Add cc_prebuilt_library_static and cc_prebuilt_binary modules
      and verify they are used
Change-Id: I708ec7b1ed1a0eddae083159575ae04d5ea25a37
2017-03-17 14:06:28 -07:00
Colin Cross c3e7fa65b4 Fix installing prebuilts with no source module
Prebuilts that were not overriding a source module would never
get UsePrebuilt set, which would cause SkipInstall() to be called,
and prevent the module from being exported to make.

Test: prebuilt_test.go
Change-Id: Ib09300efff26f09245331e9919ae2db82b0c3625
2017-03-17 14:06:25 -07:00
Nan Zhang 1a7c7a9cee Merge "Fixed the issue of dependencyTag in prebuilt.go"
am: 6bdcc8ddd6

Change-Id: I6d1009bfcbafb85c0f1a2cb1eb16dc495a4b1ce4
2017-03-17 18:53:04 +00:00
Treehugger Robot 6bdcc8ddd6 Merge "Fixed the issue of dependencyTag in prebuilt.go" 2017-03-17 18:46:51 +00:00
Colin Cross d3591b0d0e Merge "Use a minimal set of mutators, module types, and singletons for tests"
am: 054350e8f1

Change-Id: I8d85830ecbbdace4910edd11c60ad3b12269d43b
2017-03-17 05:09:05 +00:00
Colin Cross 054350e8f1 Merge "Use a minimal set of mutators, module types, and singletons for tests" 2017-03-17 05:05:03 +00:00
Dan Willemsen 615609854f Revert "install *.so in different paths for their types"
This reverts commit 4c48f724e1. It's
causing test failures, warnings and complaints, so backing it out and
we'll resolve those before putting it back in.

Bug: 33681361
Test: m -j
2017-03-16 19:48:32 -07:00
Jeff Gaston 05a53fc769 Merge "Have AndroidMk skip emitting LOCAL_MODULE_TAGS="optional""
am: 33edec5651

Change-Id: I7fff83287127c9b22d38ea75fd37be2c547b7d93
2017-03-16 23:50:13 +00:00
Colin Cross 795c377e14 Use a minimal set of mutators, module types, and singletons for tests
Calling android.NewContext() in tests results in a context that
contains all the mutators, module types, and singletons, which
causes unexpected interactions in unit tests.  Create an empty
context instead, and add in only the necessary mutators, module
types, and singletons.

Bug: 36366816
Test: soong tests
Change-Id: Ic61262c37e3436b3ad4ccaca18b737021c304be6
2017-03-16 16:50:10 -07:00
Treehugger Robot 33edec5651 Merge "Have AndroidMk skip emitting LOCAL_MODULE_TAGS="optional"" 2017-03-16 23:44:41 +00:00
Vishwath Mohan 7a5b46db91 Add ar flags for CFI enabled components in Soong.
CFI enabled components need ar to use the gold linker. This CL adds
that.

Bug: 36290748
Test: Enabling CFI for a Soong component builds without error.
Change-Id: Icbf78fa1ca0d845350516b4dd345b54fbb7ef847
2017-03-16 16:36:16 -07:00
Vishwath Mohan cabe0dc741 Allow custom ar flags to be set.
am: 83d9f71cc5

Change-Id: I3768b87f329f79f186f0cb6a67871fc6f9ab838a
2017-03-16 23:09:31 +00:00
Vishwath Mohan 83d9f71cc5 Allow custom ar flags to be set.
Adds the ability to set custom flags for ar in Soong, similar to how
they can currently be set for make.

Bug: 36290748
Test: sanitize.go is able to correct set custom ar flags for CFI. CFI
enabled Soong components build and boot without issue.

Change-Id: I3212793aa84ba51df910c184d8bb376b3650376e
2017-03-16 14:06:30 -07:00
Dan Willemsen 8335721789 Refactor compressWholeFile to take a zipEntry
am: a8b5502773

Change-Id: If97538bc10f4f48d5a2b61f8cc09c39bef16a03f
2017-03-16 06:44:34 +00:00
Dan Willemsen a8b5502773 Refactor compressWholeFile to take a zipEntry
Test: m -j vts; compare android-vts.zip
Test: soong_zip -C ./ -f short_test.sh -f log -o test.zip
Change-Id: I9a843c6f8436ecfacc7948915e50f25c04497057
2017-03-15 21:53:58 -07:00
Dan Willemsen 3783cb9e5c Preserve executable bit in soong_zip
am: 10462b3fd5

Change-Id: Iff573d83fd33ae5e063b3d46c6800bdc83e9d712
2017-03-16 04:10:54 +00:00
Dan Willemsen 10462b3fd5 Preserve executable bit in soong_zip
Bug: 36292596
Test: m -j vts; zipinfo out/host/linux-x86/vts/android-vts.zip
Change-Id: If595641544cc387019d93b99e0a7890e0b7a9453
2017-03-15 19:13:30 -07:00
Dan Willemsen a0422d3551 Add LinuxBionic toolchain and switch
am: 01a405a481

Change-Id: I171e1bfc0128850d94ee1935ddf6675d4996a376
2017-03-15 22:53:04 +00:00
Dan Willemsen eea081cafd Stop making the ndk headers host-specific
am: 0e2d97b4b1

Change-Id: I8d4d08194fdc8392a178f5dd1e82cafd3d323d3f
2017-03-15 22:53:02 +00:00
Dan Willemsen 01a405a481 Add LinuxBionic toolchain and switch
This adds a toolchain definition for LinuxBionic that only supports
Clang/64-bit. It pulls pieces from the x86_linux_host and x86_64_device
configs, and uses the android clang triple, with some manual overrides.

To enable building this, set your soong.config file to:

 {"Host_bionic": true}

Bug: 31559095
Test: out/soong/{Android,make-vars}-aosp_arm64.mk the same with or
      without host bionic turned on
Test: No change to out/soong/build.ninja before/after this change
Change-Id: Id97dda8bd9aa670c32aed31fbe6aaa8175e70b59
2017-03-15 14:18:42 -07:00
Dan Willemsen 0e2d97b4b1 Stop making the ndk headers host-specific
This breaks when I enable a second host configuration for host bionic.

Make non-arch modules !Device and !Host by adding "Generic" as the zero
value. Make the SkipDeviceInstall config only apply to Device modules.

Test: out/soong/build.ninja is identical expect for comments
Change-Id: I6e2bd3814a9968554d3901a508d822d5c79d08a0
2017-03-15 20:20:22 +00:00
Dan Willemsen d25d2e5d5e Enable large-address-aware for 32-bit windows
am: 7752bca25d

Change-Id: Id767f757513f18a39a1105f582f0a003d3e9b3b6
2017-03-15 01:18:33 +00:00
Dan Willemsen 7752bca25d Enable large-address-aware for 32-bit windows
Bug: 36046324
Test: m -j winsdk-tools
Change-Id: I232d7dac9a6708542e70392801259141bec297c6
2017-03-14 13:37:26 -07:00
Jiyong Park 16163c26cc install *.so in different paths for their types
am: 4c48f724e1

Change-Id: Ic9c1abd4a1799a646f682d8b6324d6382a63b3a7
2017-03-14 00:22:49 +00:00
Jiyong Park 4c48f724e1 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
* 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

In addition, a new module type vndk_ext_library is added. It is almost
identical to cc_shared_library but it introduces another attribute
'extends'. This is use to reference the vndk library that this vndk-ext
library is extending.

For example, in order to extend a vndk library libFoo:

cc_library {
  name: "libFoo",
  srcs: [...]
}
---------------------
vndk_ext_library {
  name: "libFoo-extended",
  srcs: [...]
  extends: "libFoo"
}

Then, libFoo will be installed as /system/lib/vndk/libFoo.so and
libFoo-extended will be installed as /system/lib/vndk-ext/libFoo.so.
Note that file name of the latter is libFoo.so, not libFoo-extended.so:
file name of an extending module is automatically set to that of the
extended module.

Bug: 33681361
Test: build & run. Libraries must be in the correct directories.
Change-Id: Ia1eb3940605d582a252c78da0f3a5b36fdab062b
2017-03-14 09:13:44 +09:00
Dan Willemsen 5f2b83e49e Always use the standard OSX SDK tools
am: 300151ba19

Change-Id: I0abc5c06c9d57963bd45a67622bd2b4e9948a8f0
2017-03-13 21:14:49 +00:00
Dan Willemsen 300151ba19 Always use the standard OSX SDK tools
Instead of whatever happens to be in PATH.

Test: port install gcc5; attempt to build host binaries
Change-Id: If4af32596edd6fd3e459c3d574ab0ff495f236ff
2017-03-13 12:40:30 -07:00
Nan Zhang 2502e12ba9 Fixed the issue of dependencyTag in prebuilt.go
Directly using blueprint.BaseDependencyTag might cause issues because
if other modules also use blueprint.BaseDependencyTag, the
different type of modules will be mixed when fetched based on Tag.

Test: m -j out/soong/build.ninja
Change-Id: I290ca2eea063e5daa4f572985b105b958fa1d0fd
2017-03-09 18:50:31 -08:00