original files of m241
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# defs.arm - ARM specific definitions for the GNU toolchain
|
||||
#
|
||||
# Copyright (c) 2001-2002, 2008-2011, 2016 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01i,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug mode.
|
||||
# 01h,17oct11,mze fix for WIND00312198
|
||||
# 01g,20jun11,j_b Restore LDFLAGS_ENDIAN use instead of LDFLAGS
|
||||
# (WIND00282677); similarly done for LD_PARTIAL_FLAGS
|
||||
# 01f,31jan10,fao add be8 support.
|
||||
# 01e,30jun09,pee modification to LDFLAGS definition.
|
||||
# 01d,24jun08,pee VSB.
|
||||
# 01c,24jun02,m_h define LONGCALL to allow far away ld relocations
|
||||
# 01b,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01a,18dec01,to written
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains ARM specific definitions and flags for the
|
||||
# GNU tools (compiler, assembler, linker etc.)
|
||||
#
|
||||
# NOTE
|
||||
# The file name comes from defs.$(VX_CPU_FAMILY)
|
||||
#
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.gnu
|
||||
include $(TGT_DIR)/h/tool/common/defs.arm
|
||||
|
||||
CC_OPTIM_XO = -O2
|
||||
CC_OPTIM_DEBUG =
|
||||
|
||||
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG) -fvolatile
|
||||
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO)
|
||||
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fvolatile
|
||||
|
||||
LONGCALL = -mlong-calls
|
||||
|
||||
ifeq ($(findstring _T,$(CPU)),_T)
|
||||
# definitions for Thumb mode
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) -mthumb -mthumb-interwork
|
||||
else
|
||||
# definitions for ARM mode
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) -mapcs-32
|
||||
endif
|
||||
|
||||
ifeq ($(_WRS_CONFIG_ENDIAN),little)
|
||||
# definitions for little endian
|
||||
CC_ARCH_SPEC += -mlittle-endian
|
||||
LDFLAGS_ENDIAN= -EL
|
||||
LD_PARTIAL_FLAGS_ENDIAN= -EL
|
||||
else
|
||||
# definitions for big endian: be or be8
|
||||
CC_ARCH_SPEC += -mbig-endian
|
||||
LDFLAGS_ENDIAN= -EB
|
||||
LD_PARTIAL_FLAGS_ENDIAN= -EB
|
||||
endif
|
||||
|
||||
CC_ARCH_SPEC_BASE = -fno-builtin
|
||||
|
||||
# end of defs.arm
|
||||
@@ -0,0 +1,349 @@
|
||||
# defs.gnu - definitions for GNU toolchain builds
|
||||
#
|
||||
# Copyright (c) 2000-12 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 04l,29aug12,mze change to system-headers warning
|
||||
# 04k,21aug12,mze add -Wsystem-headers flag
|
||||
# 04j,05jul12,pee WIND00356899
|
||||
# 04i,13jun11,mze add DEBUG FLAGS
|
||||
# 04h,16nov10,pee WIND00240589
|
||||
# 04g,08nov10,zl added CC_WARNINGS_IGNORE_DEPRECATED
|
||||
# 04g,28oct10,pee WIND00233594
|
||||
# 04f,16jul10,mze add fno-zero-initialized-in-bss to CC_COMPILER
|
||||
# 04e,26may10,pee adding line no to CPP
|
||||
# 04d,08apr10,pee adding missing vxWorks link flags
|
||||
# 04c,16dec09,mcm Adding option to enable warnings for system headers
|
||||
# 04b,02jul09,pee define section splittion option for CC
|
||||
# 04a,26jun09,pee adding defs for section splitting.
|
||||
# 03z,17jun09,pee moving munch to defs.common
|
||||
# 03y,28jul09,svc pick up 64 bit compiler change
|
||||
# 03x,28jul09,jam 64 bit compiler fix
|
||||
# 03w,21jul09,mcm Adding extra link flags for BSP builds.
|
||||
# 03v,08jul09,pee adding linker options derived from VSB.
|
||||
# 03u,11jun08,pee VSB adaptation
|
||||
# 03t,11sep07,pes Remove -fpic from OPTION_PIC
|
||||
# 03s,02jul07,zl added -ansi to CPP_PRINT_MACROS.
|
||||
# 03r,27jun07,mcm Adding support for abridged and standard versions of
|
||||
# libstdc++.a
|
||||
# 03q,07jun07,pee reorganized SDA builds for VIP.
|
||||
# 03p,11may07,dcc temporal disable of SDA builds.
|
||||
# 03o,05may07,dcc added CC_SDA_FLAGS.
|
||||
# 03n,10feb06,pee added linker symbol definition
|
||||
# 03m,22aug05,pee Added OPTION_DEPEND_TARGET
|
||||
# 02y,18jul05,pee Added CC_LIBINTRINSICS
|
||||
# 02x,08Jul05,pee Added OPTION_CC_GENMAP
|
||||
# 02w,29apr05,md Added OPTION_DEPEND_GEN_D
|
||||
# 02v,16feb05,pee Added OPTION_POINTERS_VOLATILE
|
||||
# 02u,15nov04,gvm Fix for SPR103853: no -P when pre-processing assembly files.
|
||||
# 02t,16sep04,mcm Adding -fno-zero-initialized-in-bss
|
||||
# 02s,12jul04,fle Improved support for data alignment
|
||||
# 02r,15jun04,fle SPR#98164 : substitute backslashes with slashes in CC_BASE
|
||||
# 02q,29apr04,c_c Get compiler version from the resource file.
|
||||
# 02p,04may04,mcm Updating compiler version to 3.3.2-vxworks60
|
||||
# 02o,26apr04,f_b Removed absolute path to objcopy to prepare for new
|
||||
# directory structure and align with how nm & size are found
|
||||
# 02n,03feb04,mcm Fix for SPR 93149
|
||||
# 02m,09feb04,fle Updated to new host utilities location
|
||||
# 02l,22jan04,zmm Moved definitions of ROM_ENTRY, SYS_ENTRY and USR_ENTRY
|
||||
# into defs.common
|
||||
# 02k,09jan04,c_c Don't hardcode compiler path in macro (SPR #92774).
|
||||
# 02j,10dec03,dbt Updated for GCC 3.3.2 compiler
|
||||
# 02i,07nov03,c_c Check compiler version.
|
||||
# 02h,15oct03,dat New warning macros
|
||||
# 02g,19aug03,fle SPR#88802, set TCL to tclsh and added WTXTCL macro
|
||||
# 02f,06may02,sn SPR 76627 - Use CC to link by default
|
||||
# 02e,03may02,tpw LD_SCRIPT_DOWNLOAD cannot be derived from LD_SCRIPT_RAM.
|
||||
# It meshes poorly with scripts not named link.RAM (PPC4xx).
|
||||
# 02d,01may02,sn Restore TOOL_VENDOR (some people use it)
|
||||
# 02c,24apr02,sn SPR 75835 - collapse sections into text/data/bss before
|
||||
# download
|
||||
# 02b,24apr02,sn SPR 75123 - always munch -c (avoiding idiosyncratic asm
|
||||
# behaviour)
|
||||
# 02a,25apr02,pai introduced HLL_PREFIX so that prepended underscores could
|
||||
# be redefined in architecture/toolchain fragments (SPR 73382)
|
||||
# 01z,21mar02,rbl adding macro so that project facility can add -fvolatile to
|
||||
# bsp files
|
||||
# 01y,19mar02,dat Adding PIC flags for bootInit.o (72825)
|
||||
# 01x,13mar02,sn SPR 74080 - added large project support for Diab
|
||||
# 01w,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# 01v,06feb02,t_m change ranlib to ranlib$(TOOLENV)
|
||||
# 01u,21jan02,sn removed obsolete WFC flags
|
||||
# 01t,13dec01,jab added make variable BOOTCONFIG_FLAGS
|
||||
# 01s,05dec01,tpw Use TGT_DIR to find linker scripts.
|
||||
# 01r,13nov01,tam changed definition of CC_LIB (repackaging)
|
||||
# 01q,05nov01,rbl let project facility know about optimization flags
|
||||
# 01p,09nov01,tam fixed use of OPTION_PASS_TO_LD; renamed TOOL_CONFIG
|
||||
# 01o,02nov01,dat adding -w to dependency generation options
|
||||
# 01n,30oct01,tpw Take generic defaults from new fragment defs.common
|
||||
# 01m,29oct01,jab added new ld script variables
|
||||
# 01l,26oct01,tam fixed Wl usage after merge
|
||||
# 01k,19oct01,j_s define cyclic link support macros
|
||||
# add TOOL_CONFIG
|
||||
# 01j,24oct01,dat Relocating tool specific macros
|
||||
# 01i,24oct01,jab added new dependency generation variables
|
||||
# 01h,23oct01,jab added variables from defs.default cleanup
|
||||
# 01g,19oct01,jab added make variables for dependency generation option
|
||||
# 01f,18oct01,dat Moving tool specific defines out of target/h/make
|
||||
# 01e,12sep01,sn added LARGE_PROJECT, MUNCH_FLAGS and LD_PARTIAL
|
||||
# 01d,05jun01,mem Added EXTRACT_HEX_FLAG, EXTRACT_BIN_FLAG, VMA_START &
|
||||
# VMA_FLAGS
|
||||
# 01c,13mar01,sn added defn of OPTION_LANG_ASM
|
||||
# 01b,10jan01,sn added defn of OPTION_LANG_C
|
||||
# 01a,16oct00,sn wrote
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains default definitions and flags for builds that use the
|
||||
# GNU 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 = gnu
|
||||
# TOOL_COMMON_DIR = $(subst gnu,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 gnu,diab,$(TOOL))
|
||||
TOOL_GNU = $(TOOL)
|
||||
|
||||
# Deprecated, use TOOL_FAMILY instead
|
||||
TOOL_VENDOR = gnu
|
||||
|
||||
# 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 gnu utilities:
|
||||
# if WIND_GNU_PATH is set, then use it as the compiler base directory.
|
||||
# else, if WIND_GNU_VERSION is set, use it.
|
||||
# else, get the version from tools.version file.
|
||||
|
||||
ifneq ($(WIND_GNU_PATH),)
|
||||
CC_BASE = $(subst \,/,$(WIND_GNU_PATH))
|
||||
else
|
||||
# set default version to WIND_GNU_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_GNU_VERSION),)
|
||||
include $(WIND_BASE)/host/resource/hutils/tools.version
|
||||
endif
|
||||
CC_VERSION = $(WIND_GNU_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 = -lgcc
|
||||
|
||||
|
||||
OPTION_PP = -E
|
||||
OPTION_PP_AS =
|
||||
OPTION_PP_NOLINENO = -P
|
||||
OPTION_PP_COMMENT = -C
|
||||
OPTION_DOLLAR_SYMBOLS = -fdollars-in-identifiers
|
||||
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 = -fvolatile
|
||||
|
||||
CC_OPTIM_XO = -O
|
||||
CC_OPTIM_DEBUG =
|
||||
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG) -fvolatile
|
||||
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fstrength-reduce -fcombine-regs
|
||||
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fvolatile
|
||||
|
||||
ifeq ($(VX_CPU_FAMILY), ppc)
|
||||
ifeq ($(SDA_DISABLE),)
|
||||
CC_SDA_FLAGS = -G8 -msdata=eabi
|
||||
endif
|
||||
endif
|
||||
|
||||
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
|
||||
OPTION_SYS_HEADERS = -Wsystem-headers
|
||||
CC_WARN_SYSTEM_HEADERS =
|
||||
|
||||
CC_WARNINGS_ALL = -Wall $(CC_WARN_SYSTEM_HEADERS)
|
||||
CC_WARNINGS_NONE =
|
||||
|
||||
# option to override warnings for symbols declared with _WRS_DEPRECATED
|
||||
|
||||
CC_WARNINGS_IGNORE_DEPRECATED = -Wno-deprecated-declarations
|
||||
|
||||
# New warning macros. The new default is CC_WARNINGS_LOW, but for GNU
|
||||
# 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
|
||||
|
||||
# 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 = as$(TOOLENV)
|
||||
CC = cc$(TOOLENV)
|
||||
CF = CC
|
||||
CXX = $(CC)
|
||||
LD = ld$(TOOLENV)
|
||||
RANLIB = ranlib$(TOOLENV)
|
||||
CPP = $(CC) -E
|
||||
CPP_PRINT_MACROS = $(CPP) -dM -E -pipe -ansi $(CC_INCLUDE) $(CC_DEFINES)
|
||||
TCL = tclsh
|
||||
WTXTCL = wtxtcl
|
||||
OBJCPY = objcopy$(TOOLENV)
|
||||
SIZE = size$(TOOLENV)
|
||||
NM = nm$(TOOLENV)
|
||||
AR = ar$(TOOLENV)
|
||||
|
||||
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
|
||||
|
||||
ifeq ($(GNU_USE_LD_TO_LINK),)
|
||||
BASE_LD_PARTIAL_FLAGS = $(filter-out -r -nostdlib,$(LD_PARTIAL_FLAGS))
|
||||
LD_PARTIAL = $(CC) -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/gnu/ldscripts/link.OUT
|
||||
LD_COLLAPSE_SECTIONS = $(LD_SCRIPT_DOWNLOAD)
|
||||
LD_PARTIAL_LAST_FLAGS = $(LD_COLLAPSE_SECTIONS)
|
||||
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.RAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/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
|
||||
@@ -0,0 +1,146 @@
|
||||
# defs.mips - MIPS specific definitions for the GNU toolchain
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01r,17oct11,mze fix for WIND00312198
|
||||
# 01q,16jul10,mze add -fno-zero-initialized-in-bss to CC_COMPILER
|
||||
# 01p,11feb10,pch support for VSB link options, e.g. small footprint: Specify
|
||||
# endianness with LDFLAGS_ENDIAN and LD_PARTIAL_FLAGS_ENDIAN
|
||||
# instead of setting LDFLAGS and LD_PARTIAL_FLAGS directly.
|
||||
# 01o,25jun08,pee VSB.
|
||||
# 01n,11jun07,pes Remove workarounds
|
||||
# 01m,18may07,pes Switch to n32 builds.
|
||||
# 01l,24apr07,pes Temporarily force all 32-bit builds to be soft float and
|
||||
# 64-bit builds to be hard float.
|
||||
# 01k,24apr07,pes Add temporary workaround for -mips32r2 library path
|
||||
# problem.
|
||||
# 01j,19apr07,pes Temporary workaround for incorrect operation on -mips64 and
|
||||
# -mips64r2 library searches.
|
||||
# 01i,20feb07,pes Add options to support new lib structure.
|
||||
# 01h,04mar05,pes Remove options for r3k
|
||||
# 01g,05may04,pes Fixing compile flag used for gnu for MIPS64.
|
||||
# 01f,07nov03,c_c Removed GNULIBROOT define.
|
||||
# 01e,26mar02,pes Revert to MIPS ISA III. Clean up -mno-branch-likely
|
||||
# selection.
|
||||
# 01d,19mar02,dat Adding PIC flags for bootInit.o (72825)
|
||||
# 01c,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# removed -fno-for-scope
|
||||
# 01b,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01a,09jan02,pes written
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPS specific definitions and flags for the
|
||||
# GNU tools (compiler, assembler, linker etc.)
|
||||
#
|
||||
# NOTE
|
||||
# The file name comes from defs.$(VX_CPU_FAMILY)
|
||||
#
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.gnu
|
||||
include $(TGT_DIR)/h/tool/common/defs.mips
|
||||
|
||||
CC_OPTIM_XO = -O2
|
||||
CC_OPTIM_DEBUG =
|
||||
|
||||
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG) -O -fvolatile
|
||||
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO)
|
||||
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO)
|
||||
|
||||
# Compiler flags for PIC code
|
||||
# For T2.2, used only for MIPS gnu compiler.
|
||||
CC_PIC = $(OPTION_PIC)
|
||||
|
||||
CC_COMPILER = -ansi -fno-builtin -fno-zero-initialized-in-bss
|
||||
C++_COMPILER += -fno-builtin -fno-zero-initialized-in-bss
|
||||
|
||||
LONGCALL = -mlong-calls
|
||||
|
||||
# override/modify standard command definitions
|
||||
AS += -G 0
|
||||
RANLIB = ranlibmips
|
||||
|
||||
# Build up architecture specification
|
||||
# Set initial value
|
||||
CC_ARCH_SPEC = -G 0 -mno-branch-likely
|
||||
|
||||
#
|
||||
# Modify CC_ARCH_SPEC for processor ISA level and endianness
|
||||
#
|
||||
# select processor ISA
|
||||
#
|
||||
|
||||
# Libraries supported
|
||||
# MIPS32 (deprecated, use MIPSI2)
|
||||
# MIPS64 (deprecated, use MIPSI3)
|
||||
# MIPSI2
|
||||
# MIPSI32
|
||||
# MIPSI32R2
|
||||
# MIPSI3
|
||||
# MIPSI64
|
||||
# MIPSI64R2
|
||||
#
|
||||
|
||||
# Deprecated, use MIPSI2/MIPSI3
|
||||
#
|
||||
ifeq ($(findstring MIPS32,$(CPU)),MIPS32)
|
||||
CC_ARCH_SPEC += -mips2
|
||||
AS += -mips2
|
||||
else
|
||||
ifeq ($(findstring MIPS64,$(CPU)),MIPS64)
|
||||
CC_ARCH_SPEC += -mips3 -mabi=n32 -mgp64
|
||||
AS += -mips3 -mabi=n32 -mgp64
|
||||
endif
|
||||
endif
|
||||
|
||||
# Defined carefully, since MIPSI64 is a substring of
|
||||
# MIPSI64R2, etc.
|
||||
|
||||
ifeq ($(findstring MIPSI2,$(CPU)),MIPSI2)
|
||||
CC_ARCH_SPEC += -mips2 -mgp32
|
||||
AS += -mips2 -mgp32
|
||||
else
|
||||
ifeq ($(findstring MIPSI32R2,$(CPU)),MIPSI32R2)
|
||||
CC_ARCH_SPEC += -mips32r2 -mgp32
|
||||
AS += -mips32r2 -mgp32
|
||||
else
|
||||
ifeq ($(findstring MIPSI32,$(CPU)),MIPSI32)
|
||||
CC_ARCH_SPEC += -mips32 -mgp32
|
||||
AS += -mips32 -mgp32
|
||||
else
|
||||
ifeq ($(findstring MIPSI3,$(CPU)),MIPSI3)
|
||||
CC_ARCH_SPEC += -mips3 -mabi=n32 -mgp64
|
||||
AS += -mips3 -mabi=n32 -mgp64
|
||||
else
|
||||
ifeq ($(findstring MIPSI64R2,$(CPU)),MIPSI64R2)
|
||||
CC_ARCH_SPEC += -mips64 -Wa,-mips64r2 -mabi=n32 -mgp64
|
||||
AS += -mips64 -Wa,-mips64r2 -mabi=n32 -mgp64
|
||||
else
|
||||
ifeq ($(findstring MIPSI64,$(CPU)),MIPSI64)
|
||||
CC_ARCH_SPEC += -mips64 -mabi=n32 -mgp64
|
||||
AS += -mips64 -mabi=n32 -mgp64
|
||||
endif #MIPSI64
|
||||
endif #MIPSI64R2
|
||||
endif #MIPSI32
|
||||
endif #MIPSI32R2
|
||||
endif #MIPSI3
|
||||
endif #MIPSI2
|
||||
|
||||
# select endianness
|
||||
ifeq ($(_WRS_CONFIG_ENDIAN),little)
|
||||
CC_ARCH_SPEC += -EL
|
||||
AS += -EL
|
||||
LDFLAGS_ENDIAN = -EL
|
||||
LD_PARTIAL_FLAGS_ENDIAN = -EL
|
||||
else
|
||||
CC_ARCH_SPEC += -EB
|
||||
AS += -EB
|
||||
LDFLAGS_ENDIAN = -EB
|
||||
LD_PARTIAL_FLAGS_ENDIAN = -EB
|
||||
endif
|
||||
|
||||
# check for software floating point request
|
||||
ifeq ($(_WRS_CONFIG_FP),soft)
|
||||
CC_SOFT_FLOAT = -msoft-float
|
||||
endif
|
||||
|
||||
# end of defs.mips
|
||||
@@ -0,0 +1,177 @@
|
||||
# defs.ppc - PPC specific definitions for the GNU toolchain
|
||||
#
|
||||
# Copyright (c) 2012, 2016 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01c,10nov16,h_k fixed e6500 build spec. (VXW6-85939)
|
||||
# 01b,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug
|
||||
# mode.
|
||||
# 01a,12apr12,h_k written
|
||||
# added -mstrict-align to all the PPC build specs.
|
||||
# added -fno-implicit-fp to all the PPC build specs.
|
||||
# (WIND00345703)
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PPC specific definitions and flags for the
|
||||
# GNU tools (compiler, assembler, linker etc.)
|
||||
#
|
||||
# NOTE
|
||||
# The file name comes from defs.$(VX_CPU_FAMILY)
|
||||
#
|
||||
|
||||
# Common default GCC optimization flags across all the PPC CPU variants.
|
||||
#
|
||||
# -fvolatile
|
||||
# Consider all memory references through pointers to be volatile.
|
||||
# This option is implemented only for C.
|
||||
#
|
||||
# -fno-builtin
|
||||
# Do not recognize built-in functions that do not begin with `__builtin_' as
|
||||
# prefix.
|
||||
#
|
||||
# -fstrength-reduce
|
||||
# Perform the optimizations of loop strength reduction and elimination of
|
||||
# iteration variables.
|
||||
# Enabled at levels `-O2', `-O3', `-Os'.
|
||||
|
||||
CC_OPTIM_XO = -O2
|
||||
CC_OPTIM_DEBUG =
|
||||
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG) -fvolatile
|
||||
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fstrength-reduce
|
||||
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fvolatile
|
||||
|
||||
# GCC flags per _WRS_CONFIG_FP
|
||||
|
||||
ifeq ($(_WRS_CONFIG_FP),hard)
|
||||
|
||||
# -mhard-float
|
||||
# Generate code using floating point instructions.
|
||||
# (This is the default on GCC when targeting processors that have floating
|
||||
# point instructions. We explicitly add the flag here in case GCC changes its
|
||||
# specification in the future.)
|
||||
#
|
||||
# -fno-implicit-fp
|
||||
# By default, the compiler is free to use floating-point registers for
|
||||
# temporary values and integer computations, even when a function does not
|
||||
# explicitly use floating-point types. -fno-implicit-fp prevents this, only
|
||||
# allowing floating-point registers to be used in functions that explicitly
|
||||
# use floating-point types.
|
||||
# This option also prevents inlining of functions that use floating-point
|
||||
# types into functions that do not use floating-point types.
|
||||
#
|
||||
# Note:
|
||||
# The -fimplicit-fp option is turned on by default since GCC 4.1.2.
|
||||
# We explicitly disable the option here to prevent from unexpected
|
||||
# co-preocessor instructions, that may cause co-preocessor unavailable
|
||||
# exception or co-preocessor register corruption in the code that do not use
|
||||
# floating-point types.
|
||||
#
|
||||
# -D_WRS_HARDWARE_FP
|
||||
# Inform PPC arch specific header files that we are building for hardware FP
|
||||
# with FP co-processor registers.
|
||||
|
||||
CC_ARCH_SPEC += -mhard-float -fno-implicit-fp -D_WRS_HARDWARE_FP
|
||||
endif
|
||||
|
||||
ifeq ($(_WRS_CONFIG_FP),soft)
|
||||
# -msoft-float
|
||||
# Generate output containing library calls for floating point.
|
||||
|
||||
CC_ARCH_SPEC += -msoft-float
|
||||
|
||||
# Note:
|
||||
# If PPC85XX non-e500mc, -mabi=no-spe flag disables generating SPE
|
||||
# instructions and -fno-implicit-fp option is not necessary.
|
||||
# Since the -fimplicit-fp option prevents inlining of the functions described
|
||||
# above, we add the option to only the CPU variants that have floating-point
|
||||
# co-processor register capability in their ABIs.
|
||||
|
||||
ifneq ($(PPC32VARIANT),)
|
||||
ifneq ($(PPC32VARIANT),403)
|
||||
ifneq ($(PPC32VARIANT),405)
|
||||
ifneq ($(PPC32VARIANT),440)
|
||||
ifneq ($(PPC32VARIANT),PPC85XX)
|
||||
CC_ARCH_SPEC += -fno-implicit-fp
|
||||
else
|
||||
ifeq ($(LIB_DIR_TAG),_ppc85XX_e500mc)
|
||||
CC_ARCH_SPEC += -fno-implicit-fp
|
||||
else
|
||||
ifeq ($(LIB_DIR_TAG),_ppc85XX_e6500)
|
||||
CC_ARCH_SPEC += -fno-implicit-fp
|
||||
endif
|
||||
endif
|
||||
ifeq ($(CPU_VARIANT),_ppc85XX_e500mc)
|
||||
CC_ARCH_SPEC += -fno-implicit-fp
|
||||
else
|
||||
ifeq ($(CPU_VARIANT),_ppc85XX_e6500)
|
||||
CC_ARCH_SPEC += -fno-implicit-fp
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
ifneq ($(CPU),PPC32)
|
||||
ifneq ($(CPU),PPC403)
|
||||
ifneq ($(CPU),PPC405)
|
||||
ifneq ($(CPU),PPC440)
|
||||
ifneq ($(CPU),PPC85XX)
|
||||
CC_ARCH_SPEC += -fno-implicit-fp
|
||||
else
|
||||
ifeq ($(LIB_DIR_TAG),_e500mc)
|
||||
CC_ARCH_SPEC += -fno-implicit-fp
|
||||
else
|
||||
ifeq ($(LIB_DIR_TAG),_e6500)
|
||||
CC_ARCH_SPEC += -fno-implicit-fp
|
||||
endif
|
||||
endif
|
||||
ifeq ($(CPU_VARIANT),_e500mc)
|
||||
CC_ARCH_SPEC += -fno-implicit-fp
|
||||
else
|
||||
ifeq ($(CPU_VARIANT),_e6500)
|
||||
CC_ARCH_SPEC += -fno-implicit-fp
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(_WRS_CONFIG_FP),e500v2)
|
||||
# If e500v2, override the CC_ARCH_SPEC with -te500v2.
|
||||
#
|
||||
# -te500v2
|
||||
# Target selection, e500v2.
|
||||
|
||||
CC_ARCH_SPEC = -te500v2 -mhard-float -fno-implicit-fp
|
||||
endif
|
||||
|
||||
# Common default GCC flags across all the PPC CPU variants.
|
||||
#
|
||||
# -mstrict-align
|
||||
# Unaligned memory references must be handled by the compiler itself.
|
||||
# (The default on GCC is -mno-strict-align.)
|
||||
|
||||
CC_ARCH_SPEC += -mstrict-align -fno-builtin
|
||||
|
||||
LD_SCRIPT_RAM = -defsym wrs_kernel_rom_size=0x0$(ROM_SIZE) \
|
||||
-T $(TGT_DIR)/h/tool/gnu/ldscripts/link.DOTBOOTRAM
|
||||
LD_SCRIPT_ROM = -defsym wrs_kernel_rom_size=0x0$(ROM_SIZE) \
|
||||
-T $(TGT_DIR)/h/tool/gnu/ldscripts/link.DOTBOOTROM
|
||||
|
||||
CF =
|
||||
|
||||
# No Cfront support for PowerPC
|
||||
MAKETAIL =
|
||||
CLEANTAIL =
|
||||
|
||||
# end of defs.ppc
|
||||
@@ -0,0 +1,22 @@
|
||||
/* intrinsics.h - map INCLUDE_INTRINSICS to toolchain specific intrinsics */
|
||||
|
||||
/* Copyright 2001 Wind River Systems, Inc. */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
01a,06feb02,sn wrote
|
||||
*/
|
||||
|
||||
/*
|
||||
DESCRIPTION
|
||||
Map INCLUDE_INTRINSICS to INCLUDE_GNU_INTRINSICS. Included when TOOL_FAMILY=gnu.
|
||||
|
||||
NOMANUAL
|
||||
*/
|
||||
|
||||
#ifdef INCLUDE_INTRINSICS
|
||||
#ifndef INCLUDE_GNU_INTRINSICS
|
||||
#define INCLUDE_GNU_INTRINSICS
|
||||
#endif
|
||||
#endif
|
||||
@@ -0,0 +1,22 @@
|
||||
# Makefile - makefile for regenerating GNU linker scripts from common template
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,05dec01,tpw written
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains the makefile rules to regenerate cross-target linker
|
||||
# scripts using the template system in tool/common/ldscripts.
|
||||
#
|
||||
#*/
|
||||
|
||||
TGT_DIR=$(WIND_BASE)/target
|
||||
GEN_DIR=$(TGT_DIR)/h/tool/common/ldscripts
|
||||
REGEN_SH=$(GEN_DIR)/regen.sh
|
||||
TOOL=gnu
|
||||
|
||||
regen all:
|
||||
sh $(REGEN_SH) $(TOOL)
|
||||
|
||||
update:
|
||||
sh $(REGEN_SH) -update $(TOOL)
|
||||
@@ -0,0 +1,173 @@
|
||||
/* link.AOUTRAM - gnu linker command file for VxWorks: AOUT RAM */
|
||||
|
||||
/* Copyright 2001-2014 Wind River Systems, Inc. */
|
||||
|
||||
/* This file was automatically generated using tool/common/ldscripts. */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
02k,16sep14,mcm Fix for NOTYPE symbols (TCGNU-76)
|
||||
02j,22apr13,g_x Adding *(.gnu.linkonce.s.*) for gnu. (WIND00414091)
|
||||
02i,02apr13,g_x Add *(text.romentry) in the text segment for MIPS
|
||||
(WIND00408686)
|
||||
02h,12mar13,gvm Fix for WIND00376986. Close alignment gap
|
||||
between _wrs_kernel_tls_vars_start and .tls_vars
|
||||
02g,05jan12,my_ Place .copy.text and inflate.text into the .data
|
||||
section for ARMARCH4
|
||||
02f,06may10,slk updates for large memory model support
|
||||
02e,12jan11,pgh Place .copy.text and inflate.text into the .data section
|
||||
02d,09jul10,mcm Adding .wrs_build_vars for GNU as well.
|
||||
02c,10mar10,gvm updates for icc
|
||||
02b,16feb10,mcm Update to allow the 'AT' directive introduced for .boot and
|
||||
.reset to be present for gnu only.
|
||||
02a,15feb10,mcm Updates for GCC 4.3.3
|
||||
01z,24jul09,pee adding wrs_build_vars section.
|
||||
01y,13nov08,mcm Fix for WIND00143294 - gnu.linkonce.b sections not handled
|
||||
correctly. Also added .bss.* and .sbss.*
|
||||
01x,06may08,mcm Changes for GNU Dwarf EH
|
||||
01w,16oct07,sn WIND00107939:fixed LMAs of .sdata etc. for Diab
|
||||
01v,11jul07,pes Update and rename generation of .kseg0data segment. (Renamed
|
||||
to .kseg0bss.) Add .rodata.cst16 segment.
|
||||
01u,07jul07,mcm Fixing position of .tls* sections and adding support for tls
|
||||
for GCC.
|
||||
01t,08jun07,r_s add support for Small Data Area segments.
|
||||
01s,09nov06,gvm Support for .tls_data, .tls_vars, and associated absolute
|
||||
symbols in the Diab linker script
|
||||
01r,25aug05,dlk Support .text.init, .text.fast, .data.init, .data.fast.
|
||||
01r,29jul05,slk SPR 104264: fix MIPS romResident images
|
||||
01q,06may05,rlg changes for MIPS specific devices
|
||||
01p,03jul04,f_b Improved support for data alignment
|
||||
01o,12dec03,sn added more .rodata.str1.* handlers
|
||||
01n,04dec03,sn Diab: .rodata.* is not handled correctly by Diab linker; instead
|
||||
use specific names
|
||||
01m,28oct03,sn Diab: collapse .rodata.cst* sections into .rodata
|
||||
01l,29may02,tpw Diab: pad out sections, needed for MIPS byteswap. SPR 78076
|
||||
01k,24apr02,sn GNU: SPR 75835 - added support for relocatable script link.OUT
|
||||
01j,19apr02,tpw Diab: provide _etext for ColdFire. SPR 75122
|
||||
01i,06feb02,sn Both: place .got2 to handle tramp.o (_x_gnu_tramp.o).
|
||||
01h,25jan02,tpw GNU: give debug sections explicit 0 addresses.
|
||||
01g,14jan02,tpw Diab: place .eh_frame data, in case of insistent GNU objects.
|
||||
01f,14dec01,tpw Diab: provide both underscore options of wrs_kernel* here too.
|
||||
01e,05dec01,tpw Both: Add .boot and .reset section support, for PPC 4xx series
|
||||
and Book E.
|
||||
01d,05dec01,tpw Diab: Add .frame_info section to text region.
|
||||
01c,03dec01,jab Diab: replaced LOAD() with AT()
|
||||
01b,14nov01,tpw ALL: Correct some more bootrom/kernel issues.
|
||||
01b,06nov01,tpw GNU: Add /DISCARD/ directive to discard uninteresting sections
|
||||
01a,01nov01,tpw gnu script written
|
||||
01a,29oct01,jab diab script written
|
||||
*/
|
||||
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
.text :
|
||||
{
|
||||
|
||||
wrs_kernel_text_start = ABSOLUTE(.); _wrs_kernel_text_start = ABSOLUTE(.);
|
||||
_VX_START_TEXT = .;
|
||||
*(.text)
|
||||
wrs_kernel_text_fast = ABSOLUTE(.); _wrs_kernel_text_fast = ABSOLUTE(.);
|
||||
*(.text.fast)
|
||||
wrs_kernel_text_init = ABSOLUTE(.); _wrs_kernel_text_init = ABSOLUTE(.);
|
||||
*(.text.init)
|
||||
*(.text.*) *(.stub) *(.gnu.warning) *(.gnu.linkonce.t*)
|
||||
KEEP(*(.init)) KEEP(*(.fini))
|
||||
*(.glue_7t) *(.glue_7) *(.rdata) /* for ARM */
|
||||
*(.mips16.fn.*) *(.mips16.call.*) *(.reginfo) /* for MIPS */
|
||||
*(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) *(.rodata1)
|
||||
. = ALIGN(16);
|
||||
. = ALIGN (8);
|
||||
*(.eh_frame_hdr)
|
||||
. = ALIGN (8);
|
||||
__EH_FRAME_BEGIN__ = .;
|
||||
KEEP (*(.eh_frame))
|
||||
LONG (0)
|
||||
. = ALIGN (8);
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
}
|
||||
.wrs_build_vars : {
|
||||
*(.wrs_build_vars)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.sdata2 : {
|
||||
_SDA2_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata2) *(.sbss2) /* for PPC */
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
wrs_kernel_text_end = ABSOLUTE(.); _wrs_kernel_text_end = ABSOLUTE(.);
|
||||
etext = .; _etext = .;
|
||||
. = ALIGN(_VX_DATA_ALIGN);
|
||||
.data :
|
||||
{
|
||||
|
||||
wrs_kernel_data_start = .; _wrs_kernel_data_start = .;
|
||||
_VX_START_DATA = .;
|
||||
*(.data)
|
||||
wrs_kernel_data_fast = .; _wrs_kernel_data_fast = .;
|
||||
*(.data.fast)
|
||||
wrs_kernel_data_init = .; _wrs_kernel_data_init = .;
|
||||
*(.data.init)
|
||||
*(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) *(.data1)
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
/* got*, dynamic, sdata*, lit[48], and sbss should follow _gp */
|
||||
*(.got.plt) *(.got) *(.dynamic)
|
||||
*(.got2)
|
||||
*(.lit8) *(.lit4)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
wrs_kernel_tls_data_start = .; _wrs_kernel_tls_data_start = .;
|
||||
.tls_data : {
|
||||
*(.tls_data)
|
||||
}
|
||||
wrs_kernel_tls_data_size = . - wrs_kernel_tls_data_start; _wrs_kernel_tls_data_size = . - _wrs_kernel_tls_data_start;
|
||||
wrs_kernel_tls_data_align = 16; _wrs_kernel_tls_data_align = 16;
|
||||
. = ALIGN(8);
|
||||
wrs_kernel_tls_vars_start = .; _wrs_kernel_tls_vars_start = .;
|
||||
.tls_vars : {
|
||||
*(.tls_vars)
|
||||
}
|
||||
wrs_kernel_tls_vars_size = SIZEOF(.tls_vars); _wrs_kernel_tls_vars_size = SIZEOF(.tls_vars);
|
||||
. = ALIGN(16);
|
||||
_gp = ALIGN(16) + 0x7ff0; /* set gp for MIPS startup code */
|
||||
.sdata :
|
||||
{
|
||||
_SDA_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
edata = .; _edata = .;
|
||||
wrs_kernel_data_end = .; _wrs_kernel_data_end = .;
|
||||
.sbss :
|
||||
{
|
||||
wrs_kernel_bss_start = .; _wrs_kernel_bss_start = .;
|
||||
*(.sbss) *(.sbss.*) *(.scommon)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
end = .; _end = .;
|
||||
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,173 @@
|
||||
/* link.AOUTROM - gnu linker command file for VxWorks: AOUT ROM */
|
||||
|
||||
/* Copyright 2001-2014 Wind River Systems, Inc. */
|
||||
|
||||
/* This file was automatically generated using tool/common/ldscripts. */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
02k,16sep14,mcm Fix for NOTYPE symbols (TCGNU-76)
|
||||
02j,22apr13,g_x Adding *(.gnu.linkonce.s.*) for gnu. (WIND00414091)
|
||||
02i,02apr13,g_x Add *(text.romentry) in the text segment for MIPS
|
||||
(WIND00408686)
|
||||
02h,12mar13,gvm Fix for WIND00376986. Close alignment gap
|
||||
between _wrs_kernel_tls_vars_start and .tls_vars
|
||||
02g,05jan12,my_ Place .copy.text and inflate.text into the .data
|
||||
section for ARMARCH4
|
||||
02f,06may10,slk updates for large memory model support
|
||||
02e,12jan11,pgh Place .copy.text and inflate.text into the .data section
|
||||
02d,09jul10,mcm Adding .wrs_build_vars for GNU as well.
|
||||
02c,10mar10,gvm updates for icc
|
||||
02b,16feb10,mcm Update to allow the 'AT' directive introduced for .boot and
|
||||
.reset to be present for gnu only.
|
||||
02a,15feb10,mcm Updates for GCC 4.3.3
|
||||
01z,24jul09,pee adding wrs_build_vars section.
|
||||
01y,13nov08,mcm Fix for WIND00143294 - gnu.linkonce.b sections not handled
|
||||
correctly. Also added .bss.* and .sbss.*
|
||||
01x,06may08,mcm Changes for GNU Dwarf EH
|
||||
01w,16oct07,sn WIND00107939:fixed LMAs of .sdata etc. for Diab
|
||||
01v,11jul07,pes Update and rename generation of .kseg0data segment. (Renamed
|
||||
to .kseg0bss.) Add .rodata.cst16 segment.
|
||||
01u,07jul07,mcm Fixing position of .tls* sections and adding support for tls
|
||||
for GCC.
|
||||
01t,08jun07,r_s add support for Small Data Area segments.
|
||||
01s,09nov06,gvm Support for .tls_data, .tls_vars, and associated absolute
|
||||
symbols in the Diab linker script
|
||||
01r,25aug05,dlk Support .text.init, .text.fast, .data.init, .data.fast.
|
||||
01r,29jul05,slk SPR 104264: fix MIPS romResident images
|
||||
01q,06may05,rlg changes for MIPS specific devices
|
||||
01p,03jul04,f_b Improved support for data alignment
|
||||
01o,12dec03,sn added more .rodata.str1.* handlers
|
||||
01n,04dec03,sn Diab: .rodata.* is not handled correctly by Diab linker; instead
|
||||
use specific names
|
||||
01m,28oct03,sn Diab: collapse .rodata.cst* sections into .rodata
|
||||
01l,29may02,tpw Diab: pad out sections, needed for MIPS byteswap. SPR 78076
|
||||
01k,24apr02,sn GNU: SPR 75835 - added support for relocatable script link.OUT
|
||||
01j,19apr02,tpw Diab: provide _etext for ColdFire. SPR 75122
|
||||
01i,06feb02,sn Both: place .got2 to handle tramp.o (_x_gnu_tramp.o).
|
||||
01h,25jan02,tpw GNU: give debug sections explicit 0 addresses.
|
||||
01g,14jan02,tpw Diab: place .eh_frame data, in case of insistent GNU objects.
|
||||
01f,14dec01,tpw Diab: provide both underscore options of wrs_kernel* here too.
|
||||
01e,05dec01,tpw Both: Add .boot and .reset section support, for PPC 4xx series
|
||||
and Book E.
|
||||
01d,05dec01,tpw Diab: Add .frame_info section to text region.
|
||||
01c,03dec01,jab Diab: replaced LOAD() with AT()
|
||||
01b,14nov01,tpw ALL: Correct some more bootrom/kernel issues.
|
||||
01b,06nov01,tpw GNU: Add /DISCARD/ directive to discard uninteresting sections
|
||||
01a,01nov01,tpw gnu script written
|
||||
01a,29oct01,jab diab script written
|
||||
*/
|
||||
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
.text :
|
||||
{
|
||||
|
||||
wrs_kernel_text_start = ABSOLUTE(.); _wrs_kernel_text_start = ABSOLUTE(.);
|
||||
_VX_START_TEXT = .;
|
||||
*(.text)
|
||||
wrs_kernel_text_fast = ABSOLUTE(.); _wrs_kernel_text_fast = ABSOLUTE(.);
|
||||
*(.text.fast)
|
||||
wrs_kernel_text_init = ABSOLUTE(.); _wrs_kernel_text_init = ABSOLUTE(.);
|
||||
*(.text.init)
|
||||
*(.text.*) *(.stub) *(.gnu.warning) *(.gnu.linkonce.t*)
|
||||
KEEP(*(.init)) KEEP(*(.fini))
|
||||
*(.glue_7t) *(.glue_7) *(.rdata) /* for ARM */
|
||||
*(.mips16.fn.*) *(.mips16.call.*) *(.reginfo) /* for MIPS */
|
||||
*(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) *(.rodata1)
|
||||
. = ALIGN(16);
|
||||
. = ALIGN (8);
|
||||
*(.eh_frame_hdr)
|
||||
. = ALIGN (8);
|
||||
__EH_FRAME_BEGIN__ = .;
|
||||
KEEP (*(.eh_frame))
|
||||
LONG (0)
|
||||
. = ALIGN (8);
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
}
|
||||
.wrs_build_vars : {
|
||||
*(.wrs_build_vars)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.sdata2 : {
|
||||
_SDA2_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata2) *(.sbss2) /* for PPC */
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
wrs_kernel_text_end = ABSOLUTE(.); _wrs_kernel_text_end = ABSOLUTE(.);
|
||||
etext = .; _etext = .;
|
||||
|
||||
.data : AT(etext)
|
||||
{
|
||||
|
||||
wrs_kernel_data_start = .; _wrs_kernel_data_start = .;
|
||||
_VX_START_DATA = .;
|
||||
*(.data)
|
||||
wrs_kernel_data_fast = .; _wrs_kernel_data_fast = .;
|
||||
*(.data.fast)
|
||||
wrs_kernel_data_init = .; _wrs_kernel_data_init = .;
|
||||
*(.data.init)
|
||||
*(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) *(.data1)
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
/* got*, dynamic, sdata*, lit[48], and sbss should follow _gp */
|
||||
*(.got.plt) *(.got) *(.dynamic)
|
||||
*(.got2)
|
||||
*(.lit8) *(.lit4)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
wrs_kernel_tls_data_start = .; _wrs_kernel_tls_data_start = .;
|
||||
.tls_data : {
|
||||
*(.tls_data)
|
||||
}
|
||||
wrs_kernel_tls_data_size = . - wrs_kernel_tls_data_start; _wrs_kernel_tls_data_size = . - _wrs_kernel_tls_data_start;
|
||||
wrs_kernel_tls_data_align = 16; _wrs_kernel_tls_data_align = 16;
|
||||
. = ALIGN(8);
|
||||
wrs_kernel_tls_vars_start = .; _wrs_kernel_tls_vars_start = .;
|
||||
.tls_vars : {
|
||||
*(.tls_vars)
|
||||
}
|
||||
wrs_kernel_tls_vars_size = SIZEOF(.tls_vars); _wrs_kernel_tls_vars_size = SIZEOF(.tls_vars);
|
||||
. = ALIGN(16);
|
||||
_gp = ALIGN(16) + 0x7ff0; /* set gp for MIPS startup code */
|
||||
.sdata :
|
||||
{
|
||||
_SDA_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
edata = .; _edata = .;
|
||||
wrs_kernel_data_end = .; _wrs_kernel_data_end = .;
|
||||
.sbss :
|
||||
{
|
||||
wrs_kernel_bss_start = .; _wrs_kernel_bss_start = .;
|
||||
*(.sbss) *(.sbss.*) *(.scommon)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
end = .; _end = .;
|
||||
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
/* link.ARMARCH4ROM - gnu linker command file for VxWorks: ARMARCH4 ROM */
|
||||
|
||||
/* Copyright 2001-2014 Wind River Systems, Inc. */
|
||||
|
||||
/* This file was automatically generated using tool/common/ldscripts. */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
02k,16sep14,mcm Fix for NOTYPE symbols (TCGNU-76)
|
||||
02j,22apr13,g_x Adding *(.gnu.linkonce.s.*) for gnu. (WIND00414091)
|
||||
02i,02apr13,g_x Add *(text.romentry) in the text segment for MIPS
|
||||
(WIND00408686)
|
||||
02h,12mar13,gvm Fix for WIND00376986. Close alignment gap
|
||||
between _wrs_kernel_tls_vars_start and .tls_vars
|
||||
02g,05jan12,my_ Place .copy.text and inflate.text into the .data
|
||||
section for ARMARCH4
|
||||
02f,06may10,slk updates for large memory model support
|
||||
02e,12jan11,pgh Place .copy.text and inflate.text into the .data section
|
||||
02d,09jul10,mcm Adding .wrs_build_vars for GNU as well.
|
||||
02c,10mar10,gvm updates for icc
|
||||
02b,16feb10,mcm Update to allow the 'AT' directive introduced for .boot and
|
||||
.reset to be present for gnu only.
|
||||
02a,15feb10,mcm Updates for GCC 4.3.3
|
||||
01z,24jul09,pee adding wrs_build_vars section.
|
||||
01y,13nov08,mcm Fix for WIND00143294 - gnu.linkonce.b sections not handled
|
||||
correctly. Also added .bss.* and .sbss.*
|
||||
01x,06may08,mcm Changes for GNU Dwarf EH
|
||||
01w,16oct07,sn WIND00107939:fixed LMAs of .sdata etc. for Diab
|
||||
01v,11jul07,pes Update and rename generation of .kseg0data segment. (Renamed
|
||||
to .kseg0bss.) Add .rodata.cst16 segment.
|
||||
01u,07jul07,mcm Fixing position of .tls* sections and adding support for tls
|
||||
for GCC.
|
||||
01t,08jun07,r_s add support for Small Data Area segments.
|
||||
01s,09nov06,gvm Support for .tls_data, .tls_vars, and associated absolute
|
||||
symbols in the Diab linker script
|
||||
01r,25aug05,dlk Support .text.init, .text.fast, .data.init, .data.fast.
|
||||
01r,29jul05,slk SPR 104264: fix MIPS romResident images
|
||||
01q,06may05,rlg changes for MIPS specific devices
|
||||
01p,03jul04,f_b Improved support for data alignment
|
||||
01o,12dec03,sn added more .rodata.str1.* handlers
|
||||
01n,04dec03,sn Diab: .rodata.* is not handled correctly by Diab linker; instead
|
||||
use specific names
|
||||
01m,28oct03,sn Diab: collapse .rodata.cst* sections into .rodata
|
||||
01l,29may02,tpw Diab: pad out sections, needed for MIPS byteswap. SPR 78076
|
||||
01k,24apr02,sn GNU: SPR 75835 - added support for relocatable script link.OUT
|
||||
01j,19apr02,tpw Diab: provide _etext for ColdFire. SPR 75122
|
||||
01i,06feb02,sn Both: place .got2 to handle tramp.o (_x_gnu_tramp.o).
|
||||
01h,25jan02,tpw GNU: give debug sections explicit 0 addresses.
|
||||
01g,14jan02,tpw Diab: place .eh_frame data, in case of insistent GNU objects.
|
||||
01f,14dec01,tpw Diab: provide both underscore options of wrs_kernel* here too.
|
||||
01e,05dec01,tpw Both: Add .boot and .reset section support, for PPC 4xx series
|
||||
and Book E.
|
||||
01d,05dec01,tpw Diab: Add .frame_info section to text region.
|
||||
01c,03dec01,jab Diab: replaced LOAD() with AT()
|
||||
01b,14nov01,tpw ALL: Correct some more bootrom/kernel issues.
|
||||
01b,06nov01,tpw GNU: Add /DISCARD/ directive to discard uninteresting sections
|
||||
01a,01nov01,tpw gnu script written
|
||||
01a,29oct01,jab diab script written
|
||||
*/
|
||||
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
.text :
|
||||
{
|
||||
|
||||
wrs_kernel_text_start = ABSOLUTE(.); _wrs_kernel_text_start = ABSOLUTE(.);
|
||||
_VX_START_TEXT = .;
|
||||
*(.text)
|
||||
wrs_kernel_text_fast = ABSOLUTE(.); _wrs_kernel_text_fast = ABSOLUTE(.);
|
||||
*(.text.fast)
|
||||
wrs_kernel_text_init = ABSOLUTE(.); _wrs_kernel_text_init = ABSOLUTE(.);
|
||||
*(.text.init)
|
||||
*(.text.*) *(.stub) *(.gnu.warning) *(.gnu.linkonce.t*)
|
||||
KEEP(*(.init)) KEEP(*(.fini))
|
||||
*(.glue_7t) *(.glue_7) *(.rdata) /* for ARM */
|
||||
*(.mips16.fn.*) *(.mips16.call.*) *(.reginfo) /* for MIPS */
|
||||
*(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) *(.rodata1)
|
||||
. = ALIGN(16);
|
||||
. = ALIGN (8);
|
||||
*(.eh_frame_hdr)
|
||||
. = ALIGN (8);
|
||||
__EH_FRAME_BEGIN__ = .;
|
||||
KEEP (*(.eh_frame))
|
||||
LONG (0)
|
||||
. = ALIGN (8);
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
}
|
||||
.wrs_build_vars : {
|
||||
*(.wrs_build_vars)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.sdata2 : {
|
||||
_SDA2_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata2) *(.sbss2) /* for PPC */
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
wrs_kernel_text_end = ABSOLUTE(.); _wrs_kernel_text_end = ABSOLUTE(.);
|
||||
etext = .; _etext = .;
|
||||
|
||||
.data : AT(etext)
|
||||
{
|
||||
wrs_kernel_copy_text_start = .;
|
||||
*(.copy.text)
|
||||
wrs_kernel_copy_text_end = .;
|
||||
*(.inflate.text)
|
||||
wrs_kernel_data_start = .; _wrs_kernel_data_start = .;
|
||||
_VX_START_DATA = .;
|
||||
*(.data)
|
||||
wrs_kernel_data_fast = .; _wrs_kernel_data_fast = .;
|
||||
*(.data.fast)
|
||||
wrs_kernel_data_init = .; _wrs_kernel_data_init = .;
|
||||
*(.data.init)
|
||||
*(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) *(.data1)
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
/* got*, dynamic, sdata*, lit[48], and sbss should follow _gp */
|
||||
*(.got.plt) *(.got) *(.dynamic)
|
||||
*(.got2)
|
||||
*(.lit8) *(.lit4)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
wrs_kernel_tls_data_start = .; _wrs_kernel_tls_data_start = .;
|
||||
.tls_data : {
|
||||
*(.tls_data)
|
||||
}
|
||||
wrs_kernel_tls_data_size = . - wrs_kernel_tls_data_start; _wrs_kernel_tls_data_size = . - _wrs_kernel_tls_data_start;
|
||||
wrs_kernel_tls_data_align = 16; _wrs_kernel_tls_data_align = 16;
|
||||
. = ALIGN(8);
|
||||
wrs_kernel_tls_vars_start = .; _wrs_kernel_tls_vars_start = .;
|
||||
.tls_vars : {
|
||||
*(.tls_vars)
|
||||
}
|
||||
wrs_kernel_tls_vars_size = SIZEOF(.tls_vars); _wrs_kernel_tls_vars_size = SIZEOF(.tls_vars);
|
||||
. = ALIGN(16);
|
||||
_gp = ALIGN(16) + 0x7ff0; /* set gp for MIPS startup code */
|
||||
.sdata :
|
||||
{
|
||||
_SDA_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
edata = .; _edata = .;
|
||||
wrs_kernel_data_end = .; _wrs_kernel_data_end = .;
|
||||
.sbss :
|
||||
{
|
||||
wrs_kernel_bss_start = .; _wrs_kernel_bss_start = .;
|
||||
*(.sbss) *(.sbss.*) *(.scommon)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
end = .; _end = .;
|
||||
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,215 @@
|
||||
/* link.DOTBOOTRAM - gnu linker command file for VxWorks: DOTBOOT RAM */
|
||||
|
||||
/* Copyright 2001-2014 Wind River Systems, Inc. */
|
||||
|
||||
/* This file was automatically generated using tool/common/ldscripts. */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
02k,16sep14,mcm Fix for NOTYPE symbols (TCGNU-76)
|
||||
02j,22apr13,g_x Adding *(.gnu.linkonce.s.*) for gnu. (WIND00414091)
|
||||
02i,02apr13,g_x Add *(text.romentry) in the text segment for MIPS
|
||||
(WIND00408686)
|
||||
02h,12mar13,gvm Fix for WIND00376986. Close alignment gap
|
||||
between _wrs_kernel_tls_vars_start and .tls_vars
|
||||
02g,05jan12,my_ Place .copy.text and inflate.text into the .data
|
||||
section for ARMARCH4
|
||||
02f,06may10,slk updates for large memory model support
|
||||
02e,12jan11,pgh Place .copy.text and inflate.text into the .data section
|
||||
02d,09jul10,mcm Adding .wrs_build_vars for GNU as well.
|
||||
02c,10mar10,gvm updates for icc
|
||||
02b,16feb10,mcm Update to allow the 'AT' directive introduced for .boot and
|
||||
.reset to be present for gnu only.
|
||||
02a,15feb10,mcm Updates for GCC 4.3.3
|
||||
01z,24jul09,pee adding wrs_build_vars section.
|
||||
01y,13nov08,mcm Fix for WIND00143294 - gnu.linkonce.b sections not handled
|
||||
correctly. Also added .bss.* and .sbss.*
|
||||
01x,06may08,mcm Changes for GNU Dwarf EH
|
||||
01w,16oct07,sn WIND00107939:fixed LMAs of .sdata etc. for Diab
|
||||
01v,11jul07,pes Update and rename generation of .kseg0data segment. (Renamed
|
||||
to .kseg0bss.) Add .rodata.cst16 segment.
|
||||
01u,07jul07,mcm Fixing position of .tls* sections and adding support for tls
|
||||
for GCC.
|
||||
01t,08jun07,r_s add support for Small Data Area segments.
|
||||
01s,09nov06,gvm Support for .tls_data, .tls_vars, and associated absolute
|
||||
symbols in the Diab linker script
|
||||
01r,25aug05,dlk Support .text.init, .text.fast, .data.init, .data.fast.
|
||||
01r,29jul05,slk SPR 104264: fix MIPS romResident images
|
||||
01q,06may05,rlg changes for MIPS specific devices
|
||||
01p,03jul04,f_b Improved support for data alignment
|
||||
01o,12dec03,sn added more .rodata.str1.* handlers
|
||||
01n,04dec03,sn Diab: .rodata.* is not handled correctly by Diab linker; instead
|
||||
use specific names
|
||||
01m,28oct03,sn Diab: collapse .rodata.cst* sections into .rodata
|
||||
01l,29may02,tpw Diab: pad out sections, needed for MIPS byteswap. SPR 78076
|
||||
01k,24apr02,sn GNU: SPR 75835 - added support for relocatable script link.OUT
|
||||
01j,19apr02,tpw Diab: provide _etext for ColdFire. SPR 75122
|
||||
01i,06feb02,sn Both: place .got2 to handle tramp.o (_x_gnu_tramp.o).
|
||||
01h,25jan02,tpw GNU: give debug sections explicit 0 addresses.
|
||||
01g,14jan02,tpw Diab: place .eh_frame data, in case of insistent GNU objects.
|
||||
01f,14dec01,tpw Diab: provide both underscore options of wrs_kernel* here too.
|
||||
01e,05dec01,tpw Both: Add .boot and .reset section support, for PPC 4xx series
|
||||
and Book E.
|
||||
01d,05dec01,tpw Diab: Add .frame_info section to text region.
|
||||
01c,03dec01,jab Diab: replaced LOAD() with AT()
|
||||
01b,14nov01,tpw ALL: Correct some more bootrom/kernel issues.
|
||||
01b,06nov01,tpw GNU: Add /DISCARD/ directive to discard uninteresting sections
|
||||
01a,01nov01,tpw gnu script written
|
||||
01a,29oct01,jab diab script written
|
||||
*/
|
||||
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
.text :
|
||||
{
|
||||
|
||||
wrs_kernel_text_start = ABSOLUTE(.); _wrs_kernel_text_start = ABSOLUTE(.);
|
||||
_VX_START_TEXT = .;
|
||||
*(.text)
|
||||
wrs_kernel_text_fast = ABSOLUTE(.); _wrs_kernel_text_fast = ABSOLUTE(.);
|
||||
*(.text.fast)
|
||||
wrs_kernel_text_init = ABSOLUTE(.); _wrs_kernel_text_init = ABSOLUTE(.);
|
||||
*(.text.init)
|
||||
*(.text.*) *(.stub) *(.gnu.warning) *(.gnu.linkonce.t*)
|
||||
KEEP(*(.init)) KEEP(*(.fini))
|
||||
*(.glue_7t) *(.glue_7) *(.rdata) /* for ARM */
|
||||
*(.mips16.fn.*) *(.mips16.call.*) *(.reginfo) /* for MIPS */
|
||||
*(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) *(.rodata1)
|
||||
. = ALIGN(16);
|
||||
. = ALIGN (8);
|
||||
*(.eh_frame_hdr)
|
||||
. = ALIGN (8);
|
||||
__EH_FRAME_BEGIN__ = .;
|
||||
KEEP (*(.eh_frame))
|
||||
LONG (0)
|
||||
. = ALIGN (8);
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
}
|
||||
.wrs_build_vars : {
|
||||
*(.wrs_build_vars)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.sdata2 : {
|
||||
_SDA2_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata2) *(.sbss2) /* for PPC */
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
wrs_kernel_text_end = ABSOLUTE(.); _wrs_kernel_text_end = ABSOLUTE(.);
|
||||
etext = .; _etext = .;
|
||||
. = ALIGN(_VX_DATA_ALIGN);
|
||||
.data :
|
||||
{
|
||||
|
||||
wrs_kernel_data_start = .; _wrs_kernel_data_start = .;
|
||||
_VX_START_DATA = .;
|
||||
*(.data)
|
||||
wrs_kernel_data_fast = .; _wrs_kernel_data_fast = .;
|
||||
*(.data.fast)
|
||||
wrs_kernel_data_init = .; _wrs_kernel_data_init = .;
|
||||
*(.data.init)
|
||||
*(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) *(.data1)
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
/* got*, dynamic, sdata*, lit[48], and sbss should follow _gp */
|
||||
*(.got.plt) *(.got) *(.dynamic)
|
||||
*(.got2)
|
||||
*(.lit8) *(.lit4)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
wrs_kernel_tls_data_start = .; _wrs_kernel_tls_data_start = .;
|
||||
.tls_data : {
|
||||
*(.tls_data)
|
||||
}
|
||||
wrs_kernel_tls_data_size = . - wrs_kernel_tls_data_start; _wrs_kernel_tls_data_size = . - _wrs_kernel_tls_data_start;
|
||||
wrs_kernel_tls_data_align = 16; _wrs_kernel_tls_data_align = 16;
|
||||
. = ALIGN(8);
|
||||
wrs_kernel_tls_vars_start = .; _wrs_kernel_tls_vars_start = .;
|
||||
.tls_vars : {
|
||||
*(.tls_vars)
|
||||
}
|
||||
wrs_kernel_tls_vars_size = SIZEOF(.tls_vars); _wrs_kernel_tls_vars_size = SIZEOF(.tls_vars);
|
||||
. = ALIGN(16);
|
||||
_gp = ALIGN(16) + 0x7ff0; /* set gp for MIPS startup code */
|
||||
.sdata :
|
||||
{
|
||||
_SDA_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
edata = .; _edata = .;
|
||||
wrs_kernel_data_end = .; _wrs_kernel_data_end = .;
|
||||
.sbss :
|
||||
{
|
||||
wrs_kernel_bss_start = .; _wrs_kernel_bss_start = .;
|
||||
*(.sbss) *(.sbss.*) *(.scommon)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
end = .; _end = .;
|
||||
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
||||
|
||||
.boot (wrs_kernel_text_start + wrs_kernel_rom_size - 0x800) : AT(wrs_kernel_text_start + wrs_kernel_rom_size - 0x800)
|
||||
{
|
||||
*(.boot)
|
||||
}
|
||||
.reset (wrs_kernel_text_start + wrs_kernel_rom_size - 4) : AT(wrs_kernel_text_start + wrs_kernel_rom_size - 4)
|
||||
{
|
||||
*(.reset)
|
||||
}
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,215 @@
|
||||
/* link.DOTBOOTROM - gnu linker command file for VxWorks: DOTBOOT ROM */
|
||||
|
||||
/* Copyright 2001-2014 Wind River Systems, Inc. */
|
||||
|
||||
/* This file was automatically generated using tool/common/ldscripts. */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
02k,16sep14,mcm Fix for NOTYPE symbols (TCGNU-76)
|
||||
02j,22apr13,g_x Adding *(.gnu.linkonce.s.*) for gnu. (WIND00414091)
|
||||
02i,02apr13,g_x Add *(text.romentry) in the text segment for MIPS
|
||||
(WIND00408686)
|
||||
02h,12mar13,gvm Fix for WIND00376986. Close alignment gap
|
||||
between _wrs_kernel_tls_vars_start and .tls_vars
|
||||
02g,05jan12,my_ Place .copy.text and inflate.text into the .data
|
||||
section for ARMARCH4
|
||||
02f,06may10,slk updates for large memory model support
|
||||
02e,12jan11,pgh Place .copy.text and inflate.text into the .data section
|
||||
02d,09jul10,mcm Adding .wrs_build_vars for GNU as well.
|
||||
02c,10mar10,gvm updates for icc
|
||||
02b,16feb10,mcm Update to allow the 'AT' directive introduced for .boot and
|
||||
.reset to be present for gnu only.
|
||||
02a,15feb10,mcm Updates for GCC 4.3.3
|
||||
01z,24jul09,pee adding wrs_build_vars section.
|
||||
01y,13nov08,mcm Fix for WIND00143294 - gnu.linkonce.b sections not handled
|
||||
correctly. Also added .bss.* and .sbss.*
|
||||
01x,06may08,mcm Changes for GNU Dwarf EH
|
||||
01w,16oct07,sn WIND00107939:fixed LMAs of .sdata etc. for Diab
|
||||
01v,11jul07,pes Update and rename generation of .kseg0data segment. (Renamed
|
||||
to .kseg0bss.) Add .rodata.cst16 segment.
|
||||
01u,07jul07,mcm Fixing position of .tls* sections and adding support for tls
|
||||
for GCC.
|
||||
01t,08jun07,r_s add support for Small Data Area segments.
|
||||
01s,09nov06,gvm Support for .tls_data, .tls_vars, and associated absolute
|
||||
symbols in the Diab linker script
|
||||
01r,25aug05,dlk Support .text.init, .text.fast, .data.init, .data.fast.
|
||||
01r,29jul05,slk SPR 104264: fix MIPS romResident images
|
||||
01q,06may05,rlg changes for MIPS specific devices
|
||||
01p,03jul04,f_b Improved support for data alignment
|
||||
01o,12dec03,sn added more .rodata.str1.* handlers
|
||||
01n,04dec03,sn Diab: .rodata.* is not handled correctly by Diab linker; instead
|
||||
use specific names
|
||||
01m,28oct03,sn Diab: collapse .rodata.cst* sections into .rodata
|
||||
01l,29may02,tpw Diab: pad out sections, needed for MIPS byteswap. SPR 78076
|
||||
01k,24apr02,sn GNU: SPR 75835 - added support for relocatable script link.OUT
|
||||
01j,19apr02,tpw Diab: provide _etext for ColdFire. SPR 75122
|
||||
01i,06feb02,sn Both: place .got2 to handle tramp.o (_x_gnu_tramp.o).
|
||||
01h,25jan02,tpw GNU: give debug sections explicit 0 addresses.
|
||||
01g,14jan02,tpw Diab: place .eh_frame data, in case of insistent GNU objects.
|
||||
01f,14dec01,tpw Diab: provide both underscore options of wrs_kernel* here too.
|
||||
01e,05dec01,tpw Both: Add .boot and .reset section support, for PPC 4xx series
|
||||
and Book E.
|
||||
01d,05dec01,tpw Diab: Add .frame_info section to text region.
|
||||
01c,03dec01,jab Diab: replaced LOAD() with AT()
|
||||
01b,14nov01,tpw ALL: Correct some more bootrom/kernel issues.
|
||||
01b,06nov01,tpw GNU: Add /DISCARD/ directive to discard uninteresting sections
|
||||
01a,01nov01,tpw gnu script written
|
||||
01a,29oct01,jab diab script written
|
||||
*/
|
||||
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
.text :
|
||||
{
|
||||
|
||||
wrs_kernel_text_start = ABSOLUTE(.); _wrs_kernel_text_start = ABSOLUTE(.);
|
||||
_VX_START_TEXT = .;
|
||||
*(.text)
|
||||
wrs_kernel_text_fast = ABSOLUTE(.); _wrs_kernel_text_fast = ABSOLUTE(.);
|
||||
*(.text.fast)
|
||||
wrs_kernel_text_init = ABSOLUTE(.); _wrs_kernel_text_init = ABSOLUTE(.);
|
||||
*(.text.init)
|
||||
*(.text.*) *(.stub) *(.gnu.warning) *(.gnu.linkonce.t*)
|
||||
KEEP(*(.init)) KEEP(*(.fini))
|
||||
*(.glue_7t) *(.glue_7) *(.rdata) /* for ARM */
|
||||
*(.mips16.fn.*) *(.mips16.call.*) *(.reginfo) /* for MIPS */
|
||||
*(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) *(.rodata1)
|
||||
. = ALIGN(16);
|
||||
. = ALIGN (8);
|
||||
*(.eh_frame_hdr)
|
||||
. = ALIGN (8);
|
||||
__EH_FRAME_BEGIN__ = .;
|
||||
KEEP (*(.eh_frame))
|
||||
LONG (0)
|
||||
. = ALIGN (8);
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
}
|
||||
.wrs_build_vars : {
|
||||
*(.wrs_build_vars)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.sdata2 : {
|
||||
_SDA2_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata2) *(.sbss2) /* for PPC */
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
wrs_kernel_text_end = ABSOLUTE(.); _wrs_kernel_text_end = ABSOLUTE(.);
|
||||
etext = .; _etext = .;
|
||||
|
||||
.data : AT(etext)
|
||||
{
|
||||
|
||||
wrs_kernel_data_start = .; _wrs_kernel_data_start = .;
|
||||
_VX_START_DATA = .;
|
||||
*(.data)
|
||||
wrs_kernel_data_fast = .; _wrs_kernel_data_fast = .;
|
||||
*(.data.fast)
|
||||
wrs_kernel_data_init = .; _wrs_kernel_data_init = .;
|
||||
*(.data.init)
|
||||
*(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) *(.data1)
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
/* got*, dynamic, sdata*, lit[48], and sbss should follow _gp */
|
||||
*(.got.plt) *(.got) *(.dynamic)
|
||||
*(.got2)
|
||||
*(.lit8) *(.lit4)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
wrs_kernel_tls_data_start = .; _wrs_kernel_tls_data_start = .;
|
||||
.tls_data : {
|
||||
*(.tls_data)
|
||||
}
|
||||
wrs_kernel_tls_data_size = . - wrs_kernel_tls_data_start; _wrs_kernel_tls_data_size = . - _wrs_kernel_tls_data_start;
|
||||
wrs_kernel_tls_data_align = 16; _wrs_kernel_tls_data_align = 16;
|
||||
. = ALIGN(8);
|
||||
wrs_kernel_tls_vars_start = .; _wrs_kernel_tls_vars_start = .;
|
||||
.tls_vars : {
|
||||
*(.tls_vars)
|
||||
}
|
||||
wrs_kernel_tls_vars_size = SIZEOF(.tls_vars); _wrs_kernel_tls_vars_size = SIZEOF(.tls_vars);
|
||||
. = ALIGN(16);
|
||||
_gp = ALIGN(16) + 0x7ff0; /* set gp for MIPS startup code */
|
||||
.sdata :
|
||||
{
|
||||
_SDA_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
edata = .; _edata = .;
|
||||
wrs_kernel_data_end = .; _wrs_kernel_data_end = .;
|
||||
.sbss :
|
||||
{
|
||||
wrs_kernel_bss_start = .; _wrs_kernel_bss_start = .;
|
||||
*(.sbss) *(.sbss.*) *(.scommon)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
end = .; _end = .;
|
||||
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
||||
|
||||
.boot (wrs_kernel_text_start + wrs_kernel_rom_size - 0x800) : AT(wrs_kernel_text_start + wrs_kernel_rom_size - 0x800)
|
||||
{
|
||||
*(.boot)
|
||||
}
|
||||
.reset (wrs_kernel_text_start + wrs_kernel_rom_size - 4) : AT(wrs_kernel_text_start + wrs_kernel_rom_size - 4)
|
||||
{
|
||||
*(.reset)
|
||||
}
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,258 @@
|
||||
/* link.MIPSRAM - gnu linker command file for VxWorks: MIPS RAM */
|
||||
|
||||
/* Copyright 2001-2014 Wind River Systems, Inc. */
|
||||
|
||||
/* This file was automatically generated using tool/common/ldscripts. */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
02k,16sep14,mcm Fix for NOTYPE symbols (TCGNU-76)
|
||||
02j,22apr13,g_x Adding *(.gnu.linkonce.s.*) for gnu. (WIND00414091)
|
||||
02i,02apr13,g_x Add *(text.romentry) in the text segment for MIPS
|
||||
(WIND00408686)
|
||||
02h,12mar13,gvm Fix for WIND00376986. Close alignment gap
|
||||
between _wrs_kernel_tls_vars_start and .tls_vars
|
||||
02g,05jan12,my_ Place .copy.text and inflate.text into the .data
|
||||
section for ARMARCH4
|
||||
02f,06may10,slk updates for large memory model support
|
||||
02e,12jan11,pgh Place .copy.text and inflate.text into the .data section
|
||||
02d,09jul10,mcm Adding .wrs_build_vars for GNU as well.
|
||||
02c,10mar10,gvm updates for icc
|
||||
02b,16feb10,mcm Update to allow the 'AT' directive introduced for .boot and
|
||||
.reset to be present for gnu only.
|
||||
02a,15feb10,mcm Updates for GCC 4.3.3
|
||||
01z,24jul09,pee adding wrs_build_vars section.
|
||||
01y,13nov08,mcm Fix for WIND00143294 - gnu.linkonce.b sections not handled
|
||||
correctly. Also added .bss.* and .sbss.*
|
||||
01x,06may08,mcm Changes for GNU Dwarf EH
|
||||
01w,16oct07,sn WIND00107939:fixed LMAs of .sdata etc. for Diab
|
||||
01v,11jul07,pes Update and rename generation of .kseg0data segment. (Renamed
|
||||
to .kseg0bss.) Add .rodata.cst16 segment.
|
||||
01u,07jul07,mcm Fixing position of .tls* sections and adding support for tls
|
||||
for GCC.
|
||||
01t,08jun07,r_s add support for Small Data Area segments.
|
||||
01s,09nov06,gvm Support for .tls_data, .tls_vars, and associated absolute
|
||||
symbols in the Diab linker script
|
||||
01r,25aug05,dlk Support .text.init, .text.fast, .data.init, .data.fast.
|
||||
01r,29jul05,slk SPR 104264: fix MIPS romResident images
|
||||
01q,06may05,rlg changes for MIPS specific devices
|
||||
01p,03jul04,f_b Improved support for data alignment
|
||||
01o,12dec03,sn added more .rodata.str1.* handlers
|
||||
01n,04dec03,sn Diab: .rodata.* is not handled correctly by Diab linker; instead
|
||||
use specific names
|
||||
01m,28oct03,sn Diab: collapse .rodata.cst* sections into .rodata
|
||||
01l,29may02,tpw Diab: pad out sections, needed for MIPS byteswap. SPR 78076
|
||||
01k,24apr02,sn GNU: SPR 75835 - added support for relocatable script link.OUT
|
||||
01j,19apr02,tpw Diab: provide _etext for ColdFire. SPR 75122
|
||||
01i,06feb02,sn Both: place .got2 to handle tramp.o (_x_gnu_tramp.o).
|
||||
01h,25jan02,tpw GNU: give debug sections explicit 0 addresses.
|
||||
01g,14jan02,tpw Diab: place .eh_frame data, in case of insistent GNU objects.
|
||||
01f,14dec01,tpw Diab: provide both underscore options of wrs_kernel* here too.
|
||||
01e,05dec01,tpw Both: Add .boot and .reset section support, for PPC 4xx series
|
||||
and Book E.
|
||||
01d,05dec01,tpw Diab: Add .frame_info section to text region.
|
||||
01c,03dec01,jab Diab: replaced LOAD() with AT()
|
||||
01b,14nov01,tpw ALL: Correct some more bootrom/kernel issues.
|
||||
01b,06nov01,tpw GNU: Add /DISCARD/ directive to discard uninteresting sections
|
||||
01a,01nov01,tpw gnu script written
|
||||
01a,29oct01,jab diab script written
|
||||
*/
|
||||
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
|
||||
wrs_kernel_text_wired_size = 0;
|
||||
.text :
|
||||
{
|
||||
wrs_kernel_text_wired_start = .;
|
||||
*(.text.romentry)
|
||||
*(.text.wired)
|
||||
wrs_kernel_text_wired_end = .;
|
||||
wrs_kernel_text_wired_size = SIZEOF(.text);
|
||||
}
|
||||
.text :
|
||||
{
|
||||
_VX_START_TEXT = wrs_kernel_text_wired_size == 0 ? . : wrs_kernel_text_wired_start;
|
||||
wrs_kernel_text_start = _VX_START_TEXT;
|
||||
_wrs_kernel_text_start = _VX_START_TEXT;
|
||||
*(.text)
|
||||
wrs_kernel_text_fast = ABSOLUTE(.); _wrs_kernel_text_fast = ABSOLUTE(.);
|
||||
*(.text.fast)
|
||||
wrs_kernel_text_init = ABSOLUTE(.); _wrs_kernel_text_init = ABSOLUTE(.);
|
||||
*(.text.init)
|
||||
*(.stub) *(.gnu.warning) *(.gnu.linkonce.t*)
|
||||
KEEP(*(.init)) KEEP(*(.fini))
|
||||
*(.glue_7t) *(.glue_7) *(.rdata) /* for ARM */
|
||||
*(.mips16.fn.*) *(.mips16.call.*) *(.reginfo) /* for MIPS */
|
||||
*(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) *(.rodata1)
|
||||
. = ALIGN(16);
|
||||
. = ALIGN (8);
|
||||
*(.eh_frame_hdr)
|
||||
. = ALIGN (8);
|
||||
__EH_FRAME_BEGIN__ = .;
|
||||
KEEP (*(.eh_frame))
|
||||
LONG (0)
|
||||
. = ALIGN (8);
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
}
|
||||
.wrs_build_vars : {
|
||||
*(.wrs_build_vars)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.sdata2 : {
|
||||
_SDA2_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata2) *(.sbss2) /* for PPC */
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
wrs_kernel_text_end = ABSOLUTE(.); _wrs_kernel_text_end = ABSOLUTE(.);
|
||||
etext = .; _etext = .;
|
||||
. = ALIGN(_VX_DATA_ALIGN);
|
||||
.data :
|
||||
{
|
||||
|
||||
wrs_kernel_data_start = .; _wrs_kernel_data_start = .;
|
||||
_VX_START_DATA = .;
|
||||
*(.data)
|
||||
wrs_kernel_data_fast = .; _wrs_kernel_data_fast = .;
|
||||
*(.data.fast)
|
||||
wrs_kernel_data_init = .; _wrs_kernel_data_init = .;
|
||||
*(.data.init)
|
||||
*(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) *(.data1)
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
/* got*, dynamic, sdata*, lit[48], and sbss should follow _gp */
|
||||
*(.got.plt) *(.got) *(.dynamic)
|
||||
*(.got2)
|
||||
*(.lit8) *(.lit4)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
wrs_kernel_tls_data_start = .; _wrs_kernel_tls_data_start = .;
|
||||
.tls_data : {
|
||||
*(.tls_data)
|
||||
}
|
||||
wrs_kernel_tls_data_size = . - wrs_kernel_tls_data_start; _wrs_kernel_tls_data_size = . - _wrs_kernel_tls_data_start;
|
||||
wrs_kernel_tls_data_align = 16; _wrs_kernel_tls_data_align = 16;
|
||||
. = ALIGN(8);
|
||||
wrs_kernel_tls_vars_start = .; _wrs_kernel_tls_vars_start = .;
|
||||
.tls_vars : {
|
||||
*(.tls_vars)
|
||||
}
|
||||
wrs_kernel_tls_vars_size = SIZEOF(.tls_vars); _wrs_kernel_tls_vars_size = SIZEOF(.tls_vars);
|
||||
. = ALIGN(16);
|
||||
_gp = ALIGN(16) + 0x7ff0; /* set gp for MIPS startup code */
|
||||
.sdata :
|
||||
{
|
||||
_SDA_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
edata = .; _edata = .;
|
||||
wrs_kernel_data_end = .; _wrs_kernel_data_end = .;
|
||||
.sbss :
|
||||
{
|
||||
wrs_kernel_bss_start = .; _wrs_kernel_bss_start = .;
|
||||
*(.sbss) *(.sbss.*) *(.scommon)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(256);
|
||||
|
||||
/* add sizeof .kseg0bss to end and _end if it follows .bss section */
|
||||
endAdd = LMM_ENABLED == 0 ? SIZEOF(.kseg0bss) : 0x0;
|
||||
end = . + endAdd; _end = . + endAdd;
|
||||
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
||||
|
||||
/* if LMM_ENABLED == 0 then this GROUP is legacy mode.
|
||||
* legacy mode requires the .kseg0bss section be located at
|
||||
* (wrs_kernel_bss_end & 0xbfffffff). the other sections in this
|
||||
* group are not defined for legacy mode so they will not be included
|
||||
* in the image
|
||||
*
|
||||
* if LMM_ENABLED != 1 then the GROUP should be
|
||||
* located at the address specified by _VX_START_EXCPT_BASE. this
|
||||
* is a large memory model configuration
|
||||
*/
|
||||
|
||||
_VX_START_EXCPT_ADRS = LMM_ENABLED==0?wrs_kernel_bss_end & 0xbfffffff :_VX_START_EXCPT_BASE;
|
||||
|
||||
/* unmapped data and text sections */
|
||||
.vectors.text _VX_START_EXCPT_ADRS :
|
||||
{
|
||||
wrs_unmapped_text_start = .;
|
||||
*(.vectors.text)
|
||||
*(.unmapped.text)
|
||||
wrs_unmapped_text_end = .;
|
||||
. = ALIGN(32);
|
||||
}
|
||||
|
||||
.unmapped.data :
|
||||
{
|
||||
wrs_unmapped_data_start = .;
|
||||
*(.unmapped.data)
|
||||
wrs_unmapped_data_end = .;
|
||||
. = ALIGN(32);
|
||||
}
|
||||
|
||||
.kseg0bss :
|
||||
{
|
||||
wrs_unmapped_bss_start = .;
|
||||
*(.kseg0bss)
|
||||
. = ALIGN(32);
|
||||
wrs_unmapped_bss_end = .;
|
||||
}
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,243 @@
|
||||
/* link.MIPSROM - gnu linker command file for VxWorks: MIPS ROM */
|
||||
|
||||
/* Copyright 2001-2014 Wind River Systems, Inc. */
|
||||
|
||||
/* This file was automatically generated using tool/common/ldscripts. */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
02k,16sep14,mcm Fix for NOTYPE symbols (TCGNU-76)
|
||||
02j,22apr13,g_x Adding *(.gnu.linkonce.s.*) for gnu. (WIND00414091)
|
||||
02i,02apr13,g_x Add *(text.romentry) in the text segment for MIPS
|
||||
(WIND00408686)
|
||||
02h,12mar13,gvm Fix for WIND00376986. Close alignment gap
|
||||
between _wrs_kernel_tls_vars_start and .tls_vars
|
||||
02g,05jan12,my_ Place .copy.text and inflate.text into the .data
|
||||
section for ARMARCH4
|
||||
02f,06may10,slk updates for large memory model support
|
||||
02e,12jan11,pgh Place .copy.text and inflate.text into the .data section
|
||||
02d,09jul10,mcm Adding .wrs_build_vars for GNU as well.
|
||||
02c,10mar10,gvm updates for icc
|
||||
02b,16feb10,mcm Update to allow the 'AT' directive introduced for .boot and
|
||||
.reset to be present for gnu only.
|
||||
02a,15feb10,mcm Updates for GCC 4.3.3
|
||||
01z,24jul09,pee adding wrs_build_vars section.
|
||||
01y,13nov08,mcm Fix for WIND00143294 - gnu.linkonce.b sections not handled
|
||||
correctly. Also added .bss.* and .sbss.*
|
||||
01x,06may08,mcm Changes for GNU Dwarf EH
|
||||
01w,16oct07,sn WIND00107939:fixed LMAs of .sdata etc. for Diab
|
||||
01v,11jul07,pes Update and rename generation of .kseg0data segment. (Renamed
|
||||
to .kseg0bss.) Add .rodata.cst16 segment.
|
||||
01u,07jul07,mcm Fixing position of .tls* sections and adding support for tls
|
||||
for GCC.
|
||||
01t,08jun07,r_s add support for Small Data Area segments.
|
||||
01s,09nov06,gvm Support for .tls_data, .tls_vars, and associated absolute
|
||||
symbols in the Diab linker script
|
||||
01r,25aug05,dlk Support .text.init, .text.fast, .data.init, .data.fast.
|
||||
01r,29jul05,slk SPR 104264: fix MIPS romResident images
|
||||
01q,06may05,rlg changes for MIPS specific devices
|
||||
01p,03jul04,f_b Improved support for data alignment
|
||||
01o,12dec03,sn added more .rodata.str1.* handlers
|
||||
01n,04dec03,sn Diab: .rodata.* is not handled correctly by Diab linker; instead
|
||||
use specific names
|
||||
01m,28oct03,sn Diab: collapse .rodata.cst* sections into .rodata
|
||||
01l,29may02,tpw Diab: pad out sections, needed for MIPS byteswap. SPR 78076
|
||||
01k,24apr02,sn GNU: SPR 75835 - added support for relocatable script link.OUT
|
||||
01j,19apr02,tpw Diab: provide _etext for ColdFire. SPR 75122
|
||||
01i,06feb02,sn Both: place .got2 to handle tramp.o (_x_gnu_tramp.o).
|
||||
01h,25jan02,tpw GNU: give debug sections explicit 0 addresses.
|
||||
01g,14jan02,tpw Diab: place .eh_frame data, in case of insistent GNU objects.
|
||||
01f,14dec01,tpw Diab: provide both underscore options of wrs_kernel* here too.
|
||||
01e,05dec01,tpw Both: Add .boot and .reset section support, for PPC 4xx series
|
||||
and Book E.
|
||||
01d,05dec01,tpw Diab: Add .frame_info section to text region.
|
||||
01c,03dec01,jab Diab: replaced LOAD() with AT()
|
||||
01b,14nov01,tpw ALL: Correct some more bootrom/kernel issues.
|
||||
01b,06nov01,tpw GNU: Add /DISCARD/ directive to discard uninteresting sections
|
||||
01a,01nov01,tpw gnu script written
|
||||
01a,29oct01,jab diab script written
|
||||
*/
|
||||
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
LMM_ENABLED = 0;
|
||||
|
||||
.text :
|
||||
{
|
||||
wrs_kernel_text_start = ABSOLUTE(.); _wrs_kernel_text_start = ABSOLUTE(.);
|
||||
_VX_START_TEXT = .;
|
||||
*(.text.romentry)
|
||||
*(.text)
|
||||
*(.text.wired)
|
||||
|
||||
wrs_kernel_text_fast = ABSOLUTE(.); _wrs_kernel_text_fast = ABSOLUTE(.);
|
||||
*(.text.fast)
|
||||
wrs_kernel_text_init = ABSOLUTE(.); _wrs_kernel_text_init = ABSOLUTE(.);
|
||||
*(.text.init)
|
||||
*(.text.*) *(.stub) *(.gnu.warning) *(.gnu.linkonce.t*)
|
||||
KEEP(*(.init)) KEEP(*(.fini))
|
||||
*(.glue_7t) *(.glue_7) *(.rdata) /* for ARM */
|
||||
*(.mips16.fn.*) *(.mips16.call.*) *(.reginfo) /* for MIPS */
|
||||
*(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) *(.rodata1)
|
||||
. = ALIGN(16);
|
||||
. = ALIGN (8);
|
||||
*(.eh_frame_hdr)
|
||||
. = ALIGN (8);
|
||||
__EH_FRAME_BEGIN__ = .;
|
||||
KEEP (*(.eh_frame))
|
||||
LONG (0)
|
||||
. = ALIGN (8);
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
}
|
||||
.wrs_build_vars : {
|
||||
*(.wrs_build_vars)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.sdata2 : {
|
||||
_SDA2_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata2) *(.sbss2) /* for PPC */
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
wrs_kernel_text_end = ABSOLUTE(.); _wrs_kernel_text_end = ABSOLUTE(.);
|
||||
etext = .; _etext = .;
|
||||
|
||||
.data : AT(etext)
|
||||
{
|
||||
wrs_kernel_copy_text_start = .;
|
||||
*(.copy.text)
|
||||
wrs_kernel_copy_text_end = .;
|
||||
*(.inflate.text)
|
||||
wrs_kernel_data_start = .; _wrs_kernel_data_start = .;
|
||||
_VX_START_DATA = .;
|
||||
*(.data)
|
||||
wrs_kernel_data_fast = .; _wrs_kernel_data_fast = .;
|
||||
*(.data.fast)
|
||||
wrs_kernel_data_init = .; _wrs_kernel_data_init = .;
|
||||
*(.data.init)
|
||||
*(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) *(.data1)
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
/* got*, dynamic, sdata*, lit[48], and sbss should follow _gp */
|
||||
*(.got.plt) *(.got) *(.dynamic)
|
||||
*(.got2)
|
||||
*(.lit8) *(.lit4)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
wrs_kernel_tls_data_start = .; _wrs_kernel_tls_data_start = .;
|
||||
.tls_data : {
|
||||
*(.tls_data)
|
||||
}
|
||||
wrs_kernel_tls_data_size = . - wrs_kernel_tls_data_start; _wrs_kernel_tls_data_size = . - _wrs_kernel_tls_data_start;
|
||||
wrs_kernel_tls_data_align = 16; _wrs_kernel_tls_data_align = 16;
|
||||
. = ALIGN(8);
|
||||
wrs_kernel_tls_vars_start = .; _wrs_kernel_tls_vars_start = .;
|
||||
.tls_vars : {
|
||||
*(.tls_vars)
|
||||
}
|
||||
wrs_kernel_tls_vars_size = SIZEOF(.tls_vars); _wrs_kernel_tls_vars_size = SIZEOF(.tls_vars);
|
||||
. = ALIGN(16);
|
||||
_gp = ALIGN(16) + 0x7ff0; /* set gp for MIPS startup code */
|
||||
.sdata :
|
||||
{
|
||||
_SDA_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
edata = .; _edata = .;
|
||||
wrs_kernel_data_end = .; _wrs_kernel_data_end = .;
|
||||
.sbss :
|
||||
{
|
||||
wrs_kernel_bss_start = .; _wrs_kernel_bss_start = .;
|
||||
*(.sbss) *(.sbss.*) *(.scommon)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(256);
|
||||
|
||||
/* add sizeof .kseg0bss to end and _end if it follows .bss section */
|
||||
endAdd = LMM_ENABLED == 0 ? SIZEOF(.kseg0bss) : 0x0;
|
||||
end = . + endAdd; _end = . + endAdd;
|
||||
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
||||
|
||||
_VX_START_EXCPT_ADRS = wrs_kernel_bss_end & 0xbfffffff;
|
||||
|
||||
/* unmapped data and text sections */
|
||||
.vectors.text _VX_START_EXCPT_ADRS :
|
||||
{
|
||||
wrs_unmapped_text_start = .;
|
||||
*(.vectors.text)
|
||||
*(.unmapped.text)
|
||||
wrs_unmapped_text_end = .;
|
||||
. = ALIGN(32);
|
||||
}
|
||||
|
||||
.unmapped.data :
|
||||
{
|
||||
wrs_unmapped_data_start = .;
|
||||
*(.unmapped.data)
|
||||
wrs_unmapped_data_end = .;
|
||||
. = ALIGN(32);
|
||||
}
|
||||
|
||||
.kseg0bss :
|
||||
{
|
||||
wrs_unmapped_bss_start = .;
|
||||
*(.kseg0bss)
|
||||
. = ALIGN(32);
|
||||
wrs_unmapped_bss_end = .;
|
||||
}
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
/* link.OUT - gnu linker command file for VxWorks: OUT */
|
||||
|
||||
/* Copyright 2001-2014 Wind River Systems, Inc. */
|
||||
|
||||
/* This file was automatically generated using tool/common/ldscripts. */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
02k,16sep14,mcm Fix for NOTYPE symbols (TCGNU-76)
|
||||
02j,22apr13,g_x Adding *(.gnu.linkonce.s.*) for gnu. (WIND00414091)
|
||||
02i,02apr13,g_x Add *(text.romentry) in the text segment for MIPS
|
||||
(WIND00408686)
|
||||
02h,12mar13,gvm Fix for WIND00376986. Close alignment gap
|
||||
between _wrs_kernel_tls_vars_start and .tls_vars
|
||||
02g,05jan12,my_ Place .copy.text and inflate.text into the .data
|
||||
section for ARMARCH4
|
||||
02f,06may10,slk updates for large memory model support
|
||||
02e,12jan11,pgh Place .copy.text and inflate.text into the .data section
|
||||
02d,09jul10,mcm Adding .wrs_build_vars for GNU as well.
|
||||
02c,10mar10,gvm updates for icc
|
||||
02b,16feb10,mcm Update to allow the 'AT' directive introduced for .boot and
|
||||
.reset to be present for gnu only.
|
||||
02a,15feb10,mcm Updates for GCC 4.3.3
|
||||
01z,24jul09,pee adding wrs_build_vars section.
|
||||
01y,13nov08,mcm Fix for WIND00143294 - gnu.linkonce.b sections not handled
|
||||
correctly. Also added .bss.* and .sbss.*
|
||||
01x,06may08,mcm Changes for GNU Dwarf EH
|
||||
01w,16oct07,sn WIND00107939:fixed LMAs of .sdata etc. for Diab
|
||||
01v,11jul07,pes Update and rename generation of .kseg0data segment. (Renamed
|
||||
to .kseg0bss.) Add .rodata.cst16 segment.
|
||||
01u,07jul07,mcm Fixing position of .tls* sections and adding support for tls
|
||||
for GCC.
|
||||
01t,08jun07,r_s add support for Small Data Area segments.
|
||||
01s,09nov06,gvm Support for .tls_data, .tls_vars, and associated absolute
|
||||
symbols in the Diab linker script
|
||||
01r,25aug05,dlk Support .text.init, .text.fast, .data.init, .data.fast.
|
||||
01r,29jul05,slk SPR 104264: fix MIPS romResident images
|
||||
01q,06may05,rlg changes for MIPS specific devices
|
||||
01p,03jul04,f_b Improved support for data alignment
|
||||
01o,12dec03,sn added more .rodata.str1.* handlers
|
||||
01n,04dec03,sn Diab: .rodata.* is not handled correctly by Diab linker; instead
|
||||
use specific names
|
||||
01m,28oct03,sn Diab: collapse .rodata.cst* sections into .rodata
|
||||
01l,29may02,tpw Diab: pad out sections, needed for MIPS byteswap. SPR 78076
|
||||
01k,24apr02,sn GNU: SPR 75835 - added support for relocatable script link.OUT
|
||||
01j,19apr02,tpw Diab: provide _etext for ColdFire. SPR 75122
|
||||
01i,06feb02,sn Both: place .got2 to handle tramp.o (_x_gnu_tramp.o).
|
||||
01h,25jan02,tpw GNU: give debug sections explicit 0 addresses.
|
||||
01g,14jan02,tpw Diab: place .eh_frame data, in case of insistent GNU objects.
|
||||
01f,14dec01,tpw Diab: provide both underscore options of wrs_kernel* here too.
|
||||
01e,05dec01,tpw Both: Add .boot and .reset section support, for PPC 4xx series
|
||||
and Book E.
|
||||
01d,05dec01,tpw Diab: Add .frame_info section to text region.
|
||||
01c,03dec01,jab Diab: replaced LOAD() with AT()
|
||||
01b,14nov01,tpw ALL: Correct some more bootrom/kernel issues.
|
||||
01b,06nov01,tpw GNU: Add /DISCARD/ directive to discard uninteresting sections
|
||||
01a,01nov01,tpw gnu script written
|
||||
01a,29oct01,jab diab script written
|
||||
*/
|
||||
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
.text 0 :
|
||||
{
|
||||
|
||||
_VX_START_TEXT = .;
|
||||
*(.text)
|
||||
|
||||
*(.text.fast)
|
||||
|
||||
*(.text.init)
|
||||
*(.text.*) *(.stub) *(.gnu.warning) *(.gnu.linkonce.t*)
|
||||
KEEP(*(.init)) KEEP(*(.fini))
|
||||
*(.glue_7t) *(.glue_7) *(.rdata) /* for ARM */
|
||||
*(.mips16.fn.*) *(.mips16.call.*) *(.reginfo) /* for MIPS */
|
||||
*(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) *(.rodata1)
|
||||
|
||||
. = ALIGN (8);
|
||||
*(.eh_frame_hdr)
|
||||
. = ALIGN (8);
|
||||
__EH_FRAME_BEGIN__ = .;
|
||||
KEEP (*(.eh_frame))
|
||||
LONG (0)
|
||||
. = ALIGN (8);
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
}
|
||||
.wrs_build_vars 0 : {
|
||||
*(.wrs_build_vars)
|
||||
|
||||
}
|
||||
.sdata2 0 : {
|
||||
_SDA2_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata2) *(.sbss2) /* for PPC */
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.data 0 :
|
||||
{
|
||||
|
||||
|
||||
_VX_START_DATA = .;
|
||||
*(.data)
|
||||
|
||||
*(.data.fast)
|
||||
|
||||
*(.data.init)
|
||||
*(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) *(.data1)
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
/* got*, dynamic, sdata*, lit[48], and sbss should follow _gp */
|
||||
*(.got.plt) *(.got) *(.dynamic)
|
||||
*(.got2)
|
||||
*(.lit8) *(.lit4)
|
||||
|
||||
}
|
||||
|
||||
.tls_data 0 : {
|
||||
*(.tls_data)
|
||||
}
|
||||
|
||||
|
||||
. = ALIGN(8);
|
||||
|
||||
.tls_vars 0 : {
|
||||
*(.tls_vars)
|
||||
}
|
||||
|
||||
|
||||
|
||||
.sdata 0 :
|
||||
{
|
||||
_SDA_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.sbss 0 :
|
||||
{
|
||||
|
||||
*(.sbss) *(.sbss.*) *(.scommon)
|
||||
|
||||
}
|
||||
.bss 0 :
|
||||
{
|
||||
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,206 @@
|
||||
/* link.RAM - gnu linker command file for VxWorks: RAM */
|
||||
|
||||
/* Copyright 2001-2014 Wind River Systems, Inc. */
|
||||
|
||||
/* This file was automatically generated using tool/common/ldscripts. */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
02k,16sep14,mcm Fix for NOTYPE symbols (TCGNU-76)
|
||||
02j,22apr13,g_x Adding *(.gnu.linkonce.s.*) for gnu. (WIND00414091)
|
||||
02i,02apr13,g_x Add *(text.romentry) in the text segment for MIPS
|
||||
(WIND00408686)
|
||||
02h,12mar13,gvm Fix for WIND00376986. Close alignment gap
|
||||
between _wrs_kernel_tls_vars_start and .tls_vars
|
||||
02g,05jan12,my_ Place .copy.text and inflate.text into the .data
|
||||
section for ARMARCH4
|
||||
02f,06may10,slk updates for large memory model support
|
||||
02e,12jan11,pgh Place .copy.text and inflate.text into the .data section
|
||||
02d,09jul10,mcm Adding .wrs_build_vars for GNU as well.
|
||||
02c,10mar10,gvm updates for icc
|
||||
02b,16feb10,mcm Update to allow the 'AT' directive introduced for .boot and
|
||||
.reset to be present for gnu only.
|
||||
02a,15feb10,mcm Updates for GCC 4.3.3
|
||||
01z,24jul09,pee adding wrs_build_vars section.
|
||||
01y,13nov08,mcm Fix for WIND00143294 - gnu.linkonce.b sections not handled
|
||||
correctly. Also added .bss.* and .sbss.*
|
||||
01x,06may08,mcm Changes for GNU Dwarf EH
|
||||
01w,16oct07,sn WIND00107939:fixed LMAs of .sdata etc. for Diab
|
||||
01v,11jul07,pes Update and rename generation of .kseg0data segment. (Renamed
|
||||
to .kseg0bss.) Add .rodata.cst16 segment.
|
||||
01u,07jul07,mcm Fixing position of .tls* sections and adding support for tls
|
||||
for GCC.
|
||||
01t,08jun07,r_s add support for Small Data Area segments.
|
||||
01s,09nov06,gvm Support for .tls_data, .tls_vars, and associated absolute
|
||||
symbols in the Diab linker script
|
||||
01r,25aug05,dlk Support .text.init, .text.fast, .data.init, .data.fast.
|
||||
01r,29jul05,slk SPR 104264: fix MIPS romResident images
|
||||
01q,06may05,rlg changes for MIPS specific devices
|
||||
01p,03jul04,f_b Improved support for data alignment
|
||||
01o,12dec03,sn added more .rodata.str1.* handlers
|
||||
01n,04dec03,sn Diab: .rodata.* is not handled correctly by Diab linker; instead
|
||||
use specific names
|
||||
01m,28oct03,sn Diab: collapse .rodata.cst* sections into .rodata
|
||||
01l,29may02,tpw Diab: pad out sections, needed for MIPS byteswap. SPR 78076
|
||||
01k,24apr02,sn GNU: SPR 75835 - added support for relocatable script link.OUT
|
||||
01j,19apr02,tpw Diab: provide _etext for ColdFire. SPR 75122
|
||||
01i,06feb02,sn Both: place .got2 to handle tramp.o (_x_gnu_tramp.o).
|
||||
01h,25jan02,tpw GNU: give debug sections explicit 0 addresses.
|
||||
01g,14jan02,tpw Diab: place .eh_frame data, in case of insistent GNU objects.
|
||||
01f,14dec01,tpw Diab: provide both underscore options of wrs_kernel* here too.
|
||||
01e,05dec01,tpw Both: Add .boot and .reset section support, for PPC 4xx series
|
||||
and Book E.
|
||||
01d,05dec01,tpw Diab: Add .frame_info section to text region.
|
||||
01c,03dec01,jab Diab: replaced LOAD() with AT()
|
||||
01b,14nov01,tpw ALL: Correct some more bootrom/kernel issues.
|
||||
01b,06nov01,tpw GNU: Add /DISCARD/ directive to discard uninteresting sections
|
||||
01a,01nov01,tpw gnu script written
|
||||
01a,29oct01,jab diab script written
|
||||
*/
|
||||
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
.text :
|
||||
{
|
||||
|
||||
wrs_kernel_text_start = ABSOLUTE(.); _wrs_kernel_text_start = ABSOLUTE(.);
|
||||
_VX_START_TEXT = .;
|
||||
*(.text)
|
||||
wrs_kernel_text_fast = ABSOLUTE(.); _wrs_kernel_text_fast = ABSOLUTE(.);
|
||||
*(.text.fast)
|
||||
wrs_kernel_text_init = ABSOLUTE(.); _wrs_kernel_text_init = ABSOLUTE(.);
|
||||
*(.text.init)
|
||||
*(.text.*) *(.stub) *(.gnu.warning) *(.gnu.linkonce.t.*)
|
||||
KEEP(*(.init)) KEEP(*(.fini))
|
||||
*(.glue_7t) *(.glue_7) *(.rdata) /* for ARM */
|
||||
*(.mips16.fn.*) *(.mips16.call.*) *(.reginfo) /* for MIPS */
|
||||
*(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) *(.rodata1)
|
||||
. = ALIGN(16);
|
||||
. = ALIGN (8);
|
||||
*(.eh_frame_hdr)
|
||||
. = ALIGN (8);
|
||||
__EH_FRAME_BEGIN__ = .;
|
||||
KEEP (*(.eh_frame))
|
||||
LONG (0)
|
||||
. = ALIGN (8);
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
}
|
||||
.wrs_build_vars : {
|
||||
*(.wrs_build_vars)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.sdata2 : {
|
||||
_SDA2_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata2) *(.sbss2) /* for PPC */
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
wrs_kernel_text_end = ABSOLUTE(.); _wrs_kernel_text_end = ABSOLUTE(.);
|
||||
etext = .; _etext = .;
|
||||
. = ALIGN(_VX_DATA_ALIGN);
|
||||
.data :
|
||||
{
|
||||
|
||||
wrs_kernel_data_start = .; _wrs_kernel_data_start = .;
|
||||
_VX_START_DATA = .;
|
||||
*(.data)
|
||||
wrs_kernel_data_fast = .; _wrs_kernel_data_fast = .;
|
||||
*(.data.fast)
|
||||
wrs_kernel_data_init = .; _wrs_kernel_data_init = .;
|
||||
*(.data.init)
|
||||
*(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) *(.data1)
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
/* got*, dynamic, sdata*, lit[48], and sbss should follow _gp */
|
||||
*(.got.plt) *(.got) *(.dynamic)
|
||||
*(.got2)
|
||||
*(.lit8) *(.lit4)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
wrs_kernel_tls_data_start = .; _wrs_kernel_tls_data_start = .;
|
||||
.tls_data : {
|
||||
*(.tls_data) *(.gnu.linkonce.tls_data.*)
|
||||
}
|
||||
wrs_kernel_tls_data_size = . - wrs_kernel_tls_data_start; _wrs_kernel_tls_data_size = . - _wrs_kernel_tls_data_start;
|
||||
wrs_kernel_tls_data_align = 16; _wrs_kernel_tls_data_align = 16;
|
||||
. = ALIGN(8);
|
||||
wrs_kernel_tls_vars_start = .; _wrs_kernel_tls_vars_start = .;
|
||||
.tls_vars : {
|
||||
*(.tls_vars) *(.gnu.linkonce.tls_vars.*)
|
||||
}
|
||||
wrs_kernel_tls_vars_size = SIZEOF(.tls_vars); _wrs_kernel_tls_vars_size = SIZEOF(.tls_vars);
|
||||
. = ALIGN(16);
|
||||
_gp = ALIGN(16) + 0x7ff0; /* set gp for MIPS startup code */
|
||||
.sdata :
|
||||
{
|
||||
_SDA_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
edata = .; _edata = .;
|
||||
wrs_kernel_data_end = .; _wrs_kernel_data_end = .;
|
||||
.sbss :
|
||||
{
|
||||
wrs_kernel_bss_start = .; _wrs_kernel_bss_start = .;
|
||||
*(.sbss) *(.sbss.*) *(.scommon)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
end = .; _end = .;
|
||||
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,206 @@
|
||||
/* link.ROM - gnu linker command file for VxWorks: ROM */
|
||||
|
||||
/* Copyright 2001-2014 Wind River Systems, Inc. */
|
||||
|
||||
/* This file was automatically generated using tool/common/ldscripts. */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
02k,16sep14,mcm Fix for NOTYPE symbols (TCGNU-76)
|
||||
02j,22apr13,g_x Adding *(.gnu.linkonce.s.*) for gnu. (WIND00414091)
|
||||
02i,02apr13,g_x Add *(text.romentry) in the text segment for MIPS
|
||||
(WIND00408686)
|
||||
02h,12mar13,gvm Fix for WIND00376986. Close alignment gap
|
||||
between _wrs_kernel_tls_vars_start and .tls_vars
|
||||
02g,05jan12,my_ Place .copy.text and inflate.text into the .data
|
||||
section for ARMARCH4
|
||||
02f,06may10,slk updates for large memory model support
|
||||
02e,12jan11,pgh Place .copy.text and inflate.text into the .data section
|
||||
02d,09jul10,mcm Adding .wrs_build_vars for GNU as well.
|
||||
02c,10mar10,gvm updates for icc
|
||||
02b,16feb10,mcm Update to allow the 'AT' directive introduced for .boot and
|
||||
.reset to be present for gnu only.
|
||||
02a,15feb10,mcm Updates for GCC 4.3.3
|
||||
01z,24jul09,pee adding wrs_build_vars section.
|
||||
01y,13nov08,mcm Fix for WIND00143294 - gnu.linkonce.b sections not handled
|
||||
correctly. Also added .bss.* and .sbss.*
|
||||
01x,06may08,mcm Changes for GNU Dwarf EH
|
||||
01w,16oct07,sn WIND00107939:fixed LMAs of .sdata etc. for Diab
|
||||
01v,11jul07,pes Update and rename generation of .kseg0data segment. (Renamed
|
||||
to .kseg0bss.) Add .rodata.cst16 segment.
|
||||
01u,07jul07,mcm Fixing position of .tls* sections and adding support for tls
|
||||
for GCC.
|
||||
01t,08jun07,r_s add support for Small Data Area segments.
|
||||
01s,09nov06,gvm Support for .tls_data, .tls_vars, and associated absolute
|
||||
symbols in the Diab linker script
|
||||
01r,25aug05,dlk Support .text.init, .text.fast, .data.init, .data.fast.
|
||||
01r,29jul05,slk SPR 104264: fix MIPS romResident images
|
||||
01q,06may05,rlg changes for MIPS specific devices
|
||||
01p,03jul04,f_b Improved support for data alignment
|
||||
01o,12dec03,sn added more .rodata.str1.* handlers
|
||||
01n,04dec03,sn Diab: .rodata.* is not handled correctly by Diab linker; instead
|
||||
use specific names
|
||||
01m,28oct03,sn Diab: collapse .rodata.cst* sections into .rodata
|
||||
01l,29may02,tpw Diab: pad out sections, needed for MIPS byteswap. SPR 78076
|
||||
01k,24apr02,sn GNU: SPR 75835 - added support for relocatable script link.OUT
|
||||
01j,19apr02,tpw Diab: provide _etext for ColdFire. SPR 75122
|
||||
01i,06feb02,sn Both: place .got2 to handle tramp.o (_x_gnu_tramp.o).
|
||||
01h,25jan02,tpw GNU: give debug sections explicit 0 addresses.
|
||||
01g,14jan02,tpw Diab: place .eh_frame data, in case of insistent GNU objects.
|
||||
01f,14dec01,tpw Diab: provide both underscore options of wrs_kernel* here too.
|
||||
01e,05dec01,tpw Both: Add .boot and .reset section support, for PPC 4xx series
|
||||
and Book E.
|
||||
01d,05dec01,tpw Diab: Add .frame_info section to text region.
|
||||
01c,03dec01,jab Diab: replaced LOAD() with AT()
|
||||
01b,14nov01,tpw ALL: Correct some more bootrom/kernel issues.
|
||||
01b,06nov01,tpw GNU: Add /DISCARD/ directive to discard uninteresting sections
|
||||
01a,01nov01,tpw gnu script written
|
||||
01a,29oct01,jab diab script written
|
||||
*/
|
||||
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
.text :
|
||||
{
|
||||
|
||||
wrs_kernel_text_start = ABSOLUTE(.); _wrs_kernel_text_start = ABSOLUTE(.);
|
||||
_VX_START_TEXT = .;
|
||||
*(.text)
|
||||
wrs_kernel_text_fast = ABSOLUTE(.); _wrs_kernel_text_fast = ABSOLUTE(.);
|
||||
*(.text.fast)
|
||||
wrs_kernel_text_init = ABSOLUTE(.); _wrs_kernel_text_init = ABSOLUTE(.);
|
||||
*(.text.init)
|
||||
*(.text.*) *(.stub) *(.gnu.warning) *(.gnu.linkonce.t*)
|
||||
KEEP(*(.init)) KEEP(*(.fini))
|
||||
*(.glue_7t) *(.glue_7) *(.rdata) /* for ARM */
|
||||
*(.mips16.fn.*) *(.mips16.call.*) *(.reginfo) /* for MIPS */
|
||||
*(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) *(.rodata1)
|
||||
. = ALIGN(16);
|
||||
. = ALIGN (8);
|
||||
*(.eh_frame_hdr)
|
||||
. = ALIGN (8);
|
||||
__EH_FRAME_BEGIN__ = .;
|
||||
KEEP (*(.eh_frame))
|
||||
LONG (0)
|
||||
. = ALIGN (8);
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
}
|
||||
.wrs_build_vars : {
|
||||
*(.wrs_build_vars)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.sdata2 : {
|
||||
_SDA2_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata2) *(.sbss2) /* for PPC */
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
wrs_kernel_text_end = ABSOLUTE(.); _wrs_kernel_text_end = ABSOLUTE(.);
|
||||
etext = .; _etext = .;
|
||||
|
||||
.data : AT(etext)
|
||||
{
|
||||
|
||||
wrs_kernel_data_start = .; _wrs_kernel_data_start = .;
|
||||
_VX_START_DATA = .;
|
||||
*(.data)
|
||||
wrs_kernel_data_fast = .; _wrs_kernel_data_fast = .;
|
||||
*(.data.fast)
|
||||
wrs_kernel_data_init = .; _wrs_kernel_data_init = .;
|
||||
*(.data.init)
|
||||
*(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) *(.data1)
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
/* got*, dynamic, sdata*, lit[48], and sbss should follow _gp */
|
||||
*(.got.plt) *(.got) *(.dynamic)
|
||||
*(.got2)
|
||||
*(.lit8) *(.lit4)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
wrs_kernel_tls_data_start = .; _wrs_kernel_tls_data_start = .;
|
||||
.tls_data : {
|
||||
*(.tls_data)
|
||||
}
|
||||
wrs_kernel_tls_data_size = . - wrs_kernel_tls_data_start; _wrs_kernel_tls_data_size = . - _wrs_kernel_tls_data_start;
|
||||
wrs_kernel_tls_data_align = 16; _wrs_kernel_tls_data_align = 16;
|
||||
. = ALIGN(8);
|
||||
wrs_kernel_tls_vars_start = .; _wrs_kernel_tls_vars_start = .;
|
||||
.tls_vars : {
|
||||
*(.tls_vars)
|
||||
}
|
||||
wrs_kernel_tls_vars_size = SIZEOF(.tls_vars); _wrs_kernel_tls_vars_size = SIZEOF(.tls_vars);
|
||||
. = ALIGN(16);
|
||||
_gp = ALIGN(16) + 0x7ff0; /* set gp for MIPS startup code */
|
||||
.sdata :
|
||||
{
|
||||
_SDA_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
edata = .; _edata = .;
|
||||
wrs_kernel_data_end = .; _wrs_kernel_data_end = .;
|
||||
.sbss :
|
||||
{
|
||||
wrs_kernel_bss_start = .; _wrs_kernel_bss_start = .;
|
||||
*(.sbss) *(.sbss.*) *(.scommon)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
. = ALIGN(16);
|
||||
end = .; _end = .;
|
||||
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
OUTPUT_FORMAT(pei-i386)
|
||||
ENTRY(_mainCRTStartup)
|
||||
SECTIONS
|
||||
{
|
||||
.text __image_base__ + __section_alignment__ :
|
||||
{
|
||||
*(.init)
|
||||
*(.text)
|
||||
*(SORT(.text[0-9]*))
|
||||
*(SORT(.text$*))
|
||||
*(SORT(.text*))
|
||||
*(.glue_7t)
|
||||
*(.glue_7)
|
||||
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
|
||||
LONG (-1); *(.ctors); *(.ctor); LONG (0);
|
||||
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
|
||||
LONG (-1); *(.dtors); *(.dtor); LONG (0);
|
||||
*(.fini)
|
||||
/* ??? Why is .gcc_exc here? */
|
||||
*(.gcc_exc)
|
||||
etext = .;
|
||||
*(.gcc_except_table)
|
||||
}
|
||||
/* Move .idata up here, just after .text, so that all text-like sections
|
||||
are grouped together. Unfortunately, we can't merge it into the .text
|
||||
section -- vxWorks.exe won't run in that case. Apparently, something
|
||||
about windows application loading depends on .idata being distinct. */
|
||||
.idata BLOCK(__section_alignment__) :
|
||||
{
|
||||
/* This cannot currently be handled with grouped sections.
|
||||
See pe.em:sort_sections. */
|
||||
SORT(*)(.idata$2)
|
||||
SORT(*)(.idata$3)
|
||||
/* These zeroes mark the end of the import list. */
|
||||
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
|
||||
SORT(*)(.idata$4)
|
||||
SORT(*)(.idata$5)
|
||||
SORT(*)(.idata$6)
|
||||
SORT(*)(.idata$7)
|
||||
}
|
||||
/* The Cygwin32 library uses a section to avoid copying certain data
|
||||
on fork. This used to be named ".data". The linker used
|
||||
to include this between __data_start__ and __data_end__, but that
|
||||
breaks building the cygwin32 dll. Instead, we name the section
|
||||
".data_cygwin_nocopy" and explictly include it after __data_end__. */
|
||||
.data BLOCK(__section_alignment__) :
|
||||
{
|
||||
__data_start__ = . ;
|
||||
*(.data)
|
||||
*(.data2)
|
||||
*(SORT(.data[0-9]*))
|
||||
*(SORT(.data$*))
|
||||
*(SORT(.data*))
|
||||
__data_end__ = . ;
|
||||
*(.data_cygwin_nocopy)
|
||||
|
||||
*(.rdata)
|
||||
*(SORT(.rdata[0-9]*))
|
||||
*(SORT(.rdata$*))
|
||||
*(SORT(.rdata*))
|
||||
*(.eh_frame)
|
||||
|
||||
*(.pdata)
|
||||
}
|
||||
.bss BLOCK(__section_alignment__) :
|
||||
{
|
||||
__bss_start__ = . ;
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
__bss_end__ = . ;
|
||||
|
||||
*(.edata)
|
||||
}
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.debug$S)
|
||||
*(.debug$T)
|
||||
*(.debug$F)
|
||||
*(.drectve)
|
||||
}
|
||||
.CRT BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(SORT(.CRT$*))
|
||||
}
|
||||
.endjunk BLOCK(__section_alignment__) :
|
||||
{
|
||||
/* end is deprecated, don't use it */
|
||||
end = .;
|
||||
_end = .;
|
||||
__end__ = .;
|
||||
}
|
||||
.rsrc BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.rsrc)
|
||||
*(SORT(.rsrc$*))
|
||||
}
|
||||
.reloc BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.reloc)
|
||||
}
|
||||
.stab BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
[ .stab ]
|
||||
}
|
||||
.stabstr BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
[ .stabstr ]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
#ifndef _LIMITS_H___
|
||||
#ifndef _MACH_MACHLIMITS_H_
|
||||
|
||||
/* _MACH_MACHLIMITS_H_ is used on OSF/1. */
|
||||
#define _LIMITS_H___
|
||||
#define _MACH_MACHLIMITS_H_
|
||||
|
||||
/* Number of bits in a `char'. */
|
||||
#undef CHAR_BIT
|
||||
#define CHAR_BIT 8
|
||||
|
||||
/* Maximum length of a multibyte character. */
|
||||
#ifndef MB_LEN_MAX
|
||||
#define MB_LEN_MAX 1
|
||||
#endif
|
||||
|
||||
/* Minimum and maximum values a `signed char' can hold. */
|
||||
#undef SCHAR_MIN
|
||||
#define SCHAR_MIN (-128)
|
||||
#undef SCHAR_MAX
|
||||
#define SCHAR_MAX 127
|
||||
|
||||
/* Maximum value an `unsigned char' can hold. (Minimum is 0). */
|
||||
#undef UCHAR_MAX
|
||||
#define UCHAR_MAX 255
|
||||
|
||||
/* Minimum and maximum values a `char' can hold. */
|
||||
#ifdef __CHAR_UNSIGNED__
|
||||
#undef CHAR_MIN
|
||||
#define CHAR_MIN 0
|
||||
#undef CHAR_MAX
|
||||
#define CHAR_MAX 255
|
||||
#else
|
||||
#undef CHAR_MIN
|
||||
#define CHAR_MIN (-128)
|
||||
#undef CHAR_MAX
|
||||
#define CHAR_MAX 127
|
||||
#endif
|
||||
|
||||
/* Minimum and maximum values a `signed short int' can hold. */
|
||||
#undef SHRT_MIN
|
||||
/* For the sake of 16 bit hosts, we may not use -32768 */
|
||||
#define SHRT_MIN (-32767-1)
|
||||
#undef SHRT_MAX
|
||||
#define SHRT_MAX 32767
|
||||
|
||||
/* Maximum value an `unsigned short int' can hold. (Minimum is 0). */
|
||||
#undef USHRT_MAX
|
||||
#define USHRT_MAX 65535
|
||||
|
||||
/* Minimum and maximum values a `signed int' can hold. */
|
||||
#ifndef __INT_MAX__
|
||||
#define __INT_MAX__ 2147483647
|
||||
#endif
|
||||
#undef INT_MIN
|
||||
#define INT_MIN (-INT_MAX-1)
|
||||
#undef INT_MAX
|
||||
#define INT_MAX __INT_MAX__
|
||||
|
||||
/* Maximum value an `unsigned int' can hold. (Minimum is 0). */
|
||||
#undef UINT_MAX
|
||||
#define UINT_MAX (INT_MAX * 2U + 1)
|
||||
|
||||
/* Minimum and maximum values a `signed long int' can hold.
|
||||
(Same as `int'). */
|
||||
#ifndef __LONG_MAX__
|
||||
#if defined (__alpha__) || defined (__sparc_v9__) || defined (__sparcv9)
|
||||
#define __LONG_MAX__ 9223372036854775807L
|
||||
#else
|
||||
#define __LONG_MAX__ 2147483647L
|
||||
#endif /* __alpha__ || sparc64 */
|
||||
#endif
|
||||
#undef LONG_MIN
|
||||
#define LONG_MIN (-LONG_MAX-1)
|
||||
#undef LONG_MAX
|
||||
#define LONG_MAX __LONG_MAX__
|
||||
|
||||
/* Maximum value an `unsigned long int' can hold. (Minimum is 0). */
|
||||
#undef ULONG_MAX
|
||||
#define ULONG_MAX (LONG_MAX * 2UL + 1)
|
||||
|
||||
#if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
|
||||
/* Minimum and maximum values a `signed long long int' can hold. */
|
||||
#ifndef __LONG_LONG_MAX__
|
||||
#define __LONG_LONG_MAX__ 9223372036854775807LL
|
||||
#endif
|
||||
#undef LONG_LONG_MIN
|
||||
#define LONG_LONG_MIN (-LONG_LONG_MAX-1)
|
||||
#undef LONG_LONG_MAX
|
||||
#define LONG_LONG_MAX __LONG_LONG_MAX__
|
||||
|
||||
/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
|
||||
#undef ULONG_LONG_MAX
|
||||
#define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1)
|
||||
#endif
|
||||
|
||||
#endif /* _MACH_MACHLIMITS_H_ */
|
||||
#endif /* _LIMITS_H___ */
|
||||
@@ -0,0 +1,43 @@
|
||||
# make.ARMARCH4gnu - GNU compilation tools definitions for ARM architecture 4
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01p,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug
|
||||
# mode.
|
||||
# 01o,12dec11,my_ Add fast load support
|
||||
# 01n,25jun08,pee VSB
|
||||
# 01m,05dec03,sn updated flags for gcc 3.3.2
|
||||
# 01l,10jan02,to move 'include defs.arm' after CPU and TOOL defines for
|
||||
# libgcc build
|
||||
# 01k,18dec01,to move common definitions to defs.arm
|
||||
# 01j,16nov01,t_m Change sysInit entry
|
||||
# 01i,06nov01,tpw Add %.old rule to facilitate conversions to old OMFs
|
||||
# 01h,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01g,19oct01,jb include of defs.gnu is out of sequence - fixed
|
||||
# 01f,10aug01,rec add gnu 2.96 architecture definitions
|
||||
# 01f,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01e,05jun01,mem Remove HEX_FLAGS
|
||||
# 01d,30mar01,t_m -fno-for-scope for C++ and rogue-wave
|
||||
# 01c,28feb01,t_m merge in XScale changes
|
||||
# 01b,24aug00,rec add support for big endian
|
||||
# 01a,26nov98,cdp created from 01g of make.ARMSA110gnu.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains ARM Architecture 4 little-endian-specific definitions
|
||||
# and flags for the GNU software generation tools (compiler, assembler,
|
||||
# linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = ARMARCH4
|
||||
TOOL = gnu
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.arm
|
||||
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.ARMARCH4ROM
|
||||
|
||||
CC_ARCH_ENDIAN_SPEC_little = -t4
|
||||
CC_ARCH_ENDIAN_SPEC_big = -t4be -Wa,-EB
|
||||
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) $(CC_ARCH_ENDIAN_SPEC_$(_WRS_CONFIG_ENDIAN))
|
||||
|
||||
# end of make.ARMARCH4gnu
|
||||
@@ -0,0 +1,40 @@
|
||||
# make.ARMARCH4gnube - GNU compilation tools definitions for ARM architecture 4
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01s,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug
|
||||
# mode.
|
||||
# 01r,17dec03,mcm Workaround for SPR 92687
|
||||
# 01q,05dec03,sn updated flags for gcc 3.3.2
|
||||
# 01p,10jan02,to move 'include defs.arm' after CPU and TOOL defines for
|
||||
# libgcc build
|
||||
# 01o,18dec01,to move common definitions to defs.arm
|
||||
# 01n,10dec01,tpw Fix %.old configuration for Big Endian ARM.
|
||||
# 01m,16nov01,t_m Change sysInit entry
|
||||
# 01l,06nov01,tpw Add %.old rule to facilitate conversions to old OMFs
|
||||
# 01k,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01j,19oct01,jb include of defs.gnu is out of sequence - fixed
|
||||
# 01i,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01h,10aug01,rec add gnu 2.96 architecture definitions
|
||||
# 01g,05jun01,mem Remove HEX_FLAGS
|
||||
# 01f,04apr01,t_m add fno-for-scope
|
||||
# 01e,14mar01,t_m fix CCC_ARCH type
|
||||
# 01d,14mar01,rec gnu 2.9 tool chain changes
|
||||
# 01c,18dec00,rec define CPP for big endian builds
|
||||
# 01b,04dec00,rec renamed element
|
||||
# 01a,26nov98,cdp created from 01g of make.ARMSA110gnu.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains ARM Architecture 4 big-endian-specific definitions
|
||||
# and flags for the GNU software generation tools (compiler, assembler,
|
||||
# linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = ARMARCH4
|
||||
TOOL = gnube
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.arm
|
||||
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) -t4be -Wa,-EB
|
||||
|
||||
# end of make.ARMARCH4gnube
|
||||
@@ -0,0 +1,41 @@
|
||||
# make.ARMARCH5gnu - GNU compilation tools definitions for ARM architecture 5
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01p,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug
|
||||
# mode.
|
||||
# 01o,25jun08,pee VSB
|
||||
# 01n,05dec03,sn updated flags for gcc 3.3.2
|
||||
# 01m,10jan02,to move 'include defs.arm' after CPU and TOOL defines for
|
||||
# libgcc build
|
||||
# 01l,18dec01,to move common definitions to defs.arm
|
||||
# 01k,16nov01,t_m Change sysInit entry
|
||||
# 01j,06nov01,tpw Add %.old rule to facilitate conversions to old OMFs
|
||||
# 01i,26oct01,t_m Switch to ARCH5
|
||||
# 01i,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01h,19oct01,jb include of defs.gnu is out of sequence - fixed
|
||||
# 01g,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01f,10aug01,rec add gnu 2.96 architecture definitions
|
||||
# 01e,05jun01,mem Remove HEX_FLAGS
|
||||
# 01d,30mar01,t_m -fno-for-scope for C++ and rogue-wave
|
||||
# 01c,28feb01,t_m merge in XScale changes
|
||||
# 01b,24aug00,rec add support for big endian
|
||||
# 01a,26nov98,cdp created from 01g of make.ARMSA110gnu.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains ARM Architecture 5 little-endian-specific definitions
|
||||
# and flags for the GNU software generation tools (compiler, assembler,
|
||||
# linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = ARMARCH5
|
||||
TOOL = gnu
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.arm
|
||||
|
||||
CC_ARCH_ENDIAN_SPEC_little = -t5
|
||||
CC_ARCH_ENDIAN_SPEC_big = -t5be -Wa,-EB
|
||||
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) $(CC_ARCH_ENDIAN_SPEC_$(_WRS_CONFIG_ENDIAN))
|
||||
|
||||
# end of make.ARMARCH5gnu
|
||||
@@ -0,0 +1,41 @@
|
||||
# make.ARMARCH5gnube - GNU compilation tools definitions for ARM architecture 5
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01s,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug
|
||||
# mode.
|
||||
# 01r,17dec03,mcm Workaround for SPR 92687
|
||||
# 01q,05dec03,sn updated flags for gcc 3.3.2
|
||||
# 01p,10jan02,to move 'include defs.arm' after CPU and TOOL defines for
|
||||
# libgcc build
|
||||
# 01o,18dec01,to move common definitions to defs.arm
|
||||
# 01n,10dec01,tpw Fix %.old configuration for Big Endian ARM.
|
||||
# 01m,16nov01,t_m Change sysInit entry
|
||||
# 01l,06nov01,tpw Add %.old rule to facilitate conversions to old OMFs
|
||||
# 01k,26oct01,t_m Switch to ARCH5
|
||||
# 01k,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01j,19oct01,jb include of defs.gnu is out of sequence - fixed
|
||||
# 01i,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01h,10aug01,rec add gnu 2.96 architecture definitions
|
||||
# 01g,05jun01,mem Remove HEX_FLAGS
|
||||
# 01f,04apr01,t_m add fno-for-scope
|
||||
# 01e,14mar01,t_m fix CCC_ARCH type
|
||||
# 01d,14mar01,rec gnu 2.9 tool chain changes
|
||||
# 01c,18dec00,rec define CPP for big endian builds
|
||||
# 01b,04dec00,rec renamed element
|
||||
# 01a,26nov98,cdp created from 01g of make.ARMSA110gnu.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains ARM Architecture 5 big-endian-specific definitions
|
||||
# and flags for the GNU software generation tools (compiler, assembler,
|
||||
# linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = ARMARCH5
|
||||
TOOL = gnube
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.arm
|
||||
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) -t5be -Wa,-EB
|
||||
|
||||
# end of make.ARMARCH5gnube
|
||||
@@ -0,0 +1,41 @@
|
||||
# make.ARMARCH6gnu - GNU compilation tools definitions for ARM architecture 6
|
||||
#
|
||||
# Copyright (c) 2004, 2006, 2008-2009 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01f,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug
|
||||
# mode.
|
||||
# 01e,24sep09,j_b fix VFP compiler options
|
||||
# 01d,16sep08,j_b replace t5 flag with t6 for little endian
|
||||
# 01c,25jun08,pee VSB
|
||||
# 01b,31aug06,jb Fix for Defect WIND00063709
|
||||
# 01a,06dec04,jb Copied from make.ARMARCH5gnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains ARM Architecture 6 little-endian-specific definitions
|
||||
# and flags for the GNU software generation tools (compiler, assembler,
|
||||
# linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = ARMARCH6
|
||||
TOOL = gnu
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.arm
|
||||
|
||||
# As shown by ccarm -dumpspecs,
|
||||
# -t6 = -mlittle-endian -march=armv6
|
||||
# -t5be = -mbig-endian -march=armv5 (t6be is not yet available)
|
||||
|
||||
ifeq ($(VFPVARIANT),ARM1136)
|
||||
# Enable VFP code generation
|
||||
CC_ARCH_ENDIAN_SPEC_little = -t6 -mfpu=vfp -mfloat-abi=softfp
|
||||
CC_ARCH_ENDIAN_SPEC_big = -t5be -Wa,-EB -mfpu=vfp -mfloat-abi=softfp
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) $(CC_ARCH_ENDIAN_SPEC_$(_WRS_CONFIG_ENDIAN))
|
||||
else
|
||||
CC_ARCH_ENDIAN_SPEC_little = -t6
|
||||
CC_ARCH_ENDIAN_SPEC_big = -t5be -Wa,-EB
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) $(CC_ARCH_ENDIAN_SPEC_$(_WRS_CONFIG_ENDIAN))
|
||||
endif
|
||||
|
||||
# end of make.ARMARCH6gnu
|
||||
@@ -0,0 +1,37 @@
|
||||
# make.ARMARCH6gnube - GNU compilation tools definitions for ARM architecture 6
|
||||
#
|
||||
# Copyright (c) 2004, 2006, 2009, 2011 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01e,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug
|
||||
# mode.
|
||||
# 01d,29dec11,mze fix for defect WIND00325465
|
||||
# 01c,24sep09,j_b fix VFP compiler options
|
||||
# 01b,26sep06,jb Fix for Defect WIND00063709
|
||||
# 01a,06dec04,jb Copied from make.ARMARCH5gnube
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains ARM Architecture 6 big-endian-specific definitions
|
||||
# and flags for the GNU software generation tools (compiler, assembler,
|
||||
# linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = ARMARCH6
|
||||
TOOL = gnube
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.arm
|
||||
|
||||
ifeq ($(VFPVARIANT),ARM1136)
|
||||
# Enable VFP code generation
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) -t5be -Wa,-EB -mfpu=vfp -mfloat-abi=softfp
|
||||
else
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) -t5be -Wa,-EB
|
||||
endif
|
||||
|
||||
# this next section will need to be removed if the build specs need to support SMP
|
||||
ifdef _BDGEN_
|
||||
MP_OPTION_ARMARCH6_SMP =
|
||||
endif
|
||||
|
||||
# end of make.ARMARCH6gnube
|
||||
@@ -0,0 +1,58 @@
|
||||
# make.ARMARCH7gnu - GNU compilation tools definitions for ARMv7
|
||||
#
|
||||
# Copyright (c) 2009-2010, 2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01h,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug
|
||||
# mode.
|
||||
# 01g,28sep12,jdw Add ARM_USE_VFP flag
|
||||
# 01f,17nov10,jdw Update to support both HW and SW FP builds
|
||||
# 01e,31jan10,fao add be8 support
|
||||
# 01d,21oct09,j_b force VFP as default due to vxprj CFLAGS generation issue
|
||||
# 01c,24sep09,j_b fix VFP compiler options
|
||||
# 01b,20apr09,m_h ARMv7 Support
|
||||
# 01a,27feb09,m_h created from make.ARMARCH6gnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains ARM Architecture 7 little-endian-specific definitions
|
||||
# and flags for the GNU software generation tools (compiler, assembler,
|
||||
# linker etc.).
|
||||
#
|
||||
|
||||
CPU = ARMARCH7
|
||||
TOOL = gnu
|
||||
|
||||
# default before defs.arm
|
||||
_WRS_CONFIG_FP ?= vector
|
||||
ifeq ($(TC_INFO),TRUE)
|
||||
FP ?= vector
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.arm
|
||||
|
||||
# override definitions from defs.arm
|
||||
BUILD_FP_PREFIX_soft = sf
|
||||
|
||||
# As shown by ccarm -dumpspecs,
|
||||
# -t7 = -mlittle-endian -march=armv7-a
|
||||
# -t5be = -mbig-endian -march=armv5 (t7be is not yet available)
|
||||
|
||||
ifeq ($(_WRS_CONFIG_FP),vector)
|
||||
# Enable VFP code generation
|
||||
CC_ARCH_ENDIAN_SPEC_little = -t7 -mfpu=vfp -mfloat-abi=softfp
|
||||
CC_ARCH_ENDIAN_SPEC_be8 = -t5be -Wa,-EB -mfpu=vfp -mfloat-abi=softfp
|
||||
EXTRA_DEFINE += -DARM_USE_VFP
|
||||
else
|
||||
# Enable software floating point code generation
|
||||
CC_ARCH_ENDIAN_SPEC_little = -t7 -msoft-float
|
||||
CC_ARCH_ENDIAN_SPEC_be8 = -t5be -Wa,-EB -msoft-float
|
||||
endif
|
||||
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) $(CC_ARCH_ENDIAN_SPEC_$(_WRS_CONFIG_ENDIAN))
|
||||
|
||||
# end of make.ARMARCH7gnu
|
||||
@@ -0,0 +1,43 @@
|
||||
# make.ARMARCH7sfgnu - GNU compilation tools definitions for ARMv7
|
||||
#
|
||||
# Copyright (c) 2010 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01b,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug
|
||||
# mode.
|
||||
# 01a,17nov10,jdw created from make.ARMARCH7gnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains ARM Architecture 7 little-endian-specific definitions
|
||||
# and flags for the GNU software generation tools (compiler, assembler,
|
||||
# linker etc.) for software floating point builds.
|
||||
#
|
||||
|
||||
CPU = ARMARCH7
|
||||
TOOL = sfgnu
|
||||
|
||||
# default before defs.arm
|
||||
_WRS_CONFIG_FP ?= soft
|
||||
ifeq ($(TC_INFO),TRUE)
|
||||
FP ?= soft
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.arm
|
||||
|
||||
# override definitions from defs.arm
|
||||
BUILD_FP_PREFIX_soft = sf
|
||||
|
||||
# As shown by ccarm -dumpspecs,
|
||||
# -t7 = -mlittle-endian -march=armv7-a
|
||||
# -t5be = -mbig-endian -march=armv5 (t7be is not yet available)
|
||||
|
||||
CC_ARCH_ENDIAN_SPEC_little = -t7 -msoft-float
|
||||
CC_ARCH_ENDIAN_SPEC_be8 = -t5be -Wa,-EB -msoft-float
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) $(CC_ARCH_ENDIAN_SPEC_$(_WRS_CONFIG_ENDIAN))
|
||||
|
||||
# end of make.ARMARCH7gnu
|
||||
@@ -0,0 +1,79 @@
|
||||
# make.ATOMgnu - GNU compilation tools definitions for ATOM
|
||||
#
|
||||
# Copyright (c) 2010-2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01g,27nov12,yjw add -mmovbe for atom target.(WIND00380360)
|
||||
# 01f,21aug12,mze add -Wsystem-headers flag
|
||||
# 01e,05jul12,pee WIND00356899
|
||||
# 01d,13jun11,mze add debug
|
||||
# 01c,02feb11,jb Fix for WIND00253482 - Incorrect architecture flag
|
||||
# 01b,31jan11,pee WIND00252661
|
||||
# 01a,20sep10,sem written
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains ATOM specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = ATOM
|
||||
TOOL = gnu
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
ifeq ($(LP64_MCMODEL),LARGE)
|
||||
CM = large
|
||||
else
|
||||
CM = kernel
|
||||
endif
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.gnu
|
||||
|
||||
CC_OPTIM_XO = -O2
|
||||
CC_OPTIM_DEBUG =
|
||||
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG) -fvolatile
|
||||
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO)
|
||||
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fvolatile
|
||||
CC_WARN_SYSTEM_HEADERS =
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
# Add warning options to help with the code adaptation to LP64
|
||||
CC_WARNINGS_LOW = -Wall -Wreturn-type -Wconversion -Wformat $(CC_WARN_SYSTEM_HEADERS) \
|
||||
-Wno-sign-conversion
|
||||
|
||||
# Generate LP64 code (-march=) for core. The schedule (-mtune=) is
|
||||
# intentionally not specified so as to get it aligned to the -march option.
|
||||
|
||||
CC_ARCH_SPEC = -march=core2 -nostdlib -fno-builtin \
|
||||
-fno-defer-pop -m64 -fno-omit-frame-pointer \
|
||||
-mcmodel=$(CM) -mno-red-zone -fno-implicit-fp
|
||||
|
||||
LINK_FLAGS_EXTRA= -m elf_x86_64_vxworks
|
||||
else
|
||||
# Generate code for (-march=) and schedule for (-mtune=) core
|
||||
CC_ARCH_SPEC = -march=atom -mmovbe \
|
||||
-nostdlib -fno-builtin -fno-defer-pop -fno-implicit-fp
|
||||
endif
|
||||
|
||||
TOOLENV = pentium
|
||||
VX_CPU_FAMILY = pentium
|
||||
ARCH_DIR = i86
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
ABI_SPEC = x86-64
|
||||
else
|
||||
ABI_SPEC = x86
|
||||
endif
|
||||
|
||||
CF =
|
||||
|
||||
HLL_PREFIX =
|
||||
|
||||
OBJCOPY_OLD_OMF = -O a.out-i386 --gap-fill=0
|
||||
|
||||
# end of make.ATOMgnu
|
||||
@@ -0,0 +1,78 @@
|
||||
# make.COREgnu - GNU compilation tools definitions for CORE
|
||||
#
|
||||
# Copyright (c) 2010-2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01f,21aug12,mze add -Wsystem-headers flag
|
||||
# 01e,05jul12,pee WIND00356899
|
||||
# 01d,13jun11,mze add debug
|
||||
# 01c,02feb11,jb Fix for WIND00253482 - Incorrect architecture flag
|
||||
# 01b,31jan11,pee WIND00252661
|
||||
# 01a,20sep10,sem written
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains CORE specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = CORE
|
||||
TOOL = gnu
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
ifeq ($(LP64_MCMODEL),LARGE)
|
||||
CM = large
|
||||
else
|
||||
CM = kernel
|
||||
endif
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.gnu
|
||||
|
||||
CC_OPTIM_XO = -O2
|
||||
CC_OPTIM_DEBUG =
|
||||
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG) -fvolatile
|
||||
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO)
|
||||
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fvolatile
|
||||
CC_WARN_SYSTEM_HEADERS =
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
# Add warning options to help with the code adaptation to LP64
|
||||
CC_WARNINGS_LOW = -Wall -Wreturn-type -Wconversion -Wformat $(CC_WARN_SYSTEM_HEADERS) \
|
||||
-Wno-sign-conversion
|
||||
|
||||
# Generate LP64 code (-march=) for core. The schedule (-mtune=) is
|
||||
# intentionally not specified so as to get it aligned to the -march option.
|
||||
|
||||
CC_ARCH_SPEC = -march=core2 -nostdlib -fno-builtin \
|
||||
-fno-defer-pop -m64 -fno-omit-frame-pointer \
|
||||
-mcmodel=$(CM) -mno-red-zone -fno-implicit-fp
|
||||
|
||||
LINK_FLAGS_EXTRA= -m elf_x86_64_vxworks
|
||||
else
|
||||
# Generate code for (-march=) and schedule for (-mtune=) core
|
||||
CC_ARCH_SPEC = -march=core2 \
|
||||
-nostdlib -fno-builtin -fno-defer-pop -fno-implicit-fp
|
||||
endif
|
||||
|
||||
TOOLENV = pentium
|
||||
VX_CPU_FAMILY = pentium
|
||||
ARCH_DIR = i86
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
ABI_SPEC = x86-64
|
||||
else
|
||||
ABI_SPEC = x86
|
||||
endif
|
||||
|
||||
CF =
|
||||
|
||||
HLL_PREFIX =
|
||||
|
||||
OBJCOPY_OLD_OMF = -O a.out-i386 --gap-fill=0
|
||||
|
||||
# end of make.COREgnu
|
||||
@@ -0,0 +1,27 @@
|
||||
# make.MIPSI2gnu - GNU tools definitions for MIPSI2.
|
||||
#
|
||||
# Copyright 2008 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01b,24jun08,pee created for VSB
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI2 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 32 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
# exclude this file from WB build spec generation.
|
||||
_BDGEN_EXCLUDE = TRUE
|
||||
|
||||
CPU = MIPSI2
|
||||
TOOL = gnu
|
||||
ABI_SPEC = MIPS32
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI2gnu
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI2sfgnu - GNU tools definitions for MIPSI2 with software floating pt.
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS32sfgnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI2 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 32 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI2
|
||||
TOOL = sfgnu
|
||||
ABI_SPEC = MIPS32
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI2sfgnu
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI2sfgnule - GNU definitions for MIPSI2 software float (little endian)
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS32sfgnule
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI2 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 32 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI2
|
||||
TOOL = sfgnule
|
||||
ABI_SPEC = MIPS32
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI2sfgnule
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI32R2gnu - GNU tools definitions for MIPSI32R2 with hardware floating pt.
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS32sfgnu.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI32R2 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 32 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI32R2
|
||||
TOOL = gnu
|
||||
ABI_SPEC = MIPS32
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI32R2gnu
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI32R2gnule - GNU definitions for MIPSI32R2 hardware float (little endian)
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS32sfgnule
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI32R2 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 32 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI32R2
|
||||
TOOL = gnule
|
||||
ABI_SPEC = MIPS32
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI32R2gnule
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI32sfgnu - GNU tools definitions for MIPSI32 with software floating pt.
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS32sfgnu.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI32 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 32 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI32R2
|
||||
TOOL = sfgnu
|
||||
ABI_SPEC = MIPS32
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI32sfgnu
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI32R2sfgnule - GNU definitions for MIPSI32R2 software float (little endian)
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS32sfgnule
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI32 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 32 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI32R2
|
||||
TOOL = sfgnule
|
||||
ABI_SPEC = MIPS32
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI32R2sfgnule
|
||||
@@ -0,0 +1,29 @@
|
||||
# make.MIPSI32gnu - GNU tools definitions for MIPSI32 with hardware floating pt.
|
||||
#
|
||||
# Copyright 2007-2008 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01c,19aug08,mze copyright change
|
||||
# 01b,21jul08,pee disabling bdgen.
|
||||
# 01a,20feb07,pes created based on make.MIPS32sfgnu.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI32 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 32 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
# exclude this file from WB build spec generation.
|
||||
_BDGEN_EXCLUDE = TRUE
|
||||
|
||||
CPU = MIPSI32
|
||||
TOOL = gnu
|
||||
ABI_SPEC = MIPS32
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI32gnu
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI32sfgnu - GNU tools definitions for MIPSI32 with software floating pt.
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS32sfgnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI32 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 32 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI32
|
||||
TOOL = sfgnu
|
||||
ABI_SPEC = MIPS32
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI32sfgnu
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI32sfgnule - GNU definitions for MIPSI32 software float (little endian)
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created ased on make.MIPS32sfgnule
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPS32 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 32 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI32
|
||||
TOOL = sfgnule
|
||||
ABI_SPEC = MIPS32
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI32sfgnule
|
||||
@@ -0,0 +1,25 @@
|
||||
# make.MIPSI3gnu - GNU compilation tools definitions for MIPSI3
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01b,19aug08,mze TOOL changes
|
||||
# 01a,20feb07,pes created based on make.MIPS64gnu.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPS64 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 64 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI3
|
||||
TOOL = gnu
|
||||
ABI_SPEC = MIPS64$(ABI_ENDIAN_SUFFIX)
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI3gnu
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI3gnule - GNU tools definitions for MIPSI3 (little endian)
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS64gnule
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI3 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 64 bit compatible vxWorks in little-endian mode.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI3
|
||||
TOOL = gnule
|
||||
ABI_SPEC = MIPS64LE
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI3gnule
|
||||
@@ -0,0 +1,29 @@
|
||||
# make.MIPSI64R2gnu - GNU compilation tools definitions for MIPSI64R2
|
||||
#
|
||||
# Copyright 2007-2008 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01e,25aug11,mze fix WIND00295798
|
||||
# 01d,15aug08,mze copyright change
|
||||
# 01c,21jul08,pee disabling WB build spec generation
|
||||
# 01b,24jun08,pee VSB
|
||||
# 01a,20feb07,pes created based on make.MIPS64gnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPS64 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 64 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
|
||||
CPU = MIPSI64R2
|
||||
TOOL = gnu
|
||||
ABI_SPEC = MIPS64$(ABI_ENDIAN_SUFFIX)
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI64R2gnu
|
||||
@@ -0,0 +1,26 @@
|
||||
# make.MIPSI64R2sfgnu - GNU compilation tools definitions for MIPSI64R2 (soft float)
|
||||
#
|
||||
# Copyright 2007, 2011 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01c,22aug11,jam undo workaround
|
||||
# 01b,22jun11,mze special workaround for WIND00283765
|
||||
# 01a,20feb07,pes created based on make.MIPS64gnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPS64 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 64 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI64R2
|
||||
TOOL = sfgnu
|
||||
ABI_SPEC = MIPS64BE
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI64R2sfgnu
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI64R2sfgnule - GNU tools definitions for MIPSI64R2 (soft float, little endian)
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS64gnule
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI64R2 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 64 bit compatible vxWorks in little-endian mode.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI64R2
|
||||
TOOL = sfgnule
|
||||
ABI_SPEC = MIPS64LE
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI64R2sfgnule
|
||||
@@ -0,0 +1,26 @@
|
||||
# make.MIPSI64gnu - GNU compilation tools definitions for MIPSI64
|
||||
#
|
||||
# Copyright 2007-2008 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01c,19aug08,mze copyright changes
|
||||
# 01b,24jun08,pee VSB
|
||||
# 01a,20feb07,pes created based on make.MIPS64gnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPS64 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 64 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI64
|
||||
TOOL = gnu
|
||||
ABI_SPEC = MIPS64$(ABI_ENDIAN_SUFFIX)
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI64gnu
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI64gnule - GNU tools definitions for MIPSI64 (little endian)
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS64gnule
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI64 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 64 bit compatible vxWorks in little-endian mode.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI64
|
||||
TOOL = gnule
|
||||
ABI_SPEC = MIPS64LE
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI64gnule
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI64sfgnu - GNU compilation tools definitions for MIPSI64 (soft float)
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS64gnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI64 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 64 bit compatible vxWorks.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI64
|
||||
TOOL = sfgnu
|
||||
ABI_SPEC = MIPS64BE
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPS64gnu
|
||||
@@ -0,0 +1,24 @@
|
||||
# make.MIPSI64sfgnule - GNU tools definitions for MIPSI64 (soft float, little endian)
|
||||
#
|
||||
# Copyright 2007 Wind River Systems, Inc.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,20feb07,pes created based on make.MIPS64gnule
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains MIPSI64 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc) when used
|
||||
# to generate a 64 bit compatible vxWorks in little-endian mode.
|
||||
#*/
|
||||
|
||||
CPU = MIPSI64
|
||||
TOOL = sfgnule
|
||||
ABI_SPEC = MIPS64LE
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.mips
|
||||
#add the next two line for MIPS specific devices
|
||||
LD_SCRIPT_RAM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSRAM
|
||||
LD_SCRIPT_ROM = -T $(TGT_DIR)/h/tool/gnu/ldscripts/link.MIPSROM
|
||||
|
||||
# end of make.MIPSI64sfgnule
|
||||
@@ -0,0 +1,78 @@
|
||||
# make.NEHALEMgnu - GNU compilation tools definitions for NEHALEM
|
||||
#
|
||||
# Copyright (c) 2010-2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01f,21aug12,mze add -Wsystem-headers flag
|
||||
# 01e,05jul12,pee WIND00356899
|
||||
# 01d,13jun11,mze add debug
|
||||
# 01c,02feb11,jb Fix for WIND00253482 - Incorrect architecture flag
|
||||
# 01b,31jan11,pee WIND00252661
|
||||
# 01a,23sep10,sem written
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains NEHALEM specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = NEHALEM
|
||||
TOOL = gnu
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
ifeq ($(LP64_MCMODEL),LARGE)
|
||||
CM = large
|
||||
else
|
||||
CM = kernel
|
||||
endif
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.gnu
|
||||
|
||||
CC_OPTIM_XO = -O2
|
||||
CC_OPTIM_DEBUG =
|
||||
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG) -fvolatile
|
||||
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO)
|
||||
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fvolatile
|
||||
CC_WARN_SYSTEM_HEADERS =
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
# Add warning options to help with the code adaptation to LP64
|
||||
CC_WARNINGS_LOW = -Wall -Wreturn-type -Wconversion -Wformat $(CC_WARN_SYSTEM_HEADERS) \
|
||||
-Wno-sign-conversion
|
||||
|
||||
# Generate LP64 code (-march=) for core. The schedule (-mtune=) is
|
||||
# intentionally not specified so as to get it aligned to the -march option.
|
||||
|
||||
CC_ARCH_SPEC = -march=core2 -nostdlib -fno-builtin \
|
||||
-fno-defer-pop -m64 -fno-omit-frame-pointer \
|
||||
-mcmodel=$(CM) -mno-red-zone -fno-implicit-fp
|
||||
|
||||
LINK_FLAGS_EXTRA= -m elf_x86_64_vxworks
|
||||
else
|
||||
# Generate code for (-march=) and schedule for (-mtune=) core
|
||||
CC_ARCH_SPEC = -march=core2 \
|
||||
-nostdlib -fno-builtin -fno-defer-pop -fno-implicit-fp
|
||||
endif
|
||||
|
||||
TOOLENV = pentium
|
||||
VX_CPU_FAMILY = pentium
|
||||
ARCH_DIR = i86
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
ABI_SPEC = x86-64
|
||||
else
|
||||
ABI_SPEC = x86
|
||||
endif
|
||||
|
||||
CF =
|
||||
|
||||
HLL_PREFIX =
|
||||
|
||||
OBJCOPY_OLD_OMF = -O a.out-i386 --gap-fill=0
|
||||
|
||||
# end of make.NEHALEMgnu
|
||||
@@ -0,0 +1,64 @@
|
||||
# make.PENTIUM4gnu - GNU compilation tools definitions for PENTIUM4
|
||||
#
|
||||
# Copyright (c) 2001-2005,2008-2009 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01p,13jun11,mze test
|
||||
# 01o,17sep09,pad Removed -mno-sse[23] now that -fno-implicit-fp works.
|
||||
# 01n,12aug09,pad Added -fno-implicit-fp option to prevent compiler to use
|
||||
# any floating point registers for non-floating point
|
||||
# operations. Temporarily added -mno-sse[23] until
|
||||
# -fno-implicit-fp works for SSE[x] registers too.
|
||||
# 01m,10oct08,rbc WIND00132719. Remove -mno-sse and -mno-sse2. Move standard
|
||||
# flags to CC_ARCH_SPEC.
|
||||
# 01l,30nov05,mcm Updates for GCC 3.4.4
|
||||
# 01k,28sep04,rec add -mno-sse -mno-sse2
|
||||
# 01j,10dec03,yvp Added ABI_SPEC.
|
||||
# 01i,07nov03,c_c Removed Compiler definitions.
|
||||
# 01i,18nov03,sn updated flags for GCC 3.3.2; use pentium4 specific
|
||||
# flags, rather than pentium3
|
||||
# 01h,24apr02,pai redefined HLL_PREFIX for GNU ELF support (SPR 73382).
|
||||
# 01g,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# 01f,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01e,06nov01,tpw Add %.old rule to facilitate conversions to old OMFs
|
||||
# 01d,02nov01,hdn used PENTIUM3's options temporary
|
||||
# 01c,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01b,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01a,15aug01,hdn written based on 01g version of make.PENTIUMgnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PENTIUM4 specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = PENTIUM4
|
||||
TOOL = gnu
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.gnu
|
||||
CC_OPTIM_XO = -O2
|
||||
CC_OPTIM_DEBUG =
|
||||
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG) -fvolatile
|
||||
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO)
|
||||
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fvolatile
|
||||
|
||||
# Generate code for (-march=) and schedule for (-mtune=) pentium
|
||||
CC_ARCH_SPEC = -mtune=pentium4 -march=pentium4 \
|
||||
-nostdlib -fno-builtin -fno-defer-pop -fno-implicit-fp
|
||||
|
||||
TOOLENV = pentium
|
||||
VX_CPU_FAMILY = pentium
|
||||
ARCH_DIR = i86
|
||||
ABI_SPEC = x86
|
||||
|
||||
CF =
|
||||
|
||||
HLL_PREFIX =
|
||||
|
||||
OBJCOPY_OLD_OMF = -O a.out-i386 --gap-fill=0
|
||||
|
||||
# end of make.PENTIUM4gnu
|
||||
@@ -0,0 +1,65 @@
|
||||
# make.PENTIUMgnu - GNU compilation tools definitions for PENTIUM
|
||||
#
|
||||
# Copyright (c) 1997-1998,2000-2003,2005,2008-2009 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01t,14aug12,gvm Fix typo (WIND00361575)
|
||||
# 01s,13jun11,mze add debug
|
||||
# 01r,12aug09,pad Added -fno-implicit-fp option to prevent compiler to use
|
||||
# MMX registers for non-floating point operations.
|
||||
# 01q,10oct08,rbc WIND00132719. Move standard flags to CC_ARCH_SPEC.
|
||||
# 01p,30nov05,mcm Updates for GCC 3.4.4
|
||||
# 01o,10dec03,yvp Added ABI_SPEC.
|
||||
# 01n,07nov03,c_c Removed Compiler definitions.
|
||||
# 01m,24apr02,pai redefined HLL_PREFIX for GNU ELF support (SPR 73382).
|
||||
# 01l,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# 01k,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01j,06nov01,tpw Add %.old rule to facilitate conversions to old OMFs
|
||||
# 01i,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01h,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01g,10jan01,sn use pentium toolchain
|
||||
# 01f,18oct00,sn update arch flags for new compiler:
|
||||
# generate code for and schedule for pentium
|
||||
# 01e,16oct00,sn added include gnu; removed LIBS defn
|
||||
# 01d,05nov98,hdn added -fno-defer-pop to make it faster
|
||||
# 01c,18sep98,sn Defined C++_TEMPLATE_INST
|
||||
# 01b,04may98,hdn replaced -m486 with -mpentium
|
||||
# 01a,17jul97,hdn written based on make.I80486gnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PENTIUM specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = PENTIUM
|
||||
TOOL = gnu
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.gnu
|
||||
|
||||
CC_OPTIM_XO = -O2
|
||||
CC_OPTIM_DEBUG =
|
||||
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG) -fvolatile
|
||||
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO)
|
||||
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fvolatile
|
||||
|
||||
# Generate code for (-march=) and schedule for (-mtune=) pentium
|
||||
CC_ARCH_SPEC = -mtune=pentium -march=pentium \
|
||||
-nostdlib -fno-builtin -fno-defer-pop -fno-implicit-fp
|
||||
|
||||
TOOLENV = pentium
|
||||
VX_CPU_FAMILY = pentium
|
||||
ARCH_DIR = i86
|
||||
ABI_SPEC = x86
|
||||
|
||||
CF =
|
||||
|
||||
HLL_PREFIX =
|
||||
|
||||
OBJCOPY_OLD_OMF = -O a.out-i386 --gap-fill=0
|
||||
|
||||
# end of make.PENTIUMgnu
|
||||
@@ -0,0 +1,46 @@
|
||||
# make.PPC32e500v2gnu - GNU compilation tools definitions for generic PowerPC
|
||||
#
|
||||
# Copyright (c) 2002, 2007-2008, 2011, 2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01h,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# 01g,13jun11,mze add debug
|
||||
# 01f,03feb11,mcm Fix for WIND00247694 - use -fno-implicit-fp for e500v2
|
||||
# 01e,29aug08,pee adding _WRS_CONFIG_FP definition.
|
||||
# 01d,08jul08,dtr Use -te500v2 instead of rolled out version.
|
||||
# Fixes libgcc.a build.
|
||||
# 01c,17dec07,dtr Update flags after compiler update.
|
||||
# 01b,03dec07,dtr Update target flags.
|
||||
# 01a,11dec02,pch Created (from make.PPC440gnu vn 01f).
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains definitions and flags for the gnu tools
|
||||
# (compiler, assembler, linker etc.) to build for a generic
|
||||
# PowerPC with e500v2 hardware floating point.
|
||||
# If building for a specific processor (as a variant),
|
||||
# defs.ppc will set its type number into PPC32VARIANT.
|
||||
#*/
|
||||
|
||||
CPU = PPC32
|
||||
TOOL = e500v2gnu
|
||||
|
||||
_WRS_CONFIG_FP ?= e500v2
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
# The defs.ppc will override this with -te500v2 if _WRS_CONFIG_FP is e500v2.
|
||||
# We set -mcpu=8540 here in case the _WRS_CONFIG_FP is soft.
|
||||
#
|
||||
# Make sure there is no SPE instruction generated by disabling SPE ABI.
|
||||
# This is added to be safe in case GCC has an issue.
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=8540 -mabi=no-spe
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC32e500v2gnu
|
||||
@@ -0,0 +1,118 @@
|
||||
# make.PPC32gnu - GNU compilation tools definitions for generic PowerPC
|
||||
#
|
||||
# Copyright (c) 2002-2004, 2006-2008, 2010-2013, 2016 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01y,10nov16,h_k fixed e6500 build spec. (VXW6-85939)
|
||||
# 01x,29jan13,h_k replaced XXX with TODO.
|
||||
# 01w,24jul12,h_k added e6500 CPU variant support. (WIND00333229)
|
||||
# 01v,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# added -mabi=no-spe for PPC85XX non-e500mc. (WIND00345703)
|
||||
# 01u,14feb12,h_k added missing _WRS_HARDWARE_FP definition for e500mc.
|
||||
# (WIND00333933)
|
||||
# 01t,13jun11,mze add debug
|
||||
# 01s,03may11,syt Add support for PPC465
|
||||
# 01r,03feb11,mcm Fix for WIND00247694 - use -fno-implicit-fp for e500v2
|
||||
# 01q,10jan11,kab Fix 85XX e500mc flags
|
||||
# 01q,16dec10,x_z set _WRS_HARDWARE_FP for hard-float 476
|
||||
# 01p,29aug08,mze logic change from hard to soft
|
||||
# 01o,19aug08,mze TOOL changes
|
||||
# 01n,22jul08,pee adding e500v2 support for VSB.
|
||||
# 01m,02aug07,mcm GCC 4.1.2 has now implemented the -fno-implicit-fp option;
|
||||
# the option had been removed while there was no support for
|
||||
# it.
|
||||
# 01l,15may07,mcm Remove -mno-implicit-fp
|
||||
# 01k,27jun06,dtr Support hard and soft float 60x builds.
|
||||
# 01k,19apr06,mcm Fix for SPR#118479 - problem with Altivec options.
|
||||
# 01j,28oct04,to removed -fno-zero-initialized-in-bss (now in defs.gnu)
|
||||
# 01i,27may04,to 970 cleanups.
|
||||
# 01h,19apr04,to Add -fno-zero-initialized-in-bss flag for gcc3.x (tmp?)
|
||||
# 01g,14apr04,rec PPC970 support
|
||||
# 01f,02jul04,pch SPR 98864: AltiVec support for gnu build of fioLib
|
||||
# 01e,08jun04,pch set _WRS_HARDWARE_FP for hard-float 440
|
||||
# 01d,04feb04,pch PPC32 floating-point adjustments
|
||||
# 01c,07nov03,c_c Removed Compiler definitions.
|
||||
# 01b,05feb03,pch Add CPU_VARIANT support
|
||||
# 01a,11dec02,pch Created (from make.PPC440gnu vn 01f).
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains definitions and flags for the gnu tools
|
||||
# (compiler, assembler, linker etc.) to build for a generic
|
||||
# PowerPC with PPC60x hardware floating point.
|
||||
# If building for a specific processor (as a variant),
|
||||
# defs.ppc will set its type number into PPC32VARIANT.
|
||||
#*/
|
||||
|
||||
CPU = PPC32
|
||||
TOOL = gnu
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
ifneq ($(PPC32VARIANT),)
|
||||
# default gnu cpu flag *usually* matches the PPC32VARIANT value
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=$(PPC32VARIANT)
|
||||
else
|
||||
CC_ARCH_SPEC = -DPPC32_fp60x
|
||||
# *** TEMP HACK: enable AltiVec support for math/fioLib.c
|
||||
# *** Remove this when the coprocessor abstraction
|
||||
# *** supports printf/scanf format extensions.
|
||||
|
||||
OPTION_ALTIVEC_C = -maltivec -D_WRS_ALTIVEC_SUPPORT -mabi=altivec
|
||||
endif
|
||||
|
||||
ifeq ($(PPC32VARIANT),85XX)
|
||||
ifeq ($(LIB_DIR_TAG),_ppc85XX_e500mc)
|
||||
CC_ARCH_SPEC = -mcpu=e500mc
|
||||
else
|
||||
ifeq ($(CPU_VARIANT),_ppc85XX_e500mc)
|
||||
CC_ARCH_SPEC = -mcpu=e500mc
|
||||
else
|
||||
ifeq ($(LIB_DIR_TAG),_ppc85XX_e6500)
|
||||
CC_ARCH_SPEC = -mcpu=e500mc
|
||||
else
|
||||
ifeq ($(CPU_VARIANT),_ppc85XX_e6500)
|
||||
CC_ARCH_SPEC = -mcpu=e500mc
|
||||
else
|
||||
_WRS_CONFIG_FP ?= soft
|
||||
|
||||
# Make sure there is no SPE instruction generated by disabling SPE ABI.
|
||||
# This is added to be safe in case GCC has an issue.
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=8540 -mabi=no-spe
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(PPC32VARIANT),465)
|
||||
CC_ARCH_SPEC = -mcpu=440
|
||||
endif
|
||||
|
||||
ifeq ($(PPC32VARIANT),604)
|
||||
OPTION_ALTIVEC_AS = -Wa,-maltivec -mabi=altivec
|
||||
OPTION_ALTIVEC_C = -maltivec -mabi=altivec
|
||||
endif
|
||||
|
||||
# not currently supported
|
||||
|
||||
ifeq ($(PPC32VARIANT),970)
|
||||
CC_ARCH_SPEC = -mcpu=power4 -Wa,-mppc64bridge
|
||||
OPTION_ALTIVEC_AS = -Wa,-maltivec -mabi=altivec
|
||||
OPTION_ALTIVEC_C = -maltivec -mabi=altivec
|
||||
endif
|
||||
|
||||
ifeq ($(CPU_VARIANT),_ppc85XX_e6500)
|
||||
OPTION_ALTIVEC_AS = -Wa,-maltivec -mabi=altivec
|
||||
OPTION_ALTIVEC_C = -maltivec -mabi=altivec
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC32gnu
|
||||
@@ -0,0 +1,64 @@
|
||||
# make.PPC32sfgnu - GNU compilation tools definitions for generic PowerPC
|
||||
#
|
||||
# Copyright 2004, 2011-2013 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01g,29jan13,h_k replaced XXX with TODO.
|
||||
# 01f,24jul12,h_k added e6500 CPU variant support. (WIND00333229)
|
||||
# 01f,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# 01e,13jun11,mze add debug
|
||||
# 01d,23may11,syt Added support for PPC465
|
||||
# 01c,12jan11,kab Fix e500mc
|
||||
# 01b,03mar04,mil Added support for PPC85XX.
|
||||
# 01a,04feb04,pch Created (from make.PPC32gnu vn 01c).
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains definitions and flags for the gnu tools
|
||||
# (compiler, assembler, linker etc.) to build for a generic
|
||||
# PowerPC without PPC60x hardware floating point.
|
||||
# If building for a specific processor (as a variant),
|
||||
# defs.ppc will set its type number into PPC32VARIANT.
|
||||
#*/
|
||||
|
||||
CPU = PPC32
|
||||
TOOL = sfgnu
|
||||
|
||||
_WRS_CONFIG_FP ?= soft
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
ifneq ($(PPC32VARIANT),)
|
||||
C_ARCH_SPEC = -mcpu=$(PPC32VARIANT)
|
||||
endif
|
||||
|
||||
ifeq ($(PPC32VARIANT),85XX)
|
||||
ifeq ($(LIB_DIR_TAG),_ppc85XX_e500mc)
|
||||
CC_ARCH_SPEC = -mcpu=e500mc
|
||||
else
|
||||
ifeq ($(CPU_VARIANT),_ppc85XX_e500mc)
|
||||
CC_ARCH_SPEC = -mcpu=e500mc
|
||||
else
|
||||
ifeq ($(CPU_VARIANT),_ppc85XX_e6500)
|
||||
# TODO: Replace e500mc with e6500 once the cpu option is available.
|
||||
CC_ARCH_SPEC = -mcpu=e500mc -msoft-float -mstrict-align
|
||||
else
|
||||
# Make sure there is no SPE instruction generated by disabling SPE ABI.
|
||||
# This is added to be safe in case GCC has an issue.
|
||||
CC_ARCH_SPEC = -mcpu=8540 -mabi=no-spe
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(PPC32VARIANT),465)
|
||||
CC_ARCH_SPEC = -mcpu=440
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC32sfgnu
|
||||
@@ -0,0 +1,59 @@
|
||||
# make.PPC403gnu - GNU compilation tools definitions for PowerPC 403
|
||||
#
|
||||
# Copyright 1995-2003, 2011, 2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01z,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# 01y,13jun11,mze add debug
|
||||
# 01x,08sep08,pee defining WRS_CONFIG_FP
|
||||
# 01w,10dec03,sn added -msoft-float to allow the compiler to correctly find
|
||||
# its own libraries (needed when we build target/src/tool)
|
||||
# 01x,26nov03,c_c Use += instead of := for AS assignment.
|
||||
# 01w,07nov03,c_c Removed Compiler definitions.
|
||||
# 01v,31jan03,pch Add PPC32 support
|
||||
# 01u,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# 01t,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01s,10dec01,tpw Ensure ROM_SIZE defaults to 0x0 if the macro is not set.
|
||||
# 01r,05dec01,tpw Utilize DOTBOOT{RAM,ROM} linker scripts on all PPC4xx BSPs.
|
||||
# 01q,16nov01,mil Changed VX_CPU_FAMILY from PPC to ppc.
|
||||
# 01p,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01o,11oct01,dat SPR 20403, OPTIM_DRIVER must have -fvolatile
|
||||
# 01n,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01m,18oct00,sn removed -fno-for-scope
|
||||
# 01l,16oct00,sn added include gnu; removed LIBS defn
|
||||
# 01k,18jan99,sn Defined C++_TEMPLATE_INST
|
||||
# 01j,27oct98,ms undid 01j
|
||||
# 01i,02apr98,pcn Removed Objcopy changes from Tempest view
|
||||
# 01h,15dec97,pcn Added Objcopy in BSP build.
|
||||
# 01g,18sep97,ms added ARCH_DIR
|
||||
# 01f,09dec96,tpr Removed GNU path in LIBS.
|
||||
# 01e,04oct96,yp Added -B option so compiler driver doesn't need EXEC_PREFIX,
|
||||
# added CC_ARCH_SPEC for machine specific flags
|
||||
# 01d,16jul96,tpr removed EXTRA_DEFINE = -D_GNU_TOOL
|
||||
# 01c,01apr96,tam added "-mstrict-align" flag, and definition for LIBS.
|
||||
# 01b,06mar96,tam removed "-msdata" flag.
|
||||
# 01a,31jan96,tam written from make.PPC603gnu 01b version.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PowerPC 403 specific definitions and flags for the
|
||||
# gnu tools (compiler, assembler, linker etc.)
|
||||
#*/
|
||||
|
||||
CPU = PPC403
|
||||
TOOL = gnu
|
||||
|
||||
_WRS_CONFIG_FP = soft
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=403
|
||||
AS += -m403
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC403gnu
|
||||
@@ -0,0 +1,51 @@
|
||||
# make.PPC405gnu - GNU compilation tools definitions for PowerPC 405
|
||||
#
|
||||
# Copyright 1995-2003, 2011, 2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01r,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# 01q,13jun11,mze add debug
|
||||
# 01p,08sep08,pee defining WRS_CONFIG_FP
|
||||
# 01o,10aug04,kab SPR#100219: support for TOOL=sfdiab, sfgnu.
|
||||
# 01n,10dec03,sn added -msoft-float to allow the compiler to correctly find
|
||||
# its own libraries (needed when we build target/src/tool)
|
||||
# 01o,26nov03,c_c Use += instead of := for AS assignment.
|
||||
# 01n,07nov03,c_c Removed Compiler definitions.
|
||||
# 01m,31jan03,pch Add PPC32 support
|
||||
# 01l,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# removed -fno-for-scope
|
||||
# 01k,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01j,10dec01,tpw Ensure ROM_SIZE defaults to 0x0 if the macro is not set.
|
||||
# 01i,05dec01,tpw Utilize DOTBOOT{RAM,ROM} linker scripts on all PPC4xx BSPs.
|
||||
# 01h,16nov01,mil Changed VX_CPU_FAMILY from PPC to ppc.
|
||||
# 01g,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01f,11oct01,dat SPR 20403, OPTIM_DRIVER must have -fvolatile
|
||||
# 01e,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01d,22may01,pch Remove unneeded LIBS definition
|
||||
# 01c,17nov00,jrs Change over to native 405 architecture.
|
||||
# 01b,24oct00,s_m renaming cpu type
|
||||
# 01a,22jun2k,alp Created from make.PPC403gnu.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PowerPC 405 specific definitions and flags for the
|
||||
# gnu tools (compiler, assembler, linker etc.)
|
||||
#*/
|
||||
|
||||
CPU = PPC405
|
||||
TOOL = gnu
|
||||
|
||||
_WRS_CONFIG_FP = soft
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=405
|
||||
AS += -m405
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC405gnu
|
||||
@@ -0,0 +1,50 @@
|
||||
# make.PPC405sfgnu - GNU compilation tools definitions for PowerPC 405
|
||||
#
|
||||
# Copyright 1995-2003, 2011, 2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01q,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# 01p,13jun11,mze add debug
|
||||
# 01o,10aug04,kab SPR#100219: support for TOOL=sfdiab, sfgnu.
|
||||
# 01n,10dec03,sn added -msoft-float to allow the compiler to correctly find
|
||||
# its own libraries (needed when we build target/src/tool)
|
||||
# 01o,26nov03,c_c Use += instead of := for AS assignment.
|
||||
# 01n,07nov03,c_c Removed Compiler definitions.
|
||||
# 01m,31jan03,pch Add PPC32 support
|
||||
# 01l,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# removed -fno-for-scope
|
||||
# 01k,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01j,10dec01,tpw Ensure ROM_SIZE defaults to 0x0 if the macro is not set.
|
||||
# 01i,05dec01,tpw Utilize DOTBOOT{RAM,ROM} linker scripts on all PPC4xx BSPs.
|
||||
# 01h,16nov01,mil Changed VX_CPU_FAMILY from PPC to ppc.
|
||||
# 01g,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01f,11oct01,dat SPR 20403, OPTIM_DRIVER must have -fvolatile
|
||||
# 01e,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01d,22may01,pch Remove unneeded LIBS definition
|
||||
# 01c,17nov00,jrs Change over to native 405 architecture.
|
||||
# 01b,24oct00,s_m renaming cpu type
|
||||
# 01a,22jun2k,alp Created from make.PPC403gnu.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PowerPC 405 specific definitions and flags for the
|
||||
# gnu tools (compiler, assembler, linker etc.)
|
||||
#*/
|
||||
|
||||
CPU = PPC405
|
||||
TOOL = sfgnu
|
||||
|
||||
_WRS_CONFIG_FP = soft
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=405
|
||||
AS += -m405
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC405sfgnu
|
||||
@@ -0,0 +1,45 @@
|
||||
# make.PPC440gnu - GNU compilation tools definitions for PowerPC 440
|
||||
#
|
||||
# Copyright 1995-2004, 2008, 2011, 2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01m,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# 01l,13jun11,mze add debug
|
||||
# 01k,08sep08,pee adding WRS_CONFIG_FP definition.
|
||||
# 01j,09aug04,kab SPR#100219: support for TOOL=sfdiab, sfgnu.
|
||||
# 01h,10dec03,sn added -msoft-float to allow the compiler to correctly find
|
||||
# its own libraries (needed when we build target/src/tool)
|
||||
# 01i,26nov03,c_c Use += instead of := for AS assignment.
|
||||
# 01h,07nov03,c_c Removed Compiler definitions.
|
||||
# 01g,12dec02,pch Add PPC32 support
|
||||
# 01f,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# remove -fno-for-scope
|
||||
# 01e,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01d,10dec01,tpw Ensure ROM_SIZE defaults to 0x0 if the macro is not set.
|
||||
# 01c,05dec01,tpw Utilize DOTBOOT{RAM,ROM} linker scripts on all PPC4xx BSPs.
|
||||
# 01b,27nov01,pch merged in make.PPC405gnu vns 01e-01h
|
||||
# 01a,13aug01,pch Created (from make.PPC405gnu vn 01d).
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PowerPC 440 specific definitions and flags for the
|
||||
# gnu tools (compiler, assembler, linker etc.)
|
||||
#*/
|
||||
|
||||
CPU = PPC440
|
||||
TOOL = gnu
|
||||
|
||||
_WRS_CONFIG_FP = soft
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=440
|
||||
AS += -m440
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC440gnu
|
||||
@@ -0,0 +1,44 @@
|
||||
# make.PPC440sfgnu - GNU compilation tools definitions for PowerPC 440
|
||||
#
|
||||
# Copyright 1995-2004, 2011, 2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01l,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# 01k,13jun11,mze add debug
|
||||
# 01j,09aug04,kab SPR#100219: support for TOOL=sfdiab, sfgnu.
|
||||
# 01h,10dec03,sn added -msoft-float to allow the compiler to correctly find
|
||||
# its own libraries (needed when we build target/src/tool)
|
||||
# 01i,26nov03,c_c Use += instead of := for AS assignment.
|
||||
# 01h,07nov03,c_c Removed Compiler definitions.
|
||||
# 01g,12dec02,pch Add PPC32 support
|
||||
# 01f,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# remove -fno-for-scope
|
||||
# 01e,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01d,10dec01,tpw Ensure ROM_SIZE defaults to 0x0 if the macro is not set.
|
||||
# 01c,05dec01,tpw Utilize DOTBOOT{RAM,ROM} linker scripts on all PPC4xx BSPs.
|
||||
# 01b,27nov01,pch merged in make.PPC405gnu vns 01e-01h
|
||||
# 01a,13aug01,pch Created (from make.PPC405gnu vn 01d).
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PowerPC 440 specific definitions and flags for the
|
||||
# gnu tools (compiler, assembler, linker etc.)
|
||||
#*/
|
||||
|
||||
CPU = PPC440
|
||||
TOOL = sfgnu
|
||||
|
||||
_WRS_CONFIG_FP = soft
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=440
|
||||
AS += -m440
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC440sfgnu
|
||||
@@ -0,0 +1,62 @@
|
||||
# make.PPC603gnu - GNU compilation tools definitions for PowerPC 603/604
|
||||
#
|
||||
# Copyright 1995-2004, 2006-2007, 2011, 2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 02e,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# 02d,13jun11,mze add debug
|
||||
# 02c,02aug07,mcm GCC 4.1.2 has now implemented the -fno-implicit-fp option;
|
||||
# the option had been removed while there was no support for
|
||||
# it.
|
||||
# 02b,15may07,mcm Remove -mno-implicit-fp
|
||||
# 02a,06jun06,dtr Add upport 603 hw/sw fp.
|
||||
# 01z,06feb04,pch add missing -mno-implicit-fp
|
||||
# 01y,07nov03,c_c Removed Compiler definitions.
|
||||
# 01x,31jan03,pch Add PPC32 support
|
||||
# 01w,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# 01v,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01u,16nov01,mil Changed VX_CPU_FAMILY from PPC to ppc.
|
||||
# 01t,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01s,11oct01,dat SPR 20403, OPTIM_DRIVER must have -fvolatile
|
||||
# 01r,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01q,18oct00,sn removed -fno-for-scope
|
||||
# 01p,16oct00,sn added include gnu; removed LIBS defn
|
||||
# 01o,09oct00,sn Added -mcpu=603
|
||||
# 01n,18jan99,sn Defined C++_TEMPLATE_INST
|
||||
# 01m,27oct98,ms undid 01m
|
||||
# 01l,02apr98,pcn Removed Objcopy changes from Tempest view
|
||||
# 01k,15dec97,pcn Added Objcopy in BSP build.
|
||||
# 01j,18sep97,ms added ARCH_DIR
|
||||
# 01i,04oct96,yp Added -B option so compiler driver doesn't need EXEC_PREFIX,
|
||||
# added CC_ARCH_SPEC for machine specific flags
|
||||
# 01h,06aug96,tam added -mstrict-align flag.
|
||||
# 01g,16jul96,tpr removed EXTRA_DEFINE
|
||||
# 01f,04feb96,tpr removed -msdata flag.
|
||||
# 01e,23feb96,yp added defs for ELF tools
|
||||
# 01d,14feb96,tpr moved -msdata from EXTRA_DEFINE to CC_OPTIM_NORMAL.
|
||||
# 01c,13feb96,tpr removed Cfront support for PowerPC.
|
||||
# 01b,27jan96,tpr replaced gccppc by ccppc.
|
||||
# 01a,29nov95,tpr written from make.PPC603diab 01d version.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PowerPC 603/604 specific definitions and flags for the
|
||||
# gnu tools (compiler, assembler, linker etc.)
|
||||
#*/
|
||||
|
||||
CPU = PPC603
|
||||
TOOL = gnu
|
||||
|
||||
_WRS_CONFIG_FP ?= hard
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=603
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC603gnu
|
||||
@@ -0,0 +1,76 @@
|
||||
# make.PPC604gnu - GNU compilation tools definitions for PowerPC 604
|
||||
#
|
||||
# Copyright 1995-2004, 2006-2007, 2011, 2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 02h,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# 02g,13jun11,mze add debug
|
||||
# 02f,12apr10,pee locally enabling SMP build specs for bdgen
|
||||
# 02e,02aug07,mcm GCC 4.1.2 has now implemented the -fno-implicit-fp option;
|
||||
# the option had been removed while there was no support for
|
||||
# it.
|
||||
# 02d,15may07,mcm Remove -mno-implicit-fp
|
||||
# 02c,19apr06,mcm Fix for SPR#118479 - problem with Altivec options.
|
||||
# 02b,06feb04,pch add missing -mno-implicit-fp
|
||||
# 02a,07nov03,c_c Removed Compiler definitions.
|
||||
# 02a,05nov03,sn Updated definitions of OPTION_ALTIVEC_C/AS for gcc3
|
||||
# 01z,31jan03,pch Add PPC32 support
|
||||
# 01y,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# 01x,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01w,16nov01,mil Changed VX_CPU_FAMILY from PPC to ppc.
|
||||
# 01v,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01u,25oct01,jab added OPTION_ALTIVEC_C make variable
|
||||
# 01t,23oct01,jab added OPTION_ALTIVEC_AS
|
||||
# 01s,11oct01,dat SPR 20403, OPTIM_DRIVER must have -fvolatile
|
||||
# 01r,20sep01,dat Moving to h/tool/gnu
|
||||
# 01q,02apr01,kab Removing -fvec: too invasive for full build
|
||||
# 01p,27mar01,pcs ADD -fvec option to pull in altivec awareness in the
|
||||
# compiler in CC_ARCH_SPEC.
|
||||
# 01o,18oct00,sn removed -fno-for-scope
|
||||
# 01n,16oct00,sn added include gnu; removed LIBS defn
|
||||
# 01m,09oct00,sn Added -mcpu=604
|
||||
# 01l,18jan99,sn Defined C++_TEMPLATE_INST
|
||||
# 01k,27oct98,ms undid 01k
|
||||
# 01j,02apr98,pcn Removed Objcopy changes from Tempest view
|
||||
# 01i,15dec97,pcn Added Objcopy in BSP build.
|
||||
# 01h,18sep97,ms added ARCH_DIR
|
||||
# 01g,04oct96,yp Added -B option so compiler driver doesn't need EXEC_PREFIX,
|
||||
# added CC_ARCH_SPEC for machine specific flags
|
||||
# 01f,06aug96,tam added -mstrict-align flag.
|
||||
# 01e,16jul96,tpr removed EXTRA_DEFINE = -D_GNU_TOOL.
|
||||
# 01d,04mar96,tpr removed -msdata flag.
|
||||
# 01c,23feb96,yp added defs for ELF tools
|
||||
# 01b,14feb96,tpr moved -msdata from EXTRA_DEFINE to CC_OPTIM_NORMAL.
|
||||
# 01a,12feb96,tpr written from make.PPC603gnu 01c version.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PowerPC 604 specific definitions and flags for the
|
||||
# gnu tools (compiler, assembler, linker etc.)
|
||||
#*/
|
||||
|
||||
CPU = PPC604
|
||||
TOOL = gnu
|
||||
|
||||
_WRS_CONFIG_FP ?= hard
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=604
|
||||
|
||||
ifeq ($(_WRS_CONFIG_FP),hard)
|
||||
OPTION_ALTIVEC_AS = -Wa,-maltivec -mabi=altivec
|
||||
OPTION_ALTIVEC_C = -maltivec -mabi=altivec
|
||||
endif
|
||||
|
||||
ifdef _BDGEN_
|
||||
MP_OPTION_PPC604_SMP = TRUE
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC604gnu
|
||||
@@ -0,0 +1,57 @@
|
||||
# make.PPC85XXe500v2gnu - GNU compilation tools definitions for generic PowerPC
|
||||
#
|
||||
# Copyright (c) 2007-2008, 2010-2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01g,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# disabled _e500mc support just in case. (WIND00346346)
|
||||
# 01f,13jun11,mze add debug
|
||||
# 01e,13apr10,pee locally enabling SMP build specs for bdgen
|
||||
# 01d,29aug08,pee adding _WRS_CONFIG_FP definition.
|
||||
# 01c,17dec07,dtr UPdate flags for latest compiler.
|
||||
# 01b,03dec07,dtr Update target flags.
|
||||
# 01a,11dec02,pch Created (from make.PPC440gnu vn 01f).
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains definitions and flags for the gnu tools
|
||||
# (compiler, assembler, linker etc.) to build for a generic
|
||||
# PowerPC with PPC60x hardware floating point.
|
||||
# If building for a specific processor (as a variant),
|
||||
# defs.ppc will set its type number into PPC32VARIANT.
|
||||
#*/
|
||||
|
||||
CPU = PPC85XX
|
||||
TOOL = e500v2gnu
|
||||
|
||||
ifeq ($(LIB_DIR_TAG),_e500mc)
|
||||
$(error LIB_DIR_TAG=_e500mc is not supported in this build spec!)
|
||||
else
|
||||
ifeq ($(CPU_VARIANT),_e500mc)
|
||||
$(error CPU_VARIANT=_e500mc is not supported in this build spec!)
|
||||
endif
|
||||
endif
|
||||
|
||||
_WRS_CONFIG_FP ?= e500v2
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
# The defs.ppc will override this with -te500v2 if _WRS_CONFIG_FP is e500v2.
|
||||
# We set -mcpu=8540 here in case the _WRS_CONFIG_FP is soft.
|
||||
#
|
||||
# Make sure there is no SPE instruction generated by disabling SPE ABI.
|
||||
# This is added to be safe in case GCC has an issue.
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=8540 -mabi=no-spe
|
||||
|
||||
ifdef _BDGEN_
|
||||
MP_OPTION_PPC85XX_SMP = TRUE
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC85XXe500v2gnu
|
||||
@@ -0,0 +1,83 @@
|
||||
# make.PPC85XXgnu - GNU compilation tools definitions for PowerPC e500 Core
|
||||
#
|
||||
# Copyright 1995-2004, 2008, 2010-2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute or otherwise make use of this software
|
||||
# may be licensed only pursuant to the terms of an applicable Wind River
|
||||
# license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 02i,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# disabled _e500mc support. (WIND00346346)
|
||||
# 02h,14feb12,h_k updated compiler option for e500mc to support HW FPU.
|
||||
# (WIND00333971, WIND00345701)
|
||||
# 02g,13jun11,mze add debug
|
||||
# 02f,13apr10,pee locally enabling SMP build specs for bdgen
|
||||
# 02e,08sep08,pee adding WRS_CONFIG_FP definition.
|
||||
# 02d,22jul08,pee adding e500v2 support for VSB.
|
||||
# 02c,04nov04,dtr SPR 103587 - set soft float flag for backward compatibility
|
||||
# only.
|
||||
# 02b,09aug04,kab SPR#100219: support for TOOL=sfdiab, sfgnu.
|
||||
# 02a,27aug03,xav Change NM value to avoid failure on win32 host and SIZE
|
||||
# value to avoid warnings during the project creation.
|
||||
# 01z,08aug03,xav Change the CC compiler value to ccppc
|
||||
# 01y,01aug03,xav Set compilers values to specific e500 gnu 3.3 values
|
||||
# 01x,03jun03,dtr Changing cpu type to 8540.
|
||||
# 01w,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# 01v,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01u,16nov01,mil Changed VX_CPU_FAMILY from PPC to ppc.
|
||||
# 01t,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01s,11oct01,dat SPR 20403, OPTIM_DRIVER must have -fvolatile
|
||||
# 01r,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01q,18oct00,sn removed -fno-for-scope
|
||||
# 01p,16oct00,sn added include gnu; removed LIBS defn
|
||||
# 01o,09oct00,sn Added -mcpu=603
|
||||
# 01n,18jan99,sn Defined C++_TEMPLATE_INST
|
||||
# 01m,27oct98,ms undid 01m
|
||||
# 01l,02apr98,pcn Removed Objcopy changes from Tempest view
|
||||
# 01k,15dec97,pcn Added Objcopy in BSP build.
|
||||
# 01j,18sep97,ms added ARCH_DIR
|
||||
# 01i,04oct96,yp Added -B option so compiler driver doesn't need EXEC_PREFIX,
|
||||
# added CC_ARCH_SPEC for machine specific flags
|
||||
# 01h,06aug96,tam added -mstrict-align flag.
|
||||
# 01g,16jul96,tpr removed EXTRA_DEFINE
|
||||
# 01f,04feb96,tpr removed -msdata flag.
|
||||
# 01e,23feb96,yp added defs for ELF tools
|
||||
# 01d,14feb96,tpr moved -msdata from EXTRA_DEFINE to CC_OPTIM_NORMAL.
|
||||
# 01c,13feb96,tpr removed Cfront support for PowerPC.
|
||||
# 01b,27jan96,tpr replaced gccppc by ccppc.
|
||||
# 01a,29nov95,tpr written from make.PPC603diab 01d version.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PowerPC e500 core specific definitions and flags for the
|
||||
# gnu tools (compiler, assembler, linker etc.)
|
||||
#*/
|
||||
|
||||
CPU = PPC85XX
|
||||
TOOL = gnu
|
||||
|
||||
ifeq ($(LIB_DIR_TAG),_e500mc)
|
||||
$(error LIB_DIR_TAG=_e500mc is not supported in this build spec!)
|
||||
else
|
||||
ifeq ($(CPU_VARIANT),_e500mc)
|
||||
$(error CPU_VARIANT=_e500mc is not supported in this build spec!)
|
||||
endif
|
||||
endif
|
||||
|
||||
_WRS_CONFIG_FP ?= soft
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
# Make sure there is no SPE instruction generated by disabling SPE ABI.
|
||||
# This is added to be safe in case GCC has an issue.
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=8540 -mabi=no-spe
|
||||
|
||||
ifdef _BDGEN_
|
||||
MP_OPTION_PPC85XX_SMP = TRUE
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC85XXgnu
|
||||
@@ -0,0 +1,75 @@
|
||||
# make.PPC85XXsfgnu - GNU compilation tools definitions for PowerPC e500 Core
|
||||
#
|
||||
# Copyright 1995-2004, 2010-2012 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 02f,12apr12,h_k moved common env setting to defs.ppc.
|
||||
# disabled _e500mc support. (WIND00346346)
|
||||
# 02e,13jun11,mze add debug
|
||||
# 02d,13apr10,pee locally enabling SMP build specs for bdgen
|
||||
# 02c,03nov04,dtr SPR#103587:Ensure no hw float or SPE instructions produced.
|
||||
# 02b,09aug04,kab SPR#100219: support for TOOL=sfdiab, sfgnu.
|
||||
# 02a,27aug03,xav Change NM value to avoid failure on win32 host and SIZE
|
||||
# value to avoid warnings during the project creation.
|
||||
# 01z,08aug03,xav Change the CC compiler value to ccppc
|
||||
# 01y,01aug03,xav Set compilers values to specific e500 gnu 3.3 values
|
||||
# 01x,03jun03,dtr Changing cpu type to 8540.
|
||||
# 01w,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# 01v,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01u,16nov01,mil Changed VX_CPU_FAMILY from PPC to ppc.
|
||||
# 01t,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01s,11oct01,dat SPR 20403, OPTIM_DRIVER must have -fvolatile
|
||||
# 01r,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01q,18oct00,sn removed -fno-for-scope
|
||||
# 01p,16oct00,sn added include gnu; removed LIBS defn
|
||||
# 01o,09oct00,sn Added -mcpu=603
|
||||
# 01n,18jan99,sn Defined C++_TEMPLATE_INST
|
||||
# 01m,27oct98,ms undid 01m
|
||||
# 01l,02apr98,pcn Removed Objcopy changes from Tempest view
|
||||
# 01k,15dec97,pcn Added Objcopy in BSP build.
|
||||
# 01j,18sep97,ms added ARCH_DIR
|
||||
# 01i,04oct96,yp Added -B option so compiler driver doesn't need EXEC_PREFIX,
|
||||
# added CC_ARCH_SPEC for machine specific flags
|
||||
# 01h,06aug96,tam added -mstrict-align flag.
|
||||
# 01g,16jul96,tpr removed EXTRA_DEFINE
|
||||
# 01f,04feb96,tpr removed -msdata flag.
|
||||
# 01e,23feb96,yp added defs for ELF tools
|
||||
# 01d,14feb96,tpr moved -msdata from EXTRA_DEFINE to CC_OPTIM_NORMAL.
|
||||
# 01c,13feb96,tpr removed Cfront support for PowerPC.
|
||||
# 01b,27jan96,tpr replaced gccppc by ccppc.
|
||||
# 01a,29nov95,tpr written from make.PPC603diab 01d version.
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains PowerPC e500 core specific definitions and flags for the
|
||||
# gnu tools (compiler, assembler, linker etc.)
|
||||
#*/
|
||||
|
||||
CPU = PPC85XX
|
||||
TOOL = sfgnu
|
||||
|
||||
ifeq ($(LIB_DIR_TAG),_e500mc)
|
||||
$(error LIB_DIR_TAG=_e500mc is not supported in this build spec!)
|
||||
else
|
||||
ifeq ($(CPU_VARIANT),_e500mc)
|
||||
$(error CPU_VARIANT=_e500mc is not supported in this build spec!)
|
||||
endif
|
||||
endif
|
||||
|
||||
_WRS_CONFIG_FP ?= soft
|
||||
|
||||
include $(TGT_DIR)/h/tool/common/defs.ppc
|
||||
|
||||
CC_ARCH_SPEC = -mcpu=8540 -mabi=no-spe
|
||||
|
||||
ifdef _BDGEN_
|
||||
MP_OPTION_PPC85XX_SMP = TRUE
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.ppc
|
||||
|
||||
# end of make.PPC85XXsfgnu
|
||||
@@ -0,0 +1,61 @@
|
||||
# make.SIMLINUXgnu - GNU compilation tools definitions for Linux VxSim
|
||||
#
|
||||
# Copyright (c) 2003,2005-2006,2010-2011,2016 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01i,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug mode.
|
||||
# 01h,13jun11,mze add debug
|
||||
# 01g,27oct10,elp added -fno-omit-frame-pointer.
|
||||
# 01f,28jun10,elp adding required -mno-red-zone, -fno-implicit-fp
|
||||
# 01e,12jan10,elp 64bits support
|
||||
# 01d,30nov05,mcm Updates for GCC 3.4.4
|
||||
# 01c,10dec03,yvp Added ABI_SPEC.
|
||||
# 01b,07nov03,c_c Removed Compiler definitions.
|
||||
# 01a,17apr03,dbt written from make.SIMNTgnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains Linux VxSim specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = SIMLINUX
|
||||
TOOL = gnu
|
||||
CM = large
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.gnu
|
||||
|
||||
CC_OPTIM_XO = -O2
|
||||
CC_OPTIM_DEBUG =
|
||||
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG) -fvolatile -fno-defer-pop
|
||||
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fno-defer-pop
|
||||
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fvolatile -fno-defer-pop
|
||||
|
||||
# Generate code for (-march=) and schedule for (-mtune=) pentium
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
CC_ARCH_SPEC = -m64 -mcmodel=$(CM) -mno-red-zone -fno-implicit-fp \
|
||||
-fno-omit-frame-pointer
|
||||
LINK_FLAG_EXTRA = -m elf_x86_64_vxworks
|
||||
else
|
||||
CC_ARCH_SPEC = -mtune=i486 -march=i486
|
||||
endif
|
||||
|
||||
CC_ARCH_SPEC += -nostdlib -fno-builtin
|
||||
|
||||
TOOLENV = pentium
|
||||
VX_CPU_FAMILY = simlinux
|
||||
ARCH_DIR = simlinux
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
ABI_SPEC = x86-64
|
||||
else
|
||||
ABI_SPEC = x86
|
||||
endif
|
||||
|
||||
CF =
|
||||
|
||||
# end of make.SIMNTgnu
|
||||
@@ -0,0 +1,87 @@
|
||||
# make.SIMNTgnu - GNU compilation tools definitions for NTSIM
|
||||
#
|
||||
# Copyright (c) 1998-2003,2005,2010,2016 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 02d,19jul16,pee VXW6-85485 rearrange flags to fix option missing in debug mode.
|
||||
# 02c,13jun11,mze add debug
|
||||
# 02b,27oct10,elp added -fno-omit-frame-pointer.
|
||||
# 02a,28jun10,elp adding required -mno-red-zone, fno-implicit-fp.
|
||||
# 01z,12jan10,elp 64bits support
|
||||
# 01y,30nov05,mcm Updates for GCC 3.4.4
|
||||
# 01x,10dec03,yvp Added ABI_SPEC.
|
||||
# 01w,07nov03,c_c Removed Compiler definitions.
|
||||
# 01v,31mar03,jmp removed MACH_DEP redefinition, there is now a sysALib.s on
|
||||
# SIMNT.
|
||||
# 01u,18feb03,jmp modified to use pentium toolchain on SIMNT.
|
||||
# 01t,12feb02,sn removed obsolete refs to GCC_EXEC_PREFIX
|
||||
# 01s,05feb02,tpw Fix SPR 72107, PECOFF stabs not being relocated within GDB.
|
||||
# 01r,21jan02,sn removed unused C++_TEMPLATE_INST
|
||||
# 01q,28nov01,tpw Fix SPRs 30726 and 70932, stray sections causing trouble.
|
||||
# 01p,20nov01,jmp changed VX_CPU_FAMILY to simpc instead of SIMNT.
|
||||
# 01o,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01n,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01m,10apr01,sn Remove --force-stabs-reloc hack
|
||||
# 01l,21mar01,mrs Fix up flags.
|
||||
# 01k,16oct00,sn added include gnu; removed LIBS defn
|
||||
# 01j,31mar99,tdl Added $(LD_PARTIAL_LAST_FLAGS)
|
||||
# 01i,17dec98,sn Added def'n of C++_TEMPLATE_INST
|
||||
# 01h,07jul98,cym removed sysAlib.o from MACH_DEP
|
||||
# added --subsystem=windows to LD_FLAGS.
|
||||
# 01g,29jun98,cym removed .exe extension from executables.
|
||||
# 01f,16jun98,sn fixed def'n of TOOLENV
|
||||
# ensure that WIN32 and WINNT macros are *not* defined
|
||||
# 01e,29apr98,cym added .exe extension to executables
|
||||
# 01d,13mar98,jmb fix vxWorks.st build
|
||||
# 01c,13mar98,jmb fix bsp link
|
||||
# 01b,05mar98,jmb cleaned up (partial)
|
||||
# 01a,19jan98,jmb cribbed from make.I80386gnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains SIMNT specific definitions and flags for the GNU
|
||||
# software generation tools (compiler, assembler, linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = SIMNT
|
||||
TOOL = gnu
|
||||
CM = large
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.gnu
|
||||
|
||||
CC_OPTIM_DEBUG =
|
||||
CC_OPTIM_XO = -O2
|
||||
CC_OPTIM_DRIVER = $(CC_OPTIM_DEBUG) -fvolatile -fno-defer-pop
|
||||
CC_OPTIM_NORMAL = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fno-defer-pop
|
||||
CC_OPTIM_TARGET = $(CC_OPTIM_DEBUG) $(CC_OPTIM_XO) -fvolatile -fno-defer-pop
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
CC_ARCH_SPEC = -m64 -mcmodel=$(CM) -mno-red-zone -fno-implicit-fp \
|
||||
-fno-omit-frame-pointer
|
||||
LINK_FLAGS_EXTRA= -m elf_x86_64_vxworks
|
||||
else
|
||||
# Generate code for (-march=) and schedule for (-mtune=) pentium
|
||||
|
||||
CC_ARCH_SPEC = -mtune=i486 -march=i486
|
||||
endif
|
||||
|
||||
CC_ARCH_SPEC += -nostdlib -fno-builtin
|
||||
|
||||
|
||||
TOOLENV = pentium
|
||||
VX_CPU_FAMILY = simpc
|
||||
ARCH_DIR = simnt
|
||||
|
||||
ifdef _WRS_CONFIG_LP64
|
||||
ABI_SPEC = x86-64
|
||||
else
|
||||
ABI_SPEC = x86
|
||||
endif
|
||||
|
||||
CF =
|
||||
|
||||
# end of make.SIMNTgnu
|
||||
@@ -0,0 +1,53 @@
|
||||
# make.XSCALEgnu - GNU compilation tools definitions for Intel XScale
|
||||
#
|
||||
# Copyright (c) 2000-2003, 2008, 2023 Wind River Systems, Inc.
|
||||
#
|
||||
# The right to copy, distribute, modify or otherwise make use
|
||||
# of this software may be licensed only pursuant to the terms
|
||||
# of an applicable Wind River license agreement.
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01l,02jun23,mze added CC_ARCH_SPEC_BASE
|
||||
# 01k,20aug08,mze adding ENDIAN default
|
||||
# 01j,24jun08,pee VSB
|
||||
# 01i,05dec03,sn updated flags for gcc 3.3.2
|
||||
# 01h,10jan02,to move 'include defs.arm' after CPU and TOOL defines for
|
||||
# libgcc build
|
||||
# 01g,18dec01,to move common definitions to defs.arm
|
||||
# 01f,16nov01,t_m Change sysInit entry
|
||||
# 01e,30oct01,tpw Standardize kernel links and bootrom conversions.
|
||||
# 01d,19oct01,jb include of defs.gnu is out of sequence - fixed
|
||||
# 01c,25sep01,dat Location of defs.gnu changed to tool/gnu
|
||||
# 01b,05jun01,mem Remove HEX_FLAGS
|
||||
# 01a,05apr01,t_m add -fno-for-scope
|
||||
# 01a,22jan01,??? fix sarm to arm
|
||||
# 01b,09jan01,??? modify -mcpu for xscale...
|
||||
# 01a,26oct00,jb Removing the OS and OPT references
|
||||
# 01b,24oct00,scm modify compiler naming convention...
|
||||
# 01a,31aug00,scm based on make.ARMSA110gnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains Intel XScale little-endian-specific definitions
|
||||
# and flags for the GNU software generation tools (compiler, assembler,
|
||||
# linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = XSCALE
|
||||
TOOL = gnu
|
||||
|
||||
|
||||
ifeq ($(BUILD_ENDIAN_SUFFIX),be)
|
||||
_WRS_CONFIG_ENDIAN ?= big
|
||||
else
|
||||
_WRS_CONFIG_ENDIAN ?= little
|
||||
endif
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.arm
|
||||
|
||||
CC_ARCH_ENDIAN_SPEC_little = -txscale
|
||||
CC_ARCH_ENDIAN_SPEC_big = -txscalebe -Wa,-EB
|
||||
|
||||
CC_ARCH_SPEC = $(CC_ARCH_SPEC_BASE) $(CC_ARCH_ENDIAN_SPEC_$(_WRS_CONFIG_ENDIAN))
|
||||
|
||||
# end of make.XSCALEgnu
|
||||
@@ -0,0 +1,25 @@
|
||||
# make.XSCALEgnube - GNU compilation tools definitions for Intel XScale
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01d,24jun08,pee VSB
|
||||
# 01c,17dec03,mcm Workaround for SPR 92687
|
||||
# 01b,05dec03,sn updated flags for gcc 3.3.2
|
||||
# 01a,10jan02,to created from make.XSCALEgnu
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains Intel XScale big-endian-specific definitions
|
||||
# and flags for the GNU software generation tools (compiler, assembler,
|
||||
# linker etc.).
|
||||
#*/
|
||||
|
||||
CPU = XSCALE
|
||||
TOOL = gnube
|
||||
|
||||
_WRS_CONFIG_ENDIAN ?= big
|
||||
|
||||
include $(TGT_DIR)/h/tool/gnu/defs.arm
|
||||
|
||||
CC_ARCH_SPEC = -txscalebe -Wa,-EB
|
||||
|
||||
# end of make.XSCALEgnube
|
||||
@@ -0,0 +1,238 @@
|
||||
/* toolMacros.h - compile time macros for GNU C compiler */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2001, 2003-2006, 2008-2012, 2014 Wind River Systems, Inc.
|
||||
*
|
||||
* The right to copy, distribute or otherwise make use of this software
|
||||
* may be licensed only pursuant to the terms of an applicable Wind River
|
||||
* license agreement. No license to Wind River intellectual property rights
|
||||
* is granted herein. All rights not licensed by Wind River are reserved
|
||||
* by Wind River.
|
||||
*/
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
25aug14,dee allow predefinition of _WRS_DEPRECATED (VXW6-78473)
|
||||
02nov12,rec WIND00368368 fix THUMB symbol reference
|
||||
22jul11,mcm Fix for WIND00283661.
|
||||
12may10,cww Added _WRS_SECTION_RODATA and _WRS_SECTION_TEXT
|
||||
08feb10,mcm Fix for WIND00193234
|
||||
05nov09,mcm LP64 updates
|
||||
24jul09,kk added macro _WRS_USAGE_WARNING()
|
||||
11feb09,cww update _WRS_LIKELY and _WRS_UNLIKELY macros for LP64
|
||||
15jul08,to renamed expect macros to _WRS_LIKELY and _WRS_UNLIKELY
|
||||
moved SDA macros out of _WRS_NO_SPECIAL_SECTIONS conditionals
|
||||
16jun08,zl added _WRS_BARRIER()
|
||||
13may08,dlk Revert previous workaround, there's a better one.
|
||||
09may08,dlk Workaround for diab .data.fast/SDA conflict (WIND00123084).
|
||||
29apr08,zl added expect and prefetch macros
|
||||
25mar08,to added _WRS_SDA_DATA, _WRS_SDA_BSS and _WRS_SDA_CONST
|
||||
18dec06,aeg added _WRS_FUNC_NORETURN
|
||||
07jun06,jpb Updated for POSIX namespace conformance.
|
||||
Changed C preprocessor macro CPU_FAMILY to _VX_CPU_FAMILY.
|
||||
09sep05,jln added _WRS_ABSOLUTE_EXTERN
|
||||
08aug05,wap Add section relocation macros
|
||||
02oct04,mcm Fixing definition of _WRS_ABSOLUTE_ for Pentium.
|
||||
25aug04,h_k updated _WRS_ABSOLUTE for the arches which require
|
||||
specific semantics, such as arm and sh. (SPR #100726)
|
||||
30jul04,mcm Undefining WRS_GNU_VAR_MACROS since GCC 3.3.2 supports the
|
||||
ANSI syntax
|
||||
17mar04,dat remove leading underscore from _absSymbols_xxx (95052)
|
||||
05mar04,dat fix abs symbols
|
||||
05feb04,dat add macros for _WRS_ABSOLUTE
|
||||
26nov03,dat Adding INLINE and DEPRECATED
|
||||
16oct03,dat New macros for INLINE both C and ASM
|
||||
23sep03,zl added _WRS_CONSTRUCTOR definition
|
||||
26nov01,dat New macros for alignment checking and unaligned copies
|
||||
14nov01,dat Adding underscores to macro names
|
||||
18apr01,dat written
|
||||
*/
|
||||
|
||||
#ifndef __INCtoolMacrosh
|
||||
#define __INCtoolMacrosh
|
||||
|
||||
#define _WRS_PACK_ALIGN(x) __attribute__((packed, aligned(x)))
|
||||
|
||||
#define _WRS_ASM(x) __asm__ volatile (x)
|
||||
|
||||
#define _WRS_UNQUALIFIED_ASM(x) __asm__ (x)
|
||||
|
||||
#define _WRS_BARRIER(x) __asm volatile (x ::: "memory")
|
||||
|
||||
#define _WRS_DATA_ALIGN_BYTES(x) __attribute__((aligned(x)))
|
||||
|
||||
#undef _WRS_GNU_VAR_MACROS /* GCC 3.3.2 supports the ANSI syntax */
|
||||
|
||||
/* Macros for alignment issues */
|
||||
|
||||
#define _WRS_ALIGNOF(x) __alignof__(x)
|
||||
|
||||
#define _WRS_ALIGN_CHECK(ptr, type) \
|
||||
(((int)(ptr) & ( _WRS_ALIGNOF(type) - 1)) == 0 ? TRUE : FALSE)
|
||||
|
||||
#define _WRS_UNALIGNED_COPY(pSrc, pDest, size) \
|
||||
( __builtin_memcpy ((pDest), (void *)(pSrc), size))
|
||||
|
||||
/*
|
||||
* Macros to force code or data into specific sections. These
|
||||
* can be used to force the compiler to place a given piece of
|
||||
* code or data into a separate section. The idea is to improve
|
||||
* cache usage by either clustering frequently referenced code
|
||||
* close together, or moving infrequently used code (i.e. "run-once"
|
||||
* init routines that are only used during bootstrap) out of the
|
||||
* way. The "init" sections are used for the latter case, while
|
||||
* the "fast" sections are used to group performance-critical
|
||||
* routines together.
|
||||
*
|
||||
* Note: _WRS_FASTDATA or _WRS_INITDATA should occur at the
|
||||
* start of a declaration rather than at the end, as a workaround
|
||||
* for WIND00123084. For example, use
|
||||
* \cs
|
||||
* extern _WRS_FASTDATA void * myFastPtr;
|
||||
* \ce
|
||||
* rather than
|
||||
* \cs
|
||||
* extern void * myFastPtr _WRS_FASTDATA;
|
||||
* \ce
|
||||
*/
|
||||
|
||||
#ifndef _WRS_NO_SPECIAL_SECTIONS
|
||||
#define _WRS_INITTEXT __attribute__ ((__section__ (".text.init")))
|
||||
#define _WRS_FASTTEXT __attribute__ ((__section__ (".text.fast")))
|
||||
#define _WRS_INITDATA __attribute__ ((__section__ (".data.init")))
|
||||
#define _WRS_FASTDATA __attribute__ ((__section__ (".data.fast")))
|
||||
#else
|
||||
#define _WRS_INITTEXT
|
||||
#define _WRS_FASTTEXT
|
||||
#define _WRS_INITDATA
|
||||
#define _WRS_FASTDATA
|
||||
#endif
|
||||
|
||||
/* Standard sections */
|
||||
|
||||
#define _WRS_SECTION_TEXT __attribute__ ((__section__ (".text")))
|
||||
#define _WRS_SECTION_RODATA __attribute__ ((__section__ (".rodata")))
|
||||
|
||||
/* SDA section macros */
|
||||
|
||||
#define _WRS_SDA_DATA __attribute__ ((__section__ (".sdata")))
|
||||
#define _WRS_SDA_BSS __attribute__ ((__section__ (".sbss")))
|
||||
#define _WRS_SDA_CONST __attribute__ ((__section__ (".sdata2")))
|
||||
|
||||
/*
|
||||
* macro for static initializer (constructor) definitions; assumes
|
||||
* GCC 3.3 or later with C constructor support.
|
||||
*/
|
||||
|
||||
#define _WRS_CONSTRUCTOR(rtn,lvl) \
|
||||
__attribute__((constructor(lvl))) void _STI__##lvl##__##rtn (void)
|
||||
|
||||
/*
|
||||
* New Basix macros, (Portable Coding Guide, v7)
|
||||
*
|
||||
* HAS_GCC_ASM_SYNTAX if Gnu inline assembly syntax is supported.
|
||||
* HAS_DCC_ASM_SYNTAX if Diab inline assembly function syntax is supported.
|
||||
* INLINE for static inline C functions,
|
||||
* DEPRECATED for obsolete API warnings.
|
||||
* USAGE_WARNING for API warnings - currently same as DEPRECATED, future plan
|
||||
* to add this.
|
||||
*/
|
||||
|
||||
|
||||
#define _WRS_HAS_GCC_ASM_SYNTAX
|
||||
#undef _WRS_HAS_DCC_ASM_SYNTAX
|
||||
#define _WRS_INLINE static __inline__
|
||||
|
||||
#ifndef _WRS_DEPRECATED
|
||||
#define _WRS_DEPRECATED(x) __attribute__((deprecated))
|
||||
#define _WRS_USAGE_WARNING(x) _WRS_DEPRECATED(x)
|
||||
#endif /* ifndef _WRS_DEPRECATED */
|
||||
|
||||
#ifndef LEADING_UNDERSCORE
|
||||
#define LEADING_UNDERSCORE FALSE /* default in B6 except SH arch */
|
||||
#endif /* LEADING_UNDERSCORE */
|
||||
|
||||
#if (LEADING_UNDERSCORE == TRUE)
|
||||
#define _WRS_ABSOLUTE(name,value) _WRS_ABSOLUTE_(_##name,value)
|
||||
#else /* LEADING_UNDERSCORE == FALSE */
|
||||
#define _WRS_ABSOLUTE(name,value) _WRS_ABSOLUTE_(name,value)
|
||||
#endif /* LEADING_UNDERSCORE == TRUE */
|
||||
|
||||
/* (New V7) For absolute symbol support. (use with semicolon) */
|
||||
|
||||
#if (_VX_CPU_FAMILY == _VX_ARM)
|
||||
/*
|
||||
* GNU/ARM backend does not have a proper operand modifier which does not
|
||||
* produces prefix # followed by value, such as %0 for PPC, PENTIUM, MIPS
|
||||
* and %O0 for SH. The workaround made here is using %B0 which converts
|
||||
* the value to ~(value). Thus "n"(~(value)) is set in operand constraint
|
||||
* to output (value) in the ARM specific _WRS_ABSOLUTE macro.
|
||||
* (The related SPR is #101463.)
|
||||
*/
|
||||
|
||||
#define _WRS_ABSOLUTE_(name,value) \
|
||||
__asm__ (".globl\t"#name \
|
||||
"\n\t.equ\t"#name",%B0" \
|
||||
"\n\t.type\t"#name",%%object" \
|
||||
:: "n"(~(value)))
|
||||
|
||||
#elif (_VX_CPU_FAMILY == _VX_SH)
|
||||
#define _WRS_ABSOLUTE_(name,value) \
|
||||
__asm__ (".globl\t"#name \
|
||||
"\n\t.equ\t"#name",%O0" \
|
||||
"\n\t.type\t"#name",@object" \
|
||||
:: "n"(value))
|
||||
|
||||
#elif (_VX_CPU_FAMILY == _VX_I80X86) || (_VX_CPU_FAMILY == _VX_SIMNT) || (_VX_CPU_FAMILY == _VX_SIMLINUX) || (_VX_CPU_FAMILY == _VX_SIMPENTIUM)
|
||||
#define _WRS_ABSOLUTE_(name,value) \
|
||||
__asm__ (".globl\t"#name \
|
||||
"\n\t.equ\t"#name",%P0" \
|
||||
"\n\t.type\t"#name",@object" \
|
||||
:: "n"(value))
|
||||
|
||||
#else /* _VX_CPU_FAMILY != _VX_ARM && _VX_CPU_FAMILY != _VX_SH && _VX_CPU_FAMILY != _VX_PENTIUM */
|
||||
#define _WRS_ABSOLUTE_(name,value) \
|
||||
__asm__ (".globl\t"#name \
|
||||
"\n\t.equ\t"#name",%0" \
|
||||
"\n\t.type\t"#name",@object" \
|
||||
:: "n"(value))
|
||||
|
||||
#endif /* _VX_CPU_FAMILY == _VX_ARM || _VX_CPU_FAMILY == _VX_SH && _VX_CPU_FAMILY != _VX_PENTIUM */
|
||||
|
||||
#define _WRS_ABSOLUTE_EXTERN(name) \
|
||||
extern const char name[]
|
||||
|
||||
/* code optimization macros using compiler extensions */
|
||||
|
||||
#define _WRS_FUNC_NORETURN __attribute__((noreturn))
|
||||
|
||||
#define _WRS_LIKELY(x) __builtin_expect((long)!!(x), 1L)
|
||||
#define _WRS_UNLIKELY(x) __builtin_expect((long)!!(x), 0L)
|
||||
|
||||
#define _WRS_READ_PREFETCH(ptr) __builtin_prefetch((ptr),0)
|
||||
#define _WRS_WRITE_PREFETCH(ptr) __builtin_prefetch((ptr),1)
|
||||
|
||||
|
||||
/* Prefix and suffix for assembly declarations (private function) */
|
||||
|
||||
#define _WRS_ABSOLUTE_BEGIN(x) \
|
||||
extern STATUS absSymbols_##x (void); \
|
||||
STATUS absSymbols_##x (void) {
|
||||
|
||||
#define _WRS_ABSOLUTE_END \
|
||||
return OK; }
|
||||
|
||||
|
||||
/*
|
||||
* For compatibility with v5 of portable C coding guide
|
||||
*
|
||||
* These versions are obsolete, please don't use them
|
||||
*/
|
||||
|
||||
#define WRS_PACK_ALIGN(x) _WRS_PACK_ALIGN(x)
|
||||
#define WRS_ASM(x) _WRS_ASM(x)
|
||||
#define WRS_DATA_ALIGN_BYTES(x) _WRS_DATA_ALIGN_BYTES(x)
|
||||
#undef WRS_GNU_VAR_MACROS
|
||||
|
||||
#endif /* __INCtoolMacrosh */
|
||||
Reference in New Issue
Block a user