If sort_bss_symbols_by_size is true, a shared library is built twice. The first build generates an unsorted output file, which is used to generate the symbol ordering file. The output of the second build is a shared library with its bss symbols sorted by their size. With this, the only user of symbol_ordering_file, libc, is migrated to use the new property, so we remove symbol_ordering_file support as well. Bug: 135754984 Test: Build and check the resulting libc.so has its bss symbols sorted. Change-Id: I5c892b44d82eb99cbc070cfa2c680be3087f3364
29 lines
953 B
Bash
Executable File
29 lines
953 B
Bash
Executable File
#!/bin/bash -e
|
|
|
|
# Copyright 2019 Google Inc. All rights reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# Script to generate a symbol ordering file that sorts bss section symbols by
|
|
# their sizes.
|
|
# Inputs:
|
|
# Environment:
|
|
# CROSS_COMPILE: prefix added to nm tools
|
|
# Arguments:
|
|
# $1: Input ELF file
|
|
# $2: Output symbol ordering file
|
|
|
|
set -o pipefail
|
|
|
|
${CROSS_COMPILE}nm --size-sort $1 | awk '{if ($2 == "b" || $2 == "B") print $3}' > $2
|