Merge "Move android_ids from .data.rel.ro to .rodata"

This commit is contained in:
Vic Yang
2018-12-06 06:04:23 +00:00
committed by Gerrit Code Review

View File

@@ -1108,9 +1108,14 @@ class AIDArrayGen(BaseGenerator):
_INCLUDE = '#include <private/android_filesystem_config.h>' _INCLUDE = '#include <private/android_filesystem_config.h>'
# Note that the android_id name field is of type 'const char[]' instead of
# 'const char*'. While this seems less straightforward as we need to
# calculate the max length of all names, this allows the entire android_ids
# table to be placed in .rodata section instead of .data.rel.ro section,
# resulting in less memory pressure.
_STRUCT_FS_CONFIG = textwrap.dedent(""" _STRUCT_FS_CONFIG = textwrap.dedent("""
struct android_id_info { struct android_id_info {
const char *name; const char name[%d];
unsigned aid; unsigned aid;
};""") };""")
@@ -1132,12 +1137,13 @@ class AIDArrayGen(BaseGenerator):
def __call__(self, args): def __call__(self, args):
hdr = AIDHeaderParser(args['hdrfile']) hdr = AIDHeaderParser(args['hdrfile'])
max_name_length = max(len(aid.friendly) + 1 for aid in hdr.aids)
print AIDArrayGen._GENERATED print AIDArrayGen._GENERATED
print print
print AIDArrayGen._INCLUDE print AIDArrayGen._INCLUDE
print print
print AIDArrayGen._STRUCT_FS_CONFIG print AIDArrayGen._STRUCT_FS_CONFIG % max_name_length
print print
print AIDArrayGen._OPEN_ID_ARRAY print AIDArrayGen._OPEN_ID_ARRAY