Commit 936b6478 authored by Arthur Sonzogni's avatar Arthur Sonzogni Committed by Commit Bot

Revert "Add number of native relocations to .size file metadata"

This reverts commit 26aa61db.

Reason for revert:

From bug  https://crbug.com/1019618
Error message:
~~~
  File "/b/s/w/ir/cache/builder/src/tools/binary_size/libsupersize/archive.py", line 1679, in _CountRelocationsFromElf
    relocations = re.search('RELCOUNT\s*(.+)', stdout).group(1)
AttributeError: 'NoneType' object has no attribute 'group'
~~~

This is very likely caused by this CL. It prevents building the Clank
Official binaries, so reverting it speculatively

Original change's description:
> Add number of native relocations to .size file metadata
> 
> In furtherance of possibly putting a limit on additional native relocations
> added to the binary. A count of native relocations is now included in the
> metadata of the .size file.
> 
> Bug: 1012373
> Change-Id: Id3b4aa17d920f20435edffa5cda9ab8c0a309ade
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879504
> Commit-Queue: Andrew Grieve <agrieve@chromium.org>
> Reviewed-by: Andrew Grieve <agrieve@chromium.org>
> Auto-Submit: Mohamed Heikal <mheikal@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#709716}

TBR=agrieve@chromium.org,mheikal@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 1012373
Change-Id: I39638201732b09a2228ba9c0fc4050f75d38934c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1888934Reviewed-by: default avatarArthur Sonzogni <arthursonzogni@chromium.org>
Commit-Queue: Arthur Sonzogni <arthursonzogni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#710717}
parent 1ef2bc16
...@@ -773,7 +773,6 @@ def CreateMetadata(map_path, elf_path, apk_path, minimal_apks_path, ...@@ -773,7 +773,6 @@ def CreateMetadata(map_path, elf_path, apk_path, minimal_apks_path,
elf_path)) elf_path))
timestamp = calendar.timegm(timestamp_obj.timetuple()) timestamp = calendar.timegm(timestamp_obj.timetuple())
relative_tool_prefix = path_util.ToSrcRootRelative(tool_prefix) relative_tool_prefix = path_util.ToSrcRootRelative(tool_prefix)
relocations_count = _CountRelocationsFromElf(elf_path, tool_prefix)
metadata = { metadata = {
models.METADATA_GIT_REVISION: git_rev, models.METADATA_GIT_REVISION: git_rev,
...@@ -782,7 +781,6 @@ def CreateMetadata(map_path, elf_path, apk_path, minimal_apks_path, ...@@ -782,7 +781,6 @@ def CreateMetadata(map_path, elf_path, apk_path, minimal_apks_path,
models.METADATA_ELF_BUILD_ID: build_id, models.METADATA_ELF_BUILD_ID: build_id,
models.METADATA_LINKER_NAME: linker_name, models.METADATA_LINKER_NAME: linker_name,
models.METADATA_TOOL_PREFIX: relative_tool_prefix, models.METADATA_TOOL_PREFIX: relative_tool_prefix,
models.METADATA_ELF_RELOCATIONS_COUNT: relocations_count
} }
if output_directory: if output_directory:
...@@ -1673,13 +1671,6 @@ def _ArchFromElf(elf_path, tool_prefix): ...@@ -1673,13 +1671,6 @@ def _ArchFromElf(elf_path, tool_prefix):
return machine return machine
def _CountRelocationsFromElf(elf_path, tool_prefix):
args = [path_util.GetObjDumpPath(tool_prefix), '--private-headers', elf_path]
stdout = subprocess.check_output(args)
relocations = re.search('RELCOUNT\s*(.+)', stdout).group(1)
return int(relocations, 16)
def _ParseGnArgs(args_path): def _ParseGnArgs(args_path):
"""Returns a list of normalized "key=value" strings.""" """Returns a list of normalized "key=value" strings."""
args = {} args = {}
......
...@@ -44,7 +44,6 @@ METADATA_ELF_ARCHITECTURE = 'elf_arch' # "Machine" field from readelf -h ...@@ -44,7 +44,6 @@ METADATA_ELF_ARCHITECTURE = 'elf_arch' # "Machine" field from readelf -h
METADATA_ELF_FILENAME = 'elf_file_name' # Path relative to output_directory. METADATA_ELF_FILENAME = 'elf_file_name' # Path relative to output_directory.
METADATA_ELF_MTIME = 'elf_mtime' # int timestamp in utc. METADATA_ELF_MTIME = 'elf_mtime' # int timestamp in utc.
METADATA_ELF_BUILD_ID = 'elf_build_id' METADATA_ELF_BUILD_ID = 'elf_build_id'
METADATA_ELF_RELOCATIONS_COUNT = 'elf_relocations_count'
METADATA_GN_ARGS = 'gn_args' METADATA_GN_ARGS = 'gn_args'
METADATA_LINKER_NAME = 'linker_name' METADATA_LINKER_NAME = 'linker_name'
METADATA_TOOL_PREFIX = 'tool_prefix' # Path relative to SRC_ROOT. METADATA_TOOL_PREFIX = 'tool_prefix' # Path relative to SRC_ROOT.
......
...@@ -4,7 +4,6 @@ elf_arch=arm ...@@ -4,7 +4,6 @@ elf_arch=arm
elf_build_id=WhatAnAmazingBuildId elf_build_id=WhatAnAmazingBuildId
elf_file_name=elf elf_file_name=elf
elf_mtime={redacted} elf_mtime={redacted}
elf_relocations_count=394087
git_revision=abc123 git_revision=abc123
gn_args=var1=true var2="foo" gn_args=var1=true var2="foo"
linker_name=gold linker_name=gold
......
...@@ -2,7 +2,6 @@ elf_arch=arm ...@@ -2,7 +2,6 @@ elf_arch=arm
elf_build_id=WhatAnAmazingBuildId elf_build_id=WhatAnAmazingBuildId
elf_file_name=elf elf_file_name=elf
elf_mtime={redacted} elf_mtime={redacted}
elf_relocations_count=394087
git_revision=abc123 git_revision=abc123
gn_args=var1=true var2="foo" gn_args=var1=true var2="foo"
linker_name=gold linker_name=gold
......
...@@ -5,7 +5,6 @@ elf_arch=arm ...@@ -5,7 +5,6 @@ elf_arch=arm
elf_build_id=WhatAnAmazingBuildId elf_build_id=WhatAnAmazingBuildId
elf_file_name=elf elf_file_name=elf
elf_mtime={redacted} elf_mtime={redacted}
elf_relocations_count=394087
git_revision=abc123 git_revision=abc123
gn_args=var1=true var2="foo" gn_args=var1=true var2="foo"
linker_name=gold linker_name=gold
......
...@@ -2,7 +2,6 @@ elf_arch=arm ...@@ -2,7 +2,6 @@ elf_arch=arm
elf_build_id=WhatAnAmazingBuildId elf_build_id=WhatAnAmazingBuildId
elf_file_name=elf elf_file_name=elf
elf_mtime={redacted} elf_mtime={redacted}
elf_relocations_count=394087
git_revision=abc123 git_revision=abc123
gn_args=var1=true var2="foo" gn_args=var1=true var2="foo"
linker_name=gold linker_name=gold
......
...@@ -67,7 +67,6 @@ Metadata: ...@@ -67,7 +67,6 @@ Metadata:
elf_build_id=WhatAnAmazingBuildId elf_build_id=WhatAnAmazingBuildId
elf_file_name=elf elf_file_name=elf
elf_mtime={redacted} elf_mtime={redacted}
elf_relocations_count=394087
git_revision=abc123 git_revision=abc123
gn_args=var1=true var2="foo" gn_args=var1=true var2="foo"
linker_name=gold linker_name=gold
......
...@@ -3,7 +3,6 @@ Common Metadata: ...@@ -3,7 +3,6 @@ Common Metadata:
elf_build_id=WhatAnAmazingBuildId elf_build_id=WhatAnAmazingBuildId
elf_file_name=elf elf_file_name=elf
elf_mtime={redacted} elf_mtime={redacted}
elf_relocations_count=394087
git_revision=abc123 git_revision=abc123
gn_args=var1=true var2="foo" gn_args=var1=true var2="foo"
linker_name=gold linker_name=gold
......
...@@ -3,7 +3,6 @@ Metadata: ...@@ -3,7 +3,6 @@ Metadata:
elf_build_id=WhatAnAmazingBuildId elf_build_id=WhatAnAmazingBuildId
elf_file_name=elf elf_file_name=elf
elf_mtime={redacted} elf_mtime={redacted}
elf_relocations_count=394087
git_revision=abc123 git_revision=abc123
gn_args=var1=true var2="foo" gn_args=var1=true var2="foo"
linker_name=gold linker_name=gold
......
# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
import sys
_OUTPUT = """\
{}: file format ELF32-arm-little
Program Header:
PHDR off 0x00000034 vaddr 0x00000034 paddr 0x00000034 align 2**2
filesz 0x00000160 memsz 0x00000160 flags r--
INTERP off 0x00000194 vaddr 0x00000194 paddr 0x00000194 align 2**0
filesz 0x00000013 memsz 0x00000013 flags r--
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
filesz 0x02e86540 memsz 0x02e86540 flags r-x
LOAD off 0x02e86540 vaddr 0x02e87540 paddr 0x02e87540 align 2**12
filesz 0x0020751c memsz 0x0020751c flags rw-
LOAD off 0x0308da60 vaddr 0x0308fa60 paddr 0x0308fa60 align 2**12
filesz 0x00027048 memsz 0x0056d5bc flags rw-
LOAD off 0x030b5714 vaddr 0x0364d714 paddr 0x0364d714 align 2**12
filesz 0x00000000 memsz 0x00001000 flags rw-
DYNAMIC off 0x0308ce08 vaddr 0x0308de08 paddr 0x0308de08 align 2**2
filesz 0x000000f0 memsz 0x000000f0 flags rw-
RELRO off 0x02e86540 vaddr 0x02e87540 paddr 0x02e87540 align 2**0
filesz 0x0020751c memsz 0x00207ac0 flags r--
STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**64
filesz 0x00000000 memsz 0x00000000 flags rw-
NOTE off 0x000001a8 vaddr 0x000001a8 paddr 0x000001a8 align 2**2
filesz 0x000000d8 memsz 0x000000d8 flags r--
UNKNOWN off 0x00000280 vaddr 0x00000280 paddr 0x00000280 align 2**2
filesz 0x00002498 memsz 0x00002498 flags r--
Dynamic Section:
NEEDED libdl.so
NEEDED libm.so
NEEDED libandroid.so
NEEDED liblog.so
NEEDED libjnigraphics.so
NEEDED libc.so
SONAME libmonochrome.so
FLAGS 0x00000008
FLAGS_1 0x00000001
ANDROID_REL 0x00021de8
ANDROID_RELSZ 0x00030b95
RELENT 0x00000008
RELCOUNT 0x00060367
JMPREL 0x00052980
PLTRELSZ 0x00000c48
PLTGOT 0x0308e42c
PLTREL 0x00000011
SYMTAB 0x00002718
SYMENT 0x00000010
STRTAB 0x000133a0
STRSZ 0x0000ea48
GNU_HASH 0x0000f2d0
INIT_ARRAY 0x0308de00
INIT_ARRAYSZ 0x00000008
FINI_ARRAY 0x02e87540
FINI_ARRAYSZ 0x00000008
VERSYM 0x0000dbd8
VERNEED 0x0000f270
VERNEEDNUM 0x00000003
Version References:
required from libdl.so:
0x00050d63 0x00 03 LIBC
required from libm.so:
0x00050d63 0x00 04 LIBC
required from libc.so:
0x00050d63 0x00 02 LIBC
"""
def _PrintOutput(path):
sys.stdout.write(_OUTPUT.format(path))
sys.stdout.write('\n')
def main():
paths = [p for p in sys.argv[1:] if not p.startswith('-')]
_PrintOutput(paths[0])
if __name__ == '__main__':
main()
#!/usr/bin/env bash
# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
base_dir=$(dirname "$0")
exec python "$base_dir/mock_objdump.py" "$@"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment