Compare commits

...

8 Commits

Author SHA1 Message Date
Ralph Lange
6de155e97a configure: update CONFIG_BASE_VERSION for 3.15.2-rc1 2015-04-29 13:58:56 +02:00
Andrew Johnson
1f73716d5c Adjust linux-x86 & -x86_64 flags
Moved -m64 from ARCH_DEP_*FLAGS to OP_SYS_*FLAGS where it is on -x86.
Added GNU_TUNE_CFLAGS to -x86_64, adjust related comments
Added -D_FILE_OFFSET_BITS=64 to -x86 builds
2015-04-28 11:27:06 -05:00
Andrew Johnson
2774b4c4af Fix type problem with local CA channels
This commit fixes a problem introduced in Bazaar commit 12658.
Local CA channels were seeing the data type of a channel as an
IOC-specific (dbFldTypes.h) type value instead of the CA type
value from db_access.h.

We introduce a pair of dbChannel*CAType() macros which convert
the dbChannel's dbr_field_type and final_type values into the
CA equivalent type values, and use these macros whenever the
CA encoded field type value is needed. This ensures that the
meaning of the dbChannel member fields never changes (in 3.14
the addr.dbr_field_type was overwritten with the converted
value when connected to by rsrv).
2015-04-22 16:51:31 -05:00
Ralph Lange
bcf47ac663 gdd: fix 64 bit warnings using explicit casts for strlen() results 2015-04-16 14:05:33 +02:00
Ralph Lange
da93312b79 configure: fix Windows builds - don't use static link to create DLL stub 2015-04-16 10:55:14 +02:00
Andrew Johnson
874087f454 Update some version numbers in documentation 2015-04-14 17:58:33 -05:00
Andrew Johnson
a6d3c4f792 Document -D option to msi 2015-04-14 17:57:10 -05:00
Ralph Lange
f168a0f612 configure: set version snapshot to -pre1-DEV 2015-04-14 11:04:27 +02:00
15 changed files with 52 additions and 43 deletions

View File

@@ -37,11 +37,11 @@ EPICS_PATCH_LEVEL = 0
# This will end in -DEV between official releases
#EPICS_DEV_SNAPSHOT=-DEV
EPICS_DEV_SNAPSHOT=-pre1
#EPICS_DEV_SNAPSHOT=-pre1
#EPICS_DEV_SNAPSHOT=-pre1-DEV
#EPICS_DEV_SNAPSHOT=-pre2
#EPICS_DEV_SNAPSHOT=-pre2-DEV
#EPICS_DEV_SNAPSHOT=-rc1
EPICS_DEV_SNAPSHOT=-rc1
#EPICS_DEV_SNAPSHOT=-rc1-DEV
#EPICS_DEV_SNAPSHOT=-rc2
#EPICS_DEV_SNAPSHOT=-rc2-DEV

View File

@@ -260,7 +260,7 @@ YACCOPT ?= $($*_YACCOPT)
$(LIBNAME) $(TESTLIBNAME): $(LIBRARY_OBJS)
$(LIBNAME) $(TESTLIBNAME): $(LIB_PREFIX)%$(LIB_SUFFIX):
$(filter-out $(DLLSTUB_LIBNAME) $(TESTDLLSTUB_LIBNAME), $(LIBNAME) $(TESTLIBNAME)): $(LIB_PREFIX)%$(LIB_SUFFIX):
@$(RM) $@
$(ARCMD)
ifneq ($(strip $(RANLIB)),)
@@ -270,13 +270,13 @@ endif # RANLIB
$(SHRLIBNAME) $(DLLSTUB_LIBNAME) $(TESTSHRLIBNAME) $(TESTDLLSTUB_LIBNAME): \
$(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
$(DLLSTUB_LIBNAME): $(SHRLIBNAME)
$(DLLSTUB_LIBNAME): $(SHRLIBNAME);
$(SHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX):
@$(RM) $@
$(LINK.shrlib)
$(MT_DLL_COMMAND)
$(TESTDLLSTUB_LIBNAME): $(TESTSHRLIBNAME)
$(TESTDLLSTUB_LIBNAME): $(TESTSHRLIBNAME);
$(TESTSHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX):
@$(RM) $@
$(LINK.shrlib)

View File

@@ -12,9 +12,11 @@ include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = x86_64
ARCH_DEP_CFLAGS = $(GNU_TUNE_CFLAGS)
ARCH_DEP_CPPFLAGS += -D_X86_64_
ARCH_DEP_CFLAGS += -m64
ARCH_DEP_LDFLAGS += -m64
OP_SYS_CFLAGS += -m64
OP_SYS_LDFLAGS += -m64
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
# e.g. x86_64-redhat-linux-gcc, put a GNU_TARGET definition in

View File

@@ -12,7 +12,7 @@
# 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
# 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.
@@ -33,6 +33,10 @@ COMMANDLINE_LIBRARY = READLINE
#COMMANDLINE_LIBRARY = READLINE_CURSES
# Permit access to 64-bit file-systems
OP_SYS_CFLAGS += -D_FILE_OFFSET_BITS=64
# Uncomment the followings lines to build with CLANG instead of GCC.
#
#GNU = NO
@@ -49,7 +53,6 @@ OPT_CFLAGS_YES += -g
OPT_CXXFLAGS_YES += -g
# Tune GNU compiler output for a specific cpu-type
# (e.g. generic, i386, i486, i586, or i686)
# Tune GNU compiler output for a specific 32-bit cpu-type
# (e.g. generic, native, i386, i686, pentium2/3/4, prescott, k6, athlon etc.)
GNU_TUNE_CFLAGS = -mtune=generic

View File

@@ -47,3 +47,8 @@ COMMANDLINE_LIBRARY = READLINE
# loaded into RAM when the binary is loaded.
OPT_CFLAGS_YES += -g
OPT_CXXFLAGS_YES += -g
# Tune GNU compiler output for a specific 64-bit cpu-type
# (e.g. generic, native, core2, nocona, k8, opteron, athlon64, barcelona etc.)
GNU_TUNE_CFLAGS = -mtune=generic

View File

@@ -1,6 +1,6 @@
Installation Instructions
EPICS Base Release 3.15.1
EPICS Base Release 3.15.2
--------------------------------------------------------------------------

View File

@@ -9,7 +9,7 @@
<BODY>
<CENTER>
<H1>Installation Instructions</H1>
<H2>EPICS Base Release 3.15.1</H2><BR>
<H2>EPICS Base Release 3.15.2</H2><BR>
</CENTER>
<HR>
<H3> Table of Contents</H3>

View File

@@ -652,7 +652,7 @@ not follow this pattern, but are still printable strings.
=item [1] R3.15 Channel Access Reference Manual by Jeffrey O. Hill
L<http://www.aps.anl.gov/epics/base/R3-15/0-docs/CAref.html>
L<http://www.aps.anl.gov/epics/base/R3-15/2-docs/CAref.html>
=back

View File

@@ -323,7 +323,7 @@ inline int aitString::installBuf(const char* pString, unsigned strLengthIn, unsi
inline int aitString::installBuf(const char* pString)
{
unsigned strLengthIn = strlen(pString);
unsigned strLengthIn = (unsigned) strlen(pString);
return this->installBuf(pString, strLengthIn, strLengthIn+1u);
}
@@ -350,7 +350,7 @@ inline int aitString::installConstBuf(const char* pString, unsigned strLengthIn,
inline int aitString::installConstBuf(const char* pString)
{
unsigned strLengthIn = strlen(pString);
unsigned strLengthIn = (unsigned) strlen(pString);
return this->installConstBuf(pString, strLengthIn, strLengthIn+1u);
}
@@ -378,7 +378,7 @@ inline int aitString::installConstImortalBuf(const char* pString,
inline int aitString::installConstImortalBuf(const char* pString)
{
unsigned strLengthIn = strlen(pString);
unsigned strLengthIn = (unsigned) strlen(pString);
return this->installConstImortalBuf(pString, strLengthIn, strLengthIn+1u);
}
@@ -396,7 +396,7 @@ inline int aitString::copy(const char* pString, unsigned stringLength)
inline int aitString::copy(const char* p)
{
return this->copy(p, strlen(p));
return this->copy(p, (unsigned) strlen(p));
}
inline int aitString::copy(const aitString* p)
@@ -436,7 +436,7 @@ inline aitString::aitString(void)
inline aitString::aitString(const char* p, aitStrType typeIn)
{
unsigned strLengthIn = strlen(p);
unsigned strLengthIn = (unsigned) strlen(p);
this->init(p, typeIn, strLengthIn, strLengthIn+1u);
}

View File

@@ -154,6 +154,8 @@ epicsShareFunc long dbChannelTest(const char *name);
epicsShareFunc dbChannel * dbChannelCreate(const char *name);
epicsShareFunc long dbChannelOpen(dbChannel *chan);
/*Following is also defined in db_convert.h*/
epicsShareExtern unsigned short dbDBRnewToDBRold[];
/* In the following macros pChan is dbChannel* */
@@ -175,6 +177,9 @@ epicsShareFunc long dbChannelOpen(dbChannel *chan);
/* evaluates to short */
#define dbChannelExportType(pChan) ((pChan)->addr.dbr_field_type)
/* evaluates to short */
#define dbChannelExportCAType(pChan) (dbDBRnewToDBRold[dbChannelExportType(pChan)])
/* evaluates to short */
#define dbChannelFieldSize(pChan) ((pChan)->addr.field_size)
@@ -185,7 +190,7 @@ epicsShareFunc long dbChannelOpen(dbChannel *chan);
#define dbChannelFinalFieldType(pChan) ((pChan)->final_type)
/* evaluates to short */
#define dbChannelFinalExportType(pChan) ((pChan)->final_type)
#define dbChannelFinalCAType(pChan) (dbDBRnewToDBRold[(pChan)->final_type])
/* evaluates to short */
#define dbChannelFinalFieldSize(pChan) ((pChan)->final_field_size)

View File

@@ -159,7 +159,7 @@ void dbChannelIO::show (
if ( level > 0u ) {
printf ( " type %s, element count %li, field at %p\n",
dbf_type_to_text ( dbChannelExportType ( this->dbch ) ),
dbf_type_to_text ( dbChannelExportCAType ( this->dbch ) ),
dbChannelElements ( this->dbch ),
dbChannelField ( this->dbch ) );
if ( level > 1u ) {
@@ -206,7 +206,7 @@ short dbChannelIO::nativeType (
epicsGuard < epicsMutex > & guard ) const
{
guard.assertIdenticalMutex ( this->mutex );
return dbChannelExportType( this->dbch );
return dbChannelExportCAType( this->dbch );
}
void * dbChannelIO::operator new ( size_t size,

View File

@@ -99,34 +99,21 @@
#define oldDBR_STSACK_STRING oldDBR_PUT_ACKS + 1
#define oldDBR_CLASS_NAME oldDBR_STSACK_STRING + 1
/*Following is defined in db_convert.h*/
extern unsigned short dbDBRnewToDBRold[DBR_ENUM+1];
typedef char DBSTRING[MAX_STRING_SIZE];
struct dbChannel * dbChannel_create(const char *pname)
{
dbChannel *chan = dbChannelCreate(pname);
short ftype;
if (!chan)
return NULL;
ftype = chan->addr.dbr_field_type;
if (INVALID_DB_REQ(ftype)) {
if (INVALID_DB_REQ(dbChannelExportType(chan)) ||
dbChannelOpen(chan)) {
dbChannelDelete(chan);
return NULL;
}
if (dbChannelOpen(chan)) {
dbChannelDelete(chan);
return NULL;
}
/* Convert final_type to CA's type mapping */
chan->final_type = dbDBRnewToDBRold[chan->final_type];
return chan;
}

View File

@@ -49,7 +49,7 @@ int gft(const char *pname)
precord = dbChannelRecord(chan);
elements = dbChannelElements(chan);
type = dbChannelExportType(chan);
type = dbChannelExportCAType(chan);
printf(" Record Name: %s\n", precord->name);
printf("Record Address: 0x%p\n", precord);
@@ -103,7 +103,7 @@ int pft(const char *pname, const char *pvalue)
precord = dbChannelRecord(chan);
elements = dbChannelElements(chan);
type = dbChannelExportType(chan);
type = dbChannelExportCAType(chan);
printf(" Record Name: %s\n", precord->name);
printf("Record Address: 0x%p\n", precord);

View File

@@ -24,7 +24,7 @@ accepted by the EPICS IOC's dbLoadTemplate command.</p>
<h2>Command Syntax:</h2>
<pre>msi -V -g -o<i>outfile</i> -I<i>dir</i> -M<i>subs</i> -S<i>subfile</i> <i>template</i></pre>
<pre>msi -V -g -D -o<i>outfile</i> -I<i>dir</i> -M<i>subs</i> -S<i>subfile</i> <i>template</i></pre>
<p>All parameters are optional. The -o, -I, -M, and -S switches may be
separated from their associated value string by spaces if desired. Output will
@@ -46,6 +46,13 @@ be written to stdout unless the -o option is given.</p>
this was the behavior of previous versions of msi, but it does not follow
common scoping rules and is discouraged.</dd>
<dt><tt>-D</tt></dt>
<dd>Output dependency information suitable for including by a Makefile to
stdout instead of performing the macro substitutions. The <tt>-o</tt> option
must be given to specify the target name for the dependency rules. Other
options should be given exactly as will be used in the macro substitution
process.</dd>
<dt><tt>-o</tt> <i>file</i></dt>
<dd>Output will be written to the specifed file rather than to the standard
output.</dd>

View File

@@ -1255,7 +1255,7 @@ static void claim_ciu_reply ( struct channel_in_use * pciu )
}
status = cas_copy_in_header (
pciu->client, CA_PROTO_CREATE_CHAN, 0u,
dbChannelFinalExportType(pciu->dbch), nElem, pciu->cid,
dbChannelFinalCAType(pciu->dbch), nElem, pciu->cid,
pciu->sid, NULL );
if ( status == ECA_NORMAL ) {
cas_commit_msg ( pciu->client, 0u );
@@ -1301,7 +1301,7 @@ static int claim_ciu_action ( caHdrLargeArray *mp,
}
DLOG ( 2, ("CAS: claim_ciu_action found '%s', type %d, count %d\n",
pName, dbChannelExportType(dbch), dbChannelElements(dbch)) );
pName, dbChannelCAType(dbch), dbChannelElements(dbch)) );
pciu = casCreateChannel (
client,
@@ -2348,7 +2348,7 @@ static int search_reply_udp ( caHdrLargeArray *mp, void *pPayload, struct client
else {
count = (ca_uint16_t) dbChannelFinalElements(dbch);
}
type = (ca_uint16_t) dbChannelFinalExportType(dbch);
type = (ca_uint16_t) dbChannelFinalCAType(dbch);
}
SEND_LOCK ( client );