Commit Graph

1465 Commits

Author SHA1 Message Date
Yi Kong
0ca4f2e1d2 Merge "Revert "Revert "Move -Wno-enum-compare{,-switch} to external cflags"""
am: 6da4f7d747

Change-Id: Ia388e92f279eac5a07dafbd241d879c280e0d156
2018-06-12 19:19:10 -07:00
Yi Kong
6da4f7d747 Merge "Revert "Revert "Move -Wno-enum-compare{,-switch} to external cflags""" 2018-06-13 02:10:12 +00:00
Yi Kong
cc4bbdccd3 Revert "Revert "Move -Wno-enum-compare{,-switch} to external cflags""
This reverts commit 2f71a6adcd.

Change-Id: I09abb194b25813b8b1e4470b22171121cc3f8c11
2018-06-12 22:59:16 +00:00
Yi Kong
40a43808a4 Merge "Revert "Move -Wno-enum-compare{,-switch} to external cflags""
am: 04f0140479

Change-Id: Iff0ddb70ac23f8d4b6b97ce9a6c0f9ba11876a4c
2018-06-12 01:28:13 -07:00
Treehugger Robot
04f0140479 Merge "Revert "Move -Wno-enum-compare{,-switch} to external cflags"" 2018-06-12 06:44:00 +00:00
Yi Kong
2f71a6adcd Revert "Move -Wno-enum-compare{,-switch} to external cflags"
This reverts commit 96d221f914.

Reason for revert: build breakage for sdk target

Change-Id: I933df62738c08b48d8ae4ea951b2cb4837616c78
2018-06-12 04:51:49 +00:00
Yi Kong
d60cb4a7cc Merge "Move -Wno-enum-compare{,-switch} to external cflags"
am: 276e82ef2a

Change-Id: If341e9b12017430d0b54a6f35db9f57598217ee4
2018-06-11 20:51:20 -07:00
Colin Cross
cb9b2bda11 Merge "Only write CMakeLists.txt for normal variants"
am: d27a18ff2f

Change-Id: I1fc886940823868fc0bc7b130eedac168c5f0871
2018-06-11 20:50:59 -07:00
Chih-Hung Hsieh
c970278167 Merge "Add lld --no-rosegment flag to work with unwinder."
am: 01c66c199e

Change-Id: If38e1b593b1332982ac57e8d00c6d638c7126126
2018-06-11 20:50:44 -07:00
Yi Kong
276e82ef2a Merge "Move -Wno-enum-compare{,-switch} to external cflags" 2018-06-12 02:58:15 +00:00
Treehugger Robot
d27a18ff2f Merge "Only write CMakeLists.txt for normal variants" 2018-06-12 01:36:13 +00:00
Treehugger Robot
01c66c199e Merge "Add lld --no-rosegment flag to work with unwinder." 2018-06-12 00:13:27 +00:00
Chih-Hung Hsieh
b18814e7a4 Add lld --no-rosegment flag to work with unwinder.
Bug: 109657296
Test: make checkbuild and boot
Change-Id: If8eda7ced31f5d4abb357935e9292b81936af6be
2018-06-11 15:07:34 -07:00
Yi Kong
96d221f914 Move -Wno-enum-compare{,-switch} to external cflags
Test: m checkbuild
Bug: 72330874
Change-Id: I8aaa020f5efafa8746b2c5ae29cea1a313a28045
2018-06-11 14:54:35 -07:00
Jayant Chowdhary
280ee69f47 Merge "For llndk libraries add -consider-opaque-types-different to header-abi-diff invocation."
am: 694b1c7c94

Change-Id: Id7f9b5efa5d157c3fb9c00c140a02d7937a289a9
2018-06-11 14:18:27 -07:00
Jayant Chowdhary
694b1c7c94 Merge "For llndk libraries add -consider-opaque-types-different to header-abi-diff invocation." 2018-06-11 20:16:21 +00:00
Jayant Chowdhary
c7434e28d3 For llndk libraries add -consider-opaque-types-different to header-abi-diff invocation.
Bug: 79576032

Test: Create abi reference for libmediandk; build libmediandk;
      header-abi-diff gets invoked with '-consider-opaque-types-different'

Change-Id: I132138e333cc944b54051243b44fa072af74aa83
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
2018-06-11 10:51:43 -07:00
Justin Yun
89aa92c6aa Merge "Add binder32bit to vndk_prebuilt module"
am: 30f9382654

Change-Id: I35ca3f845a7bb677af7aeba09915e9765d898d94
2018-06-10 18:55:05 -07:00
Jiyong Park
d54aee574d Recovery variants are built with -D__ANDROID_RECOVERY__
Recovery variant of a module is now by default built with
-D__ANDROID_RECOVERY__, thus eliminating the need to define a custom
macro to conditionally compile the module for the recovery mode.
(Of course, they can define their own macro if needed)

Bug: 63673171
Test: m -j
Change-Id: I1d1b990329793472b93c2f56080e72d690eef9ec
2018-06-09 02:03:45 +09:00
Jiyong Park
2e6743176a Recovery partition has same layout as system
Recovery partition has same layout as system. In other words,
executables are installed to <recovery_root>/system/bin and libs are
installed to ../system/lib.

This is made possible because the recovery partition is now
self-contained, i.e., shell, adbd, etc. are hosted in the recovery
partition and thus we no longer has to mount the real system.img
to /system. So /system is now available to executables built for
recovery mode.

Bug: 63673171
Test: `adb reboot recovery; adb devices` shows the device ID
Test: Select 'mount /system' in the recovery mode, then `adb shell`.
$ lsof -p `pidof adbd` shows that libm.so, libc.so, etc. are loaded from
the /lib directory.

Change-Id: I6c4f903ad21fd3dd10a07c4588be85d3d678c099
2018-06-09 01:57:00 +09:00
Justin Yun
3e2323d202 Add binder32bit to vndk_prebuilt module
For a vndk_prebuilt module that was built with 32 bit binder, add
"binder32bit: true" to its Android.bp module.
This will add .binder32 suffix to the name.

Bug: 74362637
Bug: 80450527
Test: m -j vndk_snapshot_package
Change-Id: I81049adbf5e67fe5e63d5ea3a8b027aaf6eb355b
2018-06-08 15:56:40 +09:00
Chih-Hung Hsieh
410f48ca0e Use llvm-{objcopy,strip} when clang lld is used. am: 30485c920c
am: c6f8e4f025

Change-Id: Ia05a21c77f0aade23201f95140563de12417bab7
2018-06-07 21:07:55 -07:00
Chih-Hung Hsieh
30485c920c Use llvm-{objcopy,strip} when clang lld is used.
* Pass LLVM_{OBJCOPY,STRIP} to makefile rules.
* strip.sh is used only in soong-only mode.
  It will use llvm-strip and  and llvm-objcopy
  when --use-llvm-strip is given.
  Keep flags of strip.sh in alphabetic order.
* Tested build/soong/scripts/build-ndk-prebuilts.sh
  by adding "UseClangLld": true, to soong.variables file.

Bug: 80093681
Test: build/soong/scripts/build-ndk-prebuilts.sh
Change-Id: I612267304eea434c7a33cc086b27b577d5f64094
2018-06-07 16:04:14 -07:00
Colin Cross
dfe4752181 Only write CMakeLists.txt for normal variants
Modules may have multiple variants for each architecture, and
SOONG_GEN_CMAKEFILES=1 was generating CMakeLists.txt for all of
them, overwriting the first normal variant with the last (and
likely least normal) variant.

Keep a map of generated CMakeLists.txt files, and only generate
each one once.

Bug: 72283227
Test: m SOONG_GEN_CMAKEFILES=1
Change-Id: If31087264d2809088fe36965b9a0ff0f44089852
2018-06-07 21:34:03 +00:00
Yi Kong
b9e2a10093 Merge "Revert "Revert "Add external projects only CFlags option""" am: 8d29e1e024
am: 2090540f19

Change-Id: I8d1872552155864a7fa175c9fc1b25031ed8bc76
2018-06-06 23:57:25 -07:00
Yi Kong
cc80f8d64f Revert "Revert "Add external projects only CFlags option""
This reverts commit a9ccbb7b87.

Test: m
Change-Id: I92d7b7707f73ef3af5824d3e8cb6da0465b5e07d
2018-06-06 16:41:26 -07:00
Colin Cross
3a11cd03b8 Remove references to SourceDepTag in module types am: 2d24c1b654
am: 069ebe6692

Change-Id: I0b7f249b3224ca8099f10eac53ee782f552ce951
2018-06-06 15:23:07 -07:00
Colin Cross
2d24c1b654 Remove references to SourceDepTag in module types
SourceDepTag is going to become a set of tags of the same type
instead of a single tag, remove references to it outside the
android module.

Bug: 80144045
Test: soong tests
Change-Id: I00b2ea5040e4fc95dfbfdd79e21579853c478fcb
2018-06-06 17:05:20 +00:00
Kevin Rocard
0a5fee786f Revert "Add external projects only CFlags option"
This reverts commit 6a350878d8.

Reason for revert: Breakage of many AOSP targets

Change-Id: I917e6daa04ac02ecb98c7bb1816f9bdaf46429f5
2018-06-05 16:47:31 -07:00
Kevin Rocard
a9ccbb7b87 Revert "Add external projects only CFlags option"
This reverts commit 6a350878d8.

Reason for revert: Breakage of many AOSP targets

Change-Id: I917e6daa04ac02ecb98c7bb1816f9bdaf46429f5
2018-06-05 21:43:46 +00:00
Yi Kong
328ec9e7ee Add external projects only CFlags option am: 6a350878d8
am: 92e4e46184

Change-Id: I39dc3ace804e9a1242d1f63b3138cbdcc8c5da91
2018-06-05 14:19:25 -07:00
Yi Kong
6a350878d8 Add external projects only CFlags option
Every time the toolchain adds a new warning, we had to suppress the
warning in every external projects that violates it, or disable it
globally -- which we end up doing most of the time since the first
option is way too time consuming.

Add a separate cflags option for external projects and move existing
-Wno-* flags there so that we can enforce better code quality for
internal projects.

TODO: Move more -Wno-* flags to ClangExtraExternalCflags

Test: m checkbuild
Change-Id: If3dee491616a1e7ba6223c2f522d100e10c5ee76
2018-06-05 19:32:02 +00:00
Dan Willemsen
5fcdd551e3 Merge "Fix mac sdk build" am: 85b1e39ffe
am: 793791e6bc

Change-Id: I544c61212f950e511edf5f1d59f63931a759abf5
2018-06-04 18:36:47 -07:00
Treehugger Robot
85b1e39ffe Merge "Fix mac sdk build" 2018-06-05 00:47:16 +00:00
Dan Albert
f984e93162 Merge "Add a preprocessed_ndk_headers module type." am: 1efd4a9c81
am: 25cb14eb52

Change-Id: I9be1a4504816f33de3ca3ff5affafaa951939066
2018-06-04 17:38:46 -07:00
Treehugger Robot
1efd4a9c81 Merge "Add a preprocessed_ndk_headers module type." 2018-06-04 23:40:03 +00:00
Dan Willemsen
60533776be Merge "Allow more PATH tools, expose HOST_STRIP" am: 1d2318d6cd
am: fe3f651a8c

Change-Id: Ia46f06522640875096ccf444cb2c1a678450a100
2018-06-04 10:02:20 -07:00
Dan Willemsen
fdb20d05bc Fix mac sdk build
Use the host platform "strip", and also expose "nm" and "otool" used for
toc.

Test: `m PRODUCT-sdk-sdk` on Mac
Change-Id: I7a6d127f479d3e563385ead46bc3a4b49b99776b
2018-06-03 16:19:56 -07:00
Treehugger Robot
1d2318d6cd Merge "Allow more PATH tools, expose HOST_STRIP" 2018-06-01 23:58:15 +00:00
Chih-hung Hsieh
21ef2a54f9 Merge "Handle pack_relocations in linker.cc" am: a4181126ee
am: 7bc0f8dbd6

Change-Id: I7cf2e5bcce66f09f13260bad63a1fb3769b4b89a
2018-06-01 14:07:16 -07:00
Chih-hung Hsieh
a4181126ee Merge "Handle pack_relocations in linker.cc" 2018-06-01 20:43:11 +00:00
Dan Willemsen
f6d300662e Allow more PATH tools, expose HOST_STRIP
atree was using the host's strip tool during sdk generation, so expose
the prebuilt for use instead.

`id` was used with a test running minijail0 during the build

`sha1sum` is used by development/build/tools/mk_sdk_repo_xml.sh

`rmdir` was being used to remove some tmp files

Test: m PRODUCT-sdk_arm64-sdk dist sdk_repo
Test: Run other builds through forrest
Change-Id: I49c756a3e9497c0bbd9030754e6aa193a2d989a4
2018-06-01 12:48:41 -07:00
Dan Albert
cb1b4b2d53 Add a preprocessed_ndk_headers module type.
Unlike the old version of this (which has been renamed to
verioned_ndk_headers), this module includes a property to specify the
preprocessor to be used.

This is going to be used for preprocessing ICU4C's unicode/uconfig.h
to alter a config value that needs to differ between the platform and
the NDK.

Test: make checkbuild
Bug: https://github.com/android-ndk/ndk/issues/548
Change-Id: If5c6f54f90cf5a4187693a941748d72f39b0d797
2018-06-01 11:02:38 -07:00
Vishwath Mohan
722b64e0ad Don't enable diagnostics for CFI when setting the CFI sanitizer. am: 05b002dea0
am: dc55e621bb

Change-Id: I04214a9fcb50363bd5d82362b366e5bf69355183
2018-05-31 11:03:56 -07:00
Vishwath Mohan
05b002dea0 Don't enable diagnostics for CFI when setting the CFI sanitizer.
The SetSanitizer() method in cc/sanitize.go was also enabling
diagnostics for CFI when invoked from the sanitizer mutator. We
shouldn't be doing this, so this CL disables that.

Bug: 79785496
Test: strings libziparchive.so | grep 'ubsan'
Change-Id: Iffe0d4e9c333ac5dfbec3f48e381c232ce5d4463
2018-05-30 20:52:39 -07:00
Jiyong Park
311086ab68 Merge "LOCAL_SDK_VERSION is not emitted for recovery variant" am: f3c251c5de
am: 28f6db54f4

Change-Id: I075e5c50ccad4059a309db554a117831a8f7e9ff
2018-05-29 21:20:50 -07:00
Jiyong Park
97686288dd LOCAL_SDK_VERSION is not emitted for recovery variant
recovery variants are not built with NDK (useSdk() is false for
recovery). So LOCAL_SDK_VERSION shouldn't be emitted for the recovery
variants as well.

Test: m -j liblzma.recovery does not show any link type check error

Change-Id: Icb6c4fc766060e3f1555c405d5785ef5a015c629
2018-05-30 10:37:25 +09:00
Vishwath Mohan
4cac067ca1 Disable CFI for vendor variants of all components
am: 9ccbba0200

Change-Id: I6a6a839475f58f92180bfd391035dd538df71a50
2018-05-29 16:36:13 -07:00
Chih-Hung Hsieh
8681471e70 Handle pack_relocations in linker.cc
When pack_relocations is false and clang lld is used,
pass --pack-dyn-relocs=none to lld.

Bug: 80093890
Test: build and boot with USE_CLANG_LLD=true
Change-Id: I0ffe77a111d7fbab5afaa1395d09734a8a390e09
2018-05-29 15:39:47 -07:00
Vishwath Mohan
9ccbba0200 Disable CFI for vendor variants of all components
The current VNDK ABI snapshot expects that CFI is disabled for
components that either in the include paths (from cfi-common.mk) OR
enabled directly in the makefile/blueprint. However, on non-arm64
architectures, the build system was only disabling CFI for vendor
components in the include paths.

This topic corrects it by (a) removing the include paths check to
disable CFI for vendor variants (this CL), and (b) inheriting the CFI
include paths in all product configs to ensure that when we update the
ABI we're able to move to relying exclusively
on (PRODUCT_)CFI_INCLUDE_PATHS.

Bug: 66301104
Test: ABI matches for all architectures.
Change-Id: I648edf13346b18fd88b623682e8590ed44709e0d
2018-05-28 13:57:48 -07:00