diff options
-rw-r--r-- | tools/cargo_embargo/src/main.rs | 3 | ||||
-rw-r--r-- | tools/winscope/src/app/trace_file_filter.ts | 1 | ||||
-rw-r--r-- | tools/winscope/src/app/trace_file_filter_test.ts | 1 | ||||
-rwxr-xr-x | vndk/tools/header-checker/android/build-prebuilts.sh | 64 | ||||
-rwxr-xr-x | vndk/tools/header-checker/android/update_clang-tools.sh | 3 | ||||
-rw-r--r-- | vndk/tools/header-checker/utils/utils.py | 29 |
6 files changed, 35 insertions, 66 deletions
diff --git a/tools/cargo_embargo/src/main.rs b/tools/cargo_embargo/src/main.rs index d588feada..024791222 100644 --- a/tools/cargo_embargo/src/main.rs +++ b/tools/cargo_embargo/src/main.rs @@ -556,7 +556,8 @@ fn write_android_bp( } if !bp_contents.is_empty() { let bp_contents = "// This file is generated by cargo_embargo.\n".to_owned() - + "// Do not modify this file as most changes will be overridden on upgrade.\n" + + "// Do not modify this file after the first \"rust_*\" or \"genrule\" module\n" + + "// because the changes will be overridden on upgrade.\n" + "// Content before the first \"rust_*\" or \"genrule\" module is preserved.\n\n" + license_section.trim() + "\n" diff --git a/tools/winscope/src/app/trace_file_filter.ts b/tools/winscope/src/app/trace_file_filter.ts index d0ed9adbe..d722de2a8 100644 --- a/tools/winscope/src/app/trace_file_filter.ts +++ b/tools/winscope/src/app/trace_file_filter.ts @@ -31,6 +31,7 @@ export class TraceFileFilter { 'FS/data/misc/wmtrace/', 'FS/data/misc/perfetto-traces/', 'proto/window_CRITICAL.proto', + 'proto/SurfaceFlinger_CRITICAL.proto', ]; async filter(files: TraceFile[], errorListener: WinscopeErrorListener): Promise<FilterResult> { diff --git a/tools/winscope/src/app/trace_file_filter_test.ts b/tools/winscope/src/app/trace_file_filter_test.ts index 9ca03bf1a..c193a926f 100644 --- a/tools/winscope/src/app/trace_file_filter_test.ts +++ b/tools/winscope/src/app/trace_file_filter_test.ts @@ -44,6 +44,7 @@ describe('TraceFileFilter', () => { makeTraceFile('FS/data/misc/wmtrace/surface_flinger.bp', bugreportArchive), makeTraceFile('FS/data/misc/wmtrace/transactions.bp', bugreportArchive), makeTraceFile('proto/window_CRITICAL.proto', bugreportArchive), + makeTraceFile('proto/SurfaceFlinger_CRITICAL.proto', bugreportArchive), ]; const ignoredBugreportFile = makeTraceFile( diff --git a/vndk/tools/header-checker/android/build-prebuilts.sh b/vndk/tools/header-checker/android/build-prebuilts.sh index f38b6931a..f7abce27d 100755 --- a/vndk/tools/header-checker/android/build-prebuilts.sh +++ b/vndk/tools/header-checker/android/build-prebuilts.sh @@ -17,9 +17,8 @@ usage() { echo "Usage: $(basename "$0") [build_target]..." echo " Build all targets if build_target is not specified." - echo " Supported build targets for macOS: ${MACOS_SOONG_BINARIES[*]}" - echo " Supported build targets for Linux:" \ - "${LINUX_SOONG_BINARIES[@]}" "${LINUX_SOONG_TESTS[@]}" + echo " Supported build targets:" \ + "${VALID_SOONG_BINARIES[@]}" "${VALID_SOONG_TESTS[@]}" } in_array () { @@ -31,7 +30,7 @@ in_array () { return 1 } -LINUX_SOONG_BINARIES=( +VALID_SOONG_BINARIES=( "bindgen" "cxx_extractor" "header-abi-linker" @@ -43,14 +42,10 @@ LINUX_SOONG_BINARIES=( "versioner" ) -LINUX_SOONG_TESTS=( +VALID_SOONG_TESTS=( "header-checker-unittests" ) -MACOS_SOONG_BINARIES=( - "versioner" -) - BUILD_TARGETS=() while [ $# -gt 0 ]; do @@ -70,29 +65,12 @@ set -ex source "$(dirname "$0")/envsetup.sh" -UNAME="$(uname)" -case "${UNAME}" in -Linux) - OS='linux' - ;; -Darwin) - OS='darwin' - ;; -*) - echo "error: Unknown uname: ${UNAME}" +if [ "$(uname)" != "Linux" ]; then + echo "error: Unsupported uname: $(uname)" exit 1 - ;; -esac - -# Targets to be built -if [ "${OS}" = "darwin" ]; then - VALID_SOONG_BINARIES=("${MACOS_SOONG_BINARIES[@]}") - VALID_SOONG_TESTS=() -else - VALID_SOONG_BINARIES=("${LINUX_SOONG_BINARIES[@]}") - VALID_SOONG_TESTS=("${LINUX_SOONG_TESTS[@]}") fi +# Targets to be built SOONG_BINARIES=() SOONG_TESTS=() @@ -124,7 +102,7 @@ TOP=$(pwd) # Setup Soong configuration SOONG_OUT="${OUT_DIR}/soong" -SOONG_HOST_OUT="${OUT_DIR}/soong/host/${OS}-x86" +SOONG_HOST_OUT="${OUT_DIR}/soong/host/linux-x86" rm -rf "${SOONG_OUT}" mkdir -p "${SOONG_OUT}" cat > "${SOONG_OUT}/soong.variables" << __EOF__ @@ -143,14 +121,9 @@ for name in "${SOONG_BINARIES[@]}"; do binaries+=("${SOONG_HOST_OUT}/bin/${name}") done -libs=() -if [ "${OS}" = "darwin" ]; then - libs+=("${SOONG_HOST_OUT}/lib64/libc++abi_host.dylib") -fi - # Build binaries and shared libs build/soong/soong_ui.bash --make-mode --skip-config --soong-only \ - "${binaries[@]}" "${libs[@]}" "${SOONG_TESTS[@]}" + "${binaries[@]}" "${SOONG_TESTS[@]}" # Copy binaries and shared libs SOONG_DIST="${SOONG_OUT}/dist" @@ -164,7 +137,7 @@ cp -R "${SOONG_HOST_OUT}/lib64" "${SOONG_DIST}" ln -s "lib64" "${SOONG_DIST}/lib" # Copy clang header and share files -CLANG_DIR="prebuilts/clang/host/${OS}-x86/${LLVM_PREBUILTS_VERSION}" +CLANG_DIR="prebuilts/clang/host/linux-x86/${LLVM_PREBUILTS_VERSION}" CLANG_LIB_DIR="${CLANG_DIR}/lib/clang/${LLVM_RELEASE_VERSION}" CLANG_LIB_DIR_OUT="${SOONG_DIST}/lib/clang/${LLVM_RELEASE_VERSION}" mkdir -p "${CLANG_LIB_DIR_OUT}" @@ -175,20 +148,9 @@ ln -s "lib/clang/${LLVM_RELEASE_VERSION}/include" "${SOONG_DIST}/clang-headers" # Normalize library file names. All library file names must match their soname. function extract_soname () { local file="$1" - - case "${OS}" in - linux) - readelf -d "${file}" | \ - grep '(SONAME)\s*Library soname: \[.*\]$' -o | \ - sed 's/(SONAME)\s*Library soname: \[\(.*\)\]$/\1/g' - ;; - darwin) - local install_path="$(otool -D "${file}" | sed -n 2p)" - if [ -n "${install_path}" ]; then - basename "${install_path}" - fi - ;; - esac + readelf -d "${file}" | \ + grep '(SONAME)\s*Library soname: \[.*\]$' -o | \ + sed 's/(SONAME)\s*Library soname: \[\(.*\)\]$/\1/g' } for file in "${SOONG_OUT}/dist/lib"*"/"*; do diff --git a/vndk/tools/header-checker/android/update_clang-tools.sh b/vndk/tools/header-checker/android/update_clang-tools.sh index 577e19391..a878f2c60 100755 --- a/vndk/tools/header-checker/android/update_clang-tools.sh +++ b/vndk/tools/header-checker/android/update_clang-tools.sh @@ -66,7 +66,7 @@ update_prebuilts () { commit () { cd "${CLANG_TOOLS_DIR}" echo "Update clang-tools to ab/${BUILD_ID}" > "/tmp/clang-tools-update.msg" - git add manifest.xml linux-x86 darwin-x86 + git add manifest.xml linux-x86 git commit -a -t "/tmp/clang-tools-update.msg" } @@ -76,5 +76,4 @@ repo start "update_${BUILD_ID}" . update_manifest update_prebuilts "linux-x86" "linux" -update_prebuilts "darwin-x86" "darwin_mac" commit diff --git a/vndk/tools/header-checker/utils/utils.py b/vndk/tools/header-checker/utils/utils.py index 8d8a9b635..0d032c2ef 100644 --- a/vndk/tools/header-checker/utils/utils.py +++ b/vndk/tools/header-checker/utils/utils.py @@ -29,7 +29,7 @@ BUILTIN_HEADERS_DIR = ( SO_EXT = '.so' SOURCE_ABI_DUMP_EXT_END = '.lsdump' SOURCE_ABI_DUMP_EXT = SO_EXT + SOURCE_ABI_DUMP_EXT_END -VENDOR_SUFFIX = '.vendor' +LLNDK_ABI_DUMP_EXT = SO_EXT + '.llndk' + SOURCE_ABI_DUMP_EXT_END DEFAULT_CPPFLAGS = ['-x', 'c++', '-std=c++11'] DEFAULT_CFLAGS = ['-std=gnu99'] @@ -83,6 +83,14 @@ class Arch(object): return self.arch + arch_variant + cpu_variant +def _strip_dump_name_ext(filename): + """Remove .so*.lsdump from a file name.""" + for ext in (SOURCE_ABI_DUMP_EXT, LLNDK_ABI_DUMP_EXT): + if filename.endswith(ext) and len(filename) > len(ext): + return filename[:-len(ext)] + raise ValueError(f'{filename} has an unknown file name extension.') + + def _validate_dump_content(dump_path): """Make sure that the dump contains relative source paths.""" with open(dump_path, 'r') as f: @@ -102,13 +110,14 @@ def _validate_dump_content(dump_path): def copy_reference_dump(lib_path, reference_dump_dir): - reference_dump_path = os.path.join( - reference_dump_dir, os.path.basename(lib_path)) - os.makedirs(os.path.dirname(reference_dump_path), exist_ok=True) _validate_dump_content(lib_path) - shutil.copyfile(lib_path, reference_dump_path) - print('Created abi dump at', reference_dump_path) - return reference_dump_path + ref_dump_name = (_strip_dump_name_ext(os.path.basename(lib_path)) + + SOURCE_ABI_DUMP_EXT) + ref_dump_path = os.path.join(reference_dump_dir, ref_dump_name) + os.makedirs(reference_dump_dir, exist_ok=True) + shutil.copyfile(lib_path, ref_dump_path) + print(f'Created abi dump at {ref_dump_path}') + return ref_dump_path def run_header_abi_dumper(input_path, output_path, cflags=tuple(), @@ -230,11 +239,7 @@ def _read_lsdump_paths(lsdump_paths_file_path, arches, lsdump_filter): continue tag, path = (x.strip() for x in line.split(':', 1)) dir_path, filename = os.path.split(path) - if not filename.endswith(SOURCE_ABI_DUMP_EXT): - continue - libname = filename[:-len(SOURCE_ABI_DUMP_EXT)] - if not libname: - continue + libname = _strip_dump_name_ext(filename) if not lsdump_filter(tag, libname): continue # dir_path may contain soong config hash. |