am e599c468: am cfeacbdd: Merge "Remove unnecessary compiler pragma."

* commit 'e599c4684ac47fe6417b9c482b7ff651513988ff':
  Remove unnecessary compiler pragma.
am aa5ba914: am e599c468: am cfeacbdd: Merge "Remove unnecessary compiler pragma."

* commit 'aa5ba91402f60e6beba38d45903a71366ad3c9c1':
  Remove unnecessary compiler pragma.
am 01831860: am aa5ba914: am e599c468: am cfeacbdd: Merge "Remove unnecessary compiler pragma."

* commit '01831860d8ca617757a4449a01b6e79d5a71eaeb':
  Remove unnecessary compiler pragma.
Remove /sdcard hack for shell users.

Using a /storage/sdcard0 symlink and a tmpfs staging area was used
to enable "/sdcard" paths for both zygote processes and the shell
user, but it breaks on devices with both emulated and physical
external storage.

Specifically, vold can't mount a physical sdcard onto the primary
storage symlink, and zygote can't re-bind-mount when secondary
storage is remounted after dropping privileges.

Bug: 7094858, 7064600
Change-Id: Id91e3b3e521a3b3e1bb5358920adc66a0a43917f
am 21c93dc7: Remove /sdcard hack for shell users.

* commit '21c93dc795dfbea3932e0273b1aa873051dde72c':
  Remove /sdcard hack for shell users.
am b9b46a96: am 21c93dc7: Remove /sdcard hack for shell users.

* commit 'b9b46a963335146effbe1ee3353a426509c9f51d':
  Remove /sdcard hack for shell users.
merge in jb-mr1-release history after reset to jb-mr1-dev
Reconcile with jb-mr1-release - do not merge

Change-Id: I919d616f469b7ec741740c5eaadc076d7aa40dcc
am fd1c8ee2: (-s ours) Reconcile with jb-mr1-release - do not merge

* commit 'fd1c8ee2d601140bf25172be3232c6262dae3f0c':
Fix a bug where debugInfos' size wasn't being computed. do not merge.

Previously debugInfos' size of 0 caused a malformed dex file
because debug data was present but not mentioned in the table
of contents.

(cherry picked from commit 55ac44b64744cd5692d6495bca99dfc8181e0cfc)

Change-Id: I2084c06521ea200772c523cdaa28c8019fa76025
Fix a bug where the max blowup of annotations was incorrect. do not merge.

I'm not sure where the 1.34 number comes from but it's incorrect.
From the spec, the encoded_annotation is made up of a single byte
plus an unlimited number of uleb128 values. Each of these values
can double in width in the worst case. I received (personal) email
from one user who'd run into a case worse than the incorrect 1.34
limit.

(cherry picked from commit bf7dfeea94f21dd0e097cf5f786f9995722fd70d)

Change-Id: I033a0d76ea0324d434d732e7757df0c3fd925b68
Fix an ugly bug where try/catch offsets weren't being mapped properly. do not merge.

In dex files, there are several places where one object refers
to another object by its position in the file. The dex merger
is generally very careful to adjust these mappings when combining
dex files.

Unfortunately one of these cases was broken. Each try_item refers
to a corresponding encoded_catch_handler by its byte offset in a
list. Most of the time this byte offset is the same in the input
dex file and the output dex file. But encoded_catch_handlers are
variable-length because they use a variable-length uleb128 encoding
to address the type_idx being caught. When dex files are merged,
some exception types may go from having a small index to having
a large index, increasing the number of bytes required to encode
that index. This breaks our ability to directly copy over offsets
as we were doing previously.

Bug: http://code.google.com/p/android/issues/detail?id=36490

(cherry picked from commit d43341a24abe339d474b0b0d92669917ae2eb9bf)

Change-Id: I4e6ab791925a918513122b46e039c02dfef62ace
Include user identifier in external storage paths.

When building external storage paths, always include user in path
to enable cross-user paths and aid debugging.

Each Zygote process continues to only have access to the appropriate
user-specific emulated storage through bind mounts. A second set of
mounts continue supporting legacy /sdcard-style paths. For example,
a process running as owner has these mount points:

/storage/emulated_legacy
/storage/emulated_legacy/Android/obb
/storage/emulated/0
/storage/emulated/obb

This change also creates two nested namespaces around zygote. The
first namespace is created when the zygote starts, and it holds a
single writable tmpfs, since rootfs is ro. The second namespace is
created quickly after forking, and is used to hold the private
user-specific bind mounts. (This design saves us from creating a
tmpfs-per-process.)

Bug: 7131382
Change-Id: Id80403ec956f0bff6997411cb1f82f273c76b85f
Test if new build is kicked off.

Change-Id: Ia6a25f00cb28e80111b78d87180575d57c55b062
am d8de46c4: Include user identifier in external storage paths.

* commit 'd8de46c475830792eeb6fb0f7b59aab51f55e817':
  Include user identifier in external storage paths.
Missing EMULATED_STORAGE_TARGET isn't an error.

Devices without emulated storage should just skip the tmpfs.

Bug: 7131382
Change-Id: I9c697e4faf7864ec3a2695cd3770fbf0c9a5cce3
merge in jb-mr1-release history after reset to jb-mr1-dev
Reconcile with jb-mr1-release - do not merge

Change-Id: I69693578d4b42350ec5f5cd4843f45a2234acbe4
Reconcile with jb-release - do not merge

Change-Id: I20cffa47e360af1eac86d8a04aa53441f9260bc6
am 91a17e5e: (-s ours) Reconcile with jb-release - do not merge

* commit '91a17e5e78ddc49b761133151831770379dc777f':
  Test if new build is kicked off.