Commit Graph

26369 Commits

Author SHA1 Message Date
Ying Wang cff032ca54 Merge "Remove the prebuilt tools cleanstep logic." 2015-12-15 21:45:44 +00:00
Ying Wang a79e1324a0 Remove the prebuilt tools cleanstep logic.
We switched to running prebuilt host tools in place in
prebuilts/sdk/tools in TARGET_BUILD_APPS build. This logic is no longer
needed.

Change-Id: Ibf88b3c0a09fb3a1a04b25403457c48851ecc6f4
2015-12-15 12:39:02 -08:00
Ying Wang 8449b88b2e Merge "Disable .toc optimization for host modules."
am: 7b92312ea1

* commit '7b92312ea1184fc50b230f68214fe6ae9d3f597d':
  Disable .toc optimization for host modules.
2015-12-15 19:22:37 +00:00
Ying Wang 7b92312ea1 Merge "Disable .toc optimization for host modules." 2015-12-15 18:56:39 +00:00
Ying Wang c01f2dcb10 Disable .toc optimization for host modules.
Host binaries may be run during the build process and the internal
implementation of the shared libraries makes a difference for the build
result. This change makes sure host tools get re-linked and re-run when
any of its dependency libraries gets updated.
DEX2OAT is such a host tool. We also changed DEX2OAT as full dependency
of dex-preoptimization, so we rebuild the odex files if DEX2OAT itself,
or any dependency libraries changed.

Bug: 24597504
Change-Id: Idf0d9be82ccebd826d9c5b405a39cff437e0af29
2015-12-15 10:00:19 -08:00
Alex Klyubin fe7c1e59d1 Move signapk sources to src dir.
This also makes source files follow the standard directory structure
based on Java package names.

Bug: 25794543
Change-Id: Ie0b568057f836e56407f76d29eeacd28ab907ba8
2015-12-15 09:08:45 -08:00
Shinichiro Hamaji 0d4a0a9dd5 Merge "Reduce unnecessary rebuilds of .dex files with restat=1"
am: 542aa57f1d

* commit '542aa57f1d48b1a8f4afa71d6635f8ed93c82289':
  Reduce unnecessary rebuilds of .dex files with restat=1
2015-12-15 16:05:10 +00:00
Than McIntosh 2c3b926ab3 Re-enable gold linker for aarch64.
Turn back on ld.gold and W-l,--icf=safe for
aarch64, now that the prebuilt ld.gold has been updated
with support for reloc 311/312 (fixed upstream, see
https://sourceware.org/bugzilla/show_bug.cgi?id=19042)

Bug: 25642296
Bug: 26153840

Change-Id: Idceb357a48d9da4eec38ab8f2103245d500622ae
2015-12-15 09:27:19 -05:00
Shinichiro Hamaji 542aa57f1d Merge "Reduce unnecessary rebuilds of .dex files with restat=1" 2015-12-15 06:27:31 +00:00
Elliott Hughes b96f6bad55 Merge "Turn on stack protector for mips64."
am: 6725b4b004

* commit '6725b4b004b45cd4cf3ed2ebdb40daf194e0b733':
  Turn on stack protector for mips64.
2015-12-14 23:13:48 +00:00
Elliott Hughes 0391338750 Merge "Turn on stack protector for mips."
am: 391caae952

* commit '391caae9528a5e7cc77763be6f456bd01325f66e':
  Turn on stack protector for mips.
2015-12-14 23:13:31 +00:00
Elliott Hughes 6725b4b004 Merge "Turn on stack protector for mips64." 2015-12-14 22:48:38 +00:00
Elliott Hughes 09ba4c870d Turn on stack protector for mips64.
Go straight to -fstack-protector-strong, since it works to boot the emulator.

Change-Id: I2b65a0ab4426856ae05f66c1e294951e45bd72b6
2015-12-14 14:46:38 -08:00
Elliott Hughes 391caae952 Merge "Turn on stack protector for mips." 2015-12-14 22:46:23 +00:00
Elliott Hughes b9b89e9385 Turn on stack protector for mips.
Go straight to -fstack-protector-strong, since it works to boot the emulator.

Change-Id: Ie44abd869355d2163dec7d9e2635b26b45255df6
2015-12-14 14:15:12 -08:00
Elliott Hughes d3eae50874 Merge "Enable -fstack-protector-strong for x86-64."
am: 02191c97ef

* commit '02191c97effe88dddfd60b365a9c408861ba8870':
  Enable -fstack-protector-strong for x86-64.
2015-12-14 13:54:03 -08:00
Elliott Hughes 39d848b1b4 Merge "Be smarter about stack-protector on the host."
am: 19e85a25ee

* commit '19e85a25eefe5fbb12a7121a6b87a0e5d87be39b':
  Be smarter about stack-protector on the host.
2015-12-14 13:53:53 -08:00
Elliott Hughes 02191c97ef Merge "Enable -fstack-protector-strong for x86-64." 2015-12-14 21:45:40 +00:00
Elliott Hughes 19e85a25ee Merge "Be smarter about stack-protector on the host." 2015-12-14 21:41:58 +00:00
Elliott Hughes 505e4ec646 Be smarter about stack-protector on the host.
Some projects are still built with our host GCC 4.8, which doesn't
support -fstack-protector-strong. The combo .mk files are used by
GCC and clang, so it's not safe to turn on -fstack-protector-strong
there. Instead, do it in the clang-specific .mk for now.

We can clean this up when elfutils (the last code built for the host
with GCC that I'm aware of) is built by clang. We'll be able to
remove the host GCC prebuilts too!

Change-Id: I314b9eab071c132a8e2cb8cc779a75ae8abb12e2
2015-12-14 13:20:59 -08:00
Elliott Hughes 49d443b6f7 Merge "Enable -fstack-protector-strong for x86."
am: 7abad39b78

* commit '7abad39b78225d2517bc46dff3192ea001184947':
  Enable -fstack-protector-strong for x86.
2015-12-14 13:16:22 -08:00
Elliott Hughes 7abad39b78 Merge "Enable -fstack-protector-strong for x86." 2015-12-14 21:05:21 +00:00
Elliott Hughes 3313f0b094 Merge "Enable -fstack-protector-strong for the host."
am: a4b3d20d28

* commit 'a4b3d20d28da1f86dde6063b732c75cf238976ee':
  Enable -fstack-protector-strong for the host.
2015-12-14 12:44:02 -08:00
Elliott Hughes a4b3d20d28 Merge "Enable -fstack-protector-strong for the host." 2015-12-14 20:31:10 +00:00
Elliott Hughes 2747fa8f87 Enable -fstack-protector-strong for arm64.
This results in nearly all functions with the possibility of stack
corruption getting stack canaries, because it applies to any function
taking a reference to the frame or with a local array rather than just
the functions with arrays larger than 8 bytes. It was developed for use
in Chrome (and Chrome OS) and has also been adopted by various other
distributions (Arch, Fedora, Ubuntu, etc).

The code size increase ranges from ~1.5% to ~2.5%, compared to ~0.3% to
~0.7% with the more conservative switch. The increase in the performance
loss is usually minimal. The overall size increase once everything other
than C and C++ code is taken into account is minimal, and it greatly
improves the mitigation of stack buffer overflow vulnerabilities.

https://lwn.net/Articles/584225/

Change-Id: I2fb7f0bfccbfa5d22ca8858309a133469edbc7b6
2015-12-14 11:18:24 -08:00
Elliott Hughes c8cc919db5 Enable -fstack-protector-strong for arm.
This results in nearly all functions with the possibility of stack
corruption getting stack canaries, because it applies to any function
taking a reference to the frame or with a local array rather than just
the functions with arrays larger than 8 bytes. It was developed for use
in Chrome (and Chrome OS) and has also been adopted by various other
distributions (Arch, Fedora, Ubuntu, etc).

The code size increase ranges from ~1.5% to ~2.5%, compared to ~0.3% to
~0.7% with the more conservative switch. The increase in the performance
loss is usually minimal. The overall size increase once everything other
than C and C++ code is taken into account is minimal, and it greatly
improves the mitigation of stack buffer overflow vulnerabilities.

https://lwn.net/Articles/584225/

Change-Id: Iccc20852db8a5e4dd9792f9da6d5e325fc59b0a5
2015-12-14 11:17:08 -08:00
Elliott Hughes 5324c3c19f Enable -fstack-protector-strong for x86-64.
This results in nearly all functions with the possibility of stack
corruption getting stack canaries, because it applies to any function
taking a reference to the frame or with a local array rather than just
the functions with arrays larger than 8 bytes. It was developed for use
in Chrome (and Chrome OS) and has also been adopted by various other
distributions (Arch, Fedora, Ubuntu, etc).

The code size increase ranges from ~1.5% to ~2.5%, compared to ~0.3% to
~0.7% with the more conservative switch. The increase in the performance
loss is usually minimal. The overall size increase once everything other
than C and C++ code is taken into account is minimal, and it greatly
improves the mitigation of stack buffer overflow vulnerabilities.

https://lwn.net/Articles/584225/

Change-Id: I3ce7a73c5cf36eba5c74df37367f3d3475b0a4ed
2015-12-14 11:16:20 -08:00
Elliott Hughes 8ebc4d6aab Enable -fstack-protector-strong for x86.
This results in nearly all functions with the possibility of stack
corruption getting stack canaries, because it applies to any function
taking a reference to the frame or with a local array rather than just
the functions with arrays larger than 8 bytes. It was developed for use
in Chrome (and Chrome OS) and has also been adopted by various other
distributions (Arch, Fedora, Ubuntu, etc).

The code size increase ranges from ~1.5% to ~2.5%, compared to ~0.3% to
~0.7% with the more conservative switch. The increase in the performance
loss is usually minimal. The overall size increase once everything other
than C and C++ code is taken into account is minimal, and it greatly
improves the mitigation of stack buffer overflow vulnerabilities.

https://lwn.net/Articles/584225/

Change-Id: I55a9fdbf5777ccdeed9f2e9a23c73bb94ad7b646
2015-12-14 11:15:15 -08:00
Elliott Hughes ae316d2d59 Enable -fstack-protector-strong for the host.
This results in nearly all functions with the possibility of stack
corruption getting stack canaries, because it applies to any function
taking a reference to the frame or with a local array rather than just
the functions with arrays larger than 8 bytes. It was developed for use
in Chrome (and Chrome OS) and has also been adopted by various other
distributions (Arch, Fedora, Ubuntu, etc).

The code size increase ranges from ~1.5% to ~2.5%, compared to ~0.3% to
~0.7% with the more conservative switch. The increase in the performance
loss is usually minimal. The overall size increase once everything other
than C and C++ code is taken into account is minimal, and it greatly
improves the mitigation of stack buffer overflow vulnerabilities.

https://lwn.net/Articles/584225/

Change-Id: I97a2187cebac64e3b9f22b691d4676b6da083ebd
2015-12-14 11:14:21 -08:00
Shinichiro Hamaji f972a4a980 Reduce unnecessary rebuilds of .dex files with restat=1
The .dex.toc files are created by dexdump, which outputs all
information in a .dex file which may affect compilation of
other modules.

For prebuilt java libraries and static java libraries, we'll
output empty .toc files and don't set restat=1. .dex.toc files
are necessary even for static java libraries because they can
be referenced by LOCAL_JAVA_LIBRARIES (instead of
LOCAL_STATIC_JAVA_LIBRARIES).

We don't use this optimization for apps build. We cannot build
dexdump for apps build due to lack of libc++.

Performance:

$ m && touch \
  frameworks/base/core/java/com/google/android/util/Procedure.java \
  && time m
Before: 3m48s
After: 1m46s

Bug: 24597504
Change-Id: Id1665923b414dee705dc60af4c021390a19ea26f
2015-12-14 19:07:34 +09:00
Stephen Hines 67b6cc2201 Merge "Revert "Change USE_CLANG_PLATFORM_BUILD default to true.""
am: eca3206abb

* commit 'eca3206abbf2223d6bc6c1c4337c911077fc2897':
  Revert "Change USE_CLANG_PLATFORM_BUILD default to true."
2015-12-13 15:10:18 -08:00
Stephen Hines eca3206abb Merge "Revert "Change USE_CLANG_PLATFORM_BUILD default to true."" 2015-12-13 23:06:03 +00:00
Stephen Hines 7a0c88ec3e Revert "Change USE_CLANG_PLATFORM_BUILD default to true."
This reverts commit 3c8036da53.

Change-Id: I930bbebce8396d7c0abd847530640a696d3418e7
2015-12-13 22:58:22 +00:00
Nick Kralevich abfd39ae3a Merge "sepolicy: Fix \'avc denied\' issues for the emulators"
am: 154657f0e3

* commit '154657f0e371a3ff180e8b0936aeaa3d2da9a57c':
  sepolicy: Fix 'avc denied' issues for the emulators
2015-12-11 17:14:51 -08:00
Nick Kralevich 154657f0e3 Merge "sepolicy: Fix 'avc denied' issues for the emulators" 2015-12-12 01:07:07 +00:00
Dan Albert 3340159339 Merge "Use lib64 for mips64 as well."
am: 6674573897

* commit '667457389791a505660e102bc2bdde1362543e37':
  Use lib64 for mips64 as well.
2015-12-11 16:21:35 -08:00
Dan Albert 6674573897 Merge "Use lib64 for mips64 as well." 2015-12-12 00:09:16 +00:00
Dan Albert 445bc2fc2d Use lib64 for mips64 as well.
This was previously working because for some reason prebuilts/ndk had
a tangled mess of hand assembled symlinks that pointed lib -> lib64
for the multilib architectures.

Change-Id: I294d67f58f2008b1a53790cf676f5223df449cbc
2015-12-11 15:04:59 -08:00
Dan Willemsen 33b4913adf Merge "Enforce linker version-scripts are valid"
am: e223965f0c

* commit 'e223965f0c26c1cba020a47cb41ba109dd308db8':
  Enforce linker version-scripts are valid
2015-12-11 13:05:28 -08:00
Dan Willemsen e223965f0c Merge "Enforce linker version-scripts are valid" 2015-12-11 20:58:03 +00:00
Alex Klyubin dfd2199ef6 Merge "Make signapk use Conscrypt."
am: 7884a63731

* commit '7884a63731a876f483c13288c87d8e7af7a533e4':
  Make signapk use Conscrypt.
2015-12-11 10:37:16 -08:00
Alex Klyubin 7884a63731 Merge "Make signapk use Conscrypt." 2015-12-11 18:29:36 +00:00
Chih-hung Hsieh a3fbb3b0e4 Merge "Change USE_CLANG_PLATFORM_BUILD default to true."
am: eb486309d8

* commit 'eb486309d8860babc0ed5fc725009e6c53eae2dd':
  Change USE_CLANG_PLATFORM_BUILD default to true.
2015-12-11 09:08:07 -08:00
Chih-hung Hsieh eb486309d8 Merge "Change USE_CLANG_PLATFORM_BUILD default to true." 2015-12-11 16:54:13 +00:00
Alex Klyubin 9667b18f23 Make signapk use Conscrypt.
This makes the signapk tool use Conscrypt (where possible) instead of
the platform-default JCA providers and the Bouncy Castle JCA provider.
This speeds up (by 10-30%) APK and OTA update signing because
Conscrypt's crypto primitives are backed by BoringSSL.

Previously, the signapk tool consisted only of the signapk.jar.
Because Conscrypt is backed by native code, signapk now consists of
signapk.jar and crypto_openjdk_jni shared library. This requires that
users of the tool be updated to provide a suitable -Djava.library.path
argument to the Java runtime. This change updates all known users of
the tool inside the Android source tree to do so.

Bug: 26097626
Change-Id: I8411b37d7f771ed99269751a3007dff103083552
2015-12-11 08:36:42 -08:00
Miroslav Tisma 36a76ec098 sepolicy: Fix 'avc denied' issues for the emulators
This commit fixes the avc denied issues in the emulators:
- goldfish_setup is granted for network access
- netd dontaudit for sys_module
- qemu_prop is granted domain for get_prop

Critical issue was that SELinux denied reading the lcd_density property
by SurfaceFlinger via qemu_prop and this commit fixes it.

Change-Id: I633d96f4d2ee6659f18482a53e21f816abde2a5f
Signed-off-by: Miroslav Tisma <miroslav.tisma@imgtec.com>
2015-12-11 16:21:00 +01:00
Chih-Hung Hsieh 3c8036da53 Change USE_CLANG_PLATFORM_BUILD default to true.
When USE_CLANG_PLATFORM_BUILD is not set, default will be clang/llvm.
USE_CLANG_PLATFORM_BUILD=false can be used to select gcc as default.

BUG: 23163853
BUG: 26102335

Change-Id: I00604c2aef4849e8c3505b2c4002eb1c46cd1fd1
2015-12-10 14:41:55 -08:00
Alex Deymo 2001743c7a Merge "Rename libext2 host libraries to standard suffix."
am: 6950168f1d

* commit '6950168f1d4bd6ddfd64755c26d7de6ef3709f00':
  Rename libext2 host libraries to standard suffix.
2015-12-10 14:28:46 -08:00
Alex Deymo 6950168f1d Merge "Rename libext2 host libraries to standard suffix." 2015-12-10 22:18:34 +00:00
Mike Frysinger 86f12e6dcb Merge "sepolicy: drop -- marker"
am: 50f21eb113

* commit '50f21eb113e533d46d9ccd112cc211070009cabc':
  sepolicy: drop -- marker
2015-12-10 10:36:15 -08:00