Commit graph

21 commits

Author SHA1 Message Date
Florian Mayer
c10d064b5c Introduce hwasan mode for linker
This mode instructs the linker to search for libraries in hwasan
subdirectories of all library search paths. This is set up to contain a
hwasan-enabled copy of libc, which is needed for HWASan programs to
operate. There are two ways this mode can be enabled:

* for native binaries, by using the linker_hwasan64 symlink as its
  interpreter
* for apps: by setting the LD_HWASAN environment variable in wrap.sh

Bug: 276930343
Change-Id: I0f4117a50091616f26947fbe37a28ee573b97ad0
2023-04-14 01:33:30 -07:00
Richard Fung
5b57d9cd84 Remove boilerplate.
The apex hash tree is automatically generated at compile time for
apexes in apexd-bootstrap, so there's no need to explicitly specify
anything here.

Bug: b/203820392, b/198361718
Test: presubmit
Change-Id: I5ff0363fde701e7fe4e3ed8ab274c6a57852828c
2021-11-19 17:13:18 +00:00
Nikita Ioffe
8f537e8762 Explicitly set generate_hashtree: false
Non-updatable APEXes are going to be only present on a dm-verity
protected read-only partition. For such APEXes there is no need in
embedding a hashtree.

This is a no-op change in preparation of switching default value of
generate_hashtree to true.

Bug: 190621617
Test: m
Change-Id: I426c1fce37ce63200810d69092660644e13291c2
2021-06-14 22:13:42 +01:00
Bob Badour
aa7d835fdd Add LOCAL_LICENSE_KINDS to bionic
Added SPDX-license-identifier-Apache-2.0 to:
  apex/Android.bp
  libdl/Android.bp
  tools/Android.bp
  tools/versioner/Android.bp
  tools/versioner/src/Android.bp

Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:
  benchmarks/Android.bp
  benchmarks/linker_relocation/gen/Android.bp
  libc/malloc_debug/Android.bp
  libc/system_properties/Android.bp
  tests/Android.bp
  tests/libs/Android.bp
  tests/libs/Android.build.dlext_testzip.mk
  tests/make_fortify_compile_test.mk

Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
    SPDX-license-identifier-ISC SPDX-license-identifier-MIT
    legacy_notice legacy_unencumbered
to:
  libc/Android.bp

Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
    SPDX-license-identifier-MIT legacy_unencumbered
to:
  libm/Android.bp

Added SPDX-license-identifier-Apache-2.0 legacy_unencumbered
to:
  libc/tools/Android.bp

Added SPDX-license-identifier-BSD
to:
  benchmarks/linker_relocation/Android.bp
  benchmarks/spawn/Android.bp
  libc/async_safe/Android.bp
  libc/malloc_hooks/Android.bp
  libfdtrack/Android.bp
  linker/Android.bp
  tests/headers/Android.bp
  tests/headers/posix/Android.bp

Bug: 68860345
Bug: 151177513
Bug: 151953481

Test: m all
Exempt-From-Owner-Approval: janitorial work
Change-Id: Ib05bcaa276b3aa71a7654ccbe8e67e1f16aec9f3
2021-02-19 23:38:28 +00:00
Mathew Inwood
ede54420ba Merge "Set updatable=false explicitly." 2021-02-17 09:55:07 +00:00
Elliott Hughes
5e44c22ebf Revert "[LSC] Add LOCAL_LICENSE_KINDS to bionic"
This reverts commit 48d43034d7.

Reason for revert: bionic is multiple projects, not just one.

Change-Id: Ib31e1bb8888cc85c6e7736c4e2a1d4652fd23935
2021-02-16 20:02:47 +00:00
Mathew Inwood
f11ce9a175 Set updatable=false explicitly.
Currently, this is the default so this is a no-op,
But the default is changing to true.

Bug: 180375550
Test: Treehugger
Change-Id: I74cfd805958687a4c1e43eded31fb0e6583c1482
2021-02-16 14:45:45 +00:00
Bob Badour
48d43034d7 [LSC] Add LOCAL_LICENSE_KINDS to bionic
Added SPDX-license-identifier-Apache-2.0 to:
  libdl/Android.bp
  tools/versioner/src/Android.bp

Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:
  benchmarks/Android.bp
  libc/malloc_debug/Android.bp
  libc/system_properties/Android.bp
  linker/Android.bp
  tests/Android.bp
  tests/libs/Android.bp
  tests/libs/Android.build.dlext_testzip.mk
  tests/make_fortify_compile_test.mk

Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
    SPDX-license-identifier-ISC SPDX-license-identifier-MIT
    legacy_notice legacy_unencumbered
to:
  Android.bp
  libc/Android.bp

Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
    SPDX-license-identifier-ISC SPDX-license-identifier-MIT
    legacy_unencumbered
to:
  tools/Android.bp
  tools/versioner/Android.bp

Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
    SPDX-license-identifier-MIT legacy_unencumbered
to:
  libm/Android.bp

Added SPDX-license-identifier-Apache-2.0 legacy_unencumbered
to:
  libc/tools/Android.bp

Added SPDX-license-identifier-BSD
to:
  benchmarks/linker_relocation/Android.bp
  benchmarks/spawn/Android.bp
  libc/async_safe/Android.bp
  libc/malloc_hooks/Android.bp
  libfdtrack/Android.bp
  tests/headers/Android.bp
  tests/headers/posix/Android.bp

Added legacy_notice
to:
  apex/Android.bp
  benchmarks/linker_relocation/gen/Android.bp

Bug: 68860345
Bug: 151177513
Bug: 151953481

Test: m all

Exempt-From-Owner-Approval: janitorial work
Change-Id: I76cad00578b9b99180ee5dd1e04b4646d5c5fedf
2021-02-12 17:51:24 -08:00
Evgenii Stepanov
fb13915981 Add MTE note files to the SDK.
Bug: b/135772972
Test: none
Change-Id: I7dfd1b0b75aed18cc49dfed3baee41c6b30996b7
2021-01-08 17:46:32 +00:00
Kiyoung Kim
d1d534464d Move linkerconfig to Runtime APEX
Move linkerconfig to Runtime APEX for better updatability. linkerconfig
shared ld.config.txt format with linker, so it is better that linker and
linkerconfig to be updated together. This change moves linkerconfig into
Runtime APEX.

Bug: 165769179
Test: Cuttlefish boot succeeded
Change-Id: I81e2a547804ab9f796c00af382ae43e35c8459ef
2020-12-01 14:59:05 +09:00
Kiyoung Kim
2d4bbf2415 Update linkerconfig configuration format
Update linkerconfig configuration format as json.

Bug: 169634881
Test: cuttelfish boot succeeded
Change-Id: I297ffc9e5c8d8916b2e7e0b3e837b6b82247401b
2020-10-06 17:28:19 +09:00
Kiyoung Kim
5a8189f141 Mark bionic APEX as visible
Linkerconfig is going to remove all hard-coded dependencies from APEX
modules and let APEX modules specify its own requirements. As part of
it, this change adds a new configuration file for linkerconfig and let
it aware that bionic APEX should be visible from all sections.

Bug: 167946001
Test: atest passed
Change-Id: If934d9a3e72b1466ee0d7bbb66d9383b90986a6b
2020-09-09 16:28:20 +09:00
Martin Stjernholm
d6e35f1cc8 Add linkerconfig to the host exports.
ART runs it on host to create the linker config for its chroot test
environment. This avoids problems building linkerconfig in the reduced
master-art manifest.

Even though linkerconfig currently is in platform/system I'm adding it
to the Bionic module exports based on discussions that the linkerconfig
binary should be part of the Runtime (Bionic) APEX due to its close
ties to the linker.

Test: build/soong/scripts/build-aml-prebuilts.sh runtime-module-host-exports
  then try the prebuilt snapshot with art/tools/buildbot-build.sh in
  master-art
Bug: 162819454
Change-Id: I4d43d7f0b980af48b193d5eb358e4f010eea541b
2020-08-06 11:21:40 +01:00
Martin Stjernholm
b87882d6a4 Need prebuilt linker executable for host Bionic.
ART runs some tests on host using linux_bionic (cf.
ab/git_master-art-host). On device Bionic binaries come from its APEX,
but on host they have to be supplied separately. Since they're not part
of the SDK they are instead provided through a `module_export` module,
which is technically similar to `sdk` in the way it produces prebuilt
snapshots.

Test: art/test/testrunner/run_build_test_target.py art-linux-bionic-x64
  on a master-art branch using snapshot built from runtime-module-sdk
  and runtime-module-host-exports
Bug: 152255951
Change-Id: I143b5412f7284f42c7e8be6cecc5ec96f1dc70f3
2020-06-02 21:20:18 +01:00
Martin Stjernholm
215e1da3fc Add Bionic module SDK.
Test: v
  1. build/soong/scripts/build-aml-prebuilts.sh runtime-module-sdk
  2. Unzip out/aml/soong/mainline-sdks/runtime-module-sdk-current.zip
     into prebuilts/module_sdk/runtime in a master-art tree without
     platform/bionic in its manifest.
  3. Check that all shared libs in the generated Android.bp file in the
     zip archive have stubs.version set.
  4. art/build/apex/runtests.sh is successful in the master-art tree.
Bug: 152255951
Change-Id: Iaada409c2edfa504056da8bebfb30756456eb282
2020-05-11 23:45:13 +01:00
Peter Collingbourne
ea06b0dec2 Move crash_dump into the runtime APEX.
A future change will introduce a version lock between linker and
crash_dump. Move crash_dump into the runtime APEX alongside linker in order to
ensure that they will be the same version even if the runtime APEX is updated.

Bug: 135772973
Change-Id: I94740f9c45107f08490df639a2e4d589a3044847
Merged-In: I94740f9c45107f08490df639a2e4d589a3044847
2020-03-18 10:36:48 -07:00
Kiyoung Kim
bf40eac2eb Remove ld.config.txt from bionic APEX
Dynamic linker will use generated linker configuration in general. As
ld.config.txt file in the APEX module will not be used, we can remove
this to avoid confusion.

Bug: 149887007
Test: m -j passed
Test: Boot succeeded from cuttlefish and walleye
Change-Id: Iffd2113cf29055a7263eb3697547297639e9dc0c
2020-02-20 16:05:27 +09:00
Martin Stjernholm
3274cc4692 Reland "Add libdl_android to the Runtime (aka Bionic) APEX".
Before this it ended up in /system.

Test: build & boot
Test: adb shell find system apex -name libdl_android.so | xargs adb shell ls -l
  =>
  apex/com.android.runtime/lib/bionic/libdl_android.so
  apex/com.android.runtime/lib64/bionic/libdl_android.so
  apex/com.android.runtime@1/lib/bionic/libdl_android.so
  apex/com.android.runtime@1/lib64/bionic/libdl_android.so
  system/lib/bootstrap/libdl_android.so
  system/lib/libdl_android.so -> /apex/com.android.runtime/lib/bionic/libdl_android.so
  system/lib64/bootstrap/libdl_android.so
  system/lib64/libdl_android.so -> /apex/com.android.runtime/lib64/bionic/libdl_android.so
Test: atest CtsBionicTestCases
Test: Repro in b/144343305#comment8 together with ag/9754153
Bug: 135753770
Bug: 144343305
Change-Id: I9ccd10b711223ca474e91741711b7b8efd521b2d
2019-11-21 16:15:20 +00:00
Yuexi Ma
c74666eb3c Revert submission of topic 'libdl_android-in-apex'
Reason for revert: broke numerous major apps in app compat testing
Bug: 144100240

Change-Id: I50b440356bdbde3ac130da5d28d5ef20f8b63582
2019-11-07 19:18:53 +00:00
Martin Stjernholm
a3b0eab32f Add libdl_android to the Runtime APEX.
Before this it ended up in /system.

Test: build & boot
Test: adb shell find system apex -name libdl_android.so | xargs adb shell ls -l
  =>
  apex/com.android.runtime/lib/bionic/libdl_android.so
  apex/com.android.runtime/lib64/bionic/libdl_android.so
  apex/com.android.runtime@1/lib/bionic/libdl_android.so
  apex/com.android.runtime@1/lib64/bionic/libdl_android.so
  system/lib/bootstrap/libdl_android.so
  system/lib/libdl_android.so -> /apex/com.android.runtime/lib/bionic/libdl_android.so
  system/lib64/bootstrap/libdl_android.so
  system/lib64/libdl_android.so -> /apex/com.android.runtime/lib64/bionic/libdl_android.so
Bug: 135753770
Change-Id: Ibabb5714e8cc0454c77ae5d42d9650c345ff1b89
2019-11-06 00:28:38 +00:00
Elliott Hughes
470d10cf0f Move bionic ("runtime") apex definition into bionic/.
Bug: http://b/139176024
Test: boots
Change-Id: Ifc3829e00b99c2f65ed932f0b42ab1ae59fec27c
2019-09-30 16:44:58 -07:00