Commit Graph

1039 Commits

Author SHA1 Message Date
Colin Cross 91790d64c7 Refactor cc modules to use decorators instead of inheritance
am: b916a38233

Change-Id: I3b43134205a739aa6e0baf2aef56507d1e1fa221
2016-08-05 18:45:32 +00:00
Colin Cross 987c4de3cd Remove unused flags.Nocrt
am: 01344df46e

Change-Id: I1c8c1dbf408072a1c6fb644151a3e33182665e52
2016-08-05 18:45:31 +00:00
Dan Willemsen 77a6b8655a soong_jar: Hardcode time
We want reproducible builds, so timestamps are not useful.

Change-Id: I5144bc62ac37c3c9d7e0638f3b3648a60d887702
2016-08-05 11:22:40 -07:00
Dan Willemsen a59a3bc5ec soong_jar: Implement symlinks, fix directories
Ensure that we only create one directory entry, not one with a / at the
end and another without. Clean incoming paths to prevent other similar
duplicates.

When adding directories specified directly as inputs, use the relative
path just like files, not the full path.

Instead of traversing symlinks, addg them to the zip file directly.

Present an error instead of crashing when an input does not exist.

Change-Id: Id6d6561fe12c28398f6096bf9bcae602bb7aa491
2016-08-05 11:22:40 -07:00
Colin Cross b916a38233 Refactor cc modules to use decorators instead of inheritance
For example , instead of trying to have libraryLinker inherit from
baseLinker and libraryCompiler inherit from baseCompiler, create a
single decorator object that wraps both baseLinker and baseCompiler.

Test: Builds, no unexpected changes to build.ninja
Change-Id: I2468adaea8466c203a240259ba5694b8b1df7a52
2016-08-05 10:25:09 -07:00
Colin Cross 01344df46e Remove unused flags.Nocrt
Nocrt is handled through deps.CrtBegin/End, flags.Nocrt is unused

Change-Id: I8ab5313bb2eb3a00e336504d6dd3813350fbe14d
Test: soong builds
2016-08-05 10:22:29 -07:00
Dan Albert cbfe300d8a Auto-fill ndkMigratedLibs.
am: 7e9d295807

Change-Id: I2d20a3e4b7b87b86902fccd06e263f32d39a1494
2016-08-05 00:32:59 +00:00
Dan Albert ae9175cefd Merge "Check NDK API level link compatibility."
am: 5c395b39b4

Change-Id: I1ffa2f563e0693fbf95be28d777dfe7ea4f7d981
2016-08-04 23:21:54 +00:00
Dan Albert 7e9d295807 Auto-fill ndkMigratedLibs.
Change-Id: Ifb91f62eccb17dedb71c1a9a0f5c1471edbcbd44
2016-08-04 16:10:54 -07:00
Treehugger Robot 5c395b39b4 Merge "Check NDK API level link compatibility." 2016-08-04 23:07:16 +00:00
Colin Cross 0a8fe7cf0d Merge "Don't cache InstallInData"
am: a7d1d4b0aa

Change-Id: I37aaf58a0e3d4b4b0ceee66d561576aea5163154
2016-08-04 21:43:18 +00:00
Colin Cross a7d1d4b0aa Merge "Don't cache InstallInData" 2016-08-04 21:02:56 +00:00
Dan Albert a1b846602f Use the version script for ndk_library.
am: 2bc91ba549

Change-Id: I5b07296ad3f458f901ee99297eefc6d5b536896c
2016-08-04 18:23:34 +00:00
Dan Albert 9e10cd4746 Check NDK API level link compatibility.
Mixing NDK API levels is only supported when linking against something
equal or older.

Change-Id: I2c3022a3d75465b736f2e65160da3113cfd6e635
2016-08-03 14:31:25 -07:00
Colin Cross 8d8f8e21cc Don't cache InstallInData
Change-Id: If38670cc68989a7ec11ba5f8c71b1fac6c69f3a6
2016-08-03 11:57:50 -07:00
Dan Albert 2bc91ba549 Use the version script for ndk_library.
We were generating this, but not actually using it yet.

Test: `make ndk` with libc/libm migration patches, readelf generated
      libs.
Change-Id: I9aadf58307bc645b33cab5207409552c5046937a
2016-08-02 13:45:40 -07:00
Dan Albert 4216e1e6f0 Merge changes I0f73b41a,I0cd2f80c
am: f77e8d7ffc

Change-Id: I4ddecc0a430e413016e65898470c7661829ca895
2016-08-02 01:33:33 +00:00
Treehugger Robot f77e8d7ffc Merge changes I0f73b41a,I0cd2f80c
* changes:
  Add a real parser for the version scripts.
  Add tag for "versioned=API".
2016-08-02 01:26:41 +00:00
Colin Cross 5cf03973aa Merge "Rename compiler, linker and installer methods to be unique"
am: cab3d65445

Change-Id: Ide8b387dca1ba29eae3744cb39a9d6d1952ee9ba
2016-08-02 00:37:00 +00:00
Treehugger Robot cab3d65445 Merge "Rename compiler, linker and installer methods to be unique" 2016-08-02 00:28:36 +00:00
Colin Cross 5d90e94a62 Merge "Fix mac soong build"
am: 35ef8bdf32

Change-Id: I1e9e3b5103fc627d5043316e8acc32e7d3cde1e5
2016-08-02 00:12:59 +00:00
Treehugger Robot 35ef8bdf32 Merge "Fix mac soong build" 2016-08-02 00:02:06 +00:00
Dan Albert 8bdccb9429 Add a real parser for the version scripts.
Bionic's version scripts are unfortunately complicated enough that the
naive processing I was doing before is not going to be sufficient.
Add a real parser/generator with a bunch of tests to fix this.

Test: cc/test_gen_stub_libs.py && make ndk
Change-Id: I0f73b41ade1e6cf4e31bf70ba43a743429ce770b
2016-08-01 16:12:40 -07:00
Dan Albert c42458e2ff Add tag for "versioned=API".
This adds the `versioned=API` tag. This should be a very uncommonly
needed tag, and is really only needed to fix versioning mistakes that
are already out in the wild.

For example, some of libc's __aeabi_* functions were originally placed
in the private version, but that was incorrect. They are now in
LIBC_N, but when building against any version prior to N we need the
symbol to be unversioned (otherwise it won't resolve on M where it is
private).

Test: make ndk
Change-Id: I0cd2f80cf4b32356356914cf7ff4119e67f15032
2016-08-01 16:12:32 -07:00
Dan Albert 9ac9847f0b Merge changes I21f54c67,I41f6e493,I6f2ae636
am: 3a5af487f2

Change-Id: I94ecadea6ce396788f3b86f16783943410458834
2016-08-01 23:10:53 +00:00
Treehugger Robot 3a5af487f2 Merge changes I21f54c67,I41f6e493,I6f2ae636
* changes:
  Allow more symbol file tags at top level.
  Add a new tag to NDK symbol files: future.
  Don't warn for TODOish comments.
2016-08-01 23:06:55 +00:00
Dan Albert 08532b6779 Allow more symbol file tags at top level.
A version block might need to be omitted for reasons beyond just
"future". Support all the same tags we do at symbol scope.

Test: `make ndk` with libc/libm migration patches.
Change-Id: I21f54c67079dae10fee1e5e08bcd01f8810e7a67
2016-08-01 16:04:37 -07:00
Colin Cross a24166b5c7 Fix mac soong build
Change-Id: I50b3ca1af571d00a0cc5efc80c5d1c6f0b1f789b
2016-08-01 15:42:38 -07:00
Colin Cross f820949bb8 Move toolchain and global variables into separate package
am: b98c8b0595

Change-Id: Ia93d006fca1a219276c9f387c564778c9c961894
2016-08-01 22:21:22 +00:00
Dan Albert a85042a040 Add a new tag to NDK symbol files: future.
Symbols that have been added to a library but should not be exposed
in any of the current NDK API levels should be tagged with "future".
These will be suppressed from the NDK libraries.

Once all this is in better shape we'll have `sdk: "current"`. Symbols
tagged with "future" will be available for that.

Note that this tag can be applied directly to a version. Aside from
being more ergonomic than tagging an entire section, this also solved
the problem of gen_stub_libs.py emitting an empty global section
(which is not valid syntax) in the case where every symbol is
"future". Tag the version instead and it will be omitted.

Test: `make ndk` with libc/libm migration patches.
Change-Id: I41f6e4939c406f695ab5725f360ec6554ad8ab31
2016-08-01 14:36:22 -07:00
Dan Albert db26530b73 Don't warn for TODOish comments.
These just make it harder to detect when the file is clean of
interesting errors.

Change-Id: I6f2ae6368cdbd2800ce3f0461a3d456f79e6e994
2016-08-01 14:36:22 -07:00
Colin Cross 42742b8bb0 Rename compiler, linker and installer methods to be unique
compiler, linker, and installer interfaces may be implemented by a
single decorator object, rename their methods to be unique to avoid the
same method being called multiple times.

Test: out/soong/build.ninja unchanged
Change-Id: I1608c41cd68f614ba99c11bb9fcc7936f618d9aa
2016-08-01 13:47:15 -07:00
Colin Cross b98c8b0595 Move toolchain and global variables into separate package
Move all of the configuration into a cc/config package

Change-Id: If56fc7242062ed1ce3cb297f78a1e0ef7537373c
2016-08-01 13:37:01 -07:00
Dan Willemsen 763ebb5ac0 Merge changes from topic \'soong_init_rc\'
am: f0cfc7b9e4

Change-Id: I677bd126c2de4b0033e1f8f6dc2d870c6d30de1f
2016-07-30 02:06:48 +00:00
Colin Cross 474a2ca076 Separate cc.go
am: 4d9c2d17c3

Change-Id: Ia5d7300754eae013c95c408454def1f399b81307
2016-07-29 23:52:36 +00:00
Dan Willemsen f0cfc7b9e4 Merge changes from topic 'soong_init_rc'
* changes:
  Include frameworks/native
  Add init_rc property, equivalent to LOCAL_INIT_RC
2016-07-29 23:44:33 +00:00
Dan Willemsen c947526c69 Include frameworks/native
Change-Id: Ic20d27727a48b397089a7eca43a701e3e56567ba
2016-07-29 15:24:08 -07:00
Dan Willemsen 2277bcbc2a Add init_rc property, equivalent to LOCAL_INIT_RC
Change-Id: I914bfff8cbdf71b6cfb2271199a964b2cdcb72d0
2016-07-29 15:24:08 -07:00
Colin Cross 4d9c2d17c3 Separate cc.go
Split cc.go into files per module type, plus files for the compiler,
linker, and installer stages.

Change-Id: Id44c03f42fcd180950ccd008d4de0c144ea3597b
2016-07-29 15:17:58 -07:00
Dan Albert 0f3417c257 Merge \"Generate NDK sysroots from the platform build.\"
am: c6b4e452b4

Change-Id: I11563aa2d2bd01e77f7f07a1601e39bbf796593a
2016-07-28 16:06:25 +00:00
Dan Albert c6b4e452b4 Merge "Generate NDK sysroots from the platform build." 2016-07-28 15:58:52 +00:00
Dan Willemsen e1cb827381 Merge \"Dump Soong module type statistics to Make\"
am: 9d545785ae

Change-Id: I95dcbe1625e952abb34ab71811aeee94e66587d9
2016-07-28 08:14:43 +00:00
Dan Willemsen 9d545785ae Merge "Dump Soong module type statistics to Make" 2016-07-28 08:08:27 +00:00
Dan Albert 914449fca8 Generate NDK sysroots from the platform build.
The list of migrated libraries is currently empty. Libraries will be
migrated as follow up patches.

Test: Migrated libc to this system and everything still builds.
      build.ninja shows libraries being built and used and headers are
      collected for the sysroot.
Bug: http://b/27533932
Change-Id: Iaba00543c1390f432befe0eed768ed3fbb8a9b96
2016-07-28 00:42:05 -07:00
Colin Cross 8c0cfc146f Merge \"Finish cc.Customizer\"
am: fb8f9a800e

Change-Id: Ib09e17935b6071b72e5f185f45fdb58e8bc9e269
2016-07-28 05:59:40 +00:00
Treehugger Robot fb8f9a800e Merge "Finish cc.Customizer" 2016-07-28 05:50:34 +00:00
Colin Cross b69eb4c1d2 Merge \"Add libnativehelper to root Android.bp\"
am: 85676d2234

Change-Id: I1a639aed9c29fe3f16243892591bf8492abd0f3a
2016-07-28 04:16:45 +00:00
Treehugger Robot 85676d2234 Merge "Add libnativehelper to root Android.bp" 2016-07-28 04:10:54 +00:00
Colin Cross 5980699b62 Merge \"Fix static+shared with generated sources\"
am: c951ef1164

Change-Id: Ic8e896a5307348b16489cb5844aaa3b5c506e398
2016-07-28 00:46:21 +00:00
Colin Cross 76fada06c6 Finish cc.Customizer
The Customizer interface now provides a Flags method that takes a
CustomizerFlagsContext and can call AppendCflags to insert extra cflags
on a module.

Change-Id: I821242e7574e8ff653580325d1bef2998a50e29c
2016-07-27 17:15:49 -07:00