New issue
Advanced search Search tips

Issue 874587 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 22
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Feature
Proj-VR
Proj-XR
Proj-XR-VR

Blocking:
issue 874564



Sign in to add a comment

Create a production-grade script or executable tool to dynamically generate linker scripts

Project Member Reported by cjgrant@chromium.org, Aug 15

Issue description

After building a specially-linked version of code module(s), a tool inspects the resulting symbol table for unsatisfied dependencies, and aggregates them into a linker script, to ensure that those (and only those) methods are given global visibility.

The current static linker script(s) need to be made dynamically, possibly using templates to represent the JNI methods currently listed in the scripts.

The speed of the prototype python script should be assessed to see whether a C++ version of the tool is worthwhile.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/99e0e2006a334796f2e7dda0cb142e496f3f3f66

commit 99e0e2006a334796f2e7dda0cb142e496f3f3f66
Author: Christopher Grant <cjgrant@chromium.org>
Date: Wed Nov 21 21:22:36 2018

Dynamically generate the native library linker script

Credit to digit@ who supplied much of this change via a reference CL.

Rather than including one of two static linker scripts, generate the
desired script instead.  This allows an arbitrary list of additional
exported methods to be supplied if desired.

BUG= 874587 

Change-Id: I88eb0469dfb764bf910b8c3fe76fd4ed2c91c1e4
Reviewed-on: https://chromium-review.googlesource.com/c/1338141
Commit-Queue: Christopher Grant <cjgrant@chromium.org>
Reviewed-by: Tibor Goldschwendt <tiborg@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610217}
[modify] https://crrev.com/99e0e2006a334796f2e7dda0cb142e496f3f3f66/PRESUBMIT.py
[add] https://crrev.com/99e0e2006a334796f2e7dda0cb142e496f3f3f66/build/android/gyp/generate_linker_version_script.py
[add] https://crrev.com/99e0e2006a334796f2e7dda0cb142e496f3f3f66/build/android/gyp/generate_linker_version_script.pydeps
[add] https://crrev.com/99e0e2006a334796f2e7dda0cb142e496f3f3f66/build/config/android/linker_version_script.gni
[modify] https://crrev.com/99e0e2006a334796f2e7dda0cb142e496f3f3f66/chrome/android/BUILD.gn

Status: Fixed (was: Assigned)

Sign in to add a comment