diff --git a/configure/os/CONFIG.Common.vxWorks-mpc8540 b/configure/os/CONFIG.Common.vxWorks-mpc8540 new file mode 100644 index 000000000..066c07db4 --- /dev/null +++ b/configure/os/CONFIG.Common.vxWorks-mpc8540 @@ -0,0 +1,21 @@ +# $Id +# +# Definitions for vxWorks-mpc8540 targets: MPC8540 CPU with >32MB RAM. +# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-mpc8540 +# +# This file is maintained by the EPICS build community. +#------------------------------------------------------- + +# Include definitions common to all vxWorks target archs +include $(CONFIG)/os/CONFIG.Common.vxWorksCommon + +# Vx GNU cross compiler suffix +CMPLR_SUFFIX = ppc + +ARCH_CLASS = ppc + +# Architecture specific build flags +ARCH_DEP_CPPFLAGS = -DCPU=PPC32 +ARCH_DEP_CFLAGS = -mcpu=8540 -msoft-float -mstrict-align -mlongcall + +GNU_TARGET = powerpc-wrs-vxworks diff --git a/configure/os/CONFIG.Common.vxWorks-ppc603 b/configure/os/CONFIG.Common.vxWorks-ppc603 index 1bfeb42ca..da844617e 100644 --- a/configure/os/CONFIG.Common.vxWorks-ppc603 +++ b/configure/os/CONFIG.Common.vxWorks-ppc603 @@ -1,10 +1,9 @@ -# CONFIG.Common.vxWorks-ppc603 -# # $Id$ -# This file is maintained by the build community. # -# Definitions for vxWorks-ppc603 target archs -# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-ppc603 +# Definitions for vxWorks-ppc603 targets: PPC603 and PMC8240 CPUs +# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc603 +# +# This file is maintained by the EPICS build community. #------------------------------------------------------- # Include definitions common to all vxWorks target archs diff --git a/configure/os/CONFIG.Common.vxWorks-ppc603_long b/configure/os/CONFIG.Common.vxWorks-ppc603_long index 96759b230..ef1edc4f0 100644 --- a/configure/os/CONFIG.Common.vxWorks-ppc603_long +++ b/configure/os/CONFIG.Common.vxWorks-ppc603_long @@ -1,22 +1,13 @@ -# CONFIG.Common.vxWorks-ppc603_long -# # $Id$ -# This file is maintained by the build community. # -# Definitions for vxWorks-ppc603 target archs with at least 32MB -# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-ppc603_long +# Definitions for vxWorks-ppc603 targets with >32MB of RAM +# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc603_long +# +# This file is maintained by the EPICS build community. #------------------------------------------------------- -# Include definitions common to all vxWorks target archs -include $(CONFIG)/os/CONFIG.Common.vxWorksCommon +# Inherit the settings from vxWorks-ppc603 +include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc603 -# Vx GNU cross compiler suffix -CMPLR_SUFFIX = ppc - -ARCH_CLASS = ppc - -# Architecture specific build flags -ARCH_DEP_CPPFLAGS = -DCPU=PPC603 -ARCH_DEP_CFLAGS = -mcpu=603 -mstrict-align -mlongcall - -GNU_TARGET = powerpc-wrs-vxworks +# Tell compiler to generate long branches +ARCH_DEP_CFLAGS += -mlongcall diff --git a/configure/os/CONFIG.Common.vxWorks-ppc604 b/configure/os/CONFIG.Common.vxWorks-ppc604 index 5c931acab..1b8db3168 100644 --- a/configure/os/CONFIG.Common.vxWorks-ppc604 +++ b/configure/os/CONFIG.Common.vxWorks-ppc604 @@ -1,10 +1,9 @@ -# CONFIG.Common.vxWorks-ppc604 -# # $Id$ -# This file is maintained by the build community. # -# Definitions for vxWorks-ppc604 target archs -# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-ppc604 +# Definitions for vxWorks-ppc604 targets: PPC604, MPC7xx and MPC74xx CPUs +# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc604 +# +# This file is maintained by the EPICS build community. #------------------------------------------------------- # Include definitions common to all vxWorks target archs @@ -12,11 +11,11 @@ include $(CONFIG)/os/CONFIG.Common.vxWorksCommon # Vx GNU cross compiler suffix CMPLR_SUFFIX = ppc - + ARCH_CLASS = ppc # Architecture specific build flags ARCH_DEP_CPPFLAGS = -DCPU=PPC604 -ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align +ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align -mno-implicit-fp GNU_TARGET = powerpc-wrs-vxworks diff --git a/configure/os/CONFIG.Common.vxWorks-ppc604_altivec b/configure/os/CONFIG.Common.vxWorks-ppc604_altivec new file mode 100644 index 000000000..dd017671c --- /dev/null +++ b/configure/os/CONFIG.Common.vxWorks-ppc604_altivec @@ -0,0 +1,21 @@ +# $Id$ +# +# Definitions for vxWorks-ppc604 targets with an Altivec and >32MB of RAM. +# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc604_altivec +# +# This file is maintained by the EPICS build community. +#------------------------------------------------------- + +# Inherit the settings from vxWorks-ppc604_long +include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long + +defval = $(if $(strip $(1),),$(1),$(2)) + +# Tell compiler to include altivec support +ALTIVEC_CFLAG_5 = -fvec + +# From 6.1 the altivec compiler option changed +ALTIVEC_CFLAG_6.0 = -fvec +ALTIVEC_CFLAG_6 = $(call defval,$(ALTIVEC_CFLAG_$(VXWORKS_VERSION)),-maltivec) + +ARCH_DEP_CFLAGS += $(ALTIVEC_CFLAG_$(VXWORKS_MAJOR_VERSION)) diff --git a/configure/os/CONFIG.Common.vxWorks-ppc604_long b/configure/os/CONFIG.Common.vxWorks-ppc604_long index 518bb5041..5ec1af9c7 100644 --- a/configure/os/CONFIG.Common.vxWorks-ppc604_long +++ b/configure/os/CONFIG.Common.vxWorks-ppc604_long @@ -1,22 +1,13 @@ -# CONFIG.Common.vxWorks-ppc604_long -# # $Id -# This file is maintained by the build community. # -# Definitions for vxWorks-ppc604 target archs with at least 32MB -# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-ppc604_long +# Definitions for vxWorks-ppc604 targets with >32MB of RAM +# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc604_long +# +# This file is maintained by the EPICS build community. #------------------------------------------------------- -# Include definitions common to all vxWorks target archs -include $(CONFIG)/os/CONFIG.Common.vxWorksCommon +# Inherit the settings from vxWorks-ppc604 +include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604 -# Vx GNU cross compiler suffix -CMPLR_SUFFIX = ppc - -ARCH_CLASS = ppc - -# Architecture specific build flags -ARCH_DEP_CPPFLAGS = -DCPU=PPC604 -ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align -mlongcall - -GNU_TARGET = powerpc-wrs-vxworks +# Tell compiler to generate long branches +ARCH_DEP_CFLAGS += -mlongcall diff --git a/configure/os/CONFIG.Common.vxWorksCommon b/configure/os/CONFIG.Common.vxWorksCommon index 9ec5da301..f17eac676 100644 --- a/configure/os/CONFIG.Common.vxWorksCommon +++ b/configure/os/CONFIG.Common.vxWorksCommon @@ -137,8 +137,6 @@ export TOOL_FAMILY = GNU # Operating system flags OP_SYS_CPPFLAGS += -DvxWorks OP_SYS_CFLAGS += -fno-builtin -#OP_SYS_CFLAGS += -fno-builtin -fdollars-in-identifiers -OP_SYS_LDFLAGS += # Fix for vxWorks headers that use macros defined in vxWorks.h but # which don't actually include vxWorks.h themselves, for example the @@ -146,6 +144,11 @@ OP_SYS_LDFLAGS += OP_SYS_INCLUDE_CPPFLAGS_5 += -include $(VX_DIR)/target/h/vxWorks.h OP_SYS_INCLUDE_CPPFLAGS = $(OP_SYS_INCLUDE_CPPFLAGS_$(VXWORKS_MAJOR_VERSION)) +#-------------------------------------------------- +# Optimization: Officially vxWorks only supports -O2 or less. +OPT_CFLAGS_YES = -O2 +OPT_CXXFLAGS_YES = -O2 + #-------------------------------------------------- # code flags CODE_CFLAGS = @@ -158,10 +161,6 @@ CODE_CXXFLAGS_6.2 = -fno-implicit-templates CODE_CXXFLAGS_6 = $(CODE_CXXFLAGS_$(VXWORKS_VERSION)) CODE_CXXFLAGS = $(CODE_CXXFLAGS_$(VXWORKS_MAJOR_VERSION)) -#-------------------------------------------------- -# no posix c preprocessor flags -#POSIX_CPPFLAGS = - #-------------------------------------------------- # no shared libs for vxWorks SHRLIB_CFLAGS = diff --git a/configure/os/CONFIG_SITE.Common.vxWorks-mpc8540 b/configure/os/CONFIG_SITE.Common.vxWorks-mpc8540 new file mode 100644 index 000000000..534d17fcd --- /dev/null +++ b/configure/os/CONFIG_SITE.Common.vxWorks-mpc8540 @@ -0,0 +1,6 @@ +# $Id$ +# +# Site Specific definitions for the vxWorks-mpc8540 target +# +# Only the local epics system manager should modify this file +#------------------------------------------------------- diff --git a/configure/os/CONFIG_SITE.Common.vxWorks-ppc603 b/configure/os/CONFIG_SITE.Common.vxWorks-ppc603 new file mode 100644 index 000000000..3b4e97dd9 --- /dev/null +++ b/configure/os/CONFIG_SITE.Common.vxWorks-ppc603 @@ -0,0 +1,7 @@ +# $Id$ +# +# Site Specific definitions for the vxWorks-ppc603 target +# +# Only the local epics system manager should modify this file +#------------------------------------------------------- + diff --git a/configure/os/CONFIG_SITE.Common.vxWorks-ppc603_long b/configure/os/CONFIG_SITE.Common.vxWorks-ppc603_long new file mode 100644 index 000000000..5e98f4e76 --- /dev/null +++ b/configure/os/CONFIG_SITE.Common.vxWorks-ppc603_long @@ -0,0 +1,10 @@ +# $Id$ +# +# Site Specific definitions for the vxWorks-ppc603_long target +# +# Only the local epics system manager should modify this file +#------------------------------------------------------- + +# Inherit the settings from vxWorks-ppc603 +-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks-ppc603 + diff --git a/configure/os/CONFIG_SITE.Common.vxWorks-ppc604 b/configure/os/CONFIG_SITE.Common.vxWorks-ppc604 index 5c5563e76..c147c61ed 100644 --- a/configure/os/CONFIG_SITE.Common.vxWorks-ppc604 +++ b/configure/os/CONFIG_SITE.Common.vxWorks-ppc604 @@ -1,8 +1,7 @@ -# CONFIG_SITE.Common.vxWorks-ppc604 -# # $Id$ # -# Site Specific definitions for vxWorks-ppc604 target +# Site Specific definitions for the vxWorks-ppc604 target +# # Only the local epics system manager should modify this file - +#------------------------------------------------------- diff --git a/configure/os/CONFIG_SITE.Common.vxWorks-ppc604_altivec b/configure/os/CONFIG_SITE.Common.vxWorks-ppc604_altivec new file mode 100644 index 000000000..481bba525 --- /dev/null +++ b/configure/os/CONFIG_SITE.Common.vxWorks-ppc604_altivec @@ -0,0 +1,10 @@ +# $Id$ +# +# Site Specific definitions for the vxWorks-ppc604_altivec target +# +# Only the local epics system manager should modify this file +#------------------------------------------------------- + +# Inherit the settings from vxWorks-ppc604_long +-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks-ppc604_long + diff --git a/configure/os/CONFIG_SITE.Common.vxWorks-ppc604_long b/configure/os/CONFIG_SITE.Common.vxWorks-ppc604_long index 5c5563e76..75ff01a00 100644 --- a/configure/os/CONFIG_SITE.Common.vxWorks-ppc604_long +++ b/configure/os/CONFIG_SITE.Common.vxWorks-ppc604_long @@ -1,8 +1,10 @@ -# CONFIG_SITE.Common.vxWorks-ppc604 -# # $Id$ # -# Site Specific definitions for vxWorks-ppc604 target +# Site Specific definitions for the vxWorks-ppc604_long target +# # Only the local epics system manager should modify this file +#------------------------------------------------------- +# Inherit the settings from vxWorks-ppc604 +-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks-ppc604 diff --git a/configure/os/CONFIG_SITE.linux-x86.vxWorks-ppc603 b/configure/os/CONFIG_SITE.linux-x86.vxWorks-ppc603 index dddcd67c6..935c70083 100644 --- a/configure/os/CONFIG_SITE.linux-x86.vxWorks-ppc603 +++ b/configure/os/CONFIG_SITE.linux-x86.vxWorks-ppc603 @@ -1,16 +1,7 @@ -# CONFIG_SITE.linux-x86.vxWorks-ppc603 -# # $Id$ -# This file is maintained by the build community. # -# Site override definitions for linux-x86 host - vxWorks-ppc603 target builds +# Site-specific definitions for linux-x86 builds of vxWorks-ppc603 +# +# Only the local epics system manager should modify this file #------------------------------------------------------- -# ORNL SNS overrides for cross compilers -#VX_DIR_YES = /opt/tornado20/ -#VX_CONFIG_DIR_YES = $(VX_DIR)/target/config -#VX_INCLUDE_YES = /usr/local/crossgcc/ppc/powerpc-wrs-vxworks/sys-include -#VX_GNU_YES = /usr/local/crossgcc/ppc/ -#VX_GNU_BIN_YES = $(VX_GNU)/bin -#VX_GNU_LIB_YES = /usr/local/crossgcc/ppc/lib/gcc-lib/powerpc-wrs-vxworks/2.95.2 - diff --git a/configure/os/CONFIG_SITE.linux-x86.vxWorks-ppc603_long b/configure/os/CONFIG_SITE.linux-x86.vxWorks-ppc603_long index 99c0c3804..a63cf0cc8 100644 --- a/configure/os/CONFIG_SITE.linux-x86.vxWorks-ppc603_long +++ b/configure/os/CONFIG_SITE.linux-x86.vxWorks-ppc603_long @@ -1,15 +1,9 @@ -# CONFIG_SITE.linux-x86.vxWorks-ppc603_long -# # $Id$ -# This file is maintained by the build community. # -# Site override definitions for linux-x86 host - vxWorks-ppc603_long target builds +# Site-specific definitions for linux-x86 builds of vxWorks-ppc603_long +# +# Only the local epics system manager should modify this file #------------------------------------------------------- -# ORNL SNS overrides for cross compilers -#GNU_DIR=/ade/vxWorks/crossgcc-2.7.2-WRS/ppc -#GNU_TARGET_INCLUDE_DIR=/ade/vxWorks/crossgcc-2.7.2-WRS/ppc/powerpc-wrs-vxworks/sys-include -#CC = /ade/vxWorks/crossgcc-2.7.2-WRS/ppc/bin/cc$(CMPLR_SUFFIX) -#CCC = /ade/vxWorks/crossgcc-2.7.2-WRS/ppc/bin/g++$(CMPLR_SUFFIX) - - +# Inherit settings from vxWorks-ppc603 +-include $(CONFIG)/os/CONFIG_SITE.linux-x86.vxWorks-ppc603 diff --git a/configure/os/CONFIG_SITE.linux-x86_64.vxWorks-ppc603 b/configure/os/CONFIG_SITE.linux-x86_64.vxWorks-ppc603 index e72288b56..fffa90486 100644 --- a/configure/os/CONFIG_SITE.linux-x86_64.vxWorks-ppc603 +++ b/configure/os/CONFIG_SITE.linux-x86_64.vxWorks-ppc603 @@ -1,17 +1,6 @@ -# CONFIG_SITE.linux-x86_64.vxWorks-ppc603 -# # $Id$ -# This file is maintained by the build community. # -# Site override definitions for linux-x86_64 host - vxWorks-ppc603 target builds +# Site-specific definitions for linux-x86_64 builds of vxWorks-ppc603 +# +# Only the local epics system manager should modify this file #------------------------------------------------------- -# This file contains overrides for Vx builds -# ORNL SNS overrides for cross compilers - -# The custom cross compiler for VxWorks on Linux -# has place in a directory structure like that of -# the Solaris distribution. So now the cross should -# only need the following line. -# cross-compiler from "Linux x86pc" host to a "ppc603" target -VX_DIR_YES = /ade/vxWorks/t202/ppc - diff --git a/configure/os/CONFIG_SITE.linux-x86_64.vxWorks-ppc603_long b/configure/os/CONFIG_SITE.linux-x86_64.vxWorks-ppc603_long index 0e699e75b..6593cf3f0 100644 --- a/configure/os/CONFIG_SITE.linux-x86_64.vxWorks-ppc603_long +++ b/configure/os/CONFIG_SITE.linux-x86_64.vxWorks-ppc603_long @@ -1,17 +1,9 @@ -# CONFIG_SITE.linux-x86_64.vxWorks-ppc603_long -# # $Id$ -# This file is maintained by the build community. # -# Site override definitions for linux-x86_64 host - vxWorks-ppc603 target builds +# Site-specific definitions for linux-x86 builds of vxWorks-ppc603_long +# +# Only the local epics system manager should modify this file #------------------------------------------------------- -# This file contains overrides for Vx builds -# ORNL SNS overrides for cross compilers - -# The custom cross compiler for VxWorks on Linux -# has place in a directory structure like that of -# the Solaris distribution. So now the cross should -# only need the following line. -# cross-compiler from "Linux x86pc" host to a "ppc603" target -VX_DIR_YES = /ade/vxWorks/t202/ppc +# Inherit settings from vxWorks-ppc603 +-include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.vxWorks-ppc603