You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
812 B
31 lines
812 B
# -*- coding: utf-8 -*-
|
|
# Copyright 2018 The Chromium OS Authors. All rights reserved.
|
|
# 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 __future__ import print_function
|
|
|
|
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
|