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.
59 lines
2.3 KiB
59 lines
2.3 KiB
# compiler-rt Library Info |
|
# |
|
# This should be included once the subdirectory information has been loaded, and |
|
# uses the utilities in 'util.mk'. |
|
# |
|
# This defines the following variables describing compiler-rt: |
|
# AvailableFunctions - The entire list of function names (unmangled) the |
|
# library can provide. |
|
# CommonFunctions - The list of generic functions available. |
|
# ArchFunctions.<arch> - The list of functions commonly available for |
|
# 'arch'. This does not include any config specific |
|
# functions. |
|
# |
|
# AvailableIn.<function> - The list of subdir keys where 'function' is |
|
# defined. |
|
|
|
# Determine the set of available modules. |
|
AvailableModules := $(sort $(foreach key,$(SubDirKeys),\ |
|
$($(key).ModuleName))) |
|
|
|
# Build a per-module map of subdir keys. |
|
$(foreach key,$(SubDirKeys),\ |
|
$(call Append,ModuleSubDirKeys.$($(key).ModuleName),$(key))) |
|
|
|
AvailableArchs := $(sort $(foreach key,$(SubDirKeys),\ |
|
$($(key).OnlyArchs))) |
|
|
|
AvailableFunctions := $(sort $(foreach key,$(SubDirKeys),\ |
|
$(basename $($(key).ObjNames)))) |
|
|
|
CommonFunctions := $(sort\ |
|
$(foreach key,$(ModuleSubDirKeys.builtins),\ |
|
$(if $(call strneq,,$(strip $($(key).OnlyArchs) $($(key).OnlyConfigs))),,\ |
|
$(basename $($(key).ObjNames))))) |
|
|
|
# Compute common arch functions. |
|
$(foreach key,$(ModuleSubDirKeys.builtins),\ |
|
$(if $(call strneq,,$($(key).OnlyConfigs)),,\ |
|
$(foreach arch,$($(key).OnlyArchs),\ |
|
$(call Append,ArchFunctions.$(arch),$(sort \ |
|
$(basename $($(key).ObjNames))))))) |
|
|
|
# Compute arch only functions. |
|
$(foreach arch,$(AvailableArchs),\ |
|
$(call Set,ArchFunctions.$(arch),$(sort $(ArchFunctions.$(arch))))\ |
|
$(call Set,ArchOnlyFunctions.$(arch),\ |
|
$(call set_difference,$(ArchFunctions.$(arch)),$(CommonFunctions)))) |
|
|
|
# Compute lists of where each function is available. |
|
$(foreach key,$(SubDirKeys),\ |
|
$(foreach fn,$(basename $($(key).ObjNames)),\ |
|
$(call Append,AvailableIn.$(fn),$(key)))) |
|
|
|
# The names of all the available options. |
|
AvailableOptions := AR ARFLAGS \ |
|
CC CFLAGS LDFLAGS FUNCTIONS OPTIMIZED \ |
|
RANLIB RANLIBFLAGS \ |
|
VISIBILITY_HIDDEN KERNEL_USE \ |
|
SHARED_LIBRARY SHARED_LIBRARY_SUFFIX STRIP LIPO DSYMUTIL
|
|
|