Commit graph

6026 commits

Author SHA1 Message Date
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 Willemsen
4972f88699 Merge "Revert "Revert "Revert "Revert "Add path interposer""""" 2018-06-01 02:14:44 +00:00
Dan Willemsen
184901135c Revert "Revert "Revert "Revert "Add path interposer""""
This reverts commit 09f4540d66.

Fixes the raw call to net.Listen in the tests to go through the listen()
helper and use the long socket path fallbacks.

Removes the use of timeouts from the tests -- the behaviors being tested
did not rely on timeouts, so removing them will reduce the flakiness if
the build is heavily loading the machine at the same time the test is
running.

Also fixes some potential nil pointer dereferences.

Test: OUT_DIR=<really long> m blueprint_tools
Test: `while .../soong-ui-build-paths/test/test; do sleep 0.01; done` with a build running
Change-Id: I16d44be7517bc415f1c808284088f4ba40df3bfa
2018-05-31 14:59:33 -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
Colin Cross
86a60ae6fa Add core-lambda-stubs to classpath
Add core-lambda-stubs to the bootclasspath for modules with no
sdk_version or with sdk_version: "current", and to the classpath
for modules that specify a specific sdk_version number.  Use the
prebuilt sdk-core-lambda-stubs when using a prebuilt SDK.

Fixes compiling modules with lambdas against the SDK.

This reapplies I5e700f2dd86f1a6b84b7a55dd9bfe21a448d3fb6 with fixes
and tests for unbundled builds.

Bug: 80428539
Test: java_test.go
Change-Id: Ib7aaeebb93137270d7336a7293a08ed7064a3184
2018-05-30 16:47:00 +00:00
Treehugger Robot
6c2e97364e Merge "Revert "Add core-lambda-stubs to classpath"" 2018-05-30 07:23:09 +00:00
Colin Cross
7cdc22edb9 Revert "Add core-lambda-stubs to classpath"
This reverts commit d9d7be0617.

Reason for revert: Broke unbundled builds.

Bug: 80428539
Change-Id: I2279dbd2b11a2f63e70ad89d0b3bc42bca2b676b
2018-05-30 05:45:09 +00:00
Treehugger Robot
f3c251c5de Merge "LOCAL_SDK_VERSION is not emitted for recovery variant" 2018-05-30 03:29:51 +00:00
Treehugger Robot
9c75391168 Merge "Add bpf module type" 2018-05-30 02:43:03 +00:00
Treehugger Robot
c550ed5833 Merge "Add aidl properties" 2018-05-30 01:52:57 +00: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
Colin Cross
3840659243 Add bpf module type
Add a module type for compiling .c to .o using clang --target=bpf.

Bug: 72981744
Test: m
Change-Id: Ie5712bfabe34901a84ed33737053306ca56ebeb4
Merged-In: Ie5712bfabe34901a84ed33737053306ca56ebeb4
(cherry picked from commit 3ba736a7e1)
2018-05-29 17:05:23 -07:00
Colin Cross
d9d7be0617 Add core-lambda-stubs to classpath
Add core-lambda-stubs to the bootclasspath for modules with no
sdk_version or with sdk_version: "current", and to the classpath
for modules that specify a specific sdk_version number.

Fixes compiling modules with lambdas against the SDK.

Bug: 80428539
Test: java_test.go
Change-Id: I5e700f2dd86f1a6b84b7a55dd9bfe21a448d3fb6
2018-05-29 23:47:50 +00:00
Sundong Ahn
1b92c824f3 Add aidl properties
The aidl files are allowed when creating the droiddoc module in
java_sdk_library. But The properties of AIDL, local_include_dir
and include_dir, are not passed to the droiddoc module.
These properties are add because they are needed to generate the
java files.

Bug: 77575606
Test: build && java_test.go
Change-Id: I1006c9ce7a5c7e424416d39fb921c27a3fa86afa
2018-05-29 04:25:02 +00:00
Dan Willemsen
4a789b1c3d Merge "Revert "Revert "Revert "Add path interposer"""" 2018-05-25 23:27:20 +00:00
Dan Willemsen
09f4540d66 Revert "Revert "Revert "Add path interposer"""
This reverts commit c59a92cb1a.

Reason for revert: tests are broken with long OUT_DIRs
They're directly calling net.Listen, and not using the fallback
for long socket names.

Change-Id: Id14cbd499fd9b36c6926b7552d3554340cb0916c
2018-05-25 23:26:00 +00:00
Treehugger Robot
516e580f94 Merge "droiddoc accepts aidl files as inputs" 2018-05-25 23:19:24 +00:00
Dan Willemsen
bfb2b7e877 Merge "Revert "Revert "Add path interposer""" 2018-05-25 22:57:59 +00:00
Treehugger Robot
523cef04cb Merge "Use new flex binary" 2018-05-25 22:44:35 +00:00
Dan Willemsen
c59a92cb1a Revert "Revert "Add path interposer""
This reverts commit 96c957ae20.

Fixes issues on some machines where the socket in TMPDIR ended up with a
unix domain socket pathname over 107 characters long, which Go will
reject due to underlying limitations in the system calls. If this
happens, we'll fall back to opening the directory, then using
/proc/self/fd/#/<file>, or manually creating a similar symlink in /tmp.

Also fixes some issues on Mac where os.Executable returns the symlink
instead of the underlying file, sending a message over a unix domain
socket will block if the reader isn't reading, and sandboxing was
preventing us from running `ps`.

Test: m blueprint_tools
Test: m blueprint_tools on mac
Change-Id: Ib19ccfe10cb0a79f1476fb1d5cd20ed0495be367
2018-05-25 14:07:00 -07:00
Treehugger Robot
c8036c17ab Merge changes from topic "recovery_available"
* changes:
  fix: recovery.cflags now works
  Mark as recovery_available:true
  Add recovery_available to cc_genrule
2018-05-25 05:58:01 +00:00
Colin Cross
9d0940c7a7 Merge changes I47b9def5,I16661701,I194aeeb8
* changes:
  Export manifest to Make
  Add support for android_test modules
  Reduce boilerplate around bpfix passes
2018-05-25 01:34:11 +00:00
Treehugger Robot
5ae3652d99 Merge changes from topic "preprocessed_ndk_headers"
* changes:
  Rename preprocessed_ndk_headers to versioned_ndk_headers.
  Add exclude_srcs property to ndk_headers modules.
  Fix typo. Properies -> Properties.
2018-05-24 23:47:57 +00:00
Jiyong Park
4a2dcb5c4b fix: recovery.cflags now works
There was a bug that recovery.cflags is ignored. Respect the property
when building for recovery.

Bug: 79146551
Test: m -j
Change-Id: I24c1c1b593c83eb1992721571c6d5c42483a41a0
2018-05-25 08:43:50 +09:00
Dan Willemsen
b7adae8aaf Use new flex binary
Test: treehugger
Change-Id: Ie1d41a3ee223a80b6f471b7b1cbede63cc7051f5
2018-05-24 15:45:21 -07:00
Colin Cross
10f7c4a268 Export manifest to Make
I5d439353d46ba6659ec8d16967693d2b9e62ab5a will need the manifests
from android libraries to merge into modules that reference them
with LOCAL_STATIC_ANDROID_LIBRARIES.

Bug: 3434784
Test: m checkbuild
Change-Id: I47b9def5b9c2ecc423550eb8a988cce96038a81e
2018-05-24 15:24:12 -07:00
Dan Albert
97f9c963ad Rename preprocessed_ndk_headers to versioned_ndk_headers.
The current rule runs a specific preprocessor over the source files,
and I'm adding support for generic preprocessed headers in a follow
up patch.

Test: make checkbuild
Bug: None
Change-Id: I1f3193cd595f151309e6321e1b41d8d16085379d
2018-05-24 15:12:51 -07:00
Dan Albert
19ff8b4662 Add exclude_srcs property to ndk_headers modules.
Test: make checkbuild
Bug: None
Change-Id: I2778c1140ab50abc0f7dee66da35ebacef77ea72
2018-05-24 15:12:26 -07:00
Dan Albert
7122205a5a Fix typo. Properies -> Properties.
Test: make checkbuild
Bug: None
Change-Id: I0b5e3dd44f507207f2de90e922dd7016cffce118
2018-05-24 15:12:20 -07:00
Colin Cross
ae5caf554c Add support for android_test modules
android_test module are APKs that can be run as tests, either
as standalone unit tests or as instrumentation tests for another
APK.

Test: m checkbuild
Change-Id: I16661701637e4048fd99442029c3e195ebf373a4
2018-05-24 14:53:58 -07:00
Colin Cross
e467f44f9b Reduce boilerplate around bpfix passes
Make it easier to add bpfix passes by putting them in a single
list.

Test: bpfix_test.go
Change-Id: I194aeeb88457800545d58aceb5d1616c6752274a
2018-05-24 14:53:58 -07:00
Treehugger Robot
c039ab084d Merge "Allow "-" to be part of Python file names" 2018-05-24 17:34:22 +00:00
Treehugger Robot
3332fdef7c Merge "Revert "Revert "Add libc++.so as install dependencies for hermetic Python.""" 2018-05-24 17:26:07 +00:00
Colin Cross
47ec6df851 Merge "Support platform_apis property" 2018-05-24 17:18:43 +00:00
Colin Cross
8f09cd34b6 Merge "Fix optimize.proguard_flags_files typo" 2018-05-24 17:18:31 +00:00
Jiyong Park
6caa21aa82 Mark as recovery_available:true
Libraries that are direct or indirect dependencies of modules installed
to recovery partition (e.g. adbd) are marked as recovery_available:
true. This allows a recovery variant of the lib is created when it is
depended by other recovery or recovery_available modules.

Bug: 79146551
Test: m -j
Change-Id: I1181fa0646d840c0194e4af2043ec228ec9eff16
2018-05-24 14:14:08 +09:00
Jiyong Park
3f736c9661 Add recovery_available to cc_genrule
recovery_available property is required in cc_genrule. Specifically,
we will mark libminijail as recovery_available:true as part of building
adbd and other stuffs for recovery. Some source code of libminijail is
created via cc_genrule, so we need recovery_available in the module
type.

Bug: 79146551
Test: m -j
Change-Id: I0cf0d9b1004dda055373573e5c5a7debd112685f
2018-05-24 14:01:54 +09:00
Nan Zhang
ccf636e36a Revert "Revert "Add libc++.so as install dependencies for hermetic Python.""
This reverts commit bfb0aed2dd.

Reason for revert: <LOCAL_REQUIRED_MODULES overrides the "required:" property in Android.bp>
Test: m -j sepolicy_tests
Bug: b/80140289

Change-Id: I4e51007a7d4dda69cbf4f31253e9a56d3f5e35c7
2018-05-23 18:09:34 -07:00
Nan Zhang
1a479b6ecd Allow "-" to be part of Python file names
Test: m -j py-setuptools
Bug: b/79751992

Change-Id: I4cd0cf8671a9bb912a8ba819265274ab0c9e0074
2018-05-23 15:15:39 -07:00
Treehugger Robot
78a01965d0 Merge "Fix Protobuf importing issue for embedded Python" 2018-05-23 20:24:42 +00:00
Artem Iglikov
a0a7fc16bf Merge "Revert "Add libc++.so as install dependencies for hermetic Python."" 2018-05-23 10:34:07 +00:00
Jiyong Park
1e440683e5 droiddoc accepts aidl files as inputs
droiddoc now accepts aidl files as inputs. This in turn allows us to
feed aidl files to java_sdk_library modules. This is required as some
java_sdk_library internally uses AIDL files and thus we need to specify
*.aidl files in the srcs property. Since the srcs property is internally
given to the droiddoc module as well as the runtime library, droiddoc
should be able to handle aidl files.

Bug: 77575606
Test: java_test.go
Change-Id: If7a8559a2a1d8ac1056b061d24e3a5ee5253453f
2018-05-23 18:42:04 +09:00
Artem Iglikov
bfb0aed2dd Revert "Add libc++.so as install dependencies for hermetic Python."
This reverts commit ff7d397218.

Reason for revert: breaks a few targets

Change-Id: I3f26bfda9e276730accff558333f910a1dc017e8
2018-05-23 08:49:38 +00:00
Nan Zhang
f0c4e4339a Fix Protobuf importing issue for embedded Python
As I mentioned in b/79751992 #4, when launcher loads __main__ as entry point,
the module dict got set using absolute pkg path which
was runfiles.google.protobuf which caused the type checking failed
(expected: google.protobuf for type()). After then, starting with non entrypoint
python files, the importing module dict would be set with from...import...

So remove dir:runfiles/ from zip section so that during entrypoint Python file
importing the proto files using
from...import..., the type checking can be passed.

Bug: b/79751992
Test: m clean && m out/host/linux-x86/bin/perf_proto_stack;
And execute it:
usage: perf_proto_stack [-h] [--syms SYMS] [--json-out JSON_OUT]
                        [--print-samples] [--skip-kernel-syms]
                        [--print-pid-histogram] [--print-sym-histogram]
                        [--print-dso-histogram] [--parallel PARALLEL]
                        file [file ...]
perf_proto_stack: error: too few arguments

Change-Id: I95a4a9ee95ce7f90d893ea0529c384d7b944abe4
2018-05-23 03:33:36 +00:00
Treehugger Robot
d0ce8e8aab Merge "Add libc++.so as install dependencies for hermetic Python." 2018-05-23 00:03:13 +00:00
Treehugger Robot
542d60062f Merge "Account for multiple BOARD_PLAT_PUBLIC[PRIVATE]_SEPOLICY_DIR dirs" 2018-05-22 22:50:59 +00:00
Nan Zhang
ff7d397218 Add libc++.so as install dependencies for hermetic Python.
Bug: b/80140289
Test: m clean && m test_me
Change-Id: I3acbf1bac3b866b37f9ec69584dc9be7a5ad1d89
2018-05-22 14:18:30 -07:00
Colin Cross
6af2e4980f Support platform_apis property
Add a platform_apis property.  The logic to verify it isn't
hooked up yet, but this will allow translating modules to
Soong without losing the annotation.

Test: m checkbuild
Change-Id: I75ff2d7b94247873f5bb1547a9b347a8e73c3191
2018-05-22 14:14:27 -07:00
Colin Cross
96e7f85b51 Fix optimize.proguard_flags_files typo
LOCAL_PROGUARD_FLAG_FILES should convert to
optimize.proguard_flags_files, not optimize.proguard_flag_files.

Test: m checkbuild
Change-Id: I1471afc006a2a3892af37d2cb73c51636f05d7f7
2018-05-22 12:51:27 -07:00
Tri Vo
f544fe3db9 Account for multiple BOARD_PLAT_PUBLIC[PRIVATE]_SEPOLICY_DIR dirs
After https://android-review.googlesource.com/688488
BOARD_PLAT_PUBLIC[PRIVATE]_SEPOLICY_DIR can now specify multiple
directories.

Bug: n/a
Test: build sepolicy
Change-Id: I838c76736a3f1bd8759e24739cf82fea33a531b4
2018-05-22 09:23:44 -07:00