OSDN Git Service

android-x86/system-linkerconfig.git
3 years agoRemove reference between linkerconfig and system_linker_config
Kiyoung Kim [Fri, 27 Nov 2020 04:23:34 +0000 (13:23 +0900)]
Remove reference between linkerconfig and system_linker_config

system_linker_config will be handled from Makefile and dependency also
will be handled from Makefile directly. As dependency from linkerconfig
is no longer required, this change removes system_linker_config from
linkerconfig's required modules.

Bug: 172889962
Test: Build cuttlefish and confirmed list is generated in
/system/etc/linker.config.pb

Change-Id: I3c84064dcb478c0fc26bf906f80101baf5342f3b

3 years agoRename sharedApexLibs to requireSharedApexLibs
Kiyoung Kim [Mon, 23 Nov 2020 07:33:56 +0000 (16:33 +0900)]
Rename sharedApexLibs to requireSharedApexLibs

sharedApexLibs property from APEX manifest can be confused as there is a
property named provideSharedApexLibs. Rename sharedApexLibs to
requireSharedApexLibs for better readability.

Bug: 161542925
Test: m -j && atest sharedlibs_host_tests passed
Change-Id: Ib2bd408e13fc81f90f68a822b101e148dd1c401f

3 years agoUpdate path for SharedLibs APEX
Kiyoung Kim [Tue, 17 Nov 2020 14:16:34 +0000 (23:16 +0900)]
Update path for SharedLibs APEX

Update path for SharedLibs APEX so any mounted SharedLibs APEX can be
included in the permitted path.

Bug: 161542925
Test: foo_test and bar_test execution succeeded
Change-Id: I74e248cba4bfba8e3ea8e5c9b5628c665a02b52e

4 years agoMerge "Verify if APEX has any link with all libs allowed"
Kiyoung Kim [Fri, 13 Nov 2020 01:17:17 +0000 (01:17 +0000)]
Merge "Verify if APEX has any link with all libs allowed"

4 years agoVerify if APEX has any link with all libs allowed
Kiyoung Kim [Tue, 10 Nov 2020 01:46:09 +0000 (10:46 +0900)]
Verify if APEX has any link with all libs allowed

APEX modules should link to other namespaces with exact library list
rather than just allowing all libs to keep track of dependencies. This
change verifies if there are any APEX (except ART) which contains link
with all libs allowed.

Bug: 159302165
Test: atest passed
Change-Id: Ifdd7de179f8d420ec548b8ab11fcd137ceb1a3aa

4 years agoJNI libs should be visible to ART namespace
Jooyung Han [Fri, 6 Nov 2020 01:18:03 +0000 (10:18 +0900)]
JNI libs should be visible to ART namespace

JNI libs from apexes should be visible for libnativeloader to load them.

Bug: 172541385
Bug: 150767721
Bug: 172689934
Test: linkerconfig_diff_test
Test: loading jni libs from apexes
Change-Id: Ie6cd53fb0aef78132dccc4398270884f4455804b

4 years agoMerge "Get system's required/providing libraries from config file"
Kiyoung Kim [Tue, 10 Nov 2020 05:49:35 +0000 (05:49 +0000)]
Merge "Get system's required/providing libraries from config file"

4 years agoAdd support for test common APEX
Kiyoung Kim [Fri, 30 Oct 2020 06:36:12 +0000 (15:36 +0900)]
Add support for test common APEX

Add linkerconfig support for test common APEX. This change will add
extra permitted path to (test) common APEX when there is any library
referenced from the APEX module.

Bug: 161542925
Test: SharedLibsApexTest passed from crosshatch
Change-Id: I19813f72c251ae3e4a2b820ce52b33c9dbcfae6f

4 years agoGet system's required/providing libraries from config file
Kiyoung Kim [Wed, 21 Oct 2020 00:59:12 +0000 (09:59 +0900)]
Get system's required/providing libraries from config file

Currently most of system dependent libraries are listed in the source
code. To remove dependency between system image and linkerconfig, this
change makes linkerconfig to get those library list from configuration
file under /system/etc.

Bug: 168262631
Test: atest passed
Test: cuttlefish & crosshatch boot succeeded
Change-Id: I21653fb58d69417eda6c676f9dcb9b44e0ad764a

4 years agoUse LinkerConfig object directly
Kiyoung Kim [Wed, 21 Oct 2020 08:44:25 +0000 (17:44 +0900)]
Use LinkerConfig object directly

Last implementation on ApexInfo requires multiple copy of LinkerConfig
contents. To reduce number of information copy, this change makes
ApexInfo to use LinkerConfig object directly rather than copying
information.

Bug: 169634881
Test: atest passed
Change-Id: Ic1a0f58d3eecb2a5cde710bdda65e89b08d7d4ff

4 years agoMerge "Add extra dependencies for system namespace"
Kiyoung Kim [Tue, 20 Oct 2020 00:25:12 +0000 (00:25 +0000)]
Merge "Add extra dependencies for system namespace"

4 years agoMerge "Update configuration for linkerconfig as json/protobuf"
Kiyoung Kim [Tue, 20 Oct 2020 00:23:58 +0000 (00:23 +0000)]
Merge "Update configuration for linkerconfig as json/protobuf"

4 years agoAdd extra dependencies for system namespace
Kiyoung Kim [Fri, 16 Oct 2020 05:05:53 +0000 (14:05 +0900)]
Add extra dependencies for system namespace

Add extra dependencies between system namespace and Statsd APEX so
system namespace from non-system section can use libraries from statsd
APEX.

Bug: 170695190
Test: Cuttlefish boot succeeded
Change-Id: I512e1cd6731a7f31121f408ff6a2405275b136e0

4 years agoUpdate configuration for linkerconfig as json/protobuf
Kiyoung Kim [Tue, 6 Oct 2020 08:07:25 +0000 (17:07 +0900)]
Update configuration for linkerconfig as json/protobuf

Current configuration format is ini-like format which is not fully
defined so less extensible. This change updates configuration format
with json, and convert into protobuf which can be parsed easily at
runtime.

Bug: 169634881
Test: atest passed && cuttlefish boot succeeded
Change-Id: I818193e50e7fd33001ecdb2189c4e3d819bd4d7b

4 years agoMerge "Add additional vendor lib paths" am: 0f834e6f21
Kiyoung Kim [Wed, 14 Oct 2020 01:12:06 +0000 (01:12 +0000)]
Merge "Add additional vendor lib paths" am: 0f834e6f21

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1456322

Change-Id: I1a04d040702092bf6c365f2c600a19e6bce9b71c

4 years agoMerge "Add additional vendor lib paths"
Kiyoung Kim [Wed, 14 Oct 2020 00:37:46 +0000 (00:37 +0000)]
Merge "Add additional vendor lib paths"

4 years agoLink sanitizer libs from "system" for vendor apex am: 45a2de1ee1
Jooyung Han [Tue, 13 Oct 2020 09:19:49 +0000 (09:19 +0000)]
Link sanitizer libs from "system" for vendor apex am: 45a2de1ee1

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1457800

Change-Id: If8a5ccb0a626579e3c024ad7764645714f744131

4 years agoLink sanitizer libs from "system" for vendor apex
Jooyung Han [Tue, 13 Oct 2020 05:12:55 +0000 (14:12 +0900)]
Link sanitizer libs from "system" for vendor apex

There are two kinds of sanitizer libs.
- vndkcore libs
- system libs

Vendor modules should be able to use sanitizer libs from "system"
namespace. (Note that VNDK sanitizer libs are avialable from "vndk").

Bug: 170672395
Test: linkerconfig_diff_test
Change-Id: Ib1d5e007d6b6451a30a4009b7ecd06bf748f5e47

4 years agoWorkaround global ThinLTO breakage am: 867b2026c4
Yi Kong [Mon, 12 Oct 2020 17:23:03 +0000 (17:23 +0000)]
Workaround global ThinLTO breakage am: 867b2026c4

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1456321

Change-Id: Ia942f0c81e06f98b953cfa5de6b61199d77850ed

4 years agoAdd additional vendor lib paths
Kiyoung Kim [Mon, 12 Oct 2020 01:30:03 +0000 (10:30 +0900)]
Add additional vendor lib paths

Some of the vendor lib paths were removed from VNDK 28 due to no usage.
However, Vulkan team requires those vendor lib paths from vendor
section to load SPHAL libraries. To enable this, this change re-adds
addtional vendor lib paths (hw and egl) to vendor default namespace.

Bug: 170258171
Test: atest passed
Change-Id: I85fa6fa6f61d5559c5498163302a99741f6f733f

4 years agoWorkaround global ThinLTO breakage
Yi Kong [Sun, 11 Oct 2020 16:31:18 +0000 (00:31 +0800)]
Workaround global ThinLTO breakage

The device does not boot with global ThinLTO enabled for linkerconfig.
Disable LTO for it to workaround the issue.

Test: GLOBAL_THINLTO=true m
Test: boot
Bug: 170573443
Change-Id: Id5b7e11c2c4b495b6b0da35dc774b60bcd0543af

4 years agoSkip ab/6749736 in stage.
Xin Li [Fri, 9 Oct 2020 00:24:02 +0000 (17:24 -0700)]
Skip ab/6749736 in stage.

Merged-In: Id16b671d66cdbafb655be03edd16564fa36aee22
Change-Id: I28da1c789fff49b34462cadefa915bb37b902151

4 years agoAdd dir.system = /product/app/ entry am: 2a62a40819
Jooyung Han [Thu, 17 Sep 2020 23:57:11 +0000 (23:57 +0000)]
Add dir.system = /product/app/ entry am: 2a62a40819

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1429849

Change-Id: I1902b8e94e04c5ebe5905727918931ef183a1b58

4 years agoAdd dir.system = /product/app/ entry
Jooyung Han [Thu, 17 Sep 2020 14:54:13 +0000 (23:54 +0900)]
Add dir.system = /product/app/ entry

This is a fallback for binaries in APKs being launched.

Bug: 160433462
Test: atest --host linkerconfig_diff_test
Change-Id: I3979b22994d7c801952c13d8bbfa013da78b69e2

4 years agoEnable visibility of bionic and media APEX from config am: 06c8f6c3d6
Kiyoung Kim [Wed, 16 Sep 2020 02:28:13 +0000 (02:28 +0000)]
Enable visibility of bionic and media APEX from config am: 06c8f6c3d6

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1423209

Change-Id: I21a5b3e52dcb6ea7ad2825482a809e73c05db363

4 years agoSet APEX namespace as visible am: 81b9f84b50
Kiyoung Kim [Wed, 16 Sep 2020 02:28:12 +0000 (02:28 +0000)]
Set APEX namespace as visible am: 81b9f84b50

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1420728

Change-Id: I8d2a5e6ef607e748ff9dc247992c69932d6d8fc5

4 years agoEnable visibility of bionic and media APEX from config
Kiyoung Kim [Mon, 14 Sep 2020 02:23:00 +0000 (11:23 +0900)]
Enable visibility of bionic and media APEX from config

Enable visibility of bionic and media APEX from their own linker config
file to remove dependency between linkerconfig and other APEX modules.

Bug: 167946001
Test: atest passed
Change-Id: Icd76f2b8b051c88eac285d8548dddc0405e58cff

4 years agoSet APEX namespace as visible
Kiyoung Kim [Mon, 14 Sep 2020 02:22:19 +0000 (11:22 +0900)]
Set APEX namespace as visible

Some of the APEX namespace should be visible from some sections, even
when the APEX namespace is not required from dependency resolution. This
change adds a new property in linker.config.txt to enforce APEX
namespace as available and visible from all sections.

Bug: 167946001
Test: atest passed
Change-Id: Ia0681b58a571ca977a97968494ad17502582253b

4 years agoMerge "Add a new public library libicu.so" am: 3a48619dd8
vichang [Fri, 11 Sep 2020 10:57:04 +0000 (10:57 +0000)]
Merge "Add a new public library libicu.so" am: 3a48619dd8

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1419308

Change-Id: Icd50133f28ddbd9bbe523907e3f92496149afcfa

4 years agoMerge "Add a new public library libicu.so"
vichang [Fri, 11 Sep 2020 10:19:37 +0000 (10:19 +0000)]
Merge "Add a new public library libicu.so"

4 years ago[automerger skipped] Merge Android R am: dd16853a3e -s ours
Xin Li [Fri, 11 Sep 2020 00:40:01 +0000 (00:40 +0000)]
[automerger skipped] Merge Android R am: dd16853a3e -s ours

am skip reason: Change-Id I7a490c6ba010b984d50bc5eb66e0b7cd0dfb6ff4 with SHA-1 c719aff9b6 is in history

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1422559

Change-Id: I1a9d5ddf4823b38f37af0ff0dea84dbe9611a731

4 years agoMerge Android R
Xin Li [Thu, 10 Sep 2020 03:21:28 +0000 (20:21 -0700)]
Merge Android R

Bug: 168057903
Merged-In: I7a490c6ba010b984d50bc5eb66e0b7cd0dfb6ff4
Change-Id: Idb4d38b66ab90702faceee88c548dfda037e06d6

4 years agoRemove hard-coded references for JNI apexes am: 37d643da15
Jooyung Han [Tue, 8 Sep 2020 23:47:06 +0000 (23:47 +0000)]
Remove hard-coded references for JNI apexes am: 37d643da15

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1417035

Change-Id: I7a490c6ba010b984d50bc5eb66e0b7cd0dfb6ff4

4 years agomake APEXes with public libraries visible am: 52ccfa77b7
Jooyung Han [Tue, 8 Sep 2020 23:47:03 +0000 (23:47 +0000)]
make APEXes with public libraries visible am: 52ccfa77b7

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1416070

Change-Id: I8363042a87448b03b43ee37405d38943d1895315

4 years agoRemove hard-coded references for JNI apexes
Jooyung Han [Fri, 28 Aug 2020 09:58:54 +0000 (18:58 +0900)]
Remove hard-coded references for JNI apexes

As statsd & conscrypt apexes expose JNI libs via apex_manifest,
linkerconfig makes them as visible when JNI libs are required.

Bug: 150767721
Test: atest --host linkerconfig_diff_test
      atest MtsConscryptTestCases
Change-Id: I64d0c24e791205c39b4b9b01abda57cf49f68606

4 years agomake APEXes with public libraries visible
Jooyung Han [Tue, 1 Sep 2020 04:49:27 +0000 (13:49 +0900)]
make APEXes with public libraries visible

Public libraries (listed in /system/etc/public.libraries.txt) should be
available to classloader-namespace (created by libnativeloader). So,
linkerconfig reads public.libraries.txt and makes apexes with public
libraries visible.  This cleans up hard-coded references to nn, i18n, art
apexes.

And the list of apexes along with public libs are stored in
/linkerconfig/apex.libraries.config.txt so that libnativeloader can read
it and link them to classloader-namespace.

Bug: 150767721
Test: cuttlefish boots
Test: atest --host linkerconfig_diff_test
Change-Id: Idd7e2b0bcc6e54cd79c2b9c4c755f883b4507b74

4 years agoRetrieve extra informations from APEX config file am: f9920e2db4
Kiyoung Kim [Tue, 8 Sep 2020 00:27:19 +0000 (00:27 +0000)]
Retrieve extra informations from APEX config file am: f9920e2db4

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1400127

Change-Id: I0d5426e2488b97c0b83e09e449d857a96934d713

4 years agoRetrieve extra informations from APEX config file
Kiyoung Kim [Mon, 31 Aug 2020 04:55:25 +0000 (13:55 +0900)]
Retrieve extra informations from APEX config file

Some of the APEX modules require extra configuration to make it work.
This change includes getting extra permitted paths to enable each APEX
module can update configuration by itself.

Bug: 148647510
Test: CF boot succeeded
Change-Id: I708e9a93bd5b54be91de1908640b90a26abb939c

4 years agoMerge "Add /data/local/tests/* directories for each linker namespace" am: 636293b191
Treehugger Robot [Thu, 3 Sep 2020 03:07:05 +0000 (03:07 +0000)]
Merge "Add /data/local/tests/* directories for each linker namespace" am: 636293b191

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1415830

Change-Id: If962e208b526e2eb62d5a4f9f2e30acb4c9304ab

4 years agoMerge "Add /data/local/tests/* directories for each linker namespace"
Treehugger Robot [Thu, 3 Sep 2020 02:26:11 +0000 (02:26 +0000)]
Merge "Add /data/local/tests/* directories for each linker namespace"

4 years agoAdd a new public library libicu.so
Victor Chang [Wed, 2 Sep 2020 22:40:24 +0000 (23:40 +0100)]
Add a new public library libicu.so

Bug: 160350521
Test: m droid
Change-Id: I69fa789ac9ed618c4f7627573a68d110235dd639

4 years agoFix the linkerconfig host binary to not depend on libc++.so. am: aefc84e989
Martin Stjernholm [Wed, 2 Sep 2020 04:27:44 +0000 (04:27 +0000)]
Fix the linkerconfig host binary to not depend on libc++.so. am: aefc84e989

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1418008

Change-Id: I0ea4ad0ff71f9090df7306503fb263a62e75222f

4 years agoAdd /data/local/tests/* directories for each linker namespace
Colin Cross [Mon, 31 Aug 2020 04:46:23 +0000 (21:46 -0700)]
Add /data/local/tests/* directories for each linker namespace

Add entries for atest to push tests to under /data/local/tests
to allow tests to be run in the appropriate linker namespace.

Bug: 138450837
Test: atest binderVendorDoubleLoadTest memunreachable_unit_test memunreachable_binder_test
Test: atest --host linkerconfig_diff_test
Change-Id: I3839cf48ca233669a81dd4bb1584fc50300acfd9

4 years agoFix the linkerconfig host binary to not depend on libc++.so.
Martin Stjernholm [Tue, 1 Sep 2020 18:27:53 +0000 (19:27 +0100)]
Fix the linkerconfig host binary to not depend on libc++.so.

Test: build/soong/scripts/build-aml-prebuilts.sh runtime-module-host-exports
  Check with ldd that the linkerconfig binary in
  out/aml/soong/mainline-sdks/runtime-module-host-exports-current.zip
  isn't missing any DSO's.
Bug: 145934348
Change-Id: I08676a5d9c7ec3e76462fb74e882f81802528b98

4 years agoMerge Android R (rvc-dev-plus-aosp-without-vendor@6692709)
Xin Li [Thu, 27 Aug 2020 17:17:41 +0000 (10:17 -0700)]
Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)

Bug: 166295507
Merged-In: I850da98f4c9cf1fcefdc8c95a7e604c310697423
Change-Id: Iff0180b58beb9101e330a109a1cb8a90255e0e46

4 years agoSupport :vndk requirement from /product partition am: 949e311380
Jooyung Han [Sat, 22 Aug 2020 00:45:35 +0000 (00:45 +0000)]
Support :vndk requirement from /product partition am: 949e311380

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1405889

Change-Id: I28f3eee88aae387fc05cce617ca0894093de8e84

4 years agoSupport :vndk requirement from /product partition
Jooyung Han [Fri, 21 Aug 2020 09:50:18 +0000 (18:50 +0900)]
Support :vndk requirement from /product partition

linkerconfig can now distinguish /product/apex from /vendor/apex.
So, it provides correct version of VNDK to vendor apexes.

Bug: 159576928
Test: atest --host linkerconfig_diff_test
Change-Id: Ib11dd1c51a6b9e0c875edab12bb37026e33a80cc

4 years agoSkip reading apex-info-list when there's no apexes am: a2a5d03590
Jooyung Han [Tue, 18 Aug 2020 09:28:49 +0000 (09:28 +0000)]
Skip reading apex-info-list when there's no apexes am: a2a5d03590

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1403307

Change-Id: Ia2359605430f0179dd0a738f33ff0eef71473381

4 years agoSkip reading apex-info-list when there's no apexes
Jooyung Han [Tue, 18 Aug 2020 07:35:31 +0000 (16:35 +0900)]
Skip reading apex-info-list when there's no apexes

linkerconfig may run even when there's no apexes activated. We need to
skip reading apex-info-list.xml then. Otherwise, it will emit an error
log when it is perfectly normal.

> E linkerconfig: Can't read /apex/apex-info-list.xml: No such file or directory

Bug: n/a
Test: device boots & see logs if there's an error
Change-Id: I8f6255de536618ad590ce18adf9b729e45c721df

4 years agoMerge "Add /vendor/lib/egl to sphal namespace" am: 869afe1f71
Jason Macnak [Tue, 18 Aug 2020 02:21:53 +0000 (02:21 +0000)]
Merge "Add /vendor/lib/egl to sphal namespace" am: 869afe1f71

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1400190

Change-Id: I951388ba0eb4446e93b03853ece30b01cbcd1ecc

4 years agoMerge "Add /vendor/lib/egl to sphal namespace"
Jason Macnak [Tue, 18 Aug 2020 02:10:38 +0000 (02:10 +0000)]
Merge "Add /vendor/lib/egl to sphal namespace"

4 years agoAdd /vendor/lib/egl to sphal namespace
Jason Macnak [Fri, 14 Aug 2020 17:36:16 +0000 (10:36 -0700)]
Add /vendor/lib/egl to sphal namespace

... to support having ANGLE as the native GL driver
which needs to dlopen libGLESv2. Without this change,
devices would have to create symlinks from libs in the
nested egl directory to the parent directory.

Bug: b/165022040
Test: launch Cuttlefish with ANGLE
Change-Id: Ib60bd8397fdf1f1ba52bbe1c249ae100c0c68e70

4 years agoMerge changes from topic "revert-1387130-revert-apex-info-list-XDFTNNKFQI" am: a5e31e2f92
Treehugger Robot [Sat, 15 Aug 2020 07:44:37 +0000 (07:44 +0000)]
Merge changes from topic "revert-1387130-revert-apex-info-list-XDFTNNKFQI" am: a5e31e2f92

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1396430

Change-Id: I863efc0f8fe1d73ebe6b8943a4ff7489b3331bcf

4 years agoMerge changes from topic "revert-1387130-revert-apex-info-list-XDFTNNKFQI"
Treehugger Robot [Sat, 15 Aug 2020 07:34:44 +0000 (07:34 +0000)]
Merge changes from topic "revert-1387130-revert-apex-info-list-XDFTNNKFQI"

* changes:
  Revert^2 "Fix "vndk" namespace for vendor apexes"
  Revert^2 "Read apex-info-file.xml to distinguish vendor apex"

4 years agoRevert^2 "Fix "vndk" namespace for vendor apexes"
Jooyung Han [Tue, 11 Aug 2020 08:56:29 +0000 (08:56 +0000)]
Revert^2 "Fix "vndk" namespace for vendor apexes"

51a44276496b47a2a682d6498a47d52b70cc40ee

Change-Id: Id608e1e02b3d466a72194049548bca1a7756dd1f

4 years agoRevert^2 "Read apex-info-file.xml to distinguish vendor apex"
Jooyung Han [Tue, 11 Aug 2020 08:56:29 +0000 (08:56 +0000)]
Revert^2 "Read apex-info-file.xml to distinguish vendor apex"

c7d600933296817cb4fbe611a25482567bd9cd44

Change-Id: Ic9b056b3726c6c385f9723a2fb5c5cc6609da3b3

4 years agoMake linkerconfig a static executable only on device. am: 908bfdbd22
Martin Stjernholm [Mon, 10 Aug 2020 15:50:35 +0000 (15:50 +0000)]
Make linkerconfig a static executable only on device. am: 908bfdbd22

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1393397

Change-Id: Ic74811e81c6dbcab1bfcae2ad9373a380968a9bf

4 years agoMake linkerconfig a static executable only on device.
Martin Stjernholm [Fri, 7 Aug 2020 18:00:55 +0000 (19:00 +0100)]
Make linkerconfig a static executable only on device.

Don't link libc statically on host, but everything else is still
static.

Test: `art/tools/buildbot-build.sh --target` on AOSP master
Test: `art/tools/buildbot-build.sh --target`
  on master-art with prebuilt linkerconfig binary.
Test: Flash & boot
Bug: 162819454
Change-Id: I78e5d2ed5f654ea7db11e227556ec29b06eb1349

4 years agoAdd :sphal, :vndksp for apex configuration am: 0bb103f96d am: 412cd5919c am: 5181c1c402
Jooyung Han [Wed, 5 Aug 2020 07:58:39 +0000 (07:58 +0000)]
Add :sphal, :vndksp for apex configuration am: 0bb103f96d am: 412cd5919c am: 5181c1c402

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1373257

Change-Id: Id16b671d66cdbafb655be03edd16564fa36aee22

4 years agoAdd :sphal, :vndksp for apex configuration am: 0bb103f96d am: 412cd5919c
Jooyung Han [Wed, 5 Aug 2020 07:35:33 +0000 (07:35 +0000)]
Add :sphal, :vndksp for apex configuration am: 0bb103f96d am: 412cd5919c

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1373257

Change-Id: Id171f01b4e8c390d80a97299ee1a49219921382f

4 years agoAdd :sphal, :vndksp for apex configuration am: 0bb103f96d
Jooyung Han [Wed, 5 Aug 2020 07:11:48 +0000 (07:11 +0000)]
Add :sphal, :vndksp for apex configuration am: 0bb103f96d

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1373257

Change-Id: I42e16b6a06c2a58241723f52e01c7725f71f6f79

4 years agoMerge "Update codebase with static analysis result" am: 53edf3a707 am: 509f0f0a7c...
Treehugger Robot [Wed, 5 Aug 2020 06:02:34 +0000 (06:02 +0000)]
Merge "Update codebase with static analysis result" am: 53edf3a707 am: 509f0f0a7c am: dac805a833

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1386196

Change-Id: If7b0e0c649bbdc091a8deb971ad0fb2e8bf4d959

4 years agoAdd :sphal, :vndksp for apex configuration
Jooyung Han [Tue, 28 Jul 2020 01:26:41 +0000 (10:26 +0900)]
Add :sphal, :vndksp for apex configuration

This removes hard-coded special-casing of com.android.media.swcodec
APEX.

swcodec APEX declares "requireNativeLibs" with ":sphal" so that
linkerconfig can add "sphal" and "vndk" namespaces for it. Note that
a link from sphal to vndk with shared_libs(VNDK-SP) is derived by
":vndksp" from "sphal" namespace.

Bug: n/a
Test: ./rundiff.sh
   => no significant changes
Test: build & device boots
Merged-In: Ib2c78cde05b745d6b1e2b06b88e40446c0ddd4f0
Change-Id: Ib2c78cde05b745d6b1e2b06b88e40446c0ddd4f0
(cherry picked from commit e70d72dda438ab1629e6df42cda917a8b69cbb01)

4 years agoMerge "Update codebase with static analysis result" am: 53edf3a707 am: 509f0f0a7c
Treehugger Robot [Wed, 5 Aug 2020 05:42:55 +0000 (05:42 +0000)]
Merge "Update codebase with static analysis result" am: 53edf3a707 am: 509f0f0a7c

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1386196

Change-Id: I8eefb05bffc867a6a9b48c3fb89ff89b0b89ce82

4 years agoMerge "Update codebase with static analysis result" am: 53edf3a707
Treehugger Robot [Wed, 5 Aug 2020 05:27:06 +0000 (05:27 +0000)]
Merge "Update codebase with static analysis result" am: 53edf3a707

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1386196

Change-Id: Ifd2d642d358df49443992e80dc83b62f6836096b

4 years agoMerge "Update codebase with static analysis result"
Treehugger Robot [Wed, 5 Aug 2020 05:15:47 +0000 (05:15 +0000)]
Merge "Update codebase with static analysis result"

4 years agoUpdate codebase with static analysis result
Kiyoung Kim [Mon, 3 Aug 2020 14:15:52 +0000 (23:15 +0900)]
Update codebase with static analysis result

There were some issues reported by code static analysis tool. This
change includes update from the result with applicable items.

Test: cf booted & atest passed
Change-Id: I7d8e4e6c8dc1fc5893ab1d2365eb64fce47db220
Merged-In: I7d8e4e6c8dc1fc5893ab1d2365eb64fce47db220

4 years agoRevert "Read apex-info-file.xml to distinguish vendor apex" am: c7d6009332 am: c5a30b...
Jooyung Han [Tue, 4 Aug 2020 15:37:27 +0000 (15:37 +0000)]
Revert "Read apex-info-file.xml to distinguish vendor apex" am: c7d6009332 am: c5a30bfaa7 am: 2b28adef43

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1387131

Change-Id: I4d03a1aa792c5092a4e0e51f3098236ac527fa97

4 years agoRevert "Fix "vndk" namespace for vendor apexes" am: 51a4427649 am: 58ab18bc1d am...
Jooyung Han [Tue, 4 Aug 2020 15:37:26 +0000 (15:37 +0000)]
Revert "Fix "vndk" namespace for vendor apexes" am: 51a4427649 am: 58ab18bc1d am: 8fef232e3d

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1387130

Change-Id: I84e8effcec9ae0bcfff560ada9144c6f08969e8e

4 years agoRevert "Read apex-info-file.xml to distinguish vendor apex" am: c7d6009332 am: c5a30bfaa7
Jooyung Han [Tue, 4 Aug 2020 15:26:02 +0000 (15:26 +0000)]
Revert "Read apex-info-file.xml to distinguish vendor apex" am: c7d6009332 am: c5a30bfaa7

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1387131

Change-Id: Ibefe240e7228263607f01c722abeaa4129f5c1d7

4 years agoRevert "Fix "vndk" namespace for vendor apexes" am: 51a4427649 am: 58ab18bc1d
Jooyung Han [Tue, 4 Aug 2020 15:26:01 +0000 (15:26 +0000)]
Revert "Fix "vndk" namespace for vendor apexes" am: 51a4427649 am: 58ab18bc1d

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1387130

Change-Id: I0bb1a74bb3865fa3790dcce249a19b9cd4f5968d

4 years agoRevert "Read apex-info-file.xml to distinguish vendor apex" am: c7d6009332
Jooyung Han [Tue, 4 Aug 2020 15:08:01 +0000 (15:08 +0000)]
Revert "Read apex-info-file.xml to distinguish vendor apex" am: c7d6009332

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1387131

Change-Id: I90242e1d91f0a401e4c1768d97a8000a5e4f7f91

4 years agoRevert "Fix "vndk" namespace for vendor apexes" am: 51a4427649
Jooyung Han [Tue, 4 Aug 2020 15:07:59 +0000 (15:07 +0000)]
Revert "Fix "vndk" namespace for vendor apexes" am: 51a4427649

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1387130

Change-Id: I9d2401e3330b89c591e3dfae1c393b500350c6ac

4 years agoRevert "Read apex-info-file.xml to distinguish vendor apex"
Jooyung Han [Tue, 4 Aug 2020 11:23:55 +0000 (20:23 +0900)]
Revert "Read apex-info-file.xml to distinguish vendor apex"

This reverts commit d32f7fa2697f38898c8c07459796bc823fa34666.

Reason: breaks master-art

Bug: 162819454
Test: m nothing
Change-Id: Ia658a473d5957f7ffef9851449559ce92961a991

4 years agoRevert "Fix "vndk" namespace for vendor apexes"
Jooyung Han [Tue, 4 Aug 2020 11:23:47 +0000 (20:23 +0900)]
Revert "Fix "vndk" namespace for vendor apexes"

This reverts commit 5e40c4c723c4582ca334d2a1e2ec2ad5dda3b078.

Reason: breaks master-art branch

Bug: n/a
Test: m nothing
Change-Id: Ic918465aa629045049ccd76b564e5e2c9cdf8761

4 years agoMerge changes from topic "vndk-apex-build" am: 45f1026c2c am: 40991498ac am: 691c40fbfd
Jooyung Han [Tue, 4 Aug 2020 04:23:20 +0000 (04:23 +0000)]
Merge changes from topic "vndk-apex-build" am: 45f1026c2c am: 40991498ac am: 691c40fbfd

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1376877

Change-Id: Idbe760301155b76f5ae5d311978ee005849ea91c

4 years agoRead apex-info-file.xml to distinguish vendor apex am: d32f7fa269 am: 1fcee56ec8...
Jooyung Han [Tue, 4 Aug 2020 04:23:18 +0000 (04:23 +0000)]
Read apex-info-file.xml to distinguish vendor apex am: d32f7fa269 am: 1fcee56ec8 am: 5ac21b5e8e

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1376876

Change-Id: I7bd38dcf0629a4ca68f759cc47863ee83cf0e6d6

4 years agoMerge changes from topic "vndk-apex-build" am: 45f1026c2c am: 40991498ac
Jooyung Han [Tue, 4 Aug 2020 03:54:34 +0000 (03:54 +0000)]
Merge changes from topic "vndk-apex-build" am: 45f1026c2c am: 40991498ac

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1376877

Change-Id: I1dcc3d71c1dc160a38cf524b1df7681fb7da37f4

4 years agoRead apex-info-file.xml to distinguish vendor apex am: d32f7fa269 am: 1fcee56ec8
Jooyung Han [Tue, 4 Aug 2020 03:54:32 +0000 (03:54 +0000)]
Read apex-info-file.xml to distinguish vendor apex am: d32f7fa269 am: 1fcee56ec8

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1376876

Change-Id: I3742fcef5464d277dc23fb824ea1cfca7b4e5f4d

4 years agoMerge changes from topic "vndk-apex-build" am: 45f1026c2c
Jooyung Han [Tue, 4 Aug 2020 03:31:04 +0000 (03:31 +0000)]
Merge changes from topic "vndk-apex-build" am: 45f1026c2c

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1376877

Change-Id: Ide13bb28ae65ab5e67f542dae6e5bfd9f8ca2a93

4 years agoRead apex-info-file.xml to distinguish vendor apex am: d32f7fa269
Jooyung Han [Tue, 4 Aug 2020 03:31:02 +0000 (03:31 +0000)]
Read apex-info-file.xml to distinguish vendor apex am: d32f7fa269

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1376876

Change-Id: Idf3ab6c1abc201dc5d55569af601a28fd6658e8b

4 years agoMerge changes from topic "vndk-apex-build"
Jooyung Han [Tue, 4 Aug 2020 03:11:49 +0000 (03:11 +0000)]
Merge changes from topic "vndk-apex-build"

* changes:
  Fix "vndk" namespace for vendor apexes
  Read apex-info-file.xml to distinguish vendor apex

4 years agoMerge "Mark vndk_in_system namespace as invisible" am: edf3069eed am: ba2949d0a8...
Kiyoung Kim [Mon, 3 Aug 2020 04:45:00 +0000 (04:45 +0000)]
Merge "Mark vndk_in_system namespace as invisible" am: edf3069eed am: ba2949d0a8 am: 4c76ce68cb

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1382120

Change-Id: I37348ab9324d792699b26531c61385058656ae43

4 years agoMerge "Mark vndk_in_system namespace as invisible" am: edf3069eed am: ba2949d0a8
Kiyoung Kim [Mon, 3 Aug 2020 04:32:41 +0000 (04:32 +0000)]
Merge "Mark vndk_in_system namespace as invisible" am: edf3069eed am: ba2949d0a8

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1382120

Change-Id: I795f39ab324c64504413cbebbef00e027138896d

4 years agoMerge "Mark vndk_in_system namespace as invisible" am: edf3069eed
Kiyoung Kim [Mon, 3 Aug 2020 04:11:56 +0000 (04:11 +0000)]
Merge "Mark vndk_in_system namespace as invisible" am: edf3069eed

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1382120

Change-Id: Ib5ecc399174a9e7e482575cbc74e5cb83690db4c

4 years agovndk: add vendor/lib or product/lib to search_path am: d258eba1c4 am: baf1c90894...
Jooyung Han [Mon, 3 Aug 2020 04:00:48 +0000 (04:00 +0000)]
vndk: add vendor/lib or product/lib to search_path am: d258eba1c4 am: baf1c90894 am: bd238feb1f

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1385027

Change-Id: Iac57365a1454f1871c9bd0c3372e168ad932503b

4 years agoMerge "Mark vndk_in_system namespace as invisible"
Kiyoung Kim [Mon, 3 Aug 2020 03:57:46 +0000 (03:57 +0000)]
Merge "Mark vndk_in_system namespace as invisible"

4 years agovndk: add vendor/lib or product/lib to search_path am: d258eba1c4 am: baf1c90894
Jooyung Han [Mon, 3 Aug 2020 03:45:31 +0000 (03:45 +0000)]
vndk: add vendor/lib or product/lib to search_path am: d258eba1c4 am: baf1c90894

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1385027

Change-Id: I9b49785ebf5f00ffcec4e1cd7883d7ead33f78b7

4 years agoFix "vndk" namespace for vendor apexes
Jooyung Han [Wed, 29 Jul 2020 16:37:30 +0000 (01:37 +0900)]
Fix "vndk" namespace for vendor apexes

"vndk" namespace for non-system use cases (e.g. vendor section, vendor
apex, etc) should have /vndk as well as /vndk-sp to support VDNK
extensions.

In the following example, "vendor_hello" is a cc_library(vendor:true)
with dependencies to libbase/libc++/liblog, which is bundled in a vendor
apex "com.android.hello".

libbase/libc++(VNDK) are from VNDK APEX and liblog(LLNDK) are from
/system/lib.

$ adb shell ldd /apex/com.android.hello/bin/vendor_hello
        linux-gate.so.1 => [vdso] (0xea2b3000)
        libbase.so => /apex/com.android.vndk.vS/lib/libbase.so (0xe984b000)
        libc++.so => /apex/com.android.vndk.vS/lib/libc++.so (0xe9788000)
        liblog.so => /system/lib/liblog.so (0xe9f44000)
        libc++.so => /system/lib/libc++.so (0xe98c3000)
        libc.so => /apex/com.android.runtime/lib/bionic/libc.so (0xe99dd000)
        libm.so => /apex/com.android.runtime/lib/bionic/libm.so (0xe9881000)
        libdl.so => /apex/com.android.runtime/lib/bionic/libdl.so (0xe99ab000)

Bug: 159576928
Test: build a vendor apex with use_vndk_as_stable
      check the dependency of a binary in it
Change-Id: I04e9e72af34630e08d4828d4ff644b0ee2aa861b

4 years agovndk: add vendor/lib or product/lib to search_path am: d258eba1c4
Jooyung Han [Mon, 3 Aug 2020 03:22:55 +0000 (03:22 +0000)]
vndk: add vendor/lib or product/lib to search_path am: d258eba1c4

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1385027

Change-Id: Ie1aaba4f1e350685863d336b67a82090ea1d07ac

4 years agoRead apex-info-file.xml to distinguish vendor apex
Jooyung Han [Wed, 29 Jul 2020 16:15:18 +0000 (01:15 +0900)]
Read apex-info-file.xml to distinguish vendor apex

/apex/apex-info-file.xml is the list of all apexes with preinstalled
path. By looking up original paths, we can figure out if an apex is
from /vendor or /system even if it is updated.

Bug: 159576928
Test: build & device boots
Change-Id: Ie32b10bfbdd9c1b6026c4b0fc93b57a2af6b5da5

4 years agovndk: add vendor/lib or product/lib to search_path
Jooyung Han [Fri, 31 Jul 2020 09:58:09 +0000 (18:58 +0900)]
vndk: add vendor/lib or product/lib to search_path

"vndk" namespace have vendor/lib/vndk first in search paths so that VNDK
extension libraries have higher proiorty than normal VNDK libs.
However, VNDK extensions are allowed to use vendor libraries
(/vendor/lib). This was enabled by linking "sphal" namespace.

It was a bit weird because sphal namespace links vndk and vndk links
sphal again.

Moreover, "vndk_product" namespace can't link to /product/lib. We could
have "product" namespace and link it from vndk_product.

But instead, we add /vendor/lib to the search paths of "vndk" namespace
and /product/lib to "vndk_product" namespace so that VNDK extensions use
libs from there.

Now we don't need to link sphal from vndk.

Bug: 162462078
Test: HelloActivityProduct loads libjni_product successfully.
Merged-In: I6c5d47239dae427194345e03522a726997389167
Change-Id: I6c5d47239dae427194345e03522a726997389167
(cherry picked from commit 87122ca998fdc6f6d404fbe0539221eb9d242ca2)

4 years agoCleanup for Android's inclusive language guidance am: 1fc46cc922 am: 2552a892ab am...
Luke Huang [Sun, 2 Aug 2020 15:52:33 +0000 (15:52 +0000)]
Cleanup for Android's inclusive language guidance am: 1fc46cc922 am: 2552a892ab am: e5aa7f6484

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1379236

Change-Id: I86c53ee8e19743932efc68e18bf10d6e81fa2980

4 years agoCleanup for Android's inclusive language guidance am: 1fc46cc922 am: 2552a892ab
Luke Huang [Sun, 2 Aug 2020 15:26:49 +0000 (15:26 +0000)]
Cleanup for Android's inclusive language guidance am: 1fc46cc922 am: 2552a892ab

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1379236

Change-Id: Ic3a72bd97c5513f0cc9665603c063c371d3733c6

4 years agoCleanup for Android's inclusive language guidance am: 1fc46cc922
Luke Huang [Sun, 2 Aug 2020 15:02:38 +0000 (15:02 +0000)]
Cleanup for Android's inclusive language guidance am: 1fc46cc922

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1379236

Change-Id: I9698e9638aefe7d808ce5f90fde828e3b701a1a9

4 years agoMark vndk_in_system namespace as invisible
Kiyoung Kim [Fri, 31 Jul 2020 08:24:28 +0000 (17:24 +0900)]
Mark vndk_in_system namespace as invisible

vndk_in_system namespace is visible currently. However, this namespace
should be invisible as it exists within vendor section and contains
system library paths, so mark this as visible can cause disallowed
access from vendor binary to system libs. This change marks
vndk_in_system namespace as invisible.

Bug: 161076708
Test: Cuttlefish Go phone GTS test passed
Change-Id: If82cc9c1cc279125bed9977d1bcdc930e45880db

4 years agoCleanup for Android's inclusive language guidance
Luke Huang [Thu, 30 Jul 2020 06:05:33 +0000 (14:05 +0800)]
Cleanup for Android's inclusive language guidance

See https://source.android.com/setup/contribute/respectful-code
for reference.

Bug: 161896447
Test: atest

Change-Id: I3afbccdb8fee2a8aa89978c8f26ebca2d3216f05

4 years agoMake diff test as presubmit am: fcaa89aac3 am: 14f279c468 am: adc41acc49
Jooyung Han [Wed, 29 Jul 2020 00:50:18 +0000 (00:50 +0000)]
Make diff test as presubmit am: fcaa89aac3 am: 14f279c468 am: adc41acc49

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1264240

Change-Id: Ie370787528c41086ae03db1009a3616e137a4899

4 years agoMake diff test as presubmit am: fcaa89aac3 am: 14f279c468
Jooyung Han [Wed, 29 Jul 2020 00:26:35 +0000 (00:26 +0000)]
Make diff test as presubmit am: fcaa89aac3 am: 14f279c468

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1264240

Change-Id: Ibc1bc24be0b70e3bbaefd8ce81bcfda5bb376640

4 years agoMake diff test as presubmit am: fcaa89aac3
Jooyung Han [Wed, 29 Jul 2020 00:05:26 +0000 (00:05 +0000)]
Make diff test as presubmit am: fcaa89aac3

Original change: https://android-review.googlesource.com/c/platform/system/linkerconfig/+/1264240

Change-Id: Ic6a90432672fe19093e012bafc1339a113cc2844