OSDN Git Service

android-x86/system-linkerconfig.git
4 years agoMerge "Remove extra using statements" am: 28133def11
Treehugger Robot [Tue, 18 Feb 2020 05:30:16 +0000 (05:30 +0000)]
Merge "Remove extra using statements" am: 28133def11

Change-Id: Iab0964273993949a3eb3c0c331eb58bc75e3c5e1

4 years agoMerge "Remove extra using statements"
Treehugger Robot [Tue, 18 Feb 2020 05:20:14 +0000 (05:20 +0000)]
Merge "Remove extra using statements"

4 years agoMerge "Fix Camera bug" am: 5c811ebf1c
Jeffrey Huang [Fri, 14 Feb 2020 22:11:39 +0000 (22:11 +0000)]
Merge "Fix Camera bug" am: 5c811ebf1c

Change-Id: I78f49c50833251698c1fc5351e3a5ee66819e872

4 years agoMerge "Fix Camera bug"
Jeffrey Huang [Fri, 14 Feb 2020 21:57:31 +0000 (21:57 +0000)]
Merge "Fix Camera bug"

4 years agoRemove extra using statements
Tom Cherry [Fri, 14 Feb 2020 20:27:19 +0000 (12:27 -0800)]
Remove extra using statements

android::base::Errorf and android::base::ErrnoErrorf are now #define's
instead of functions, so remove their using statements.

Test: build
Change-Id: I7333b916ee87668fb9fd15b9293de5da41c43409

4 years agoFix Camera bug
Jeffrey Huang [Fri, 14 Feb 2020 20:08:20 +0000 (12:08 -0800)]
Fix Camera bug

Bug: 149538115
Test: Flash and take a picture, verified no crash
Change-Id: Idd455f8803cf6f1b1f4c95d854a6077e33bae5e1

4 years agoAllow libincident.so to be linked from apex am: 4e15bf53f0
Jeffrey Huang [Fri, 14 Feb 2020 04:07:02 +0000 (04:07 +0000)]
Allow libincident.so to be linked from apex am: 4e15bf53f0

Change-Id: Iea0a310c93367544a21a0964a7985647f888ef52

4 years agoAllow libincident.so to be linked from apex
Jeffrey Huang [Thu, 13 Feb 2020 23:40:36 +0000 (15:40 -0800)]
Allow libincident.so to be linked from apex

Bug: 145923087
Test: m -j
Change-Id: I787f15750e19c5028b334161c5a7d4fa13003c6f

4 years agoFix linkerconfig_backward_compatibility_test am: 2dd4e4d2cb
Automerger Merge Worker [Thu, 13 Feb 2020 06:42:09 +0000 (06:42 +0000)]
Fix linkerconfig_backward_compatibility_test am: 2dd4e4d2cb

Change-Id: I978ed22941f49942163419544398f8925af3ddaa

4 years agoFix linkerconfig_backward_compatibility_test
Jooyung Han [Wed, 12 Feb 2020 23:41:15 +0000 (08:41 +0900)]
Fix linkerconfig_backward_compatibility_test

The current GetValue() falls back to GetProperty(). This makes the test
show different result on different running environment. For consistent
test result, MockVariables() now overrides all product/vendor variables.

Bug: n/a
Test: atest --host linkerconfig_backward_compatibility_test
      atest linkerconfig_backward_compatibility_test

Change-Id: I4b7533e10058b0236a8aef4c54fbb58f3bec0ccc

4 years agoRead vndk libraries txt files from vndk apex am: 7c2b73a71f
Automerger Merge Worker [Wed, 12 Feb 2020 18:42:25 +0000 (18:42 +0000)]
Read vndk libraries txt files from vndk apex am: 7c2b73a71f

Change-Id: I24a5c1482e9a059025dac3aba1ea1e1cf485b7b2

4 years agoGenerate vendor stuff only if vndk is avilable am: 3f83cfb602
Automerger Merge Worker [Wed, 12 Feb 2020 18:42:22 +0000 (18:42 +0000)]
Generate vendor stuff only if vndk is avilable am: 3f83cfb602

Change-Id: I90769d8e5ae9ea3116454aa3bf4d43d04021a877

4 years agoRead vndk libraries txt files from vndk apex
Jooyung Han [Tue, 11 Feb 2020 23:53:51 +0000 (08:53 +0900)]
Read vndk libraries txt files from vndk apex

Vndk apex contains some txt files which list libraries it contains.
- llndk.libraries.txt
- vndksp.libraries.txt
- vndkcore.libraries.txt
- vndkprivate.libraries.txt

These files can be read from vndk apex instead of /system/etc.

Bug: 145184886
Test: build / flash / boot
Change-Id: I2b242b71768af2a30de519ccd4d73b1a86e46382

4 years agoGenerate vendor stuff only if vndk is avilable
Jooyung Han [Tue, 11 Feb 2020 23:43:31 +0000 (08:43 +0900)]
Generate vendor stuff only if vndk is avilable

Linkerconfig runs even when there is no apexes available. When vndk apex
is not available, having vendor section or namespaces requiring vndk
libraries is meaningless.

This is necessary because we'd like to load some variables from vndk
apex, but relying on those variables when vndk apex is not available may
fail to generate linker configuration.

Bug: 145184886
Test: build / flash / boot
Change-Id: I7c77757254a63c8bc7470c4ae87f2db3779e6465

4 years agoMerge "Add required modules for linkerconfig" am: bade76eb13
Automerger Merge Worker [Tue, 11 Feb 2020 23:07:32 +0000 (23:07 +0000)]
Merge "Add required modules for linkerconfig" am: bade76eb13

Change-Id: I9cad270d6fbfa1125f1524954f2b8f7765228499

4 years agoMerge "Add required modules for linkerconfig"
Treehugger Robot [Tue, 11 Feb 2020 22:59:27 +0000 (22:59 +0000)]
Merge "Add required modules for linkerconfig"

4 years agoMerge "2 more missing Result::ok() calls in system/linkerconfig" am: ffacdd9477
Automerger Merge Worker [Tue, 11 Feb 2020 22:47:37 +0000 (22:47 +0000)]
Merge "2 more missing Result::ok() calls in system/linkerconfig" am: ffacdd9477

Change-Id: I0fbc15f0cb04554567ee042fb97a91e09a6faf6f

4 years agoMerge "2 more missing Result::ok() calls in system/linkerconfig"
Treehugger Robot [Tue, 11 Feb 2020 22:35:08 +0000 (22:35 +0000)]
Merge "2 more missing Result::ok() calls in system/linkerconfig"

4 years agoMerge changes I2ead6a77,I6bf2204a am: 4add3c0b71
Automerger Merge Worker [Tue, 11 Feb 2020 22:08:19 +0000 (22:08 +0000)]
Merge changes I2ead6a77,I6bf2204a am: 4add3c0b71

Change-Id: I3b673660490dc97f6d080a9c0112a6b62a98c99c

4 years agoMerge changes I2ead6a77,I6bf2204a
Treehugger Robot [Tue, 11 Feb 2020 21:49:17 +0000 (21:49 +0000)]
Merge changes I2ead6a77,I6bf2204a

* changes:
  Remove ResolveVariables()
  Make ConfigWriter simpler

4 years agoAdd required modules for linkerconfig
Jooyung Han [Tue, 11 Feb 2020 19:21:16 +0000 (04:21 +0900)]
Add required modules for linkerconfig

linkerconfig relies on some txt files.
Adding those modules as required:
- llndk.libraries.txt
- vndkprivate.libraries.txt
- vndkcore.libraries.txt
- vndkcorevariant.libraries.txt
- vndksp.libraries.txt
- sanitizer.libraries.txt

Bug: N/A
Test: m installclean; m linkerconfig
      check if those txt files are installed together

Change-Id: I8ab98591026dad06b3140043c54b7134ca3dac33

4 years ago2 more missing Result::ok() calls in system/linkerconfig
Bernie Innocenti [Tue, 11 Feb 2020 20:09:44 +0000 (05:09 +0900)]
2 more missing Result::ok() calls in system/linkerconfig

Test: cd system/linkerconfig && atest
Change-Id: I2c6f8eb4b81065b90512f88a9f248affecacf019

4 years agoMerge "Use apex_name for the name of linker namespace" am: 2fa82ebd25
Automerger Merge Worker [Tue, 11 Feb 2020 19:16:38 +0000 (19:16 +0000)]
Merge "Use apex_name for the name of linker namespace" am: 2fa82ebd25

Change-Id: I92d3bdbf307e06d8439d957d779312498c12e20f

4 years agoMerge "Use apex_name for the name of linker namespace"
Treehugger Robot [Tue, 11 Feb 2020 19:00:40 +0000 (19:00 +0000)]
Merge "Use apex_name for the name of linker namespace"

4 years agoRemove ResolveVariables()
Jooyung Han [Fri, 7 Feb 2020 16:08:22 +0000 (01:08 +0900)]
Remove ResolveVariables()

ResolveVariables() takes long because it uses regex pattern search and
replace them with values. It can be avoided by resolving variables while
configurations are being built.

For easy transition, "Var()" utility function is introduced which should
be called after LoadVariables(). This will be enforced by moving Var()
into Context so that it only be called when Context is available (which
is, after LoadVariables() is called)

Bug: 149020353
Test: atest --test-mapping system/linkerconfig
      build / flash / boot
Change-Id: I2ead6a77dcc9ec14b4e083897a2818714438beb5

4 years agoMake ConfigWriter simpler
Jooyung Han [Fri, 7 Feb 2020 06:38:16 +0000 (15:38 +0900)]
Make ConfigWriter simpler

- Remove varg WriteLine
- No prefix
- Add WriteVars for writing multiple lines using "="/ "+="

This refactoring is a prep for removing "ResolveVariables()" which is very slow.

Bug: 149020353
Test: atest --test-mapping system/linkerconfig
Change-Id: I6bf2204a9ac0794b0bdf8028999a3543821a26be

4 years agoLast missing Result::ok() calls in system/linkerconfig am: 51be4fe748
Automerger Merge Worker [Sun, 9 Feb 2020 08:21:56 +0000 (08:21 +0000)]
Last missing Result::ok() calls in system/linkerconfig am: 51be4fe748

Change-Id: I71de5d9c437049101bdf9c185242058776981c35

4 years agoLast missing Result::ok() calls in system/linkerconfig
Bernie Innocenti [Sat, 8 Feb 2020 19:12:18 +0000 (04:12 +0900)]
Last missing Result::ok() calls in system/linkerconfig

No functionality change.

Test: cd system/linkerconfig && atest
Change-Id: I5ffa14d1d935c8e01c694338400e366a19895ba6

4 years agoRemove unused files am: 35df8b6140
Automerger Merge Worker [Sat, 8 Feb 2020 01:37:40 +0000 (01:37 +0000)]
Remove unused files am: 35df8b6140

Change-Id: I3d3de0df7afb119313feb7704d5e03a054b09510

4 years agoUse apex_name for the name of linker namespace
Jooyung Han [Fri, 7 Feb 2020 17:59:10 +0000 (02:59 +0900)]
Use apex_name for the name of linker namespace

Till now short names are used for apex namespaces but there are no
explicit rule for this. Instead of extracting namespace name from apex
name (com.android.foo => foo), we'd better use apex name as it is
because it is well-established identifier for apexes.

Bug: 148826508
Test: build/flash/boot
      atest

Change-Id: I4f77eb85652a999274844436ba14b5c05831cf5b

4 years agoRemove unused files
Jooyung Han [Fri, 7 Feb 2020 17:51:00 +0000 (02:51 +0900)]
Remove unused files

conscrypt and neuralnetworks namespaces are now generated automatically.

Bug: N/A
Test: build
Change-Id: Ic13d3f4206ecfda1937adf2111977b279fba05ef

4 years agoAuto-generate runtime namespace am: b818280515
Automerger Merge Worker [Fri, 7 Feb 2020 07:44:06 +0000 (07:44 +0000)]
Auto-generate runtime namespace am: b818280515

Change-Id: I9ae5f026915c98aa1070560fd1923536c0a8d3b7

4 years agoAuto-generate media namespace am: 834efc8c45
Automerger Merge Worker [Fri, 7 Feb 2020 07:43:57 +0000 (07:43 +0000)]
Auto-generate media namespace am: 834efc8c45

Change-Id: Idff81f99b6a7baf98882615653563e7cc69b09f2

4 years agoAuto-generate apex namespaces: cronet,nn,conscrypt am: 9960aca469
Automerger Merge Worker [Fri, 7 Feb 2020 07:43:55 +0000 (07:43 +0000)]
Auto-generate apex namespaces: cronet,nn,conscrypt am: 9960aca469

Change-Id: I7e6ecab4463e0c50864ef186952d549b6a63b40f

4 years agoAuto-generate runtime namespace
Jooyung Han [Thu, 6 Feb 2020 11:46:02 +0000 (20:46 +0900)]
Auto-generate runtime namespace

runtime apex provides bionic(libc/libm/libdl) libraries. But actually
they are supposed to be accessed via symlinks in /system/lib (i.e.
system namespace).

By amending soong not to emit those bionic libs as providing libs of
runtime apex, now runtime apex can be auto-generated by linkerconfig.

Bug: 144664390
Test: build / flash / boot
Change-Id: Idda42801a608e5fcb495bfccdd07ca6c0666a53d

4 years agoAuto-generate media namespace
Jooyung Han [Thu, 6 Feb 2020 11:39:02 +0000 (20:39 +0900)]
Auto-generate media namespace

Now, media namespace is auto-generated.
This is done by adding /apex/<name>/lib as permitted path as well as
search path, because media apex needs a permitted path
/com.android.media/lib/extractors.

Bug: 144664390
Test: build / flash / boot
      atest --test-mapping system/linkerconfig
Change-Id: I9186b0768b3bce3ad19f3d14010725af0bbf5861

4 years agoAuto-generate apex namespaces: cronet,nn,conscrypt
Jooyung Han [Thu, 6 Feb 2020 11:17:53 +0000 (20:17 +0900)]
Auto-generate apex namespaces: cronet,nn,conscrypt

Some visible namespaces are now auto-generated using activated apex
info. This is quite a significant change for init/bootstrap stages.
For example, at init stage which has no apexes activated, linkerconfig
dosn't generate apex namespaces at all. Previously, it was statically
generated whether those apexes are available or not.

Amon remaining apexes, media and runtime will be removed soon.

Bug: 144664390
Test: compare generated ld.config.txt between changes
      build / flash / boot
      atest --test-mapping system/linkerconfig
Change-Id: I334071dd59273e194ccdca1ef2cff0b7ee1b5c35

4 years agoMerge "Configuration for special APEX binaries" am: ce9da40b83
Automerger Merge Worker [Fri, 7 Feb 2020 03:47:15 +0000 (03:47 +0000)]
Merge "Configuration for special APEX binaries" am: ce9da40b83

Change-Id: I182bca74f03de286823a6f0b61b04043e819920f

4 years agoMerge "Configuration for special APEX binaries"
Kiyoung Kim [Fri, 7 Feb 2020 03:25:42 +0000 (03:25 +0000)]
Merge "Configuration for special APEX binaries"

4 years agoConfiguration for special APEX binaries
Kiyoung Kim [Wed, 29 Jan 2020 05:56:54 +0000 (14:56 +0900)]
Configuration for special APEX binaries

Some of the linker configuration for APEX binaries are not enough just
to use auto-generated contents. This change implements some of the
additional namespaces for some special APEXes with binaries - ART and
Media SWCodec.

Bug: 147987608
Test: m -j passed
Test: Tested adbd and swcodec(Youtube) on Cuttlefish and Crosshatch
Change-Id: I58345dc31bb97138c9c632039a10ab000e23bcb6

4 years agoConvert system/linkerconfig to Result::ok() am: 5c325567e2
Automerger Merge Worker [Thu, 6 Feb 2020 23:19:49 +0000 (23:19 +0000)]
Convert system/linkerconfig to Result::ok() am: 5c325567e2

Change-Id: I3d10df9aaaa1dbb9456960c24b20c7d7c4f6bab4

4 years agoConvert system/linkerconfig to Result::ok()
Bernie Innocenti [Thu, 6 Feb 2020 14:16:23 +0000 (23:16 +0900)]
Convert system/linkerconfig to Result::ok()

No functionality changes, this is a mechanical cleanup.

Test: m
Change-Id: I759398fdf01d1703b0c128fb4f34d33a6f1a2027

4 years agoMove part of Context into modules::BaseContext am: 32c2ef7510
Automerger Merge Worker [Wed, 5 Feb 2020 05:24:37 +0000 (05:24 +0000)]
Move part of Context into modules::BaseContext am: 32c2ef7510

Change-Id: Ie1318021f558fce908222f5df2c174fe1db33812

4 years agoAdd default "provides" list to system namespace am: 91079f0f9b
Automerger Merge Worker [Wed, 5 Feb 2020 05:24:27 +0000 (05:24 +0000)]
Add default "provides" list to system namespace am: 91079f0f9b

Change-Id: Ie67d2b6d6bd4f5762a03f7559a6ff1ebcdd2c7ec

4 years agoAdd "--strict" flag am: b4af747146
Automerger Merge Worker [Wed, 5 Feb 2020 05:24:25 +0000 (05:24 +0000)]
Add "--strict" flag am: b4af747146

Change-Id: Ic1e6d5a1e28fedc98470dc8a3f0ef9375fedf85f

4 years agoBuild adbd/resolv namespace automatically am: 7482996bd3
Automerger Merge Worker [Wed, 5 Feb 2020 05:24:23 +0000 (05:24 +0000)]
Build adbd/resolv namespace automatically am: 7482996bd3

Change-Id: I7edb3004451f2b94e2f0f019ca603c4c1b423b72

4 years agoMove part of Context into modules::BaseContext
Jooyung Han [Tue, 4 Feb 2020 10:46:06 +0000 (19:46 +0900)]
Move part of Context into modules::BaseContext

ApexInfo/strict is used in Section::Resolve and it's very generic.
Moving it into BaseContext makes code simpler

Bug: N/A
Test: atest --test-mapping system/linkerconfig
Change-Id: I8acbdb7ed3368b6c10474be1c30a12fbc81c8ca6

4 years agoAdd default "provides" list to system namespace
Jooyung Han [Mon, 3 Feb 2020 10:32:33 +0000 (19:32 +0900)]
Add default "provides" list to system namespace

Contrary to APEX modules, system doesn't have meta data represening
"provides". So adding the "provides" list to system namespaces.

Bug: 144664390
Test: build / flash / boot
Test: atest --test-mapping system/linkerconfig
Change-Id: I808736814221a0d0cff2f163d64da01b398dc265

4 years agoAdd "--strict" flag
Jooyung Han [Mon, 3 Feb 2020 09:07:12 +0000 (18:07 +0900)]
Add "--strict" flag

--strict flag tells linkerconfig to resolve constraints in strict mode.
In strict mode, when a required module is not found, resolution fails.
Otherwise, missing requirements are ignored silently.

Linkerconfig may run at a very early stage when there is no apexes or
only bootstrap apexes are activated. --strict mode can be turned on when
all apexes are activated.

Bug: 144664390
Test: build / flash / boot
Change-Id: I13cab3aabb605338d031f825fe4af5f9a410a715

4 years agoBuild adbd/resolv namespace automatically
Jooyung Han [Mon, 3 Feb 2020 08:35:56 +0000 (17:35 +0900)]
Build adbd/resolv namespace automatically

adbd/resolv APEXes can be generated automatically.

Bug: 144664390
Test: build / flash / boot
Change-Id: I025bf186d7071e6051bd65d94ec9b3185b8c1a43

4 years agoMerge "Pass Context to Build.*Configuration" am: 0d45fe440d
Automerger Merge Worker [Tue, 4 Feb 2020 05:52:14 +0000 (05:52 +0000)]
Merge "Pass Context to Build.*Configuration" am: 0d45fe440d

Change-Id: Iced94b1a39b5f8393f0b44a2f55aa8be01bca1d4

4 years agoMerge "Pass Context to Build.*Configuration"
Treehugger Robot [Tue, 4 Feb 2020 05:42:40 +0000 (05:42 +0000)]
Merge "Pass Context to Build.*Configuration"

4 years agoMerge "Add libadbd_auth.so to stub library list." am: 18c7e5691e
Automerger Merge Worker [Mon, 3 Feb 2020 20:17:53 +0000 (20:17 +0000)]
Merge "Add libadbd_auth.so to stub library list." am: 18c7e5691e

Change-Id: I5a1c64b8a1b0034dadcbed117dd0914c1dbfbe4a

4 years agoMerge "Add libadbd_auth.so to stub library list."
Josh Gao [Mon, 3 Feb 2020 20:15:20 +0000 (20:15 +0000)]
Merge "Add libadbd_auth.so to stub library list."

4 years agoPass Context to Build.*Configuration
Jooyung Han [Mon, 3 Feb 2020 05:23:06 +0000 (14:23 +0900)]
Pass Context to Build.*Configuration

Context is prepared with activated APEX modules and passed to the
configuration builders.

This doesn't change the current behavior, and there will be follow-up
changes which uses Context to generate APEX-related configuration
dynamically.

Bug: 144664390
Test: compare geneated ld.config.txt files with old ones.
Change-Id: Ice4c7e57d8f5894e4b18510a116e5b38da8d8462

4 years agoMerge "Fix handling mkdir failure" am: e2b32b57df
Automerger Merge Worker [Fri, 31 Jan 2020 07:28:33 +0000 (07:28 +0000)]
Merge "Fix handling mkdir failure" am: e2b32b57df

Change-Id: I30369633a9c3d5cfed6b3937d5b0d6f6b45326b0

4 years agoMerge "Fix handling mkdir failure"
Treehugger Robot [Fri, 31 Jan 2020 07:22:27 +0000 (07:22 +0000)]
Merge "Fix handling mkdir failure"

4 years agoAdd libadbd_auth.so to stub library list.
Josh Gao [Fri, 31 Jan 2020 00:19:29 +0000 (16:19 -0800)]
Add libadbd_auth.so to stub library list.

Test: treehugger
Change-Id: I90cc7906e73f90234fcd13aad42e1affb69ff9dc

4 years agoUse provide/require to link namespaces am: 6bc990e58b
Automerger Merge Worker [Thu, 30 Jan 2020 17:44:36 +0000 (17:44 +0000)]
Use provide/require to link namespaces am: 6bc990e58b

Change-Id: I73db78d92bb9d68376ee272ed4091a3fb5afee73

4 years agoUse provide/require to link namespaces
Jooyung Han [Wed, 29 Jan 2020 18:29:10 +0000 (03:29 +0900)]
Use provide/require to link namespaces

Add provide/require information for adbd/art/conscrypt/neuralnetworks
namespace and use it to link namespaces.

With this change, this information is hard-coded but will come from
apex_manifest.pb.

Bug: 144659031
Test: Cuttlefish boots
Change-Id: I617818744b6e015c81170b345f9dfa8ca9b993ec

4 years agoFix handling mkdir failure
Jooyung Han [Thu, 30 Jan 2020 03:57:34 +0000 (12:57 +0900)]
Fix handling mkdir failure

The commit(98a691144d433bd05ad0d26f4caab38e8a3d9c39) was simply wrong
because mkdir() returns -1 and set errno instead of returning it.

Bug: n/a
Test: run linkerconfig twice with same target_dir

Change-Id: Iea8a7357219153abd00f342a1d7794b787bf09dc

4 years agoMerge "Link to system namespace using stub libraries"
Kiyoung Kim [Tue, 28 Jan 2020 10:44:39 +0000 (02:44 -0800)]
Merge "Link to system namespace using stub libraries"
am: ad91df7caf

Change-Id: Ieccc2683b327886544caffb634629cfaf2d4f30b

4 years agoMerge "Link to system namespace using stub libraries"
Kiyoung Kim [Tue, 28 Jan 2020 10:39:38 +0000 (10:39 +0000)]
Merge "Link to system namespace using stub libraries"

4 years agoSort namespaces in a section
Jooyung Han [Tue, 28 Jan 2020 10:04:26 +0000 (02:04 -0800)]
Sort namespaces in a section
am: cfb788f92d

Change-Id: I8689f1f90dc6c0c83ec7e223863fd7e37104bce2

4 years agoSkip log when mkdir fails with EEXIST
Jooyung Han [Tue, 28 Jan 2020 09:56:30 +0000 (01:56 -0800)]
Skip log when mkdir fails with EEXIST
am: 98a691144d

Change-Id: I931757987681937ab26e0dcb29357152116225e0

4 years agoDo UpdatePermission only on target.
Jooyung Han [Tue, 28 Jan 2020 09:36:32 +0000 (01:36 -0800)]
Do UpdatePermission only on target.
am: 5f2463648e

Change-Id: I588612191400ea71c45b413710c144c199bfa916

4 years agoSort namespaces in a section
Jooyung Han [Tue, 28 Jan 2020 07:30:11 +0000 (16:30 +0900)]
Sort namespaces in a section

The order of namespaces doesn't matter.
It would be easier to compare when they are sorted, especially when we
generate them with dynamic APEX information.

Bug: N/A
Test: atest --test-mapping system/linkerconfig
Change-Id: I5845247152895c2503c49f7eafd52fb5665b24ba

4 years agoSkip log when mkdir fails with EEXIST
Jooyung Han [Tue, 28 Jan 2020 07:22:47 +0000 (16:22 +0900)]
Skip log when mkdir fails with EEXIST

This is useful when running linkerconfig many times with the same
target_directory.

Bug: N/A
Test: run linkerconfig on host
Change-Id: I38b70a5078afdc0f79d26789c04ec2ed075be491

4 years agoDo UpdatePermission only on target.
Jooyung Han [Tue, 28 Jan 2020 06:44:14 +0000 (15:44 +0900)]
Do UpdatePermission only on target.

Otherwise, UpdatePermission fails when running on host.

Bug: N/A
Test: run linkerconfig on host
Change-Id: I37207beb2404daa052b8011075d2c5eaaefa63c2

4 years agoLink to system namespace using stub libraries
Kiyoung Kim [Mon, 13 Jan 2020 02:44:05 +0000 (11:44 +0900)]
Link to system namespace using stub libraries

As stub libraries list is generated, linkerconfig can use this to
generalize list of libraries linked to system namespace from other
(usually APEX) libraries.

Bug: 147210213
Test: m -j passed && Cuttlefish succeeded to boot
Change-Id: I350390a023c0d186da11844152b51b06ace60e8a

4 years agoMerge "Add adbd apex configuration."
Josh Gao [Fri, 24 Jan 2020 22:10:06 +0000 (14:10 -0800)]
Merge "Add adbd apex configuration."
am: 3a81b768ff

Change-Id: I024f54fa24be27fcdc55e818bc4e418ef599f0cb

4 years agoMerge "Add adbd apex configuration."
Treehugger Robot [Fri, 24 Jan 2020 22:06:11 +0000 (22:06 +0000)]
Merge "Add adbd apex configuration."

4 years agoMerge "Add liblog to system libraries." am: c5be7e7196
Automerger Merge Worker [Fri, 24 Jan 2020 07:47:11 +0000 (07:47 +0000)]
Merge "Add liblog to system libraries." am: c5be7e7196

Change-Id: I2e0b8b69c2b098392c464101f0ed4319a95f1715

4 years agoMerge "Add liblog to system libraries."
Treehugger Robot [Fri, 24 Jan 2020 07:34:10 +0000 (07:34 +0000)]
Merge "Add liblog to system libraries."

4 years agoAdd adbd apex configuration.
Josh Gao [Thu, 23 Jan 2020 02:04:26 +0000 (18:04 -0800)]
Add adbd apex configuration.

The JDWP socket abstraction is moving from a server shared library
in the ART apex loaded by adbd, to a client shared library in the
adbd apex.

Test: manually booted internal, attached jdb to a random app twice
Change-Id: Ic8c9c7470321c965d1d614d7c99179b772dfd8c8

4 years agoAdd liblog to system libraries.
Josh Gao [Thu, 23 Jan 2020 20:36:40 +0000 (12:36 -0800)]
Add liblog to system libraries.

Test: treehugger
Change-Id: I79954cfd6a3a32f0988a24a18954db8f8459fd04

4 years agoMerge "Generate linkerconfig for APEX binaries"
Kiyoung Kim [Wed, 22 Jan 2020 08:04:34 +0000 (00:04 -0800)]
Merge "Generate linkerconfig for APEX binaries"
am: a18a241e40

Change-Id: I6b7e9b386f792b13d4f0c79bdbd04b4f11f2ced5

4 years agoMerge "Generate linkerconfig for APEX binaries"
Kiyoung Kim [Wed, 22 Jan 2020 07:58:43 +0000 (07:58 +0000)]
Merge "Generate linkerconfig for APEX binaries"

4 years agoGenerate linkerconfig for APEX binaries
Kiyoung Kim [Mon, 20 Jan 2020 04:33:00 +0000 (13:33 +0900)]
Generate linkerconfig for APEX binaries

Generate linkerconfig for APEX binaries. Dependency can be resolved with
platform namespace which offers stub libraries, and other APEX modules
based on its providing library list.

Bug: 147987608
Test: m -j passed && checked linkerconfig generated per binary APEX
Change-Id: I27a872d5e82618dc0621ed9a86c176171d2f00ab

4 years agoRead product vndk libraries only when available
Kiyoung Kim [Tue, 21 Jan 2020 04:04:24 +0000 (20:04 -0800)]
Read product vndk libraries only when available
am: fec6e10f9b

Change-Id: I4796410af07b78d535d401b5abfd6b5a27c816ef

4 years agoRead product vndk libraries only when available
Kiyoung Kim [Mon, 20 Jan 2020 10:55:40 +0000 (19:55 +0900)]
Read product vndk libraries only when available

Current linkerconfig implementation tries to read vndk library list with
product vndk version even when the version is not specified. This change
will let linkerconfig load those files only when product vndk version is
available.

Test: m -j passed && Checked execution from cuttlefish
Change-Id: Ifb861d7c71a43ac77b27a6c29419b5f965d6097d

4 years agoMerge "Add product section for product interface enforcement" am: 9a3e85c31f am:...
Automerger Merge Worker [Wed, 8 Jan 2020 08:13:10 +0000 (08:13 +0000)]
Merge "Add product section for product interface enforcement" am: 9a3e85c31f am: c1765189e9

Change-Id: I217376ea52b7a5883aeff1ea9608b38994a8d804

4 years agoMerge "Add product section for product interface enforcement"
Justin Yun [Wed, 8 Jan 2020 08:04:14 +0000 (00:04 -0800)]
Merge "Add product section for product interface enforcement"
am: 9a3e85c31f

Change-Id: I66e83612faf7a5a74bc7c11d1ac2f325d4ca1de9

4 years agoMerge "Add product section for product interface enforcement"
Treehugger Robot [Wed, 8 Jan 2020 07:42:01 +0000 (07:42 +0000)]
Merge "Add product section for product interface enforcement"

4 years agoScan Active APEXes am: 86b57f60c6 am: 8984d415ac
Automerger Merge Worker [Tue, 7 Jan 2020 12:15:23 +0000 (12:15 +0000)]
Scan Active APEXes am: 86b57f60c6 am: 8984d415ac

Change-Id: I0531f81da91f608b857e682edae1a687be8a83c6

4 years agoScan Active APEXes
Jooyung Han [Tue, 7 Jan 2020 12:02:22 +0000 (04:02 -0800)]
Scan Active APEXes
am: 86b57f60c6

Change-Id: Ia8d73abd04d846c42148b9b3711129e034b19814

4 years agoScan Active APEXes
Jooyung Han [Mon, 6 Jan 2020 09:09:30 +0000 (18:09 +0900)]
Scan Active APEXes

Added a helper function ScanActiveApexes() which returns active APEXes.

Bug: 144659031
Test: atest --host linkerconfig_modules_unittest
Change-Id: Id953e9b3db7e63641571b8e36377ef2c29e70eb9

4 years agoAdd product section for product interface enforcement
Justin Yun [Mon, 16 Dec 2019 08:47:02 +0000 (17:47 +0900)]
Add product section for product interface enforcement

If ro.product.vndk.version is defined, product partition will have
seprate section from system section.
Modules in /product allowed to use VNDKs only from /system partition.
Modules in /system or /system_ext are not allowed to link to the
libraries in /product.

Bug: 124024578
Bug: 120954888
Test: build with "PRODUCT_PRODUCT_VNDK_VERSION := current"
      check device boot and basic functions

Change-Id: I0f9cd8b27c56c6a786b10aa23ffc4b197cea714d

4 years agoTarget out directory am: 5c8366d2d7 am: e5de40e6b1
Automerger Merge Worker [Thu, 2 Jan 2020 04:41:18 +0000 (04:41 +0000)]
Target out directory am: 5c8366d2d7 am: e5de40e6b1

Change-Id: I65df3e311ebda718131ca4b53c3f7a45c9051097

4 years agoTarget out directory
Kiyoung Kim [Thu, 2 Jan 2020 04:20:10 +0000 (20:20 -0800)]
Target out directory
am: 5c8366d2d7

Change-Id: Ide99573170d89ba43ac200381b6a70b9623cf71a

4 years agoTarget out directory
Kiyoung Kim [Mon, 30 Dec 2019 09:43:00 +0000 (18:43 +0900)]
Target out directory

Linkerconfig will generate more than 1 file, based on APEX modules and
emulation. To support this, linkerconfig should take out target
directory as argument rather than out target file.

Bug: 146993126
Test: m -j passed && Cuttlefish succeeded to boot
Change-Id: Iabc611ad0dc31a5ab5627356a8552796ab452d7e

4 years agoRemove VNDK version for using core variant libraries am: 11b05d5011 am: c3a0781c6d
Automerger Merge Worker [Tue, 31 Dec 2019 01:20:30 +0000 (01:20 +0000)]
Remove VNDK version for using core variant libraries am: 11b05d5011 am: c3a0781c6d

Change-Id: I118b70ffadbea8284da879e12381c5fcc9b95a3f

4 years agoRemove VNDK version for using core variant libraries
Kiyoung Kim [Tue, 31 Dec 2019 01:04:26 +0000 (17:04 -0800)]
Remove VNDK version for using core variant libraries
am: 11b05d5011

Change-Id: Iba0e621f4d1ea186db94e6b1618d6cd5aae38a7e

4 years agoRemove VNDK version for using core variant libraries
Kiyoung Kim [Mon, 30 Dec 2019 01:51:10 +0000 (10:51 +0900)]
Remove VNDK version for using core variant libraries

In current, name of the file contains VNDK using core variant library
list goes with VNDK version like other library list files. However, this
list is dependent on the system image not the VNDK version. To meet this
condition, this file name should not contain VNDK version number to avoid confusion.
This change removes VNDK version number from the file name.

Bug: 142599349
Test: m -j passed && aosp_cf_x86_go_phone booted
Change-Id: Ie167639e5ae2bae2ad269ffde168cfa5ac7de217

4 years agoAdd --legacy for easy of testing am: 5bbb123cd1 am: 8bf4479157
Automerger Merge Worker [Mon, 23 Dec 2019 08:16:32 +0000 (08:16 +0000)]
Add --legacy for easy of testing am: 5bbb123cd1 am: 8bf4479157

Change-Id: Ide272e724ed15d897232a596ce9624daeaab2d36

4 years agoAdd --legacy for easy of testing
Jooyung Han [Mon, 23 Dec 2019 08:05:30 +0000 (00:05 -0800)]
Add --legacy for easy of testing
am: 5bbb123cd1

Change-Id: Id84e31765d199c017dc1e85436b01222283ab67f

4 years agoAdd --legacy for easy of testing
Jooyung Han [Mon, 23 Dec 2019 04:35:00 +0000 (13:35 +0900)]
Add --legacy for easy of testing

Generate linker config for targets which are not treble-ized.
This argument is only for test on host.

Test: m linkerconfig && linkerconfig --legacy --root $OUT --vndk R
Change-Id: Id1ca59de2016de2de6b9a52f1ac217edea7c71f0

4 years agoBuild linker configuration for recovery in build time am: 722dad6819 am: 4b76d66377
Automerger Merge Worker [Fri, 20 Dec 2019 07:24:33 +0000 (07:24 +0000)]
Build linker configuration for recovery in build time am: 722dad6819 am: 4b76d66377

Change-Id: Ia74cfb235d6fca9be0fdd31863f40ca2d8c51ca5

4 years agoBuild linker configuration for recovery in build time
Kiyoung Kim [Fri, 20 Dec 2019 07:13:45 +0000 (23:13 -0800)]
Build linker configuration for recovery in build time
am: 722dad6819

Change-Id: I3849985c6cc0160db23452cec47cf6a29d836796

4 years agoBuild linker configuration for recovery in build time
Kiyoung Kim [Thu, 19 Dec 2019 06:59:55 +0000 (15:59 +0900)]
Build linker configuration for recovery in build time

As recovery has not enough space for linkerconfig binary, and also
linker configuration for recovery is does not require any environmental
variables, so linker configuration for recovery better be generated
from build time. This change enables to build linker configuration for
recovery from build and install into recovery system/etc.

Bug: 146414198
Test: m -j passed
Test: Checked linker config generated under recovery's system/etc
Change-Id: I08b77aa96191d3ccb67f8b8ca8fd918ca126de92