Commit graph

76684 commits

Author SHA1 Message Date
Hsin-Yi Chen
704c12d0bb Find LLNDK dumps in prebuilts/abi-dumps/vndk
LLNDK will not be finalized at the same time as APEX and NDK. The
dumps have to be placed in a different directory. The new LLNDK dumps
will be created in "vndk" directory.

Test: lunch aosp_x86_64-next-eng ; make
Bug: 314010764
Change-Id: I0726e3eabcfdbfb94a10f01ddd6dfb971552bd50
2024-01-29 16:15:29 +08:00
Treehugger Robot
1e33a311c6 Merge "Really disable auto-vectorization." into main 2024-01-23 17:46:58 +00:00
Ronald Braunstein
43f3b601e2 Merge "Add team property to all modules." into main 2024-01-23 16:00:58 +00:00
Elliott Hughes
45fd5175ff Merge "Greatly reduce build warning spam." into main 2024-01-23 15:43:10 +00:00
Elliott Hughes
2ced4b5c66 Greatly reduce build warning spam.
No-one ever fixes unused-* or deprecated-* warnings in external/ (nor should they!).

-Wno-deprecated-enum-enum-conversion should probably have been added
next to -Wno-deprecated-anon-enum-enum-conversion when it was added,
since it's a major spam contributor, and equally unlikely that anyone
will clean them up.

-Wno-deprecated-dynamic-exception-spec is a weird special case because
it should be irrelevant after our next libc++ update, but in the
meantime -- because libc++ is used everywhere -- this is a massive spam
contributor that no-one on Android cares about because we don't use
exceptions (and the people seeing this can't fix libc++ anyway).

Test: local clean builds
Change-Id: I098202337e9e5026c4c5215dbf5a2abf1fbbdca8
2024-01-22 18:34:10 -08:00
Jihoon Kang
fbe572b064 Merge "Rename apiScope.stubsTag" into main 2024-01-23 01:43:55 +00:00
Treehugger Robot
7f55a63222 Merge "rustc-1.74.1 Build 11331546" into main 2024-01-23 00:58:11 +00:00
Elliott Hughes
6c93f6953f Really disable auto-vectorization.
The previous patch was insufficient. Craig Topper explains:

  -fno-vectorize only disables the loop vectorizer

  -fno-slp-vectorize only disables the SLP vectorizer

  The backend can also use vector instructions for memcpy/memset or
  combining multiple scalar loads and/or stores. That is independent
  of -fno-vectorize.

  -mllvm -vector-bits-min=0 will disable any use of fixed vectors. And
  will make attribute(vector_size) get scalarized.

  -mno-implicit-float will disable both vectorizers and
  prevent the backend for using vectors for memcpy/memset
  oor multiple scalar loads/stores. It will not affect
  attribute(vector_size). -mno-implicit-float also prevents scalar
  floating point instructions from being used for anything that didn’t
  use float/double/_Float16/etc. type in source, but I don’t think that
  happens on RISC-V today. 32-bit X86 can use a 64-bit x87 FP load as an
  atomic load for uint64_t, for example. Basically -mno-implicit-float
  is supposed to prevent the compiler from using FP or vectors when the
  source doesn’t explicitly use FP or vectors.

So -mno-implicit-float was what we were actually looking for here. I've
done a clean build with this change, and see only the expected
(hand-written assembler) vector code in bionic, and the ART
ClassLinker::LoadClass() issue is gone too. As far as I can tell, the
remaining vector code is all deliberate in that sense.

We may still end up back here again, to change "gcv" to "gc", but that
still requires some code changes just to build, and still makes it less
obvious that this is just a temporary workaround for a qemu bug
(specifically https://gitlab.com/qemu-project/qemu/-/issues/1976).

Bug: http://b/320416684
Test: objdump
Change-Id: Ibd104e4289d6d1aaf441efa0440fedc90e3da29a
2024-01-22 15:00:21 -08:00
LaMont Jones
d19b214fa1 Merge "Add VisitDirectDepsIgnoreBlueprint" into main 2024-01-22 22:21:42 +00:00
Jihoon Kang
b743155a26 Rename apiScope.stubsTag
The different roles of stubs (e.g. dependency to java modules,
hiddenapi, dist to sdk snapshot) are now split to different set of stubs
(everything, exportable and eventually runtime), while a single set of
stubs are responsible for all roles for the prebuilt stubs. Thus, the
stubs from source are depending different stubs tag (e.g.
everythingStubsTag, exportableStubsTag), while the prebuilt stubs
utilize stubsTag. Given that this tag is only used for the prebuilt
stubs, it can be renamed to `stubsTag`.

Test: m nothing --no-skip-soong-tests
Bug: 319162970
Change-Id: Iacdf434fab6a403482fd2f1de24e6f260ad80756
2024-01-22 19:40:08 +00:00
Pirama Arumuga Nainar
5376892762 [riscv64] disable vectorizer during LTO
With LTO, vectorization needs to be disabled separately in the linker flags as well.

Change-Id: I71d813974a9b7a40954d3dab5b1704baed610fd0
2024-01-19 23:02:01 +00:00
Treehugger Robot
ed0e3cd911 Merge "Don't set CC and CXX when running go build on mac" into main 2024-01-19 22:20:04 +00:00
David Pursell
1fb7d7d5e5 Merge "avb_add_hash_footer: fix rollback_index format" into main 2024-01-19 21:58:03 +00:00
David Pursell
0ebba6132a avb_add_hash_footer: fix rollback_index format
The --rollback_index value is interpreted as base 10 by default; fix the
avb_add_hash_footer rule to print values in base 10 rather than hex.

This doesn't affect any current build targets since all usages have
rollback_index < 10 at the moment so base 10 and hex are identical.

Test: a rollback_index of 12 failed build previously, now succeeds
Change-Id: Ib6cafacca02f8792a0bf3a1e733fc89ee16adebb
2024-01-19 12:55:09 -08:00
LaMont Jones
34314b7d15 Add VisitDirectDepsIgnoreBlueprint
This method allows dependencies on non-Android modules, which it ignores
in strict mode, rather than flagging the dependency as an error.

Bug: none
Test: manual
Change-Id: I9575e46638fa8ffc69c8935b1b65aab37ceab3c3
2024-01-19 20:22:10 +00:00
Aditya Kumar
4ebab14f2e Merge "Pass jump-is-expensive flag both to compiler and linker" into main 2024-01-19 20:18:25 +00:00
Cole Faust
b64c070edf Merge "Remove SymlinkOutputs" into main 2024-01-19 19:38:55 +00:00
Colin Cross
84caaef55c Don't set CC and CXX when running go build on mac
Setting CC and CXX to point to our clang prebuilts on mac fails to build with:
_cgo_export.c:3:10: fatal error: 'stdlib.h' file not found

Skip setting CC and CXX on mac to go back to using the host linker.

Change-Id: I9bab4cda961874c381eacc34397cc67f62fd4730
Test: treehugger
2024-01-19 19:32:56 +00:00
AdityaK
431c0b9c8e Pass jump-is-expensive flag both to compiler and linker
Change-Id: I89e30f98188aed4c5076a34f150e80386fc63f48
2024-01-19 07:32:59 -08:00
Paul Duffin
169cffe526 Merge "Pretty print SBox manifest files to make them easier to read" into main 2024-01-19 10:09:11 +00:00
Chris Wailes
c0f587029a rustc-1.74.1 Build 11331546
Bug: https://issuetracker.google.com/issues/310977762
Test: m rust
Change-Id: Ia3a5bcd1c63e09d1fd4e399598d4ab25245b7af4
2024-01-19 01:40:19 -08:00
Paul Duffin
4a3a0a5412 Pretty print SBox manifest files to make them easier to read
When debugging problems with, or just modifying a ninja rule that uses
the SBox it is often necessary to read the manifest file. This change
makes them easier to read by pretty printing them onto multiple lines
with a small but clear indent.

This increased the size of the following file by abot 6% from 66K to
70K bytes:
    out/soong/.intermediates/packages/modules/Wifi/framework/framework-wifi.stubs.source.system/android_common/metalava.sbox.textproto

Test: m out/soong/.intermediates/packages/modules/Wifi/framework/framework-wifi.stubs.source.system/android_common/metalava.sbox.textproto
      less out/soong/.intermediates/packages/modules/Wifi/framework/framework-wifi.stubs.source.system/android_common/metalava.sbox.textproto
Change-Id: Icfadeaad1c6334bd0010128f4437669f35822850
2024-01-19 00:57:16 +00:00
Colin Cross
d9e4b24877 Merge "Run soong tests in presubmit with the race detector enabled" into main 2024-01-19 00:16:02 +00:00
Colin Cross
1b1b9a937b Merge changes from topic "soong-tests-presubmit" into main
* changes:
  Add script to run Soong tests with go tools
  Disable TestVariantSingletonModule when go test -short is used
  Fix data race in propagateRROEnforcementMutator
  Fix data race in finder_test.go
  Fix data race in dex_bootjars
  Fix race CommonGlobalCflags when running tests in parallel.
  Fix data race in snapshot singletons when running parallel tests
2024-01-18 23:58:45 +00:00
Ronald Braunstein
73b08ffd0d Add team property to all modules.
This allows vendors (like google) to specify which team owns the test
module and code.

Team is a commonProperty on modules and points to the designate "team"
module.  The DepsMutator adds the dependency on the "team" module and
"GenerateBuildActions" write the team data to intermediate files.

A new singleton rule, all_teams visits all modules and writes out
the proto containing the team for each module.
If a module doesn't have a team, then it finds the package in the
blueprint file and parent directory blueprint files that have a
default_team and uses that team.

Test: m all_teams
Test: go test ./python ./java ./cc ./rust ./android
Test: added team to HelloWorldHostTest and built the new asciiproto target
Test: added package default_team and checkout output proto.
Change-Id: I5c07bf489de460a04fc540f5fff0394f39f574a7
2024-01-18 14:16:06 -08:00
Treehugger Robot
4509f502e5 Merge "Skip strict updatability linting on more apexes" into main 2024-01-18 22:04:11 +00:00
Colin Cross
ec78a467a5 Run soong tests in presubmit with the race detector enabled
Add go test -race -short to run-soong-tests-with-go-tools.sh to make
the tests run in presubmit with the race detector enabled.

Test: presubmit
Change-Id: I3162a46ebef965879915c0b534821d922392f1f8
2024-01-18 13:23:06 -08:00
Colin Cross
6ca8d2546e Add script to run Soong tests with go tools
Move the logic that runs Soong tests with go tools from
prebuilts/build-tools/build-prebuilts.sh to
build/soong/scripts/run-soong-tests-with-go-tools.sh.

Test: build/soong/scripts/run-soong-tests-with-go-tools.sh
Change-Id: Ice6532a1bdc53291d791af0c4001406fa47c9537
2024-01-18 13:23:06 -08:00
Colin Cross
74dc598a71 Disable TestVariantSingletonModule when go test -short is used
TestVariantSingletonModule tests that an error is produced when a
mutator creates variants of a SingletonModule.  It also triggers
a data race when cloneLogicModules copies the properties, as the
ModuleFactory of a SingletonModule always returns the same module
with the same property structs.  The build is about to fail with an
error anyways, so hopefully the data race isn't a problem.  There
is no way to disable the test when the data race detector is enabled,
so disable it when -short is enabled, which is the case for all of
our CI testing.

Test: go test -race -short ./...
Change-Id: I944a4901acb60df8e590270f178961d95095a7e9
2024-01-18 13:23:06 -08:00
Colin Cross
7e6a9012c0 Fix data race in propagateRROEnforcementMutator
propagateRROEnforcementMutator walks dependencies of each module and
modifies them via SetRROEnforcedForDependent.  That is unsafe in a
parallel mutator, as the same dependency could be being visited by
two parent modules at the same time.  Don't mark it as a parallel
mutator.

Test: go test -race ./...
Change-Id: I9870aaa7d165bf72b751e3ceff5a2a3eb4d74ec4
2024-01-18 13:23:06 -08:00
Colin Cross
b828213402 Fix data race in finder_test.go
Wait for newFinder to finish writing its dump before ticking the clock.

Test: go test -race ./...
Change-Id: Ib7527ebfb4e1c989deefdb0779a4f9c0928ae15d
2024-01-18 13:23:06 -08:00
Cole Faust
9a346f6da3 Remove SymlinkOutputs
symlink_outputs was added so bazel could run ninja files, but we
abanoned that approach in roboleaf, and then roboleaf was cancelled
entirely. Remove this feature so we're more compatible with upstream
ninja / n2.

Bug: 160568334
Test: Presubmits
Change-Id: Ic368c48dd01b68e51c471c3fe90d0c02c55956e9
2024-01-18 12:43:24 -08:00
Treehugger Robot
193bb8c317 Merge "Add better error handling to bootDexJar function" into main 2024-01-18 20:38:13 +00:00
Cole Faust
e17f93a193 Skip strict updatability linting on more apexes
strict updatability linting has been disabled for a while now.
In the process of re-enabling it, we need to allowlist all the apexes
that have violations.

Bug: 320698986
Test: Presubmits
Change-Id: I96501bc120d8127cb3675ecbee088ea887fabbc1
2024-01-18 11:25:59 -08:00
Treehugger Robot
f29b80c51f Merge "Simplify strict updatability linting error message" into main 2024-01-18 11:46:18 +00:00
Treehugger Robot
3b21c9cadd Merge "The androidmk supports converting "LOCAL_PROTOC_FLAGS"" into main 2024-01-18 02:34:58 +00:00
Treehugger Robot
936a57d3e9 Merge "Fix the error of androidmk unittest" into main 2024-01-18 02:22:17 +00:00
Cole Faust
9809860ea8 Simplify strict updatability linting error message
Throwing a RuntimeError leads to a stack trace in the build failure
error message, which is not useful and makes the error harder to
understand.

Bug: 320698986
Test: Presubmits
Change-Id: I0b79185fff7b9c8d4085b23936b80b3d026a4384
2024-01-17 17:11:51 -08:00
Colin Cross
84ed511ceb Fix data race in dex_bootjars
Move fields in bootImageConfig that are written during
GenerateAndroidBuildActions into a provider to avoid a data race.

Test: go test -race ./...
Change-Id: I0d6783530843889b96f32d748bda7824493d2e32
2024-01-17 16:10:37 -08:00
Elliott Hughes
c0ea850bfb Disable auto-vectorization.
Until https://gitlab.com/qemu-project/qemu/-/issues/1976 is fixed, this
is just causing too much confusion and wasted time.

Removing V from the architecture string has the same effect, but
requires some code changes (to be able to compile code that's
_explicitly_ using V), and makes it less obvious that this is just a
temporary workaround for a qemu bug.

Bug: http://b/320416684
Test: objdump
Change-Id: Iec7d63ab227b31f82f530dabbdc4f3aa54277f04
2024-01-17 14:24:53 -08:00
Spandan Das
3a3920129d Add better error handling to bootDexJar function
aosp/2876754 missed adding error handling to one of the places which
consumes the dex jar deapexed from prebuilt apexes. This CL ensures that
when we have multiple prebuilt apexes _without_ flagging, the hiddenapi
processing code emits a more descriptive error "Multiple deapxers..."
rather than a cryptic error "<module> does not provide a dex jar"

Test: m nothing --no-skip-soong-tests

Change-Id: I80849fa7cca17d724ac53c94bb353b169175ee28
2024-01-17 20:59:43 +00:00
Colin Cross
bcf53701b7 Fix race CommonGlobalCflags when running tests in parallel.
Clone the commonGlobalCflags global variable when modifying it so that
it gets a unique object per context.

Test: go test -race ./...
Change-Id: Ia4b91c40939d4b4d338bd11e4d4f523521874548
2024-01-17 11:11:03 -08:00
Colin Cross
6c7e8ff86f Fix data race in snapshot singletons when running parallel tests
Singleton objects need to be created in the singleton factory rather
than as a global variable so that they have a unique object per
context in order to allow multiple tests to run in parallel.

Test: go test -race ./...
Change-Id: Ib6912849e1b849ffe8646882cfb476ddea6c6b55
2024-01-17 11:09:16 -08:00
Herbert Xue
d63054e214 Fix the error of androidmk unittest
The unittest checking Android.mk path which is the relative path with
"ANDROID_BUILD_TOP". This can be fix with clean it.

Bug: 319563069
Test: 1. cd build/soong/androidmk/androidmk
      2. go test
Change-Id: Iaf6c331abeadfec3416387f416aaebc0ecfa8a21
2024-01-17 15:09:29 +08:00
Kiyoung Kim
6794cc20c5 Merge "Soong works with empty VNDK version" into main 2024-01-17 05:06:21 +00:00
Herbert Xue
65e0963e4a The androidmk supports converting "LOCAL_PROTOC_FLAGS"
LOCAL_PROTOC_FLAGS can be converted as "proto.local_include_dirs" with
value "--proto_path".

Bug: 314862115
Test: 1. m androidmk
      2. go test
Change-Id: Id4e589623ffef50c2549720b1ef828cd38a940a0
2024-01-17 11:30:38 +08:00
Treehugger Robot
2f08cfc77e Merge "Allow to change static_libs for variant" into main 2024-01-17 02:54:48 +00:00
Florian Mayer
ca2854e708 Allow to change static_libs for variant
This will be used to have different static_libs if we build with scudo.

Bug: 309446525
Change-Id: I5f755dd768975a1dff403bffa92cd5dbc3b9f573
2024-01-16 16:42:34 -08:00
Treehugger Robot
c0412f5d31 Merge "Remove HideFlaggedApi() related logic and the related product variables" into main 2024-01-17 00:20:54 +00:00
Spandan Das
8a768e6a5c Merge "Drop runtime apex deps from implicit baselineApexAvailable map" into main 2024-01-16 20:37:00 +00:00