177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# compiler-rt Library Info 277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# 377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# This should be included once the subdirectory information has been loaded, and 477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# uses the utilities in 'util.mk'. 577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# 677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# This defines the following variables describing compiler-rt: 777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# AvailableFunctions - The entire list of function names (unmangled) the 877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# library can provide. 977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# CommonFunctions - The list of generic functions available. 1077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# ArchFunctions.<arch> - The list of functions commonly available for 1177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# 'arch'. This does not include any config specific 1277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# functions. 1377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# 1477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# AvailableIn.<function> - The list of subdir keys where 'function' is 1577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# defined. 1677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 1777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoAvailableArchs := $(sort $(foreach key,$(SubDirKeys),\ 1877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $($(key).OnlyArchs))) 1977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 2077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoAvailableFunctions := $(sort $(foreach key,$(SubDirKeys),\ 2177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(basename $($(key).ObjNames)))) 2277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 2377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoCommonFunctions := $(sort\ 2477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(foreach key,$(SubDirKeys),\ 2577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(if $(call strneq,,$(strip $($(key).OnlyArchs) $($(key).OnlyConfigs))),,\ 2677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(basename $($(key).ObjNames))))) 2777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 2877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# Compute common arch functions. 2977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao$(foreach key,$(SubDirKeys),\ 3077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(if $(call strneq,,$($(key).OnlyConfigs)),,\ 3177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(foreach arch,$($(key).OnlyArchs),\ 3277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(call Append,ArchFunctions.$(arch),$(sort \ 3377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(basename $($(key).ObjNames))))))) 3477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 3577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# Compute arch only functions. 3677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao$(foreach arch,$(AvailableArchs),\ 3777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(call Set,ArchFunctions.$(arch),$(sort $(ArchFunctions.$(arch))))\ 3877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(call Set,ArchOnlyFunctions.$(arch),\ 3977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(call set_difference,$(ArchFunctions.$(arch)),$(CommonFunctions)))) 4077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 4177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# Compute lists of where each function is available. 4277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao$(foreach key,$(SubDirKeys),\ 4377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(foreach fn,$(basename $($(key).ObjNames)),\ 4477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao $(call Append,AvailableIn.$(fn),$(key)))) 4577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 4677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# The names of all the available options. 4777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoAvailableOptions := AR ARFLAGS \ 4877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao CC CFLAGS FUNCTIONS OPTIMIZED \ 4977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao RANLIB RANLIBFLAGS \ 5077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao VISIBILITY_HIDDEN 51