Commit Graph

15102 Commits

Author SHA1 Message Date
Colin Cross 58d879f4f4 don't rename 32-bit packages to *_32
Renaming 32-bit packages to *_32 breaks PRODUCT_PACKAGES dependencies.

Change-Id: I5457c07b64885d77a6bd8fbcbba97d28393c581d
2014-02-06 15:31:02 -08:00
Elliott Hughes 8b20d5b97e Merge "Turn 64-bit-related warnings into errors on 64-bit builds." 2014-02-06 20:54:05 +00:00
Elliott Hughes efb9603aeb Merge "[MIPS64] Add mips64 target" 2014-02-06 20:14:56 +00:00
Chris Dearman 1efd9e462a [MIPS64] Add mips64 target
Change-Id: Ice1621101c0d5a3314db288542ca8020e3f406bf
Signed-off-by: Duane Sand <duane.sand@imgtec.com>
2014-02-05 19:07:57 -08:00
Christopher Ferris afbbce3ff1 Merge "Add library test makefile solutions." 2014-02-06 02:16:35 +00:00
Elliott Hughes 18042e1960 Turn 64-bit-related warnings into errors on 64-bit builds.
I don't think we can realistically turn this on for 32-bit builds any
time soon.

Also, fix the arm64 stack-protector hack.

Change-Id: Ie1e7c875bbc06fb21bb372b8ca99879a23ef53d4
2014-02-05 17:40:02 -08:00
Christopher Ferris 70ca5e5b39 Add library test makefile solutions.
Change-Id: Ibc8df9b0e2342683158936bf011425780df8f02a
2014-02-05 16:36:42 -08:00
Colin Cross 054b0274fc Merge topic 'arm64'
* changes:
  add support for more LOCAL_*_arch variables
  don't rename 32-bit executables to *_32
  remove 2nd arch from ARCH_ARM_* defines
2014-02-05 23:57:08 +00:00
Colin Cross 717de0f553 Merge "Fix installing 2nd arch shared libraries" 2014-02-05 23:55:54 +00:00
Colin Cross 90353fe86f add support for more LOCAL_*_arch variables
Add support for:
LOCAL_SHARED_LIBRARIES_arch
LOCAL_STATIC_LIBRARIES_arch
LOCAL_WHOLE_STATIC_LIBRARIES_arch
LOCAL_GENERATED_SOURCES_arch
LOCAL_REQUIRED_MODULES_arch

Change-Id: Iad91702e140d8dba7dcaee13f236c77b1e626a34
2014-02-04 19:44:57 -08:00
Colin Cross 5394bf1950 Fix installing 2nd arch shared libraries
2ND_TARGET_DEPENDENCIES_ON_SHARED_LIBRARIES was not set,
which was causing the later += to act like = instead of
:=, and the dependencies would disappear as soon as
LOCAL_MODULE was cleared.

Change-Id: Idea291524fc06377deafec62f37d20eaa7f93bca
2014-02-04 19:44:09 -08:00
Colin Cross aee1e779f4 don't rename 32-bit executables to *_32
Renaming 32-bit executables to *_32 breaks PRODUCT_PACKAGES
dependencies.

Change-Id: I53d89991633ef4af03c4e618c463769937a70e38
2014-02-04 19:44:09 -08:00
Colin Cross ec14ce578b remove 2nd arch from ARCH_ARM_* defines
Users of ARCH_ARM_* defines don't care about first vs. second arch,
set ARCH_ARM_* regardless of which arch is arm.

Change-Id: I2ae83ec5c3f839ff91a0e352c95d76ec2cbd5dc5
2014-02-04 19:44:09 -08:00
David 'Digit' Turner b0dac93412 Add missing font files to SDK system images.
This adds a few missing font families to SDK system images.
This allows, in particular, support for the Korean language.

Note that this depends on other patches under device/generic/
to fix some board and product configuration files, otherwise
this change will have no effect.

See http://b.android.com/40340

Change-Id: Idba6471de32232833f511a4da97fd652906fec51
2014-02-04 14:49:23 +01:00
Tim Murray 5352018b0b Merge "Add new rs directory to list of Java subdirs of fw/base." 2014-02-03 22:35:54 +00:00
Ying Wang a77456b8e8 Merge "Dedup the targets and dependencies of required modules." 2014-02-01 03:25:47 +00:00
Ying Wang 3136010cdd Dedup the targets and dependencies of required modules.
For whatever reason, two modules may have the same file as their
installed module. In that case circular dependency is created if the two
modules have requited-by relation.

Change-Id: I15ed271ca3f3c343e4662182ded5ccc63d6c42cc
2014-01-31 19:22:35 -08:00
Tim Murray f6752d303f Add new rs directory to list of Java subdirs of fw/base.
Change-Id: I3213a314e7700162e781526c0450678495442759
2014-01-31 12:32:42 -08:00
Mårten Kongstad 2e1ade925c Runtime resource overlay, iteration 2
Support any number of overlay packages. Support any target package.

UPDATED PACKAGE MATCHING
------------------------
In Runtime resource overlay, iteration 1, only a single overlay package
was considered. Package matching was based on file paths:
/vendor/overlay/system/framework-res.apk corresponded to
/system/framework-res.apk. Introduce a more flexible matching scheme
where any package is an overlay package if its manifest includes

    <overlay targetPackage="com.target.package"/>

For security reasons, an overlay package must fulfill certain criteria
to take effect: see below.

THE IDMAP TOOL AND IDMAP FILES
------------------------------
Idmap files are created by the 'idmap' binary; idmap files must be
present when loading packages. For the Android system, Zygote calls
'idmap' as part of the resource pre-loading. For application packages,
'idmap' is invoked via 'installd' during package installation (similar
to 'dexopt').

UPDATED FLOW
------------
The following is an outline of the start-up sequences for the Android
system and Android apps. Steps marked with '+' are introduced by this
commit.

Zygote initialization
   Initial AssetManager object created
+    idmap --scan creates idmaps for overlays targeting 'android', \
           stores list of overlays in /data/resource-cache/overlays.list
   AssetManager caches framework-res.apk
+  AssetManager caches overlay packages listed in overlays.list

Android boot
   New AssetManager's ResTable acquired
     AssetManager re-uses cached framework-res.apk
+    AssetManager re-uses cached 'android' overlays (if any)

App boot
   ActivityThread prepares AssetManager to load app.apk
+  ActivityThread prepares AssetManager to load app overlays (if any)
   New AssetManager's ResTable acquired as per Android boot

SECURITY
--------
Overlay packages are required to be pre-loaded (in /vendor/overlay).
These packages are trusted by definition. A future iteration of runtime
resource overlay may add support for downloaded overlays, which would
likely require target and overlay signatures match for the overlay to
be trusted.

LOOKUP PRIORITY
---------------
During resource lookup, packages are sequentially queried to provide a
best match, given the constraints of the current configuration. If any
package provide a better match than what has been found so far, it
replaces the previous match. The target package is always queried last.

When loading a package with more than one overlay, the order in which
the overlays are added become significant if several packages overlay
the same resource.

Had downloaded overlays been supported, the install time could have been
used to determine the load order. Regardless, for pre-installed
overlays, the install time is randomly determined by the order in which
the Package Manager locates the packages during initial boot. To support
a well-defined order, pre-installed overlay packages are expected to
define an additional 'priority' attribute in their <overlay> tags:

    <overlay targetPackage="com.target.package" priority="1234"/>

Pre-installed overlays are loaded in order of their priority attributes,
sorted in ascending order.

Assigning the same priority to several overlays targeting the same base
package leads to undefined behaviour. It is the responsibility of the
vendor to avoid this.

The following example shows the ResTable and PackageGroups after loading
an application and two overlays. The resource lookup framework will
query the packages in the order C, B, A.

        +------+------+-     -+------+------+
        | 0x01 |      |  ...  |      | 0x7f |
        +------+------+-     -+------+------+
            |                           |
        "android"                Target package A
                                        |
                       Pre-installed overlay B (priority 1)
                                        |
                       Pre-installed overlay C (priority 2)

Change-Id: If49c963149369b1957f7d2303b3dd27f669ed24e
2014-01-31 14:44:07 +01:00
Ben Cheng 5608a8c6e8 Merge "Add 64-bit gdbclients." 2014-01-30 22:01:33 +00:00
Brian Carlstrom aae4704465 Merge "CleanSpec for 49f1fab8a5b82f6224ff1be601037270ecdb734b: Rename persist.sys.dalvik.vm.lib to allow new default" 2014-01-30 22:00:33 +00:00
Brian Carlstrom e71d9a2fd9 CleanSpec for 49f1fab8a5b82f6224ff1be601037270ecdb734b: Rename persist.sys.dalvik.vm.lib to allow new default
Change-Id: I3ed55460864c17a199053a058b2482c6c4579622
2014-01-30 13:56:51 -08:00
Serban Constantinescu 9b68fb2837 Add 64-bit gdbclients.
This patch adds gdbclient combo for arm64, mips64, and x86_64.

Change-Id: I659b662276c93e5cce92aadc203a4bc111f5c2af
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
2014-01-30 13:55:46 -08:00
Brian Carlstrom 601d39b688 Merge "build: Rename persist.sys.dalvik.vm.lib to allow new default" 2014-01-30 21:50:48 +00:00
Brian Carlstrom 49f1fab8a5 build: Rename persist.sys.dalvik.vm.lib to allow new default
Bug: 12798969
Change-Id: Ie73a3f2b6655d0ae3e3a905a1c64747343c525a0
2014-01-30 13:16:37 -08:00
Brian Carlstrom 084209e278 Merge "CleanSpec for 08d410f53249c18d752f56a881ed2335403080d4: Make libart the default runtime" 2014-01-30 21:10:25 +00:00
Ian Rogers e854276dd1 Merge "Disable WITH_HOST_DALVIK on 64bit host builds." 2014-01-30 19:54:04 +00:00
Brian Carlstrom 6acec48274 CleanSpec for 08d410f53249c18d752f56a881ed2335403080d4: Make libart the default runtime
Change-Id: Id632beeb2f96dd4502ac4a6c03bab5e4252137ff
2014-01-30 11:11:38 -08:00
Ian Rogers d206afecb8 Disable WITH_HOST_DALVIK on 64bit host builds.
Change-Id: I8cea32fe5541c3223e7f317245aab3061e8ad444
2014-01-30 08:55:17 -08:00
Narayan Kamath ad9209adff Merge "Define __STDC_FORMAT_MACROS on Windows host builds." 2014-01-30 09:39:33 +00:00
Ian Rogers 694b2b7b12 Define __STDC_FORMAT_MACROS on Windows host builds.
Change-Id: I89b54a63c3f111b8242fe9e813d94a839c484195
2014-01-29 21:37:37 -08:00
Colin Cross a8e6166fa4 Merge "build: rename LOCAL_32BIT_ONLY to LOCAL_32_BIT_ONLY" 2014-01-30 04:06:42 +00:00
Colin Cross 2dcaf9f489 Merge "build: support LOCAL_*_32 and LOCAL_*_64" 2014-01-30 04:06:05 +00:00
Colin Cross 78d642f426 build: rename LOCAL_32BIT_ONLY to LOCAL_32_BIT_ONLY
Rename for consistency with TARGET_IS_64_BIT.

Change-Id: I824dcaed0c1e88b8246bcffb21ab3f1772175926
2014-01-29 18:35:23 -08:00
Colin Cross 44a752659c build: support LOCAL_*_32 and LOCAL_*_64
Support the following new variables based on whether the current multilib
target is 32 bit or 64 bit:
LOCAL_CFLAGS_32
LOCAL_CFLAGS_64
LOCAL_LDFLAGS_32
LOCAL_LDFLAGS_64
LOCAL_ASFLAGS_32
LOCAL_ASFLAGS_64
LOCAL_C_INCLUDES_32
LOCAL_C_INCLUDES_64

Change-Id: Ia868d56dff114be301bf8297eec768675f186927
2014-01-29 18:35:23 -08:00
Ian Rogers 805cb8fa40 Merge "Fix the host inttypes.h problem globally." 2014-01-30 00:33:35 +00:00
Ian Rogers 61e5059ef7 Fix the host inttypes.h problem globally.
Bug: 12708004
Change-Id: I2c75647bac304b82e150c540b9e6c5568997596d
2014-01-29 16:29:11 -08:00
Brian Carlstrom cece05e273 Merge "Bump generic_mips BOARD_SYSTEMIMAGE_PARTITION_SIZE for PRODUCT_RUNTIME := libart_runtime_default" 2014-01-29 20:21:27 +00:00
Brian Carlstrom 4d662a63a4 Bump generic_mips BOARD_SYSTEMIMAGE_PARTITION_SIZE for PRODUCT_RUNTIME := libart_runtime_default
(cherry picked from commit c8501bffcb)

Change-Id: I12ce7c4e383e74e54d77b54a0406d2499699edbf
2014-01-28 23:43:40 -08:00
Elliott Hughes 472a48585e Merge "gtest needs -lpthread." 2014-01-29 01:45:17 +00:00
Elliott Hughes 52e52d1447 gtest needs -lpthread.
Host gtests that don't use pthreads themselves need to be linked
against libpthread because gtest itself uses pthreads to ensure
thread-safety. (It can't know in advance whether the code under
test is going to spin up threads, so it has to be pessimistic.)

Change-Id: I14fb1098c163d7fe6ae9a9a0314acead4ec9383d
2014-01-28 17:32:30 -08:00
Brian Carlstrom d21197d50c Merge "Make libart the default runtime" 2014-01-29 00:32:23 +00:00
Elliott Hughes 1a731adf94 Merge "Fix KERNEL_HEADERS_ARCH for mips and x86." 2014-01-28 21:23:07 +00:00
Elliott Hughes 171e940c7a Fix KERNEL_HEADERS_ARCH for mips and x86.
arm and arm64 have distinct headers, but mips and mip64, and x86 and x86_64
use headers that work for both widths. So where arm/arm64 need to handle the
second architecture case specially, all we need to do for the others is
hard-code the name. (x86_64.mk already hard-codes x86; we need to change
x86.mk for the case where we're building the 32-bit binaries for a mixed
system. mips64.mk doesn't exist yet, but when it does, it'll hard-code
just plain "mips" too.)

Change-Id: Ia6b9f77b4eb2c78729b454045875c409e0ea8197
2014-01-28 13:10:19 -08:00
Brian Carlstrom 49eb440980 Merge "build: PRODUCT_DEX_PREOPT_IMAGE_IN_DATA" 2014-01-28 20:45:32 +00:00
Brian Carlstrom 8fb5dfc5c7 build: PRODUCT_DEX_PREOPT_IMAGE_IN_DATA
(cherry-picked from commit cd337c71ee65b17529a67af34d4c0b2824a4f175)

Change-Id: I6d8ab3b3cf52f6a6b15f1c8e8d00cdf59042436b
2014-01-28 11:29:58 -08:00
Brian Carlstrom 08d410f532 Make libart the default runtime
Change-Id: I4394f2bdef6f1be36f0f17f3b42d3e62bc2245ef
2014-01-28 09:52:15 -08:00
Colin Cross cdd1475834 Merge "Add support for TARGET_GLOBAL_UNSUPPORTED_CFLAGS" 2014-01-28 02:25:45 +00:00
Colin Cross 8f47fc379e Add support for TARGET_GLOBAL_UNSUPPORTED_CFLAGS
To ease the transition between toolchains, allow a target to specify
a list of cflags that the toolchain does not support.  These will be
filtered out of the cflags provided by the module.

Add TARGET_GLOBAL_UNSUPPORTED_CFLAGS := -fstack-protector for the
aarch64 toolchain, it does not yet suport -fstack-protector.

Change-Id: I168d0c6f131326fad305ec86fad46e6a3e03295a
2014-01-27 18:21:12 -08:00
Elliott Hughes 0a3cf1a0e5 Merge "Remove libthread_db from the default include path." 2014-01-28 00:00:19 +00:00