Files
m241Neelima/vxworks-6.9/target/h/tool/icc/defs.icc
T
2026-07-30 11:19:44 +05:30

276 lines
8.0 KiB
Plaintext

# defs.icc - definitions for INTEL toolchain builds
#
# Copyright 2010-2015 Wind River Systems, Inc.
#
# modification history
# --------------------
# 01m,07apr15,rtm fix for VXW6-80633 fvolatile warnings
# 01l,20feb13,gvm Fix for WIND00397980
# 01k,14aug12,gvm remove unknown option from LP64 builds (WIND00271833)
# 01j,13jun11,mze add DEBUG FLAGS
# 01i,28jan11,pee WIND00252877
# 01h,27jan11,gvm fix for ICC internal error on Windows host while building
# c_demo (WIND00251598)
# 01g,25jan11,gvm Fix WIND00252564 for defect WIND00251195
# 01f,05jan11,rlp Added ICC_INLINE_DISABLE macro to disable inlining
# optimization.
# 01e,16nov10,pee WIND00240589
# 01d,10aug10,mze move fno-zero-ininiallized-in-bss from CFLAGS to
# CC_COMPILER and C++_COMPILER
# 01c,08apr10,pee adding missing vxWorks link flags
# 01b,01mar10,gvm refinements; assume only IA32 builds for now
# 01a,23feb10,mze created from defs.gnu
#
# DESCRIPTION
# This file contains default definitions and flags for builds that use the
# INTEL toolchain.
## generic defaults from defs.common come first, so they can be overridden
include $(TGT_DIR)/h/tool/common/defs.common
# get TOOL_COMMON_DIR, TOOL_DIAB and TOOL_GNU from TOOL
TOOL_FAMILY = icc
# TOOL_COMMON_DIR = $(subst icc,common,$(TOOL))
TOOL_COMMON_DIR = $(BUILD_FP_PREFIX)common$(BUILD_ENDIAN_SUFFIX)
TOOL_SPECIFIC_DIR = $(BUILD_FP_PREFIX)$(TOOL_FAMILY)$(BUILD_ENDIAN_SUFFIX)
TOOL_DIAB = $(subst icc,diab,$(TOOL))
TOOL_GNU = $(subst icc,gnu,$(TOOL))
TOOL_ICC = $(TOOL)
# Deprecated, use TOOL_FAMILY instead
TOOL_VENDOR = icc
# Preprocessor option forcing every input file to be treated as a "C" file
OPTION_LANG_C=-xc
## set path to gnu utilities
CC_HOST = $(WIND_HOST_TYPE)
# Set path to icc utilities:
# if WIND_ICC_PATH is set, then use it as the compiler base directory.
# else, if WIND_ICC_VERSION is set, use it.
# else, get the version from tools.version file.
ifneq ($(WIND_ICC_PATH),)
CC_BASE = $(subst \,/,$(WIND_ICC_PATH))
else
# set default version to WIND_ICC_VERSION set in
# $(WIND_BASE)/host/resource/hutils/tools.version, but allow environment,
# ARCH or CPU specific make fragment to override the value.
ifeq ($(WIND_ICC_VERSION),)
include $(WIND_BASE)/host/resource/hutils/tools.version
endif
CC_VERSION = $(WIND_ICC_VERSION)
endif
ifeq ($(WIND_HOST_TYPE),x86-win32)
ifneq ($(Path),)
export Path := $(CC_BIN_DIR);$(Path)
endif
ifneq ($(PATH),)
export PATH := $(CC_BIN_DIR);$(PATH)
endif
else
ifneq ($(PATH),)
export PATH := $(CC_BIN_DIR):$(PATH)
endif
endif
# Preprocessor option forcing every input file to be treated as a assembly
# file requiring C preprocessing
OPTION_LANG_ASM=-xassembler-with-cpp
# Library containing compiler support routines
CC_LIB=
CC_LIBINTRINSICS = -licc
OPTION_PP = -E
OPTION_PP_AS =
OPTION_PP_NOLINENO = -P
OPTION_PP_COMMENT = -C
OPTION_DOLLAR_SYMBOLS =
OPTION_DEPEND = -M -w
OPTION_DEPEND_GEN = -M -MG -w
OPTION_DEPEND_GEN_D = -MD
OPTION_DEPEND_C = $(OPTION_DEPEND_GEN)
OPTION_DEPEND_AS = $(OPTION_DEPEND)
OPTION_DEPEND_TARGET = -MT
OPTION_NO_WARNINGS = -w
OPTION_ANSI = -ansi
OPTION_OBJECT_ONLY = -c
OPTION_INCLUDE_DIR = -I
OPTION_CC_GENMAP = -Wl,-Map,$@.map,-cref
OPTION_LD_GENMAP = -Map $@.map -cref
OPTION_CC_SPLIT_SECTIONS = -ffunction-sections -fdata-sections
# this line has a space at the end ("-o ")
OPTION_OBJECT_NAME = -o
OPTION_EXE_NAME = $(OPTION_OBJECT_NAME)
OPTION_DEFINE_MACRO = -D
OPTION_PIC =
OPTION_POINTERS_VOLATILE =
CC_OPTIM_XO = -O
CC_OPTIM_DEBUG =
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG)
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fstrength-reduce -fcombine-regs
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO)
LD_LINK_PATH_EXTRA += -L$(LD_LINK_TOOL_DIR)_$(CXX_STL_VARIANT)$(MINOR_OPTION_SUFFIX)
ifeq ($(CXX_STL_VARIANT),)
CXX_STL_VARIANT = standard
# If you would like to create projects using the abridged standard library,
# replace the above line with:
# CXX_STL_VARIANT = abridged
endif
# Old warning macros
CC_WARNINGS_ALL = -Wall
CC_WARNINGS_NONE =
# New warning macros. The new default is CC_WARNINGS_LOW, but for ICC
# we are leaving the setting the same as before (-Wall). As we switch
# to Diab, we are also requiring that the base library build be error
# AND warning free. The higher settings are for code inspection and lint
# purposes.
CC_WARNINGS_HIGH = $(CC_WARNINGS_ALL)
CC_WARNINGS_MED = $(CC_WARNINGS_ALL)
CC_WARNINGS_LOW = $(CC_WARNINGS_ALL)
CC_COMPILER = -ansi -fno-zero-initialized-in-bss
C++_COMPILER = -ansi -fno-zero-initialized-in-bss
ifeq ($(ICC_INLINE_DISABLE),TRUE)
CC_COMPILER += -inline-level=0
ifndef _WRS_CONFIG_LP64
CC_COMPILER += -opt-args-in-regs=none
endif
endif
# used by project facility
CC_PROJECT_OPTIMIZE_FLAGS = -O -O1 -O2 -O3 -O4
PROJECT_BSP_FLAGS_EXTRA = $(filter -fvolatile,$(CC_OPTIM_TARGET)) $(CC_SDA_FLAGS)
# For generating PIC code
# For T2.2, CC_PIC is only defined for MIPS architecture see defs.mips.
# CC_PIC = $(OPTION_PIC)
## C flags
#CFLAGS += -fno-zero-initialized-in-bss
## toolchain binaries
AS = aspentium
CC = icc
CF = CC
CXX = $(CC)
LD = ldpentium
RANLIB = ranlibpentium
CPP = $(CC) -E
CPP_PRINT_MACROS = $(CPP) -dM -E -pipe -ansi $(CC_INCLUDE) $(CC_DEFINES)
TCL = tclsh
WTXTCL = wtxtcl
OBJCPY = objcopypentium
SIZE = sizepentium
NM = nmpentium
AR = arpentium
LARGE_PROJECT = true
OPTION_INDIRECT_FILE = @
OPTION_NM_INDIRECT_FILE = @
NM_GLOB_FLAGS = -g
BOOTCONFIG_FLAGS =
define link_symdef
--defsym (word 1, $(1))=$(word 2, $(1))
endef
LDFLAGS = -X -N $(LDFLAGS_ENDIAN) $(LDFLAGS_VSB) $(LINK_FLAGS_EXTRA) $(_USER_LDFLAGS)
LD_ENTRY_OPT = -e
LD_PARTIAL_FLAGS = -X -r $(LD_PARTIAL_FLAGS_ENDIAN) $(LD_PARTIAL_FLAGS_VSB) $(LINK_FLAGS_EXTRA)
# Wherever possible we use the compiler driver as a frontend to
# the linker. In particular this facilitates the GNU -frepo
# template repository system. Configurations using GNU Tools
# but non-GNU linkers (such as SIMHPPA) should define
# GNU_USE_LD_TO_LINK = yes
ifdef _WRS_CONFIG_LP64
ICC_EXTRA_LINK_FLAGS = -m64
else
ICC_EXTRA_LINK_FLAGS =
endif
ifeq ($(GNU_USE_LD_TO_LINK),)
BASE_LD_PARTIAL_FLAGS = $(filter-out -r -nostdlib,$(LD_PARTIAL_FLAGS))
LD_PARTIAL = $(CC) $(ICC_EXTRA_LINK_FLAGS) -r -nostdlib $(patsubst %,$(OPTION_PASS_TO_LD)%,$(BASE_LD_PARTIAL_FLAGS))
OPTION_PASS_TO_LD = -Wl,
else
LD_PARTIAL = $(LD) $(LD_PARTIAL_FLAGS)
OPTION_PASS_TO_LD =
endif
# These are flags to pass to the linker the last time we do a
# relocatable link. They never get used by a bootable project
# and they only get used once by a downloadable project.
LD_SCRIPT_DOWNLOAD = -T $(TGT_DIR)/h/tool/icc/ldscripts/link.OUT
LD_COLLAPSE_SECTIONS = $(LD_SCRIPT_DOWNLOAD)
LD_PARTIAL_LAST_FLAGS = $(LD_COLLAPSE_SECTIONS)
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/icc/ldscripts/link.RAM
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/icc/ldscripts/link.ROM
# for cyclic link support
LD_START_GROUP = --start-group
LD_END_GROUP = --end-group
LD_PARTIAL_START_GROUP = $(OPTION_PASS_TO_LD)$(LD_START_GROUP)
LD_PARTIAL_END_GROUP = $(OPTION_PASS_TO_LD)$(LD_END_GROUP)
LD_DATA_SEG_ALIGN_FLAG = -defsym _VX_DATA_ALIGN
LD_LOW_FLAGS = -Ttext $(RAM_LOW_ADRS)
LD_HIGH_FLAGS = -Ttext $(RAM_HIGH_ADRS)
RES_LOW_FLAGS = -Ttext $(ROM_LINK_ADRS) -Tdata $(RAM_LOW_ADRS)
RES_HIGH_FLAGS = -Ttext $(ROM_LINK_ADRS) -Tdata $(RAM_HIGH_ADRS)
# Flags for VxWorks Project builds
LD_RAM_FLAGS = $(LD_LOW_FLAGS)
LD_ROM_CPY_FLAGS = $(ROM_LDFLAGS) $(RES_LDFLAGS) $(RES_HIGH_FLAGS)
LD_ROM_CMP_FLAGS = $(ROM_LDFLAGS) $(RES_LDFLAGS) $(RES_HIGH_FLAGS)
LD_ROM_RES_FLAGS= $(ROM_LDFLAGS) $(RES_LDFLAGS) $(RES_LOW_FLAGS)
# For 960 IMI
LD_IMI_ADRS = -Ttext $(IMI_TEXT_ADRS) -Tdata $(IMI_DATA_ADRS)
# linker flag for section splitting and removal of unused sections.
LD_REMOVE_UNUSED_SECTIONS = --gc-sections
# 64 bit mode linker options
LDFLAG_64BIT = -m elf_x86_64_vxworks
LD_PARTIAL_FLAG_64BIT = -m elf_x86_64_vxworks
# define data models supported for VIPs
ifdef TC_INFO
DATA_MODELS = ILP32 LP64
endif