cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig.include (2626B)


      1# SPDX-License-Identifier: GPL-2.0-only
      2# Kconfig helper macros
      3
      4# Convenient variables
      5comma       := ,
      6quote       := "
      7squote      := '
      8empty       :=
      9space       := $(empty) $(empty)
     10dollar      := $
     11right_paren := )
     12left_paren  := (
     13
     14# $(if-success,<command>,<then>,<else>)
     15# Return <then> if <command> exits with 0, <else> otherwise.
     16if-success = $(shell,{ $(1); } >/dev/null 2>&1 && echo "$(2)" || echo "$(3)")
     17
     18# $(success,<command>)
     19# Return y if <command> exits with 0, n otherwise
     20success = $(if-success,$(1),y,n)
     21
     22# $(failure,<command>)
     23# Return n if <command> exits with 0, y otherwise
     24failure = $(if-success,$(1),n,y)
     25
     26# $(cc-option,<flag>)
     27# Return y if the compiler supports <flag>, n otherwise
     28cc-option = $(success,mkdir .tmp_$$$$; trap "rm -rf .tmp_$$$$" EXIT; $(CC) -Werror $(CLANG_FLAGS) $(1) -c -x c /dev/null -o .tmp_$$$$/tmp.o)
     29
     30# $(ld-option,<flag>)
     31# Return y if the linker supports <flag>, n otherwise
     32ld-option = $(success,$(LD) -v $(1))
     33
     34# $(as-instr,<instr>)
     35# Return y if the assembler supports <instr>, n otherwise
     36as-instr = $(success,printf "%b\n" "$(1)" | $(CC) $(CLANG_FLAGS) -c -x assembler -o /dev/null -)
     37
     38# check if $(CC) and $(LD) exist
     39$(error-if,$(failure,command -v $(CC)),compiler '$(CC)' not found)
     40$(error-if,$(failure,command -v $(LD)),linker '$(LD)' not found)
     41
     42# Get the compiler name, version, and error out if it is not supported.
     43cc-info := $(shell,$(srctree)/scripts/cc-version.sh $(CC))
     44$(error-if,$(success,test -z "$(cc-info)"),Sorry$(comma) this compiler is not supported.)
     45cc-name := $(shell,set -- $(cc-info) && echo $1)
     46cc-version := $(shell,set -- $(cc-info) && echo $2)
     47
     48# Get the assembler name, version, and error out if it is not supported.
     49as-info := $(shell,$(srctree)/scripts/as-version.sh $(CC) $(CLANG_FLAGS))
     50$(error-if,$(success,test -z "$(as-info)"),Sorry$(comma) this assembler is not supported.)
     51as-name := $(shell,set -- $(as-info) && echo $1)
     52as-version := $(shell,set -- $(as-info) && echo $2)
     53
     54# Get the linker name, version, and error out if it is not supported.
     55ld-info := $(shell,$(srctree)/scripts/ld-version.sh $(LD))
     56$(error-if,$(success,test -z "$(ld-info)"),Sorry$(comma) this linker is not supported.)
     57ld-name := $(shell,set -- $(ld-info) && echo $1)
     58ld-version := $(shell,set -- $(ld-info) && echo $2)
     59
     60# machine bit flags
     61#  $(m32-flag): -m32 if the compiler supports it, or an empty string otherwise.
     62#  $(m64-flag): -m64 if the compiler supports it, or an empty string otherwise.
     63cc-option-bit = $(if-success,$(CC) -Werror $(1) -E -x c /dev/null -o /dev/null,$(1))
     64m32-flag := $(cc-option-bit,-m32)
     65m64-flag := $(cc-option-bit,-m64)