aboutsummaryrefslogtreecommitdiff
path: root/debug_info_test/check_ngcc.py
blob: bbb58741d832eccacfaa33fb6d171840d1f6fefb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# -*- coding: utf-8 -*-
# Copyright 2018 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Check whether the compile unit is not built by gcc."""


from allowlist import is_allowlisted


def not_by_gcc(dso_path, producer, comp_path):
    """Check whether the compile unit is not built by gcc.

    Args:
      dso_path: path to the elf/dso.
      producer: DW_AT_producer contains the compiler command line.
      comp_path: DW_AT_comp_dir + DW_AT_name.

    Returns:
      False if compiled by gcc otherwise True.
    """
    if is_allowlisted("ngcc_comp_path", comp_path):
        return True

    if is_allowlisted("ngcc_dso_path", dso_path):
        return True

    return "GNU C" not in producer