# SPDX-License-Identifier: GPL-2.0

# Enable available and selected Clang Propeller features.
ifdef CLANG_PROPELLER_PROFILE_PREFIX
  CFLAGS_PROPELLER_CLANG := -fbasic-block-sections=list=$(CLANG_PROPELLER_PROFILE_PREFIX)_cc_profile.txt -ffunction-sections
  KBUILD_LDFLAGS += --symbol-ordering-file=$(CLANG_PROPELLER_PROFILE_PREFIX)_ld_profile.txt --no-warn-symbol-ordering
else
  # Starting with Clang v20, the '-fbasic-block-sections=labels' option is
  # deprecated. Use the recommended '-fbasic-block-address-map' option.
  # Link: https://github.com/llvm/llvm-project/pull/110039
  ifeq ($(call clang-min-version, 200000),y)
    CFLAGS_PROPELLER_CLANG := -fbasic-block-address-map
  else
    CFLAGS_PROPELLER_CLANG := -fbasic-block-sections=labels
  endif
endif

# Propeller requires debug information to embed module names in the profiles.
# If CONFIG_DEBUG_INFO is not enabled, set -gmlt option. Skip this for AutoFDO,
# as the option should already be set.
ifndef CONFIG_DEBUG_INFO
  ifndef CONFIG_AUTOFDO_CLANG
    CFLAGS_PROPELLER_CLANG += -gmlt
  endif
endif

ifdef CONFIG_LTO_CLANG_THIN
  ifdef CLANG_PROPELLER_PROFILE_PREFIX
    KBUILD_LDFLAGS += --lto-basic-block-sections=$(CLANG_PROPELLER_PROFILE_PREFIX)_cc_profile.txt
  else
    ifeq ($(call test-ge, $(CONFIG_LLD_VERSION), 200000),y)
       KBUILD_LDFLAGS += --lto-basic-block-address-map
    else
       KBUILD_LDFLAGS += --lto-basic-block-sections=labels
    endif
  endif
endif

export CFLAGS_PROPELLER_CLANG
