Merge branch 'epics-base:7.0' into add-simm-to-ao-records
This commit is contained in:
+5
-2
@@ -31,6 +31,8 @@ skip_commits:
|
||||
- 'documentation/*'
|
||||
- 'startup/*'
|
||||
- '.github/*'
|
||||
- '.tools/*'
|
||||
- '.gitattributes'
|
||||
- '**/*.html'
|
||||
- '**/*.md'
|
||||
|
||||
@@ -64,6 +66,7 @@ environment:
|
||||
- CMP: vs2012
|
||||
- CMP: vs2010
|
||||
- CMP: gcc
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
|
||||
# Platform: processor architecture
|
||||
platform:
|
||||
@@ -104,11 +107,11 @@ build_script:
|
||||
|
||||
test_script:
|
||||
- cmd: python -m ci_core_dumper install
|
||||
- cmd: python .ci/cue.py test
|
||||
- cmd: python .ci/cue.py -T 20M test
|
||||
|
||||
on_finish:
|
||||
- ps: Get-ChildItem *.tap -Recurse -Force | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
|
||||
- cmd: python .ci/cue.py build test-results -s
|
||||
- cmd: python .ci/cue.py -T 5M test-results
|
||||
|
||||
on_failure:
|
||||
- cmd: python -m ci_core_dumper report
|
||||
|
||||
@@ -38,6 +38,8 @@ skip_commits:
|
||||
- 'documentation/*'
|
||||
- 'startup/*'
|
||||
- '.github/*'
|
||||
- '.tools/*'
|
||||
- '.gitattributes'
|
||||
- '**/*.html'
|
||||
- '**/*.md'
|
||||
|
||||
@@ -111,11 +113,11 @@ build_script:
|
||||
|
||||
test_script:
|
||||
- cmd: python -m ci_core_dumper install
|
||||
- cmd: python .ci/cue.py test
|
||||
- cmd: python .ci/cue.py -T 20M test
|
||||
|
||||
on_finish:
|
||||
- ps: Get-ChildItem *.tap -Recurse -Force | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
|
||||
- cmd: python .ci/cue.py build test-results -s
|
||||
- cmd: python .ci/cue.py -T 5M test-results
|
||||
|
||||
on_failure:
|
||||
- cmd: python -m ci_core_dumper report
|
||||
|
||||
+1
-1
Submodule .ci updated: 3db08b5977...d675de24e6
@@ -1,19 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e -u -x
|
||||
|
||||
env|grep TRAVIS
|
||||
|
||||
[ "$TRAVIS_OS_NAME" = "linux" ] || exit 0
|
||||
|
||||
# Ensure there is an interface with a (correct) broadcast address
|
||||
# eg. 'trusty' VMs have interface broadcast address mis-configured
|
||||
# (why oh why do people insist on setting this explicitly?)
|
||||
|
||||
sudo ip tuntap add dev tap42 mode tap
|
||||
|
||||
sudo ip addr add 192.168.240.1/24 broadcast + dev tap42
|
||||
|
||||
sudo ip link set dev tap42 up
|
||||
|
||||
# note that this device will be UP but not RUNNING
|
||||
# so java will see it as not UP since java confuses UP and RUNNING
|
||||
+21
-1
@@ -1,5 +1,25 @@
|
||||
.ci/ export-ignore
|
||||
.tools/ export-ignore
|
||||
.github/ export-ignore
|
||||
.appveyor/ export-ignore
|
||||
.appveyor.yml export-ignore
|
||||
.travis.yml export-ignore
|
||||
README export-subst
|
||||
|
||||
#Which files need CRLF handling
|
||||
# default to automatic
|
||||
* text=auto
|
||||
|
||||
# batch script parser on windows requires CRLF
|
||||
*.bat text eol=crlf
|
||||
|
||||
# extensions for scripts which may be executable via. "#!..." must have LF
|
||||
*.pl text eol=lf
|
||||
*.plt text eol=lf
|
||||
*.sh text eol=lf
|
||||
*.cmd text eol=lf
|
||||
# .cmd in unexpanded templates
|
||||
*.cmd@* text eol=lf
|
||||
# executable scripts w/o extensions
|
||||
modules/ca/src/client/S99caRepeater@ text eol=lf
|
||||
modules/libcom/src/log/S99logServer@ text eol=lf
|
||||
startup/EpicsHostArch text eol=lf
|
||||
|
||||
@@ -14,9 +14,19 @@ on:
|
||||
- 'documentation/*'
|
||||
- 'startup/*'
|
||||
- '.appveyor/*'
|
||||
- '.tools/*'
|
||||
- '.gitattributes'
|
||||
- '**/*.html'
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'documentation/*'
|
||||
- 'startup/*'
|
||||
- '.appveyor/*'
|
||||
- '.tools/*'
|
||||
- '.gitattributes'
|
||||
- '**/*.html'
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
SETUP_PATH: .ci-local:.ci
|
||||
@@ -33,7 +43,9 @@ jobs:
|
||||
BCFG: ${{ matrix.configuration }}
|
||||
WINE: ${{ matrix.wine }}
|
||||
RTEMS: ${{ matrix.rtems }}
|
||||
RTEMS_TARGET: ${{ matrix.rtems_target }}
|
||||
EXTRA: ${{ matrix.extra }}
|
||||
TEST: ${{ matrix.test }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -68,17 +80,66 @@ jobs:
|
||||
extra: "CMD_CXXFLAGS=-std=c++11"
|
||||
name: "Ub-20 clang-10 C++11"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "5"
|
||||
rtems_target: RTEMS-pc686-qemu
|
||||
name: "Ub-20 gcc-9 + RT-5.1 pc686"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "5"
|
||||
rtems_target: RTEMS-beatnik
|
||||
test: NO
|
||||
name: "Ub-20 gcc-9 + RT-5.1 beatnik"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "5"
|
||||
rtems_target: RTEMS-mvme3100
|
||||
test: NO
|
||||
name: "Ub-20 gcc-9 + RT-5.1 mvme3100"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "5"
|
||||
rtems_target: RTEMS-qoriq_e500
|
||||
test: NO
|
||||
name: "Ub-20 gcc-9 + RT-5.1 qoriq_e500"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "5"
|
||||
rtems_target: RTEMS-xilinx_zynq_a9_qemu
|
||||
test: NO
|
||||
name: "Ub-20 gcc-9 + RT-5.1 xilinx_zynq_a9_qemu"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "5"
|
||||
rtems_target: RTEMS-uC5282
|
||||
test: NO
|
||||
name: "Ub-20 gcc-9 + RT-5.1 uC5282"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "4.10"
|
||||
name: "Ub-20 gcc-9 + RT-4.10"
|
||||
rtems_target: RTEMS-pc386-qemu
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "4.9"
|
||||
name: "Ub-20 gcc-9 + RT-4.9"
|
||||
rtems_target: RTEMS-pc386-qemu
|
||||
|
||||
- os: ubuntu-16.04
|
||||
cmp: gcc-4.8
|
||||
@@ -98,6 +159,12 @@ jobs:
|
||||
configuration: default
|
||||
name: "Ub-20 gcc-8"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc-9
|
||||
utoolchain: "9"
|
||||
configuration: default
|
||||
name: "Ub-20 gcc-9"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: clang
|
||||
configuration: default
|
||||
@@ -118,6 +185,16 @@ jobs:
|
||||
configuration: static
|
||||
name: "Win2019 MSC-19, static"
|
||||
|
||||
- os: windows-2019
|
||||
cmp: vs2019
|
||||
configuration: debug
|
||||
name: "Win2019 MSC-19, debug"
|
||||
|
||||
- os: windows-2019
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
name: "Win2019 mingw"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
@@ -142,11 +219,13 @@ jobs:
|
||||
- name: Build main module
|
||||
run: python .ci/cue.py build
|
||||
- name: Run main module tests
|
||||
run: python .ci/cue.py test
|
||||
run: python .ci/cue.py -T 20M test
|
||||
- name: Upload tapfiles Artifact
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: tapfiles ${{ matrix.name }}
|
||||
path: '**/O.*/*.tap'
|
||||
- name: Collect and show test results
|
||||
run: python .ci/cue.py test-results
|
||||
if: ${{ always() }}
|
||||
run: python .ci/cue.py -T 5M test-results
|
||||
|
||||
@@ -62,6 +62,9 @@ include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).Common
|
||||
RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)
|
||||
|
||||
ifdef T_A
|
||||
# Information from the target's compiler
|
||||
#
|
||||
-include $(EPICS_BASE)/cfg/TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A)
|
||||
|
||||
# Cross compile specific definitions
|
||||
#
|
||||
|
||||
@@ -56,8 +56,8 @@ STATIC_LDFLAGS_YES = -static
|
||||
STATIC_LDFLAGS_NO =
|
||||
|
||||
SHRLIB_CFLAGS = -fPIC
|
||||
SHRLIB_LDFLAGS = -shared -fPIC
|
||||
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC
|
||||
SHRLIB_LDFLAGS = -shared -fPIC -Wl,-h$@
|
||||
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC -Wl,-h$@
|
||||
|
||||
GNU_LDLIBS_YES = -lgcc
|
||||
|
||||
|
||||
@@ -71,6 +71,8 @@ INSTALL_DBD = $(INSTALL_LOCATION)/dbd
|
||||
INSTALL_DB = $(INSTALL_LOCATION)/db
|
||||
INSTALL_CONFIG = $(INSTALL_LOCATION)/configure
|
||||
|
||||
FINAL_LOCATION = $(shell $(PERL) $(TOOLS)/fullPathName.pl $(INSTALL_LOCATION))
|
||||
|
||||
# Directory for OS independant build created files
|
||||
COMMON_DIR = ../O.Common
|
||||
|
||||
@@ -142,9 +144,10 @@ BUILDLIB_SUFFIX = $(BUILDLIB_SUFFIX_$(SHARED_LIBRARIES))
|
||||
#--------------------------------------------------
|
||||
# vpath directories
|
||||
POSIX_YES = os/posix
|
||||
OS_IMPL_DIRS = $(if $(OS_API),os/$(OS_CLASS)-$(OS_API),) os/$(OS_CLASS)
|
||||
GENERIC_SRC_DIRS = .. $(SRC_DIRS)
|
||||
OS_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, os/$(OS_CLASS) $(POSIX_$(POSIX)) os/default ))
|
||||
$(addprefix $(dir)/, $(OS_IMPL_DIRS) $(POSIX_$(POSIX)) os/default ))
|
||||
CMPLR_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, compiler/$(CMPLR_CLASS) compiler/default ))
|
||||
ALL_SRC_DIRS = $(CMPLR_SRC_DIRS) $(OS_SRC_DIRS) $(GENERIC_SRC_DIRS)
|
||||
|
||||
+18
-18
@@ -17,9 +17,8 @@
|
||||
# Currently Supporting:
|
||||
# cygwin-x86 (cygwin compiler used for host builds)
|
||||
# cygwin-x86_64 (cygwin compiler used for host builds)
|
||||
# darwin-ppc (PowerPC based Apple running OSX)
|
||||
# darwin-ppcx86 (Universal binaries for both CPUs)
|
||||
# darwin-x86 (Intel based Apple running OSX)
|
||||
# darwin-aarch64 (M1 based Apple using CLANG compiler)
|
||||
# darwin-x86 (Intel based Apple using CLANG compiler)
|
||||
# freebsd-x86 (GNU compiler used for host builds)
|
||||
# freebsd-x86_64 (GNU compiler used for host builds)
|
||||
# linux-aarch64 (GNU compiler used for host builds)
|
||||
@@ -62,16 +61,8 @@
|
||||
|
||||
# ios-arm (darwin-x86 host)
|
||||
# ios-386 (darwin-x86 host)
|
||||
# linux-386 (linux-x86 host)
|
||||
# linux-486 (linux-x86 host)
|
||||
# linux-586 (linux-x86 host)
|
||||
# linux-686 (linux-x86 host)
|
||||
# linux-arm (linux-x86 or -x86_64 host)
|
||||
# linux-aarch64 (linux-x86_64 host)
|
||||
# linux-athlon (linux-x86 host)
|
||||
# linux-cris (Axis GNU crosscompiler on linux-x86 host)
|
||||
# linux-cris_v10 (Axis GNU crosscompiler on linux-x86 host)
|
||||
# linux-cris_v32 (Axis GNU crosscompiler on linux-x86 host)
|
||||
# linux-microblaze
|
||||
# linux-xscale_be
|
||||
# vxWorks-486
|
||||
@@ -85,18 +76,20 @@
|
||||
# vxWorks-ppc604_altivec
|
||||
# vxWorks-mpc8540
|
||||
# vxWorks-mpc8548
|
||||
# RTEMS-at91rm9200ek
|
||||
# RTEMS-beagleboneblack
|
||||
# RTEMS-beatnik
|
||||
# RTEMS-gen68360
|
||||
# RTEMS-mcp750
|
||||
# RTEMS-mvme167
|
||||
# RTEMS-mvme2100
|
||||
# RTEMS-mvme2700
|
||||
# RTEMS-mvme3100
|
||||
# RTEMS-mvme5500
|
||||
# RTEMS-pc386
|
||||
# RTEMS-psim
|
||||
# RTEMS-pc386 (RTEMS 4)
|
||||
# RTEMS-pc386-qemu (RTEMS 4)
|
||||
# RTEMS-pc686 (RTEMS 5)
|
||||
# RTEMS-pc686-qemu (RTEMS 5)
|
||||
# RTEMS-qoriq_e500
|
||||
# RTEMS-uC5282
|
||||
# RTEMS-xilinx-zynq-a9_qemu
|
||||
# RTEMS-xilinx_zynq_zedboard
|
||||
# win32-x86-mingw (linux-x86 or -x86_64 host)
|
||||
#
|
||||
|
||||
@@ -104,7 +97,6 @@
|
||||
# Definitions in configure/os/CONFIG_SITE.<host>.Common
|
||||
# may override this setting.
|
||||
CROSS_COMPILER_TARGET_ARCHS=
|
||||
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-ppc32
|
||||
|
||||
# If only some of your host architectures can compile the
|
||||
# above CROSS_COMPILER_TARGET_ARCHS specify those host
|
||||
@@ -151,6 +143,14 @@ CROSS_WARN=YES
|
||||
# different location then uncomment and set this.
|
||||
#INSTALL_LOCATION=<fullpathname>
|
||||
|
||||
# The location from which files placed in INSTALL_LOCATION will actually run.
|
||||
# This path is compiled into executables, and so should be an absolute.
|
||||
# May be used to achieve the effect of autotools. eg.
|
||||
# ./configure --prefix=<FINAL_LOCATION>
|
||||
# make DESTDIR=<INSTALL_LOCATION>
|
||||
# Defaults to the absolute expansion of $(INSTALL_LOCATION)
|
||||
#FINAL_LOCATION=
|
||||
|
||||
# Use POSIX thread priority scheduling (if available).
|
||||
# Must be either YES or NO
|
||||
USE_POSIX_THREAD_PRIORITY_SCHEDULING = YES
|
||||
|
||||
+6
-1
@@ -15,7 +15,8 @@ include $(TOP)/configure/CONFIG
|
||||
TOOLS = $(TOP)/src/tools
|
||||
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG.*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG_SITE.*))
|
||||
|
||||
CONFIGS += $(subst ../,,$(wildcard ../RELEASE*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../RULES*))
|
||||
@@ -29,5 +30,9 @@ CFG += CONFIG_CA_VERSION
|
||||
CFG += CONFIG_DATABASE_MODULE
|
||||
CFG += CONFIG_DATABASE_VERSION
|
||||
|
||||
CFG += TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A)
|
||||
|
||||
include $(TOP)/configure/RULES
|
||||
|
||||
TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A): toolchain.c
|
||||
$(PREPROCESS.cpp)
|
||||
|
||||
+4
-4
@@ -196,12 +196,12 @@ endif
|
||||
#---------------------------------------------------------------
|
||||
# build dependancies, clean rule
|
||||
|
||||
inc: $(COMMON_INC) $(INSTALL_INC)
|
||||
inc: $(COMMON_INC) $(INSTALL_INC) $(COMMON_DBDS) $(COMMON_DBDCATS) \
|
||||
$(INSTALL_DBDS) $(INSTALL_DBD_INSTALLS)
|
||||
|
||||
build: $(COMMON_DBDS) $(COMMON_DBS) $(COMMON_DBDCATS) \
|
||||
$(INSTALL_DBDS) $(INSTALL_DBS) \
|
||||
build: $(COMMON_DBS) $(INSTALL_DBS) \
|
||||
$(DBDDEPENDS_FILES) $(TARGETS) \
|
||||
$(INSTALL_DB_INSTALLS) $(INSTALL_DBD_INSTALLS)
|
||||
$(INSTALL_DB_INSTALLS)
|
||||
|
||||
clean: db_clean
|
||||
|
||||
|
||||
@@ -103,17 +103,20 @@ include $(CONFIG)/RULES.Db
|
||||
#---------------------------------------------------------------
|
||||
# Include defines and rules for prod, library and test* targets
|
||||
|
||||
#ifneq (,$(strip $(PROD) $(TESTPROD) $(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRARY) ))
|
||||
ifneq (,$(strip $(PROD) $(TESTPROD) $(LIBRARY) $(TESTLIBRARY) \
|
||||
$(LOADABLE_LIBRARY)))
|
||||
include $(CONFIG)/RULES_TARGET
|
||||
#endif
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Read dependency files
|
||||
|
||||
ifneq (inc,$(strip $(MAKECMDGOALS)))
|
||||
ifneq (,$(strip $(HDEPENDS_FILES)))
|
||||
$(filter-out $(wildcard *$(DEP)), $(HDEPENDS_FILES)): | $(COMMON_INC)
|
||||
-include $(HDEPENDS_FILES)
|
||||
endif
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Products and Object libraries
|
||||
@@ -161,12 +164,13 @@ build: inc
|
||||
build: $(OBJSNAME) $(LIBTARGETS) $(PRODTARGETS) $(TESTPRODTARGETS) \
|
||||
$(TARGETS) $(TESTSCRIPTS) $(INSTALL_LIB_INSTALLS)
|
||||
|
||||
inc: $(COMMON_INC) $(INSTALL_INC) $(INSTALL_CONFIGS)
|
||||
inc: $(COMMON_INC) $(INSTALL_INC) $(INSTALL_CONFIGS) $(INSTALLS_CFG) \
|
||||
$(INSTALL_HTMLS) $(INSTALLS_PERL_MODULES) $(INSTALL_SCRIPTS)
|
||||
|
||||
buildInstall: \
|
||||
$(INSTALL_SCRIPTS) $(INSTALL_PROD) $(INSTALL_MUNCHS) \
|
||||
$(INSTALL_PROD) $(INSTALL_MUNCHS) \
|
||||
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX) \
|
||||
$(INSTALL_HTMLS) $(INSTALL_DOCS) \
|
||||
$(INSTALL_DOCS) \
|
||||
$(INSTALL_OBJS) \
|
||||
$(INSTALL_TEMPLATE) \
|
||||
$(INSTALL_BIN_INSTALLS)
|
||||
|
||||
@@ -21,7 +21,6 @@ $(foreach target, $(PROD) $(TESTPROD) $(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRA
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# This define block requires GNU make 3.81
|
||||
define PROD_template
|
||||
ifeq ($$(strip $$($(1)_OBJS) $$($(1)_SRCS) $$(PRODUCT_OBJS)),)
|
||||
$(1)_OBJS = $(1)$$(OBJ)
|
||||
|
||||
+1
-1
@@ -73,7 +73,7 @@ help:
|
||||
@echo "Usage: gnumake [options] [target] ..."
|
||||
@echo "Targets supported by all Makefiles:"
|
||||
@echo " all - Same as install (default rule)"
|
||||
@echo " inc - Installs header files"
|
||||
@echo " inc - Installs header, dbd and html files"
|
||||
@echo " build - Builds and installs all targets"
|
||||
@echo " install - Builds and installs all targets"
|
||||
@echo " buildInstall - Same as install (deprecated)"
|
||||
|
||||
@@ -28,12 +28,13 @@ ifneq ($(CONFIG),$(TOP)/configure)
|
||||
endif
|
||||
|
||||
#--------------------------------------------------
|
||||
# Set RTEMS_BSP from T_A if not already done
|
||||
# Set RTEMS_BSP and GNU_TARGET if not already done
|
||||
RTEMS_BSP ?= $(subst RTEMS-,,$(T_A))
|
||||
GNU_TARGET ?= $(RTEMS_TARGET_CPU)-rtems
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Pick up the RTEMS tool/path definitions from the RTEMS BSP directory.
|
||||
include $(RTEMS_BASE)/$(RTEMS_TARGET_CPU)-rtems$(RTEMS_VERSION)/$(RTEMS_BSP)/Makefile.inc
|
||||
include $(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/$(RTEMS_BSP)/Makefile.inc
|
||||
include $(RTEMS_CUSTOM)
|
||||
include $(CONFIG.CC)
|
||||
|
||||
@@ -41,7 +42,7 @@ include $(CONFIG.CC)
|
||||
# RTEMS cross-development tools
|
||||
CC = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) $(GCCSPECS) -fasm
|
||||
CCC = $(RTEMS_TOOLS)/bin/$(CXX)
|
||||
CPP = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) -x c -E
|
||||
CPP = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) -x c -E $(GCCSPECS)
|
||||
AR = $(RTEMS_TOOLS)/bin/$(AR_FOR_TARGET)
|
||||
LD = $(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -r
|
||||
|
||||
@@ -95,20 +96,39 @@ MODEXT=.obj
|
||||
OS_CLASS = RTEMS
|
||||
|
||||
#--------------------------------------------------
|
||||
# Operating system flags
|
||||
OP_SYS_LDLIBS += -lrtemsCom -lc -lrtemscpu -lCom -lnfs -lm
|
||||
OP_SYS_LDFLAGS += $(CPU_CFLAGS) -u Init \
|
||||
# Operating system compile & link flags
|
||||
OP_SYS_CFLAGS += -D__LINUX_ERRNO_EXTENSIONS__
|
||||
|
||||
OP_SYS_CFLAGS_NET_yes = -DRTEMS_LEGACY_STACK
|
||||
OP_SYS_CFLAGS += $(OP_SYS_CFLAGS_NET_$(RTEMS_HAS_NETWORKING))
|
||||
|
||||
ifeq ($(RTEMS_HAS_POSIX_API),yes)
|
||||
POSIX_CPPFLAGS = -D_GNU_SOURCE -D_DEFAULT_SOURCE
|
||||
endif
|
||||
|
||||
OP_SYS_LDLIBS_posix_NET_yes = -ltftpfs -lnfs -lz -ltelnetd
|
||||
OP_SYS_LDLIBS_posix_NET_no = -ltftpfs -lbsd -lz
|
||||
OP_SYS_LDLIBS_score_NET_yes = -lnfs
|
||||
OP_SYS_LDLIBS_score_NET_no = -lnfs
|
||||
OP_SYS_LDLIBS += -lrtemsCom -lCom
|
||||
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(OS_API)_NET_$(RTEMS_HAS_NETWORKING))
|
||||
OP_SYS_LDLIBS += -lrtemscpu -lc -lm
|
||||
|
||||
OP_SYS_LDFLAGS_posix = -u POSIX_Init
|
||||
OP_SYS_LDFLAGS_score = -u Init \
|
||||
$(PROJECT_RELEASE)/lib/no-dpmem.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-mp.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-part.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-signal.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-rtmon.rel
|
||||
OP_SYS_LDFLAGS += $(CPU_CFLAGS) $(OP_SYS_LDFLAGS_$(OS_API))
|
||||
|
||||
# Settings for GeSys
|
||||
MOD_SYS_LDFLAGS += $(CPU_CFLAGS) -Wl,-r -nostdlib
|
||||
|
||||
# Do not link against libraries which are part of the Generic Image
|
||||
GESYS_LIBS += -lgcc
|
||||
GESYS_LIBS += -lc -lm -lrtemscpu -lrtemsbsp -lrtems++ -lbspExt
|
||||
GESYS_LIBS += -lc -lm -lrtemscpu -lrtemsbsp -lrtems++
|
||||
GESYS_LIBS += -lcexp -ltecla_r -lspencer_regexp -lpmelf -lpmbfd
|
||||
GESYS_LIBS += -lnfs -ltelnetd -lrtems-gdb-stub
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-at91rm9200ek
|
||||
# Author: Ralf Hartmann
|
||||
# BESSY
|
||||
# Ralf.Hartmann@bessy.de
|
||||
#
|
||||
# Atmel AT91RM9200-EK evaluation kit
|
||||
# using the AT91RM9200 ARM9-based 32-bit RISC microcontroller
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = at91rm9200ek
|
||||
RTEMS_TARGET_CPU = arm
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-beaglebineblack
|
||||
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
#EXE = .elf
|
||||
RTEMS_BSP = beagleboneblack
|
||||
RTEMS_TARGET_CPU = arm
|
||||
GNU_TARGET = arm-rtems
|
||||
|
||||
OP_SYS_LDLIBS += -Wl,--gc-sections
|
||||
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/beagleboneblack/lib/
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
|
||||
|
||||
@@ -8,14 +8,16 @@ EXE = .elf
|
||||
RTEMS_BSP = beatnik
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
GNU_TARGET = powerpc-rtems
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
# optimization trouble in postfix.c
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_HAS_ALTIVEC
|
||||
#will use bootp
|
||||
#ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
endef
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = gen68360
|
||||
RTEMS_TARGET_CPU = m68k
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = mcp750
|
||||
RTEMS_TARGET_CPU = ppc
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = mvme167
|
||||
RTEMS_TARGET_CPU = m68k
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
@@ -11,8 +11,6 @@ GNU_TARGET = powerpc-rtems
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< rtems
|
||||
|
||||
@@ -20,6 +20,4 @@ define MUNCH_CMD
|
||||
rm -f rtems.gz
|
||||
endef
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
@@ -13,8 +13,6 @@ ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
|
||||
@@ -14,13 +14,9 @@ ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
ARCH_DEP_CFLAGS += -DBSP_NVRAM_BASE_ADDR=0xf1110000
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
endef
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# CONFIG.Common.RTEMS-pc386
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
# Definitions for the RTEMS-pc386 target, RTEMS 4.x only
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.RTEMS-pc386
|
||||
#
|
||||
#-------------------------------------------------------
|
||||
|
||||
RTEMS_BSP = pc386
|
||||
RTEMS_TARGET_CPU = i386
|
||||
GNU_TARGET = i386-rtems
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
@@ -22,3 +23,10 @@ include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
# Put text segment where it will work with etherboot
|
||||
#
|
||||
OP_SYS_LDFLAGS += -Wl,-Ttext,0x100000
|
||||
|
||||
# This check must appear after the above include
|
||||
ifeq ($(RTEMS_VERSION),5)
|
||||
$(info *** This target is not compatible with the configured RTEMS version.)
|
||||
$(info *** Build the RTEMS-pc686 (-qemu) target for RTEMS 5.x)
|
||||
$(error Can't continue)
|
||||
endif
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions from RTEMS-pc386
|
||||
# For Tests overwrite it with pc686
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS-pc386
|
||||
|
||||
RTEMS_QEMU_FIXUPS = YES
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# CONFIG.Common.RTEMS-pc686
|
||||
#
|
||||
# Definitions for the RTEMS-pc686 target, RTEMS 5.x only
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.RTEMS-pc686
|
||||
#
|
||||
#-------------------------------------------------------
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = pc686
|
||||
RTEMS_TARGET_CPU = i386
|
||||
GNU_TARGET = i386-rtems
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< $@
|
||||
endef
|
||||
|
||||
OP_SYS_LDLIBS += -Wl,--gc-sections
|
||||
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/pc686/lib/
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
#
|
||||
# Put text segment where it will work with etherboot
|
||||
#
|
||||
OP_SYS_LDFLAGS += -Wl,-Ttext,0x100000
|
||||
|
||||
|
||||
# This check must appear after the above include
|
||||
ifneq ($(RTEMS_VERSION),5)
|
||||
$(info *** This target is not compatible with the configured RTEMS version.)
|
||||
$(info *** Build the RTEMS-pc386 (-qemu) target for RTEMS 4.x)
|
||||
$(error Can't continue)
|
||||
endif
|
||||
@@ -0,0 +1,11 @@
|
||||
# CONFIG.Common.RTEMS-pc686-qemu
|
||||
#
|
||||
# Definitions for the RTEMS-pc686-qemu target
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.RTEMS-pc686-qemu
|
||||
#
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions from RTEMS-pc686
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS-pc686
|
||||
|
||||
RTEMS_QEMU_FIXUPS = YES
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# University of Saskatchewan
|
||||
# eric.norum@usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = psim
|
||||
RTEMS_TARGET_CPU = ppc
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
@@ -0,0 +1,48 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-qoriq_e500
|
||||
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
EXE = .elf
|
||||
RTEMS_BSP = qoriq_e500
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
GNU_TARGET = powerpc-rtems
|
||||
# optimization trouble in postfix.c
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_HAS_ALTIVEC
|
||||
#will use bootp
|
||||
#ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
|
||||
#ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
#ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
|
||||
#netbsdlib
|
||||
#ARCH_DEP_CFLAGS += -I$(RTEMS_BASE)/powerpc-rtems5/qoriq_e500/lib/include
|
||||
|
||||
#OP_SYS_LDLIBS += -lbspExt #does not use posix stuff ... want to ignore
|
||||
OP_SYS_LDLIBS += -Wl,--gc-sections
|
||||
#ARCH_DEP_LDFLAGS = -mcpu=8540 -meabi -msdata=sysv -mstrict-align -mspe -mabi=spe -mfloat-gprs=double
|
||||
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/powerpc-rtems5/qoriq_e500/lib
|
||||
|
||||
MUNCH_SUFFIX = .img
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
gzip -9 -f $@
|
||||
$(RTEMS_TOOLS)/bin/mkimage.py -A ppc -O linux -T kernel -a 0x4000 -e 0x4000 -n $* -d $@.gz $*.img
|
||||
endef
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
RTEMSSYMS=$(PRODNAME:%$(EXE)=%.sym)
|
||||
RTEMSIMGS=$(PRODNAME:%$(EXE)=%.bin)
|
||||
INSTALL_RTEMSSYMS=$(RTEMSSYMS:%=$(INSTALL_BIN)/%)
|
||||
INSTALL_RTEMSIMGS=$(RTEMSIMGS:%=$(INSTALL_BIN)/%)
|
||||
|
||||
%.sym: %$(EXE)
|
||||
$(XSYMS) $^ $@
|
||||
|
||||
%.bin: %$(EXE)
|
||||
$(OBJCOPY) -Obinary $^ $@
|
||||
|
||||
#PRODTARGETS+=$(INSTALL_RTEMSSYMS) $(INSTALL_RTEMSIMGS)
|
||||
@@ -9,6 +9,10 @@ RTEMS_BSP = uC5282
|
||||
RTEMS_TARGET_CPU = m68k
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
|
||||
# Hopefully a temporary fix:
|
||||
ARCH_DEP_CXXFLAGS_5 = -std=c++98
|
||||
ARCH_DEP_CXXFLAGS += $(ARCH_DEP_CXXFLAGS_$(RTEMS_VERSION))
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< $@
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-xilinx_zynq_a9_qemu
|
||||
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
#EXE = .elf
|
||||
RTEMS_BSP = xilinx_zynq_a9_qemu
|
||||
RTEMS_TARGET_CPU = arm
|
||||
GNU_TARGET = arm-rtems
|
||||
|
||||
#use dhcp/bootp
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
|
||||
OP_SYS_LDLIBS += -Wl,--gc-sections
|
||||
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/xilinx_zynq_a9_qemu/lib/
|
||||
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-xilinx_zynq_zedboard
|
||||
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
#EXE = .elf
|
||||
RTEMS_BSP = xilinx_zynq_zedboard
|
||||
RTEMS_TARGET_CPU = arm
|
||||
GNU_TARGET = arm-rtems
|
||||
|
||||
OP_SYS_LDLIBS += -Wl,--gc-sections
|
||||
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/xilinx_zynq_zedboard/lib/
|
||||
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
# CONFIG.Common.darwin-ppc
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for darwin-ppc target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.darwin-ppc
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# To build universal binaries, configure ARCH_CLASS
|
||||
# in the file CONFIG_SITE.Common.darwin-ppc
|
||||
|
||||
# Include definitions common to all Darwin targets
|
||||
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon
|
||||
@@ -1,14 +0,0 @@
|
||||
# CONFIG.Common.darwin-ppcx86
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for Darwin universal PowerPC + x86 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.darwin-ppcx86
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# To build universal binaries, configure ARCH_CLASS
|
||||
# in the file CONFIG_SITE.Common.darwin-ppcx86
|
||||
|
||||
# Include definitions common to all Darwin targets
|
||||
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon
|
||||
@@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.linux-386
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for linux-386 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-386
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
ARCH_DEP_CFLAGS = -march=i386
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc Command
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i386-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-386 file, e.g. GNU_TARGET=i386-pc-linux-gnu
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
# CONFIG.Common.linux-486
|
||||
#
|
||||
# Definitions for linux-486 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-486
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
ARCH_DEP_CFLAGS = -march=i486
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc Command
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i486-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-486 file, e.g. GNU_TARGET=i486-pc-linux-gnu
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.linux-586
|
||||
#
|
||||
# Definitions for linux-586 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-586
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
# i586 is equivalent to pentium
|
||||
ARCH_DEP_CFLAGS = -march=i586
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc Command
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i586-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-586 file, e.g. GNU_TARGET=i586-pc-linux-gnu
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
# CONFIG.Common.linux-686
|
||||
#
|
||||
# Definitions for linux-686 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-686
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
# i686 is euivalent to pentiumpro
|
||||
ARCH_DEP_CFLAGS = -march=i686
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc Command
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i686-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-686 file, e.g. GNU_TARGET=i686-pc-linux-gnu
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
# CONFIG.Common.linux-athlon
|
||||
#
|
||||
# Definitions for linux-athlon target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-athlon
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
ARCH_DEP_CFLAGS += -march=athlon-mp -mfpmath=sse
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc Command
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. athlon-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-athlon file, e.g. GNU_TARGET=athlon-pc-linux-gnu
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
# CONFIG.Common.linux-cris
|
||||
#
|
||||
# Author: Peter Zumbruch
|
||||
# GSI
|
||||
# P.Zumbruch@gsi.de
|
||||
#
|
||||
# Definitions for linux-cris target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-cris
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = cris
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
GNU_TARGET = cris-axis-linux-gnu
|
||||
|
||||
# prefix of compiler tools
|
||||
CMPLR_SUFFIX =
|
||||
CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
|
||||
|
||||
# CROSS_TOP_DIR
|
||||
# usually AXIS_TOP_DIR is defined via
|
||||
# the init_env script of the SDK provided by Axis
|
||||
#
|
||||
## AXIS_TOP_DIR defined? Make missing mandatory variable visible
|
||||
AXIS_TOP_DIR?=UNDEFINED_ENV__AXIS_TOP_DIR
|
||||
AXIS_SDK_DIR?=$(AXIS_TOP_DIR)
|
||||
|
||||
# CROSS_INCLUDES
|
||||
AXIS_SDK_TARGET_INCLUDE_DIR = $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/include
|
||||
AXIS_SDK_TARGET_INCLUDE_DIR +=$(AXIS_SDK_DIR)/target/$(GNU_TARGET)/usr/include
|
||||
|
||||
CROSS_INCLUDES = $(addprefix -isystem ,$(AXIS_SDK_TARGET_INCLUDE_DIR))
|
||||
|
||||
# CROSS_LDFLAGS
|
||||
AXIS_SDK_TARGET_LIB_DIR = $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/lib
|
||||
AXIS_SDK_TARGET_LIB_DIR += $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/usr/lib
|
||||
|
||||
CROSS_LDFLAGS = $(addprefix -L,$(AXIS_SDK_TARGET_LIB_DIR))
|
||||
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.linux-cris
|
||||
ifeq ($(EPICS_HOST_ARCH), linux-x86)
|
||||
-include $(CONFIG)/os/CONFIG.linux-x86.linux-cris
|
||||
-include $(CONFIG)/os/CONFIG_SITE.linux-x86.linux-cris
|
||||
endif
|
||||
endif
|
||||
|
||||
SHARED_LIBRARIES=NO
|
||||
STATIC_BUILD=YES
|
||||
|
||||
ARCH_DEP_CFLAGS += -mno-mul-bug-workaround
|
||||
OP_SYS_CFLAGS += -mlinux
|
||||
ARCH_DEP_CPPFLAGS += -D_cris_ -mlinux
|
||||
|
||||
#uncomment CRIS_COMPILER_DEBUG for debugging cris-compiled code
|
||||
#CRIS_COMPILER_DEBUG
|
||||
@@ -1,8 +0,0 @@
|
||||
# CONFIG.darwin-ppc.Common
|
||||
#
|
||||
# Definitions for darwin-ppc host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.darwin-ppc.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
@@ -1,13 +0,0 @@
|
||||
# CONFIG.darwin-ppc.darwin-ppc-debug
|
||||
#
|
||||
# Definitions for darwin-ppc host - darwin-ppc-debug target build with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.darwin-ppc.darwin-ppc-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
-include $(CONFIG)/os/CONFIG.Common.darwin-ppc
|
||||
-include $(CONFIG)/os/CONFIG.darwin-ppc.darwin-ppc
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.darwin-ppc
|
||||
-include $(CONFIG)/os/CONFIG_SITE.darwin-ppc.darwin-ppc
|
||||
|
||||
BUILD_CLASS=HOST
|
||||
HOST_OPT = NO
|
||||
@@ -1,8 +0,0 @@
|
||||
# CONFIG.darwin-ppcx86.Common
|
||||
#
|
||||
# Definitions for Darwin universal PowerPC + x86 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.darwin-ppcx86.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
@@ -3,6 +3,6 @@
|
||||
# Definitions for darwin-x86 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.darwin-x86.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#support for IPv6 etc.
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
@@ -30,6 +30,7 @@ ARCH_DEP_LDFLAGS += $(ARCH_DEP_FLAGS)
|
||||
#
|
||||
# Special flags for Darwin
|
||||
# No common blocks (as required when using shared libraries)
|
||||
# OS provides socket address length
|
||||
#
|
||||
OP_SYS_CFLAGS += -fno-common
|
||||
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# CONFIG.linux-386.Common
|
||||
#
|
||||
# Definitions for linux-386 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-386.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
WIND_HOST_TYPE = x86-linux2
|
||||
@@ -1,8 +0,0 @@
|
||||
# CONFIG.linux-386.linux-386
|
||||
#
|
||||
# Definitions for linux-386 host - linux-386 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-386.linux-386
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include linux-x86 compiler definitions
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
@@ -1,10 +0,0 @@
|
||||
# CONFIG.linux-486.Common
|
||||
#
|
||||
# Definitions for linux-486 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-486.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
WIND_HOST_TYPE = x86-linux2
|
||||
@@ -1,9 +0,0 @@
|
||||
# CONFIG.linux-486.linux-486
|
||||
#
|
||||
# Definitions for linux-486 host - linux-486 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-486.linux-486
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include linux-x86 compiler definitions
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# CONFIG.linux-586.Common
|
||||
#
|
||||
# Definitions for linux-586 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-586.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
WIND_HOST_TYPE = x86-linux2
|
||||
@@ -1,9 +0,0 @@
|
||||
# CONFIG.linux-586.linux-586
|
||||
#
|
||||
# Definitions for linux-586 host - linux-586 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-586.linux-586
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include linux-x86 compiler definitions
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# CONFIG.linux-686.Common
|
||||
#
|
||||
# Definitions for linux-686 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-686.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
WIND_HOST_TYPE = x86-linux2
|
||||
@@ -1,9 +0,0 @@
|
||||
# CONFIG.linux-686.linux-686
|
||||
#
|
||||
# Definitions for linux-686 host - linux-686 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-686.linux-686
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include linux-x86 compiler definitions
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
# CONFIG.linux-x86.linux-cris
|
||||
#
|
||||
# Author: Peter Zumbruch
|
||||
# GSI
|
||||
# P.Zumbruch@gsi.de
|
||||
#
|
||||
# Definitions for linux-x86 host - linux-cris target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-cris
|
||||
#-------------------------------------------------------
|
||||
|
||||
GNU_DIR = $(CRIS_CROSS_COMPILER)
|
||||
|
||||
#STATIC_...
|
||||
STATIC_LDFLAGS_YES= -Wl,-Bstatic
|
||||
|
||||
## debian-gcc Bug#438641
|
||||
GNU_LDLIBS_YES =
|
||||
STATIC_LDFLAGS_YES += -static-libgcc
|
||||
|
||||
# if not in debug mode strip all symbols
|
||||
ifndef CRIS_COMPILER_DEBUG
|
||||
STATIC_LDFLAGS_YES += -Wl,--strip-all
|
||||
endif
|
||||
|
||||
ifeq ($(GNU),YES)
|
||||
STATIC_LDFLAGS_NO = -lgcc
|
||||
else
|
||||
STATIC_LDFLAGS_NO =
|
||||
endif
|
||||
|
||||
STATIC_LDLIBS_YES=
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
OPT_CXXFLAGS_YES = -Os
|
||||
|
||||
ifeq ($(STATIC_BUILD), YES)
|
||||
$(shell echo yes)
|
||||
endif
|
||||
@@ -1,20 +0,0 @@
|
||||
# CONFIG.linux-x86.linux-cris_v10
|
||||
#
|
||||
# Author: Peter Zumbruch
|
||||
# GSI
|
||||
# P.Zumbruch@gsi.de
|
||||
#
|
||||
# Definitions for linux-x86 host - linux-cris_v10 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-cris_v10
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux-cris targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-cris
|
||||
|
||||
GNU_TARGET = cris-axis-linux-gnu
|
||||
|
||||
ARCH_DEP_CFLAGS += -march=v10
|
||||
|
||||
# if you are using different places for cris_v10 cris_v32
|
||||
# you have to define for each architecture
|
||||
# AXIS_SDK_DIR=<AXIS_TOP_DIR_v10>
|
||||
@@ -1,20 +0,0 @@
|
||||
# CONFIG.linux-x86.linux-cris_v32
|
||||
#
|
||||
# Author: Peter Zumbruch
|
||||
# GSI
|
||||
# P.Zumbruch@gsi.de
|
||||
#
|
||||
# Definitions for linux-x86 host - linux-cris_v32 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-cris_v32
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux-cris targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-cris
|
||||
|
||||
GNU_TARGET = crisv32-axis-linux-gnu
|
||||
|
||||
ARCH_DEP_CFLAGS += -march=v32
|
||||
|
||||
# if you are using different places for cris_v10 cris_v32
|
||||
# you have to define for each architecture
|
||||
# AXIS_SDK_DIR=<AXIS_TOP_DIR_v32>
|
||||
@@ -11,6 +11,3 @@ STATIC_LDFLAGS_YES= -Wl,-Bstatic
|
||||
STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Wl,-Bdynamic
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
SHRLIB_LDFLAGS += -Wl,-h$@
|
||||
LOADABLE_SHRLIB_LDFLAGS += -Wl,-h$@
|
||||
|
||||
@@ -18,6 +18,6 @@ STATIC_LDLIBS_NO=
|
||||
|
||||
OP_SYS_LDFLAGS += -z ignore -z combreloc -z lazyload
|
||||
|
||||
SHRLIB_LDFLAGS += -Wl,-z,defs -Wl,-z,text -Wl,-h,$@
|
||||
LOADABLE_SHRLIB_LDFLAGS += -Wl,-z,text -Wl,-h,$@
|
||||
SHRLIB_LDFLAGS += -Wl,-z,defs -Wl,-z,text
|
||||
LOADABLE_SHRLIB_LDFLAGS += -Wl,-z,text
|
||||
GNU_LDLIBS_YES += -lc
|
||||
|
||||
@@ -49,9 +49,9 @@ OPT_CFLAGS_YES_NO = -Ox -Oy-
|
||||
OPT_CFLAGS_YES = $(OPT_CFLAGS_YES_$(OPT_WHOLE_PROGRAM))
|
||||
|
||||
#
|
||||
# -Zi generate program database for debugging information
|
||||
# -Z7 generate C7 compatible debugging information (inside .obj)
|
||||
# -RTCsu enable run-time error checks
|
||||
OPT_CFLAGS_NO = -Zi -RTCsu
|
||||
OPT_CFLAGS_NO = -Z7 -RTCsu
|
||||
|
||||
# specify object file name and location
|
||||
OBJ_CFLAG = -Fo
|
||||
@@ -119,9 +119,9 @@ OPT_CXXFLAGS_YES_NO = -Ox -Oy-
|
||||
OPT_CXXFLAGS_YES = $(OPT_CXXFLAGS_YES_$(OPT_WHOLE_PROGRAM))
|
||||
|
||||
#
|
||||
# -Zi generate program database for debugging information
|
||||
# -Z7 generate C7 compatible debugging information (inside .obj)
|
||||
# -RTCsu enable run-time error checks
|
||||
OPT_CXXFLAGS_NO = -RTCsu -Zi
|
||||
OPT_CXXFLAGS_NO = -RTCsu -Z7
|
||||
|
||||
# specify object file name and location
|
||||
OBJ_CXXFLAG = -Fo
|
||||
@@ -143,20 +143,6 @@ STATIC_LDLIBS_NO=
|
||||
STATIC_LDFLAGS=
|
||||
RANLIB=
|
||||
|
||||
#
|
||||
# option needed for parallel builds with Visual Studio 2013 onward
|
||||
# VS2012 and above have VisualStudioVersion, so just need to exclude 2012 (11.0)
|
||||
# -FS Force Synchronous PDB Writes
|
||||
#
|
||||
ifneq ($(VisualStudioVersion),)
|
||||
ifneq ($(VisualStudioVersion),11.0)
|
||||
OPT_CXXFLAGS_NO += -FS
|
||||
OPT_CFLAGS_NO += -FS
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
#
|
||||
# add -profile here to run the ms profiler
|
||||
# -LTCG whole program optimization
|
||||
# -incremental:no full linking
|
||||
|
||||
@@ -3,11 +3,26 @@
|
||||
# Site-specific information for all RTEMS targets
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Where to find RTEMS
|
||||
# Where to find RTEMS, and what version is it
|
||||
#
|
||||
# RTEMS_BASE must point to the specific installation of RTEMS to
|
||||
# build the target code with.
|
||||
# RTEMS_VERSION is used in the path to the toolsets inside that
|
||||
# installation. For RTEMS 5 only the major version number is
|
||||
# used, but for RTEMS 4.10.2 say all 3 components are required.
|
||||
#
|
||||
|
||||
# FHI:
|
||||
#RTEMS_VERSION = 5
|
||||
#RTEMS_BASE = /home/h1/DBG/rtems
|
||||
#RTEMS_BASE = /home/ad/MVME6100/rtems/$(RTEMS_VERSION)
|
||||
#RTEMS_BASE = /opt/RTEMS/qoriq/rtems/$(RTEMS_VERSION)
|
||||
|
||||
# APS:
|
||||
RTEMS_VERSION = 4.10.2
|
||||
RTEMS_BASE = /usr/local/vw/rtems/rtems-$(RTEMS_VERSION)
|
||||
#RTEMS_VERSION = 4.10.2
|
||||
#RTEMS_BASE = /usr/local/vw/rtems/rtems-4.10.2
|
||||
#RTEMS_VERSION = 5
|
||||
#RTEMS_BASE = /usr/local/vw/rtems/rtems-5.1
|
||||
|
||||
# Cross-compile toolchain in $(RTEMS_TOOLS)/bin
|
||||
#
|
||||
|
||||
@@ -6,4 +6,4 @@
|
||||
# If you're building this architecture you _probably_ want to
|
||||
# run the tests for it under QEMU, but if not you can turn
|
||||
# them off here by commenting out this line:
|
||||
CROSS_COMPILER_RUNTEST_ARCHS += RTEMS-pc386-qemu
|
||||
CROSS_COMPILER_RUNTEST_ARCHS += $(T_A)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# CONFIG_SITE.Common.RTEMS-pc686-qemu
|
||||
#
|
||||
# Site-specific overrides for the RTEMS-pc686-qemu target
|
||||
#
|
||||
|
||||
# If you're building this architecture you _probably_ want to
|
||||
# run the tests for it under QEMU, but if not you can turn
|
||||
# them off here by commenting out this line:
|
||||
CROSS_COMPILER_RUNTEST_ARCHS += $(T_A)
|
||||
@@ -1,12 +0,0 @@
|
||||
# CONFIG_SITE.Common.darwin-ppc
|
||||
#
|
||||
# Site override definitions for darwin-ppc target builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Select which CPU architectures to include in your universal binaries:
|
||||
# ppc
|
||||
# ppc64 - Not tested
|
||||
|
||||
ARCH_CLASS = ppc
|
||||
#ARCH_CLASS = ppc64
|
||||
#ARCH_CLASS = ppc ppc64
|
||||
@@ -1,20 +0,0 @@
|
||||
# CONFIG_SITE.Common.darwin-ppcx86
|
||||
#
|
||||
# Site override definitions for darwin-ppcx86 target builds
|
||||
#----------------------------------------------------------
|
||||
|
||||
# Select which CPU architectures to include in your universal binaries:
|
||||
# ppc
|
||||
# i386
|
||||
# ppc64 - Not tested
|
||||
# x86_64 - Needs MacOS 10.4 with Universal SDK, or 10.5 or later.
|
||||
|
||||
ARCH_CLASS = ppc i386
|
||||
#ARCH_CLASS = ppc x86_64
|
||||
#ARCH_CLASS = ppc i386 x86_64
|
||||
#ARCH_CLASS = ppc64 i386
|
||||
#ARCH_CLASS = ppc64 x86_64
|
||||
#ARCH_CLASS = ppc64 i386 x86_64
|
||||
#ARCH_CLASS = ppc ppc64 i386
|
||||
#ARCH_CLASS = ppc ppc64 x86_64
|
||||
#ARCH_CLASS = ppc ppc64 i386 x86_64
|
||||
@@ -4,14 +4,12 @@
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Select which CPU architecture(s) to include in your MacOS binaries:
|
||||
# i386, x86_64, or both (fat binaries).
|
||||
# x86_64 only, or arm64 as well (fat binaries).
|
||||
|
||||
#ARCH_CLASS = i386
|
||||
ARCH_CLASS = x86_64
|
||||
#ARCH_CLASS = i386 x86_64
|
||||
#ARCH_CLASS = arm64 x86_64
|
||||
|
||||
#
|
||||
# Uncomment the following 3 lines to build with Apple's GCC instead of CLANG.
|
||||
# Uncomment the following 3 lines to build with GCC instead of CLANG.
|
||||
#
|
||||
#CMPLR_CLASS = gcc
|
||||
#CC = gcc
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
# CONFIG_SITE.Common.linux-cris
|
||||
#
|
||||
# Site-specific settings for the linux-cris target
|
||||
|
||||
# NOTE: In most cases if SHARED_LIBRARIES is set to YES the
|
||||
# shared libraries will be found automatically. However if the .so
|
||||
# files are installed at a different path to their compile-time path
|
||||
# then in order to be found at runtime do one of these:
|
||||
# a) LD_LIBRARY_PATH must include the full absolute pathname to
|
||||
# $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when invoking base
|
||||
# executables.
|
||||
# b) Add the runtime path to SHRLIB_DEPLIB_DIRS and PROD_DEPLIB_DIRS, which
|
||||
# will add the named directory to the list contained in the executables.
|
||||
# c) Add the runtime path to /etc/ld.so.conf and run ldconfig
|
||||
# to inform the system of the shared library location.
|
||||
|
||||
|
||||
# Use GNU Readline if the header file is installed
|
||||
COMMANDLINE_LIBRARY = $(strip $(if $(wildcard \
|
||||
$(GNU_DIR)/include/readline/readline.h), READLINE, EPICS))
|
||||
|
||||
# If libreadline needs additional libraries to be linked with it, try
|
||||
# uncommenting each of the lines below in turn, starting with the top
|
||||
# one and working downwards, until the build succeeds. Do a 'make rebuild'
|
||||
# from the top of the Base tree after changing this setting.
|
||||
|
||||
# Needs -lncurses:
|
||||
#COMMANDLINE_LIBRARY = READLINE_NCURSES
|
||||
|
||||
# Needs -lcurses:
|
||||
#COMMANDLINE_LIBRARY = READLINE_CURSES
|
||||
|
||||
# Readline is broken or you don't want use it:
|
||||
#COMMANDLINE_LIBRARY = EPICS
|
||||
@@ -1,4 +0,0 @@
|
||||
# CONFIG_SITE.darwin-ppc.Common
|
||||
#
|
||||
# Site override definitions for darwin-ppc host builds
|
||||
#-------------------------------------------------------
|
||||
@@ -1,4 +0,0 @@
|
||||
# CONFIG_SITE.darwin-ppcx86.Common
|
||||
#
|
||||
# Site override definitions for darwin-ppcx86 host builds
|
||||
#-------------------------------------------------------
|
||||
@@ -3,7 +3,5 @@
|
||||
# Site override definitions for linux-x86 host builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
# JBA test override values
|
||||
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040 solaris-sparc
|
||||
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040
|
||||
#CROSS_COMPILER_TARGET_ARCHS = RTEMS-mvme2100 RTEMS-pc386 # RTEMS-mvme5500 RTEMS-mvme167
|
||||
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32
|
||||
#CROSS_COMPILER_TARGET_ARCHS = RTEMS-mvme2100 RTEMS-pc386-qemu
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
# CONFIG_SITE.linux-x86.linux-cris
|
||||
#
|
||||
# Author: Peter Zumbruch
|
||||
# GSI
|
||||
# P.Zumbruch@gsi.de
|
||||
#
|
||||
# Site specific definitions for linux-x86 host - linux-cris target builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
# define site specific location of cris cross compiler's gnu directory
|
||||
# but without bin sub directory, this will be added automatically.
|
||||
|
||||
CRIS_CROSS_COMPILER ?= UNDEFINED_ENV__CRIS_CROSS_COMPILER
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
#ifdef _COMMENT_
|
||||
/* Extract compiler pre-defined macros as Make variables
|
||||
*
|
||||
* Expanded as $(INSTALL_CFG)/TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A)
|
||||
*
|
||||
* Must be careful not to #include any C definitions
|
||||
* into what is really a Makefile snippet
|
||||
*
|
||||
* cf. https://sourceforge.net/p/predef/wiki/Home/
|
||||
*/
|
||||
/* GCC preprocessor drops C comments from output.
|
||||
* MSVC preprocessor emits C comments in output
|
||||
*/
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) && !defined(__clang__)
|
||||
GCC_MAJOR = __GNUC__
|
||||
GCC_MINOR = __GNUC_MINOR__
|
||||
GCC_PATCH = __GNUC_PATCHLEVEL__
|
||||
|
||||
#elif defined(__clang__)
|
||||
CLANG_MAJOR = __clang_major__
|
||||
CLANG_MINOR = __clang_minor__
|
||||
CLANG_PATCH = __clang_patchlevel__
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
MSVC_VER = _MSC_VER
|
||||
#endif
|
||||
|
||||
#ifdef __rtems__
|
||||
#include <rtems/score/cpuopts.h>
|
||||
# if __RTEMS_MAJOR__>=5
|
||||
OS_API = posix
|
||||
# else
|
||||
OS_API = score
|
||||
# endif
|
||||
#endif
|
||||
+10
-10
@@ -107,7 +107,7 @@ BRIEF_MEMBER_DESC = YES
|
||||
# brief descriptions will be completely suppressed.
|
||||
# The default value is: YES.
|
||||
|
||||
REPEAT_BRIEF = YES
|
||||
REPEAT_BRIEF = NO
|
||||
|
||||
# This tag implements a quasi-intelligent brief description abbreviator that is
|
||||
# used to form the text in various listings. Each string in this list, if found
|
||||
@@ -143,7 +143,7 @@ ALWAYS_DETAILED_SEC = NO
|
||||
# operators of the base classes will not be shown.
|
||||
# The default value is: NO.
|
||||
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
INLINE_INHERITED_MEMB = YES
|
||||
|
||||
# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
|
||||
# before files name in the file list and in the header files. If set to NO the
|
||||
@@ -163,7 +163,7 @@ FULL_PATH_NAMES = YES
|
||||
# This tag requires that the tag FULL_PATH_NAMES is set to YES.
|
||||
|
||||
STRIP_FROM_PATH = @TOP@/include \
|
||||
../
|
||||
..
|
||||
|
||||
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
|
||||
# path mentioned in the documentation of a class, which tells the reader which
|
||||
@@ -173,7 +173,7 @@ STRIP_FROM_PATH = @TOP@/include \
|
||||
# using the -I flag.
|
||||
|
||||
STRIP_FROM_INC_PATH = @TOP@/include \
|
||||
../
|
||||
..
|
||||
|
||||
# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
|
||||
# less readable) file names. This can be useful is your file systems doesn't
|
||||
@@ -228,7 +228,7 @@ SEPARATE_MEMBER_PAGES = NO
|
||||
# uses this value to replace tabs by spaces in code fragments.
|
||||
# Minimum value: 1, maximum value: 16, default value: 4.
|
||||
|
||||
TAB_SIZE = 4
|
||||
TAB_SIZE = 8
|
||||
|
||||
# This tag can be used to specify a number of aliases that act as commands in
|
||||
# the documentation. An alias has the form:
|
||||
@@ -415,7 +415,7 @@ LOOKUP_CACHE_SIZE = 0
|
||||
# normally produced when WARNINGS is set to YES.
|
||||
# The default value is: NO.
|
||||
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_ALL = NO
|
||||
|
||||
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
|
||||
# be included in the documentation.
|
||||
@@ -543,7 +543,7 @@ INLINE_INFO = YES
|
||||
# name. If set to NO the members will appear in declaration order.
|
||||
# The default value is: YES.
|
||||
|
||||
SORT_MEMBER_DOCS = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
|
||||
# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
|
||||
# descriptions of file, namespace and class members alphabetically by member
|
||||
@@ -818,7 +818,7 @@ EXCLUDE_SYMLINKS = NO
|
||||
# Note that the wildcards are matched against the file with absolute path, so to
|
||||
# exclude all test directories for example use the pattern */test/*
|
||||
|
||||
EXCLUDE_PATTERNS = O.*
|
||||
EXCLUDE_PATTERNS = /O.*/
|
||||
|
||||
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
|
||||
# (namespaces, classes, functions, etc.) that should be excluded from the
|
||||
@@ -1987,7 +1987,7 @@ INCLUDE_FILE_PATTERNS =
|
||||
# recursively expanded use the := operator instead of the = operator.
|
||||
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
|
||||
|
||||
PREDEFINED =
|
||||
PREDEFINED = __cplusplus
|
||||
|
||||
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
|
||||
# tag can be used to specify a list of macro names that should be expanded. The
|
||||
@@ -2006,7 +2006,7 @@ EXPAND_AS_DEFINED =
|
||||
# The default value is: YES.
|
||||
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
|
||||
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
SKIP_FUNCTION_MACROS = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to external references
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
cross compiling EPICS and
|
||||
building IOC Applications for cris architectures
|
||||
(linux-cris_v10, linux-cris_v32)
|
||||
======================================================================
|
||||
|
||||
Please mail questions, comments, corrections, etc. ...
|
||||
to P.Zumbruch@gsi.de
|
||||
November 2007
|
||||
|
||||
Tools needed
|
||||
------------
|
||||
|
||||
o Axis SDK
|
||||
- Overview:
|
||||
http://developer.axis.com/wiki/doku.php?id=axis:sdk
|
||||
- Download:
|
||||
http://www.axis.com/products/dev_sdk/download_dist.php
|
||||
- Install HOWTO:
|
||||
http://developer.axis.com/wiki/doku.php?id=axis:software_distribution_install_howto
|
||||
o Axis GNU gcc release for cross compiling
|
||||
- Download:
|
||||
http://www.axis.com/products/dev_sdk/download_compiler.php
|
||||
- Install HOWTO:
|
||||
http://developer.axis.com/wiki/doku.php?id=axis:compiler_install
|
||||
|
||||
Environment
|
||||
-----------
|
||||
|
||||
o CRIS_CROSS_COMPILER
|
||||
- path to top directory of cris cross compiler,
|
||||
where binaries are in sub directory bin/
|
||||
- if not set, the make process will stop at place
|
||||
UNDEFINED_ENV__CRIS_CROSS_COMPILER
|
||||
o AXIS_TOP_DIR?=UNDEFINED_ENV__AXIS_TOP_DIR
|
||||
- path to axis SDK top directory
|
||||
- if not set compile and link commands will contain references to
|
||||
UNDEFINED_ENV__AXIS_TOP_DIR
|
||||
- to set the necessary variables, execute
|
||||
. ./init_env
|
||||
in the top directory of the SDK provided here.
|
||||
o CRIS_COMPILER_DEBUG
|
||||
- if defined symbols won't be stripped,
|
||||
resulting in comparably large files
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
o Edit the CONFIG_SITE files
|
||||
- CONFIG_SITE.linux-x86.Common:
|
||||
for CROSS_COMPILER_TARGET_ARCHS += linux-cris_v10
|
||||
for CROSS_COMPILER_TARGET_ARCHS += linux-cris_v32
|
||||
- optionally CONFIG_SITE.linux-x86.linux-cris
|
||||
for setting CRIS_CROSS_COMPILER
|
||||
- optionally create CONFIG_SITE.linux-x86.linux-cris_v10
|
||||
- optionally create CONFIG_SITE.linux-x86.linux-cris_v32
|
||||
o "make".
|
||||
|
||||
Shared Libraries
|
||||
----------------
|
||||
|
||||
Generating shared libraries is not supported.
|
||||
|
||||
|
||||
Please feel free to contact me if you
|
||||
encounter serious problems.
|
||||
|
||||
Peter
|
||||
@@ -17,6 +17,241 @@ should also be read to understand what has changed since earlier releases.
|
||||
|
||||
<!-- Insert new items immediately below here ... -->
|
||||
|
||||
### Support for obsolete architectures removed
|
||||
|
||||
These target architectures have been removed:
|
||||
|
||||
+ darwin-ppc, darwin-ppcx86
|
||||
+ linux-386, linux-486, linux-586, linux-686, linux-athlon (cross-build)
|
||||
+ linux-cris, linux-cris_v10, linux-cris_v32 (cross-build)
|
||||
+ RTEMS-at91rm9200ek, RTEMS-gen68360, RTEMS-mcp750, RTEMS-mvme167,
|
||||
RTEMS-psim (cross-build)
|
||||
|
||||
### Experimental Support for RTEMS 5
|
||||
|
||||
The new major release of the RTEMS real-time OS contains many changes
|
||||
including the ability to support SMP systems. This release of EPICS
|
||||
can still be built with RTEMS 4.9.x or 4.10.x and should work just
|
||||
the same as earlier releases, although due to code having moved around
|
||||
we recommend thorough testing before this release is first used in
|
||||
production systems.
|
||||
|
||||
This release of EPICS comes with support for several new RTEMS targets
|
||||
running on RTEMS 5:
|
||||
|
||||
- RTEMS-beagleboneblack
|
||||
- RTEMS-pc686
|
||||
- RTEMS-qoriq_e500 (MVME2500)
|
||||
- RTEMS-xilinx-zynq-a9_qemu
|
||||
- RTEMS-xilinx_zynq_zedboard
|
||||
|
||||
The EPICS support for RTEMS 4 has always relied on RTEMS-specific
|
||||
kernel APIs which cannot be used on an SMP system, so a new port was
|
||||
created to use the Posix real-time APIs that are now recommended for
|
||||
RTEMS 5. Note that a single installation of EPICS cannot build both
|
||||
RTEMS 4 and RTEMS 5 targets, if you need to support targets running
|
||||
on both versions you must use a separate installation, and be sure
|
||||
to run `make distclean` if switching a single source tree from one
|
||||
to the other (both header files and dependency files are different
|
||||
between the two and must be cleaned out).
|
||||
|
||||
The configuration variable RTEMS_VERSION in the EPICS config file
|
||||
`configure/os/CONFIG_SITE.Common.RTEMS` must be set to the full 3-
|
||||
part version number for RTEMS 4 releases, e.g. `4.9.1`, `4.10.2`
|
||||
but for RTEMS 5.1 and later it must only contain the major version
|
||||
number e.g. `5`.
|
||||
|
||||
Some RTEMS BSPs can be built and may work with the newer libbsd
|
||||
network stack which RTEMS is moving over to, but most of the MVME
|
||||
boards (and the uC5282) still require the legacy network stack.
|
||||
|
||||
The dependency on bspExt has been removed, EPICS now provides its
|
||||
own routine for VMEbus probing (or uses one built into the BSP).
|
||||
|
||||
Anyone using this release on RTEMS is advised to discuss problems
|
||||
building or running it on either the tech-talk or core-talk email
|
||||
lists so the core developers can help with and find out about any
|
||||
problems with the old or new port.
|
||||
|
||||
Known Issues:
|
||||
- MVME2100 and MVME2700 need changes to the RTEMS 5 BSP to build.
|
||||
- VMEBus support is not yet available for the MVME2500 BSP.
|
||||
- There are some known issues with floating point on MVME2500,
|
||||
probably related to its newer e500 FPU.
|
||||
- Changed network driver for beatnik to work with libbsd. Some
|
||||
issues with DHCP, but network stack usable. Can load env from
|
||||
NVRAM.
|
||||
|
||||
### `epicsEnvShow` accepts a glob pattern
|
||||
|
||||
The optional argument to epicsEnvShow can now be a glob pattern.
|
||||
|
||||
### New function `epicsStrnGlobMatch()`
|
||||
|
||||
The function `epicsStrnGlobMatch(char* str, size_t len, char* pattern)`
|
||||
works exactly the same as `epicsStrGlobMatch()` but takes an additional
|
||||
length arguments which limits the number of characters of `str` to match.
|
||||
|
||||
### Automatic fallback to thread when unable to exec caRepeater
|
||||
|
||||
A process using libca which does not find an existing caRepeater process
|
||||
will attempt to start one by running the caRepeater executable.
|
||||
This is not always possible, usually when caRepeater is not in `$PATH`.
|
||||
Now, instead of printing a warning, an internal caRepeater thread
|
||||
will be started (as is done be RTEMS and vxWorks targets).
|
||||
|
||||
If this fallback occurs, the lifetime of the caRepeater thread
|
||||
may be shorter than the lifetime of a separate caRepeater process
|
||||
would have been.
|
||||
|
||||
It remains the recommended practice to explicitly start a caRepeater
|
||||
instance. Examples of both systemd (`caRepeater.service`) and sysv
|
||||
(`S99caRepeater`) scripts may be found under `bin/`.
|
||||
|
||||
### Glob pattern allowed in `var` command
|
||||
|
||||
When used with one argument, the `var` command can be used with a glob pattern
|
||||
for printing matching variables.
|
||||
|
||||
### Formalize/fix `FINAL_LOCATION`
|
||||
|
||||
The `FINAL_LOCATION` make variable has for some time been an undocumented
|
||||
means of performing a staged build. This is a build which "installs" to
|
||||
a temporary location, which will later be moved to a final location.
|
||||
|
||||
This has now been added to `configure/CONFIG_SITE`.
|
||||
|
||||
Usage analogous to the autotools recipe
|
||||
|
||||
```sh
|
||||
./configure --prefix=/usr/lib/epics
|
||||
make install DESTDIR=/tmp/build
|
||||
```
|
||||
|
||||
would be
|
||||
|
||||
```sh
|
||||
make INSTALL_LOCATION=/tmp/build FINAL_LOCATION=/usr/lib/epics
|
||||
```
|
||||
|
||||
`FINAL_LOCATION` is now correctly used in systemd and sysv init scripts
|
||||
`caRepeater.service`, `S99caRepeater`, and `S99logServer`.
|
||||
|
||||
### IOCsh sets `${PWD}`
|
||||
|
||||
IOC shell will now ensure `${PWD}` is set on startup,
|
||||
and updated by the `cd` iocsh function.
|
||||
|
||||
### Add Alarm Message and Time Tag Fields
|
||||
|
||||
Two new fields have been added to `dbCommon` so will be present in all
|
||||
records: `AMSG` and `UTAG`.
|
||||
|
||||
#### `AMSG`
|
||||
|
||||
`AMSG` can hold an arbitrary 40-character string, providing additional
|
||||
information about the alarm condition indicated in `STAT` and `SEVR`. With no
|
||||
alarm it will hold an empty string. The new `recGblSetSevrMsg()` function can
|
||||
be used in place of `recGblSetSevr()` to signal an alarm while providing a
|
||||
message.
|
||||
|
||||
For example, a device support's `read_bi()` routine for a hypothetical
|
||||
multi-channel ethernet attached device might flag a communication error
|
||||
between the IOC and controller, or an error involving a certain channel like
|
||||
this:
|
||||
|
||||
```c
|
||||
static long read_bi(biRecord* prec) {
|
||||
...
|
||||
if (!priv->connected) {
|
||||
recGblSetSevrMsg(prec, COMM_ALARM, INVALID_ALARM,
|
||||
"No controller connected");
|
||||
return S_dev_noDevice;
|
||||
}
|
||||
if (!priv->err) {
|
||||
recGblSetSevrMsg(prec, READ_ALARM, INVALID_ALARM,
|
||||
"Channel %u disconnexted", priv->chan);
|
||||
return S_dev_noDevice;
|
||||
}
|
||||
return status;
|
||||
}
|
||||
```
|
||||
|
||||
#### `UTAG`
|
||||
|
||||
`UTAG` holds an `epicsUInt64` value which is semantically part of the record's
|
||||
timestamp (`TIME`). The value defaults to zero if not explicitly set. Device
|
||||
support or an event time provider which supports this feature may write a tag
|
||||
value directly to the `dbCommon::utag` field.
|
||||
|
||||
`TSEL` links will copy both `TIME` and `UTAG` between records if the link type
|
||||
supports this (CA links do not).
|
||||
|
||||
A `utag` server side channel filter has been added which can be configured to
|
||||
filter out monitor updates which don't pass the test `(UTAG & M) == V` where
|
||||
`M` and `V` are client specified integers. For example running the command
|
||||
`camonitor BPM0:X.{utag:{M:1,V:1}}` will only show updates for which
|
||||
`(UTAG & 1) == 1` i.e. the least significant bit of the `UTAG` field is set.
|
||||
|
||||
This feature is intended for use by intelligent devices which can provide
|
||||
contextual information along with a value/alarm/time. For example, a beam
|
||||
diagnostic device which is aware of whether a beam signal should be present
|
||||
(eg. from a global timing system).
|
||||
|
||||
#### Link Support
|
||||
|
||||
Two new optional methods have been added to the Link Support Entry Table
|
||||
(`struct lset`): `lset::getAlarmMsg()` and `lset::getTimeStampTag()`. See
|
||||
comments in dbLink.h for details on implementing these.
|
||||
|
||||
Two new accessor functions have also been added which call these methods:
|
||||
`dbGetAlarmMsg()` and `dbGetTimeStampTag()`.
|
||||
|
||||
#### Compatibility
|
||||
|
||||
User code wishing to call these interfaces while maintaining compatibility with older
|
||||
versions of Base may add some of the following macro definitions, and ensure
|
||||
that the variables referenced by output pointers are initialized.
|
||||
|
||||
```c
|
||||
#ifndef HAS_ALARM_MESSAGE
|
||||
# recGblSetSevrMsg(REC, STAT, SEVR, ...) recGblSetSevr(REC, STAT, SEVR)
|
||||
#endif
|
||||
#ifndef dbGetAlarmMsg
|
||||
# define dbGetAlarmMsg(LINK, STAT, SEVR, BUF, BUFLEN) dbGetAlarm(LINK, STAT, SEVR)
|
||||
#endif
|
||||
#ifndef dbGetTimeStampTag
|
||||
# define dbGetTimeStampTag(LINK, STAMP, TAG) dbGetTimeStamp(LINK, STAMP)
|
||||
#endif
|
||||
```
|
||||
|
||||
|
||||
### Timeouts for Unit Test Programs
|
||||
|
||||
The unit test programs that are run by the `make runtests` or `make tapfiles`
|
||||
commands get executed by a `.t` wrapper script which is normally generated by
|
||||
the EPICS `makeTestfile.pl` program. Those generated wrapper scripts now
|
||||
impose a time-limit on the test program they execute, and will kill it if it
|
||||
runs for longer than 500 seconds (8 minutes 20) without exiting. That
|
||||
time-limit can be changed for any such test by modifying the Makefile which
|
||||
creates and runs the `.t` wrapper script.
|
||||
|
||||
Setting the environment variable `EPICS_UNITTEST_TIMEOUT` to the desired
|
||||
number of seconds while the Makefile is generating the test script changes the
|
||||
timeout in that script. For example:
|
||||
|
||||
```
|
||||
TESTSCRIPTS_HOST += hourLongTest.t
|
||||
hourLongTest.t: export EPICS_UNITTEST_TIMEOUT=3600
|
||||
```
|
||||
|
||||
When selecting such a timeout remember that different Continuous Integration
|
||||
systems such as GitHub Actions and Appveyor run on processors with different
|
||||
speeds, so allow enough head-room for slower systems to complete the test.
|
||||
|
||||
Test programs written directly in Perl as a `.plt` script should implement a
|
||||
similar timeout for themselves. The "netget" test in Base does this in a way
|
||||
that works on Windows as well as Unix-like hosts.
|
||||
|
||||
-----
|
||||
|
||||
@@ -457,7 +692,7 @@ work with older Base releases.
|
||||
|
||||
This would also be a good time to modify the device support to use the type-safe
|
||||
device support entry tables that were introduced in Base-3.16.2 -- see
|
||||
[#type-safe-device-and-driver-support-tables](this entry below) for the
|
||||
[this entry below](#type-safe-device-and-driver-support-tables) for the
|
||||
description of that change, which is also optional for now.
|
||||
|
||||
Look at the aiRecord for example. Near the top of the generated `aiRecord.h`
|
||||
@@ -1690,6 +1925,15 @@ header and removed the need for dbScan.c to reach into the internals of its
|
||||
|
||||
## Changes made on the 3.15 branch since 3.15.8
|
||||
|
||||
### Use waitable timers on Microsoft Windows
|
||||
|
||||
The `epicsEventWaitWithTimeout` and `epicsThreadSleep` functions have
|
||||
been changed to use waitable timers. On Windows 10 version 1803 or higher
|
||||
they will use high resolution timers for more consistent timing.
|
||||
|
||||
See https://groups.google.com/a/chromium.org/g/scheduler-dev/c/0GlSPYreJeY
|
||||
for a comparison of the performance of different timers.
|
||||
|
||||
### Change to the `junitfiles` self-test build target
|
||||
|
||||
The names of the generated junit xml test output files have been changed
|
||||
|
||||
@@ -113,7 +113,7 @@ SCRIPTS_Linux = caRepeater.service
|
||||
|
||||
EXPAND += S99caRepeater@
|
||||
EXPAND += caRepeater.service@
|
||||
EXPAND_VARS = INSTALL_BIN=$(abspath $(INSTALL_BIN))
|
||||
EXPAND_VARS = INSTALL_BIN=$(FINAL_LOCATION)/bin/$(T_A)
|
||||
|
||||
SRC_DIRS += $(CURDIR)/test
|
||||
PROD_HOST += ca_test
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
#ifndef INC_caProto_H
|
||||
#define INC_caProto_H
|
||||
|
||||
// Pick up definition of IPPORT_USERRESERVED
|
||||
#include <osdSock.h>
|
||||
|
||||
#define capStrOf(A) #A
|
||||
#define capStrOfX(A) capStrOf ( A )
|
||||
|
||||
|
||||
@@ -629,8 +629,8 @@ void epicsStdCall caStartRepeaterIfNotInstalled ( unsigned repeaterPort )
|
||||
* repeater's port)
|
||||
*/
|
||||
osiSpawnDetachedProcessReturn osptr =
|
||||
osiSpawnDetachedProcess ( "CA Repeater", "caRepeater" );
|
||||
if ( osptr == osiSpawnDetachedProcessNoSupport ) {
|
||||
osiSpawnDetachedProcess ( "!CA Repeater", "caRepeater" );
|
||||
if ( osptr != osiSpawnDetachedProcessSuccess ) {
|
||||
epicsThreadId tid;
|
||||
|
||||
tid = epicsThreadCreate ( "CAC-repeater", epicsThreadPriorityLow,
|
||||
@@ -639,9 +639,6 @@ void epicsStdCall caStartRepeaterIfNotInstalled ( unsigned repeaterPort )
|
||||
fprintf ( stderr, "caStartRepeaterIfNotInstalled : unable to create CA repeater daemon thread\n" );
|
||||
}
|
||||
}
|
||||
else if ( osptr == osiSpawnDetachedProcessFail ) {
|
||||
fprintf ( stderr, "caStartRepeaterIfNotInstalled (): unable to start CA repeater daemon detached process\n" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ ifeq ($(wildcard $(PERL_h)),)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (inc,$(strip $(MAKECMDGOALS)))
|
||||
ifeq ($(T_A),$(EPICS_HOST_ARCH)) # No cross-builds (wrong Perl!)
|
||||
ifeq ($(strip $(XSUBPP)),)
|
||||
$(warning Perl's xsubpp program was not found.)
|
||||
@@ -62,6 +63,7 @@ endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
Cap5_SRCS = Cap5.xs
|
||||
Cap5_LIBS = ca Com
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
#include "caerr.h"
|
||||
#include "caeventmask.h"
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "asCa.h"
|
||||
#include "asDbLib.h"
|
||||
#include "callback.h"
|
||||
|
||||
@@ -14,17 +14,17 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "shareLib.h"
|
||||
#include "dbCoreAPI.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
epicsShareFunc void asCaStart(void);
|
||||
epicsShareFunc void asCaStop(void);
|
||||
epicsShareFunc int ascar(int level);
|
||||
epicsShareFunc int ascarFP(FILE *fp, int level);
|
||||
epicsShareFunc void ascaStats(int *pchans, int *pdiscon);
|
||||
DBCORE_API void asCaStart(void);
|
||||
DBCORE_API void asCaStop(void);
|
||||
DBCORE_API int ascar(int level);
|
||||
DBCORE_API int ascarFP(FILE *fp, int level);
|
||||
DBCORE_API void ascaStats(int *pchans, int *pdiscon);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
|
||||
#include "caeventmask.h"
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "asCa.h"
|
||||
#include "asDbLib.h"
|
||||
#include "callback.h"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include "callback.h"
|
||||
#include "shareLib.h"
|
||||
#include "dbCoreAPI.h"
|
||||
|
||||
typedef struct {
|
||||
epicsCallback callback;
|
||||
@@ -28,25 +28,25 @@ struct dbChannel;
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
epicsShareFunc int asSetFilename(const char *acf);
|
||||
epicsShareFunc int asSetSubstitutions(const char *substitutions);
|
||||
epicsShareFunc int asInit(void);
|
||||
epicsShareFunc int asInitAsyn(ASDBCALLBACK *pcallback);
|
||||
epicsShareFunc int asShutdown(void);
|
||||
epicsShareFunc int asDbGetAsl(struct dbChannel *chan);
|
||||
epicsShareFunc void * asDbGetMemberPvt(struct dbChannel *chan);
|
||||
epicsShareFunc int asdbdump(void);
|
||||
epicsShareFunc int asdbdumpFP(FILE *fp);
|
||||
epicsShareFunc int aspuag(const char *uagname);
|
||||
epicsShareFunc int aspuagFP(FILE *fp,const char *uagname);
|
||||
epicsShareFunc int asphag(const char *hagname);
|
||||
epicsShareFunc int asphagFP(FILE *fp,const char *hagname);
|
||||
epicsShareFunc int asprules(const char *asgname);
|
||||
epicsShareFunc int asprulesFP(FILE *fp,const char *asgname);
|
||||
epicsShareFunc int aspmem(const char *asgname,int clients);
|
||||
epicsShareFunc int aspmemFP(
|
||||
DBCORE_API int asSetFilename(const char *acf);
|
||||
DBCORE_API int asSetSubstitutions(const char *substitutions);
|
||||
DBCORE_API int asInit(void);
|
||||
DBCORE_API int asInitAsyn(ASDBCALLBACK *pcallback);
|
||||
DBCORE_API int asShutdown(void);
|
||||
DBCORE_API int asDbGetAsl(struct dbChannel *chan);
|
||||
DBCORE_API void * asDbGetMemberPvt(struct dbChannel *chan);
|
||||
DBCORE_API int asdbdump(void);
|
||||
DBCORE_API int asdbdumpFP(FILE *fp);
|
||||
DBCORE_API int aspuag(const char *uagname);
|
||||
DBCORE_API int aspuagFP(FILE *fp,const char *uagname);
|
||||
DBCORE_API int asphag(const char *hagname);
|
||||
DBCORE_API int asphagFP(FILE *fp,const char *hagname);
|
||||
DBCORE_API int asprules(const char *asgname);
|
||||
DBCORE_API int asprulesFP(FILE *fp,const char *asgname);
|
||||
DBCORE_API int aspmem(const char *asgname,int clients);
|
||||
DBCORE_API int aspmemFP(
|
||||
FILE *fp,const char *asgname,int clients);
|
||||
epicsShareFunc int astac(
|
||||
DBCORE_API int astac(
|
||||
const char *recordname,const char *user,const char *location);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
#include "asLib.h"
|
||||
#include "iocsh.h"
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "asCa.h"
|
||||
#include "asDbLib.h"
|
||||
#include "asIocRegister.h"
|
||||
@@ -120,7 +119,9 @@ static void ascarCallFunc(const iocshArgBuf *args)
|
||||
}
|
||||
|
||||
/* asDumpHash */
|
||||
static const iocshFuncDef asDumpHashFuncDef = {"asDumpHash",0,0};
|
||||
static const iocshFuncDef asDumpHashFuncDef = {"asDumpHash",0,0,
|
||||
"Show the contents of the hash table used "
|
||||
"to locate UAGs and HAGs.\n"};
|
||||
static void asDumpHashCallFunc(const iocshArgBuf *args)
|
||||
{
|
||||
asDumpHash();
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
#ifndef INC_asIocRegister_H
|
||||
#define INC_asIocRegister_H
|
||||
|
||||
#include "shareLib.h"
|
||||
#include "dbCoreAPI.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
epicsShareFunc void asIocRegister(void);
|
||||
DBCORE_API void asIocRegister(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -19,7 +19,10 @@ BPT_DBD += bptTypeJdegC.dbd
|
||||
BPT_DBD += bptTypeJdegF.dbd
|
||||
BPT_DBD += bptTypeKdegC.dbd
|
||||
BPT_DBD += bptTypeKdegF.dbd
|
||||
|
||||
ifneq (inc,$(strip $(MAKECMDGOALS)))
|
||||
DBD += $(BPT_DBD)
|
||||
endif
|
||||
|
||||
PROD_HOST += makeBpt
|
||||
|
||||
|
||||
@@ -17,17 +17,17 @@
|
||||
#ifndef INCcvtTableh
|
||||
#define INCcvtTableh 1
|
||||
|
||||
#include "shareLib.h"
|
||||
#include "dbCoreAPI.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Global Routines*/
|
||||
epicsShareFunc long cvtEngToRawBpt(
|
||||
DBCORE_API long cvtEngToRawBpt(
|
||||
double *pval,short linr,short init,void **ppbrk,short *plbrk);
|
||||
|
||||
epicsShareFunc long cvtRawToEngBpt(
|
||||
DBCORE_API long cvtRawToEngBpt(
|
||||
double *pval,short linr,short init,void **ppbrk, short *plbrk);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
#include "errMdef.h"
|
||||
#include "taskwd.h"
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "callback.h"
|
||||
#include "dbAccessDefs.h"
|
||||
#include "dbAddr.h"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#ifndef INCcallbackh
|
||||
#define INCcallbackh 1
|
||||
|
||||
#include "shareLib.h"
|
||||
#include "dbCoreAPI.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -69,23 +69,23 @@ typedef struct callbackQueueStats {
|
||||
#define callbackGetUser(USER, PCALLBACK) \
|
||||
( (USER) = (PCALLBACK)->user )
|
||||
|
||||
epicsShareFunc void callbackInit(void);
|
||||
epicsShareFunc void callbackStop(void);
|
||||
epicsShareFunc void callbackCleanup(void);
|
||||
epicsShareFunc int callbackRequest(epicsCallback *pCallback);
|
||||
epicsShareFunc void callbackSetProcess(
|
||||
DBCORE_API void callbackInit(void);
|
||||
DBCORE_API void callbackStop(void);
|
||||
DBCORE_API void callbackCleanup(void);
|
||||
DBCORE_API int callbackRequest(epicsCallback *pCallback);
|
||||
DBCORE_API void callbackSetProcess(
|
||||
epicsCallback *pcallback, int Priority, void *pRec);
|
||||
epicsShareFunc int callbackRequestProcessCallback(
|
||||
DBCORE_API int callbackRequestProcessCallback(
|
||||
epicsCallback *pCallback,int Priority, void *pRec);
|
||||
epicsShareFunc void callbackRequestDelayed(
|
||||
DBCORE_API void callbackRequestDelayed(
|
||||
epicsCallback *pCallback,double seconds);
|
||||
epicsShareFunc void callbackCancelDelayed(epicsCallback *pcallback);
|
||||
epicsShareFunc void callbackRequestProcessCallbackDelayed(
|
||||
DBCORE_API void callbackCancelDelayed(epicsCallback *pcallback);
|
||||
DBCORE_API void callbackRequestProcessCallbackDelayed(
|
||||
epicsCallback *pCallback, int Priority, void *pRec, double seconds);
|
||||
epicsShareFunc int callbackSetQueueSize(int size);
|
||||
epicsShareFunc int callbackQueueStatus(const int reset, callbackQueueStats *result);
|
||||
epicsShareFunc void callbackQueueShow(const int reset);
|
||||
epicsShareFunc int callbackParallelThreads(int count, const char *prio);
|
||||
DBCORE_API int callbackSetQueueSize(int size);
|
||||
DBCORE_API int callbackQueueStatus(const int reset, callbackQueueStats *result);
|
||||
DBCORE_API void callbackQueueShow(const int reset);
|
||||
DBCORE_API int callbackParallelThreads(int count, const char *prio);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
#include "epicsTypes.h"
|
||||
#include "errlog.h"
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "chfPlugin.h"
|
||||
#include "dbStaticLib.h"
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#ifndef CHFPLUGIN_H
|
||||
#define CHFPLUGIN_H
|
||||
|
||||
#include <shareLib.h>
|
||||
#include <dbCoreAPI.h>
|
||||
#include <dbDefs.h>
|
||||
#include <epicsTypes.h>
|
||||
#include <dbChannel.h>
|
||||
@@ -302,7 +302,7 @@ typedef struct chfPluginArgDef {
|
||||
* @param def String to be returned when 'i' isn't a valid Enum index.
|
||||
* @return The string associated with 'i'.
|
||||
*/
|
||||
epicsShareFunc const char* chfPluginEnumString(const chfPluginEnumType *Enums, int i, const char* def);
|
||||
DBCORE_API const char* chfPluginEnumString(const chfPluginEnumType *Enums, int i, const char* def);
|
||||
|
||||
/** @brief Register a plugin.
|
||||
*
|
||||
@@ -310,7 +310,7 @@ epicsShareFunc const char* chfPluginEnumString(const chfPluginEnumType *Enums, i
|
||||
* @param pif Pointer to the plugin's interface.
|
||||
* @param opts Pointer to the configuration argument description table.
|
||||
*/
|
||||
epicsShareFunc int chfPluginRegister(const char* key, const chfPluginIf *pif, const chfPluginArgDef* opts);
|
||||
DBCORE_API int chfPluginRegister(const char* key, const chfPluginIf *pif, const chfPluginArgDef* opts);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
|
||||
#include "epicsPrint.h"
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "cvtTable.h"
|
||||
#include "dbAccess.h"
|
||||
#include "dbBase.h"
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
#include "errlog.h"
|
||||
#include "errMdef.h"
|
||||
|
||||
#include "epicsExport.h" /* #define epicsExportSharedSymbols */
|
||||
#include "caeventmask.h"
|
||||
#include "callback.h"
|
||||
#include "dbAccessDefs.h"
|
||||
@@ -62,6 +61,7 @@
|
||||
#include "recGbl.h"
|
||||
#include "recSup.h"
|
||||
#include "special.h"
|
||||
#include "epicsExport.h"
|
||||
|
||||
struct dbBase *pdbbase = 0;
|
||||
volatile int interruptAccept=FALSE;
|
||||
@@ -360,6 +360,16 @@ static void getOptions(DBADDR *paddr, char **poriginal, long *options,
|
||||
*pushort++ = pcommon->ackt;
|
||||
pbuffer = (char *)pushort;
|
||||
}
|
||||
if( (*options) & DBR_AMSG ) {
|
||||
if (!pfl) {
|
||||
STATIC_ASSERT(sizeof(pcommon->amsg)==sizeof(pfl->amsg));
|
||||
strncpy(pbuffer, pcommon->amsg, sizeof(pcommon->amsg)-1);
|
||||
} else {
|
||||
strncpy(pbuffer, pfl->amsg,sizeof(pfl->amsg)-1);
|
||||
}
|
||||
pbuffer[sizeof(pcommon->amsg)-1] = '\0';
|
||||
pbuffer += sizeof(pcommon->amsg);
|
||||
}
|
||||
if( (*options) & DBR_UNITS ) {
|
||||
memset(pbuffer,'\0',dbr_units_size);
|
||||
if( prset && prset->get_units ){
|
||||
@@ -392,6 +402,15 @@ static void getOptions(DBADDR *paddr, char **poriginal, long *options,
|
||||
}
|
||||
pbuffer = (char *)ptime;
|
||||
}
|
||||
if( (*options) & DBR_UTAG ) {
|
||||
epicsUInt64 *ptag = (epicsUInt64*)pbuffer;
|
||||
if (!pfl) {
|
||||
*ptag++ = pcommon->utag;
|
||||
} else {
|
||||
*ptag++ = pfl->utag;
|
||||
}
|
||||
pbuffer = (char *)ptag;
|
||||
}
|
||||
if( (*options) & DBR_ENUM_STRS )
|
||||
get_enum_strs(paddr, &pbuffer, prset, options);
|
||||
if( (*options) & (DBR_GR_LONG|DBR_GR_DOUBLE ))
|
||||
@@ -523,7 +542,7 @@ long dbProcess(dbCommon *precord)
|
||||
(precord->lcnt++ < MAX_LOCK) ||
|
||||
(precord->sevr >= INVALID_ALARM)) goto all_done;
|
||||
|
||||
recGblSetSevr(precord, SCAN_ALARM, INVALID_ALARM);
|
||||
recGblSetSevrMsg(precord, SCAN_ALARM, INVALID_ALARM, "Async in progress");
|
||||
monitor_mask = recGblResetAlarms(precord);
|
||||
monitor_mask |= DBE_VALUE|DBE_LOG;
|
||||
pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->indvalFlddes];
|
||||
@@ -1357,7 +1376,8 @@ long dbPut(DBADDR *paddr, short dbrType,
|
||||
/* Always do special processing if needed */
|
||||
if (special) {
|
||||
long status2 = dbPutSpecial(paddr, 1);
|
||||
if (status2) goto done;
|
||||
if (status2)
|
||||
status = status2;
|
||||
}
|
||||
if (status) goto done;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#include "dbFldTypes.h"
|
||||
#include "link.h"
|
||||
#include "dbBase.h"
|
||||
#include "shareLib.h"
|
||||
#include "dbCoreAPI.h"
|
||||
#include "dbAddr.h"
|
||||
#include "dbLock.h"
|
||||
#include "dbAccessDefs.h"
|
||||
|
||||
@@ -12,18 +12,10 @@
|
||||
#ifndef INCdbAccessDefsh
|
||||
#define INCdbAccessDefsh
|
||||
|
||||
#ifdef epicsExportSharedSymbols
|
||||
# define INCLdb_accessh_epicsExportSharedSymbols
|
||||
# undef epicsExportSharedSymbols
|
||||
#endif
|
||||
|
||||
#include "epicsTypes.h"
|
||||
#include "epicsTime.h"
|
||||
|
||||
#ifdef INCLdb_accessh_epicsExportSharedSymbols
|
||||
# define epicsExportSharedSymbols
|
||||
# include "shareLib.h"
|
||||
#endif
|
||||
#include "dbCoreAPI.h"
|
||||
|
||||
#include "dbBase.h"
|
||||
#include "dbAddr.h"
|
||||
@@ -34,23 +26,25 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
epicsShareExtern struct dbBase *pdbbase;
|
||||
epicsShareExtern volatile int interruptAccept;
|
||||
epicsShareExtern int dbAccessDebugPUTF;
|
||||
DBCORE_API extern struct dbBase *pdbbase;
|
||||
DBCORE_API extern volatile int interruptAccept;
|
||||
DBCORE_API extern int dbAccessDebugPUTF;
|
||||
|
||||
/* The database field and request types are defined in dbFldTypes.h*/
|
||||
/* Data Base Request Options */
|
||||
#define DBR_STATUS 0x00000001
|
||||
#define DBR_UNITS 0x00000002
|
||||
#define DBR_PRECISION 0x00000004
|
||||
#define DBR_TIME 0x00000008
|
||||
#define DBR_ENUM_STRS 0x00000010
|
||||
#define DBR_GR_LONG 0x00000020
|
||||
#define DBR_GR_DOUBLE 0x00000040
|
||||
#define DBR_CTRL_LONG 0x00000080
|
||||
#define DBR_CTRL_DOUBLE 0x00000100
|
||||
#define DBR_AL_LONG 0x00000200
|
||||
#define DBR_AL_DOUBLE 0x00000400
|
||||
#define DBR_AMSG 0x00000002
|
||||
#define DBR_UNITS 0x00000004
|
||||
#define DBR_PRECISION 0x00000008
|
||||
#define DBR_TIME 0x00000010
|
||||
#define DBR_UTAG 0x00000020
|
||||
#define DBR_ENUM_STRS 0x00000040
|
||||
#define DBR_GR_LONG 0x00000080
|
||||
#define DBR_GR_DOUBLE 0x00000100
|
||||
#define DBR_CTRL_LONG 0x00000200
|
||||
#define DBR_CTRL_DOUBLE 0x00000400
|
||||
#define DBR_AL_LONG 0x00000800
|
||||
#define DBR_AL_DOUBLE 0x00001000
|
||||
|
||||
/**********************************************************************
|
||||
* The next page contains macros for defining requests.
|
||||
@@ -108,6 +102,9 @@ epicsShareExtern int dbAccessDebugPUTF;
|
||||
epicsUInt16 severity; /* alarm severity*/\
|
||||
epicsUInt16 acks; /* alarm ack severity*/\
|
||||
epicsUInt16 ackt; /* Acknowledge transient alarms?*/
|
||||
#define DB_AMSG_SIZE 40
|
||||
#define DBRamsg \
|
||||
char amsg[DB_AMSG_SIZE];
|
||||
#define DB_UNITS_SIZE 16
|
||||
#define DBRunits \
|
||||
char units[DB_UNITS_SIZE]; /* units */
|
||||
@@ -120,7 +117,9 @@ epicsShareExtern int dbAccessDebugPUTF;
|
||||
* too late to change now. DBRprecision must be padded to
|
||||
* maintain 8-byte alignment. */
|
||||
#define DBRtime \
|
||||
epicsTimeStamp time; /* time stamp*/
|
||||
epicsTimeStamp time; /* time stamp*/
|
||||
#define DBRutag \
|
||||
epicsUTag utag;
|
||||
#define DBRenumStrs \
|
||||
epicsUInt32 no_str; /* number of strings*/\
|
||||
epicsInt32 padenumStrs; /*padding to force 8 byte align*/\
|
||||
@@ -207,67 +206,67 @@ struct dbr_alDouble {DBRalDouble};
|
||||
|
||||
struct dbEntry;
|
||||
|
||||
epicsShareFunc long dbPutSpecial(struct dbAddr *paddr,int pass);
|
||||
epicsShareFunc rset * dbGetRset(const struct dbAddr *paddr);
|
||||
epicsShareFunc long dbPutAttribute(
|
||||
DBCORE_API long dbPutSpecial(struct dbAddr *paddr,int pass);
|
||||
DBCORE_API rset * dbGetRset(const struct dbAddr *paddr);
|
||||
DBCORE_API long dbPutAttribute(
|
||||
const char *recordTypename,const char *name,const char*value);
|
||||
epicsShareFunc int dbIsValueField(const struct dbFldDes *pdbFldDes);
|
||||
epicsShareFunc int dbGetFieldIndex(const struct dbAddr *paddr);
|
||||
epicsShareFunc long dbScanPassive(
|
||||
DBCORE_API int dbIsValueField(const struct dbFldDes *pdbFldDes);
|
||||
DBCORE_API int dbGetFieldIndex(const struct dbAddr *paddr);
|
||||
DBCORE_API long dbScanPassive(
|
||||
struct dbCommon *pfrom,struct dbCommon *pto);
|
||||
epicsShareFunc long dbProcess(struct dbCommon *precord);
|
||||
epicsShareFunc long dbNameToAddr(const char *pname, struct dbAddr *paddr);
|
||||
DBCORE_API long dbProcess(struct dbCommon *precord);
|
||||
DBCORE_API long dbNameToAddr(const char *pname, struct dbAddr *paddr);
|
||||
|
||||
/** Initialize DBADDR from a dbEntry
|
||||
* Also handles SPC_DBADDR processing. This is really an internal
|
||||
* routine for use by dbNameToAddr() and dbChannelCreate().
|
||||
*/
|
||||
epicsShareFunc long dbEntryToAddr(const struct dbEntry *pdbentry,
|
||||
DBCORE_API long dbEntryToAddr(const struct dbEntry *pdbentry,
|
||||
struct dbAddr *paddr);
|
||||
|
||||
/** Initialize DBENTRY from a valid dbAddr*
|
||||
* Constant time equivalent of dbInitEntry() then dbFindRecord(),
|
||||
* and finally dbFollowAlias().
|
||||
*/
|
||||
epicsShareFunc void dbInitEntryFromAddr(struct dbAddr *paddr,
|
||||
DBCORE_API void dbInitEntryFromAddr(struct dbAddr *paddr,
|
||||
struct dbEntry *pdbentry);
|
||||
|
||||
/** Initialize DBENTRY from a valid record (dbCommon*)
|
||||
* Constant time equivalent of dbInitEntry() then dbFindRecord(),
|
||||
* and finally dbFollowAlias() when no field is specified.
|
||||
*/
|
||||
epicsShareFunc void dbInitEntryFromRecord(struct dbCommon *prec,
|
||||
DBCORE_API void dbInitEntryFromRecord(struct dbCommon *prec,
|
||||
struct dbEntry *pdbentry);
|
||||
|
||||
epicsShareFunc devSup* dbDTYPtoDevSup(dbRecordType *prdes, int dtyp);
|
||||
epicsShareFunc devSup* dbDSETtoDevSup(dbRecordType *prdes, dset *pdset);
|
||||
epicsShareFunc long dbGetField(
|
||||
DBCORE_API devSup* dbDTYPtoDevSup(dbRecordType *prdes, int dtyp);
|
||||
DBCORE_API devSup* dbDSETtoDevSup(dbRecordType *prdes, dset *pdset);
|
||||
DBCORE_API long dbGetField(
|
||||
struct dbAddr *,short dbrType,void *pbuffer,long *options,
|
||||
long *nRequest,void *pfl);
|
||||
epicsShareFunc long dbGet(
|
||||
DBCORE_API long dbGet(
|
||||
struct dbAddr *,short dbrType,void *pbuffer,long *options,
|
||||
long *nRequest,void *pfl);
|
||||
epicsShareFunc long dbPutField(
|
||||
DBCORE_API long dbPutField(
|
||||
struct dbAddr *,short dbrType,const void *pbuffer,long nRequest);
|
||||
epicsShareFunc long dbPut(
|
||||
DBCORE_API long dbPut(
|
||||
struct dbAddr *,short dbrType,const void *pbuffer,long nRequest);
|
||||
|
||||
typedef void(*SPC_ASCALLBACK)(struct dbCommon *);
|
||||
/*dbSpcAsRegisterCallback called by access security */
|
||||
epicsShareFunc void dbSpcAsRegisterCallback(SPC_ASCALLBACK func);
|
||||
epicsShareFunc long dbBufferSize(
|
||||
DBCORE_API void dbSpcAsRegisterCallback(SPC_ASCALLBACK func);
|
||||
DBCORE_API long dbBufferSize(
|
||||
short dbrType,long options,long nRequest);
|
||||
epicsShareFunc long dbValueSize(short dbrType);
|
||||
DBCORE_API long dbValueSize(short dbrType);
|
||||
|
||||
/* Hook Routine */
|
||||
|
||||
typedef void (*DB_LOAD_RECORDS_HOOK_ROUTINE)(const char* filename,
|
||||
const char* substitutions);
|
||||
epicsShareExtern DB_LOAD_RECORDS_HOOK_ROUTINE dbLoadRecordsHook;
|
||||
DBCORE_API extern DB_LOAD_RECORDS_HOOK_ROUTINE dbLoadRecordsHook;
|
||||
|
||||
epicsShareFunc int dbLoadDatabase(
|
||||
DBCORE_API int dbLoadDatabase(
|
||||
const char *filename, const char *path, const char *substitutions);
|
||||
epicsShareFunc int dbLoadRecords(
|
||||
DBCORE_API int dbLoadRecords(
|
||||
const char* filename, const char* substitutions);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
#include "errlog.h"
|
||||
#include "errMdef.h"
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "dbAccessDefs.h"
|
||||
#include "dbAddr.h"
|
||||
#include "dbBase.h"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include "epicsEvent.h"
|
||||
#include "epicsThread.h"
|
||||
#include "epicsTime.h"
|
||||
#include "shareLib.h"
|
||||
#include "dbCoreAPI.h"
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -81,18 +81,18 @@ struct LS_LIST {
|
||||
|
||||
#define MAX_EP_COUNT 99999
|
||||
|
||||
epicsShareFunc void dbBkptInit(void);
|
||||
epicsShareFunc long dbb(const char *recordname);
|
||||
epicsShareFunc long dbd(const char *recordname);
|
||||
epicsShareFunc long dbc(const char *recordname);
|
||||
epicsShareFunc long dbs(const char *recordname);
|
||||
epicsShareFunc long dbstat(void);
|
||||
epicsShareFunc long dbp(
|
||||
DBCORE_API void dbBkptInit(void);
|
||||
DBCORE_API long dbb(const char *recordname);
|
||||
DBCORE_API long dbd(const char *recordname);
|
||||
DBCORE_API long dbc(const char *recordname);
|
||||
DBCORE_API long dbs(const char *recordname);
|
||||
DBCORE_API long dbstat(void);
|
||||
DBCORE_API long dbp(
|
||||
const char *record_name, int interest_level);
|
||||
epicsShareFunc long dbap(const char *record_name);
|
||||
epicsShareFunc int dbBkpt(struct dbCommon *precord);
|
||||
epicsShareFunc void dbPrint(struct dbCommon *precord);
|
||||
epicsShareFunc long dbprc(char *record_name);
|
||||
DBCORE_API long dbap(const char *record_name);
|
||||
DBCORE_API int dbBkpt(struct dbCommon *precord);
|
||||
DBCORE_API void dbPrint(struct dbCommon *precord);
|
||||
DBCORE_API long dbprc(char *record_name);
|
||||
|
||||
extern long lset_stack_count;
|
||||
|
||||
|
||||
@@ -19,11 +19,6 @@
|
||||
#ifndef dbCACh
|
||||
#define dbCACh
|
||||
|
||||
#ifdef epicsExportSharedSymbols
|
||||
# define dbCACh_restore_epicsExportSharedSymbols
|
||||
# undef epicsExportSharedSymbols
|
||||
#endif
|
||||
|
||||
#include "stdlib.h"
|
||||
|
||||
#include <memory> // std::auto_ptr
|
||||
@@ -34,10 +29,7 @@
|
||||
#include "cacIO.h"
|
||||
#include "compilerDependencies.h"
|
||||
|
||||
#ifdef dbCACh_restore_epicsExportSharedSymbols
|
||||
# define epicsExportSharedSymbols
|
||||
# include "shareLib.h"
|
||||
#endif
|
||||
#include "dbCoreAPI.h"
|
||||
|
||||
#include "db_access.h"
|
||||
#include "dbNotify.h"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user