original files of m241

This commit is contained in:
neelimap
2026-07-30 11:19:44 +05:30
parent 170c2b3f3a
commit afc7070c1f
12254 changed files with 7655111 additions and 0 deletions
+64
View File
@@ -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
+349
View File
@@ -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
+146
View File
@@ -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
+177
View File
@@ -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 ]
}
}
+98
View File
@@ -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
+118
View File
@@ -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
+238
View File
@@ -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 */