From 5fe563bed8c9031c686d2d45559ef2ecf4a9357e Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Wed, 26 Jun 2024 11:45:26 -0500
Subject: [PATCH 1/6] Limit _FORTIFY_SOURCE <= 2
---
configure/Makefile | 4 ++++
configure/toolchain.c | 5 +++++
2 files changed, 9 insertions(+)
diff --git a/configure/Makefile b/configure/Makefile
index ba77d5089..3c2c0b53a 100644
--- a/configure/Makefile
+++ b/configure/Makefile
@@ -34,5 +34,9 @@ CFG += TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A)
include $(TOP)/configure/RULES
+ifeq ($(GNU),YES)
+ # Pass compiler flags to preprocessor to enable _FORTIFY_SOURCE
+ TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A): CPPFLAGS += $(CFLAGS)
+endif
TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A): toolchain.c
$(PREPROCESS.cpp)
diff --git a/configure/toolchain.c b/configure/toolchain.c
index da4e8bb2c..79333198c 100644
--- a/configure/toolchain.c
+++ b/configure/toolchain.c
@@ -47,3 +47,8 @@ COMMANDLINE_LIBRARY ?= EPICS
#else
COMMANDLINE_LIBRARY ?= $(strip $(if $(wildcard $(if $(GNU_DIR),$(GNU_DIR)/include/readline/readline.h)), READLINE, EPICS))
#endif
+
+#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE>2
+OP_SYS_CPPFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
+#endif
+
From 5af9c7e50da82e1a34faea3ac172a059b8a8ebf0 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Sat, 8 Jun 2024 21:51:13 -0500
Subject: [PATCH 2/6] Revert submodules to versions at R7.0.8
---
modules/normativeTypes | 2 +-
modules/pvAccess | 2 +-
modules/pvData | 2 +-
modules/pvDatabase | 2 +-
modules/pva2pva | 2 +-
modules/pvaClient | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/modules/normativeTypes b/modules/normativeTypes
index 7a2d264f2..1250a3c23 160000
--- a/modules/normativeTypes
+++ b/modules/normativeTypes
@@ -1 +1 @@
-Subproject commit 7a2d264f2cb107bfd10adb23bc2b73d8323a79e4
+Subproject commit 1250a3c236f0aa92e0b5bd73647fd71d8a09360d
diff --git a/modules/pvAccess b/modules/pvAccess
index 7746ea3c6..96061ca1c 160000
--- a/modules/pvAccess
+++ b/modules/pvAccess
@@ -1 +1 @@
-Subproject commit 7746ea3c6c366f7bf3a949613a77c9e4c7f7f2dd
+Subproject commit 96061ca1cc6d0e101b0033635396a8e6b6add68c
diff --git a/modules/pvData b/modules/pvData
index 7300e6b0b..0ef8a3617 160000
--- a/modules/pvData
+++ b/modules/pvData
@@ -1 +1 @@
-Subproject commit 7300e6b0bd560c0ea2355c64ea3a88c259f90fe2
+Subproject commit 0ef8a361721bc4972743a9c9a0112f441ba36b0f
diff --git a/modules/pvDatabase b/modules/pvDatabase
index d18e0c913..e4cb8d239 160000
--- a/modules/pvDatabase
+++ b/modules/pvDatabase
@@ -1 +1 @@
-Subproject commit d18e0c913a8d5a8d42cbf2d5ec28ffd362897809
+Subproject commit e4cb8d23973723d8d943bd86bc0213da2bd53eff
diff --git a/modules/pva2pva b/modules/pva2pva
index 949b3f63c..3a08da445 160000
--- a/modules/pva2pva
+++ b/modules/pva2pva
@@ -1 +1 @@
-Subproject commit 949b3f63c2387bb92c1c22ca2f80f8d320805117
+Subproject commit 3a08da445b46e2e7029406d24425cdd3dfd7da24
diff --git a/modules/pvaClient b/modules/pvaClient
index 8ed07fef9..a34876e36 160000
--- a/modules/pvaClient
+++ b/modules/pvaClient
@@ -1 +1 @@
-Subproject commit 8ed07fef96e41d35d47ab61276e29eb1a81e7fec
+Subproject commit a34876e36a56c9de9b172d6a83a9439bb330783d
From d0d15ee911107be091dbdaa340281d72d021a6b7 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Sat, 8 Jun 2024 21:58:12 -0500
Subject: [PATCH 3/6] Replace UNRELEASED with 7.0.8.1
---
modules/database/src/ioc/dbStatic/dbBase.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/database/src/ioc/dbStatic/dbBase.h b/modules/database/src/ioc/dbStatic/dbBase.h
index f0a954b50..9578d1fac 100644
--- a/modules/database/src/ioc/dbStatic/dbBase.h
+++ b/modules/database/src/ioc/dbStatic/dbBase.h
@@ -119,7 +119,7 @@ typedef struct dbRecordNode {
ELLLIST infoList; /*LIST head of info nodes*/
int flags;
/** Parse order of this record()
- * @since UNRELEASED
+ * @since 7.0.8.1
*/
unsigned order;
struct dbRecordNode *aliasedRecnode; /* NULL unless flags|DBRN_FLAGS_ISALIAS */
@@ -189,7 +189,7 @@ typedef struct dbBase {
short ignoreMissingMenus;
short loadCdefs;
/** Total number of records.
- * @since UNRELEASED
+ * @since 7.0.8.1
*/
unsigned no_records;
}dbBase;
From 785b777baf859c48026c415ced3bbd46aec17f99 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Sat, 8 Jun 2024 22:30:01 -0500
Subject: [PATCH 4/6] Update Release Notes, set version numbers
---
configure/CONFIG_BASE_VERSION | 2 +-
configure/CONFIG_CA_VERSION | 2 +-
configure/CONFIG_DATABASE_VERSION | 2 +-
configure/CONFIG_LIBCOM_VERSION | 2 +-
documentation/RELEASE_NOTES.md | 42 +++++++++++++++++++++++++++--
documentation/ReleaseChecklist.html | 14 +++++-----
6 files changed, 51 insertions(+), 13 deletions(-)
diff --git a/configure/CONFIG_BASE_VERSION b/configure/CONFIG_BASE_VERSION
index 7972433a1..78e75be79 100644
--- a/configure/CONFIG_BASE_VERSION
+++ b/configure/CONFIG_BASE_VERSION
@@ -56,7 +56,7 @@ EPICS_PATCH_LEVEL = 1
# Immediately after an official release the EPICS_PATCH_LEVEL is incremented
# and the -DEV suffix is added (similar to the Maven -SNAPSHOT versions)
-EPICS_DEV_SNAPSHOT=-DEV
+EPICS_DEV_SNAPSHOT=
# No changes should be needed below here
diff --git a/configure/CONFIG_CA_VERSION b/configure/CONFIG_CA_VERSION
index 2cff78816..54d24a22b 100644
--- a/configure/CONFIG_CA_VERSION
+++ b/configure/CONFIG_CA_VERSION
@@ -6,7 +6,7 @@ EPICS_CA_MAINTENANCE_VERSION = 4
# Development flag, set to zero for release versions
-EPICS_CA_DEVELOPMENT_FLAG = 1
+EPICS_CA_DEVELOPMENT_FLAG = 0
# Immediately after a release the MAINTENANCE_VERSION
# will be incremented and the DEVELOPMENT_FLAG set to 1
diff --git a/configure/CONFIG_DATABASE_VERSION b/configure/CONFIG_DATABASE_VERSION
index 8815d2d1e..8ee2abff6 100644
--- a/configure/CONFIG_DATABASE_VERSION
+++ b/configure/CONFIG_DATABASE_VERSION
@@ -6,7 +6,7 @@ EPICS_DATABASE_MAINTENANCE_VERSION = 1
# Development flag, set to zero for release versions
-EPICS_DATABASE_DEVELOPMENT_FLAG = 1
+EPICS_DATABASE_DEVELOPMENT_FLAG = 0
# Immediately after a release the MAINTENANCE_VERSION
# will be incremented and the DEVELOPMENT_FLAG set to 1
diff --git a/configure/CONFIG_LIBCOM_VERSION b/configure/CONFIG_LIBCOM_VERSION
index 4aab82a17..8be90d9c8 100644
--- a/configure/CONFIG_LIBCOM_VERSION
+++ b/configure/CONFIG_LIBCOM_VERSION
@@ -6,7 +6,7 @@ EPICS_LIBCOM_MAINTENANCE_VERSION = 1
# Development flag, set to zero for release versions
-EPICS_LIBCOM_DEVELOPMENT_FLAG = 1
+EPICS_LIBCOM_DEVELOPMENT_FLAG = 0
# Immediately after a release the MAINTENANCE_VERSION
# will be incremented and the DEVELOPMENT_FLAG set to 1
diff --git a/documentation/RELEASE_NOTES.md b/documentation/RELEASE_NOTES.md
index c66a44c66..8cad1a544 100644
--- a/documentation/RELEASE_NOTES.md
+++ b/documentation/RELEASE_NOTES.md
@@ -18,9 +18,20 @@ should also be read to understand what has changed since earlier releases:
- [pva2pva](https://epics-base.github.io/pva2pva/release_notes.html)
- [pvaClient](https://github.com/epics-base/pvaClientCPP/blob/master/documentation/RELEASE_NOTES.md)
-**This version of EPICS has not been released yet.**
+## EPICS Release 7.0.8.1
-## Changes made on the 7.0 branch since 7.0.8
+### Limit to `_FORTIFY_SOURCE=2`
+
+GCC versions 12 and beyond and glibc have added some aggressive runtime
+checks for buffer overflows in libc functions at runtime, and the
+[Ubuntu 2024.04](https://wiki.ubuntu.com/ToolChain/CompilerFlags) release
+increased their default gcc fortification level from 2 to 3.
+This has started causing EPICS Base builds to fail on that version, and
+other OS releases may make that configuration change with similar results.
+This release detects a compiler configured with `_FORTIFY_SOURCE=3` and
+overrides it to 2.
+Later releases of Base will adjust the code, providing information to the
+compiler to avoid triggering these incorrect protections.
### Fix issue with compress record
@@ -28,6 +39,33 @@ In Base 7.0.8, an update to the compress record was added to allow for certain
algorithms to use partially filled buffers in their computations. Unfortunately,
this broke the behaviour of the records in certain cases. This has been fixed.
+### Various minor changes
+
+These included fixing minor memory leaks and documentation corrections. The
+`SIZV` field of lsi, lso and printf record VAL fields now can't exceed 32767
+characters, to match an internal limit.
+
+### `epicsSocketAccept()` now returns `SOCKET`, not `int`
+
+This might have some effect on downstream modules still using `int`, but the
+OS-specific osdSock.h headers which osiSock.h includes have all declared
+`SOCKET` (in most casese as a typedef for `int`) for many releases.
+This change removes a compiler warning on WIN32.
+Further details and the discussion about this change can be found
+[here](https://github.com/epics-base/epics-base/pull/458).
+
+### `dbLoadRecords` allows macros with default values
+
+Previously the parser assumed that files containing macro substitutions were
+bad if no macro definitions were provided; that assumption was made incorrect
+once macro substitutions were allowed to provide a default value.
+
+### Hostname length limit in CA removed
+
+Before this release, the CA client library only handled hostnames in address
+list environment variables up to 255 characters long.
+This limit has been removed.
+
-----
## EPICS Release 7.0.8
diff --git a/documentation/ReleaseChecklist.html b/documentation/ReleaseChecklist.html
index 0db98a818..77fe6c7a9 100644
--- a/documentation/ReleaseChecklist.html
+++ b/documentation/ReleaseChecklist.html
@@ -198,7 +198,7 @@ everything that has to be done since it's so easy to miss steps.
Tag the module:
- git tag -m 'ANJ: Tag for EPICS 7.0.8' <module-version>
+ git tag -m 'ANJ: Tag for EPICS 7.0.8.1' <module-version>
@@ -269,7 +269,7 @@ everything that has to be done since it's so easy to miss steps.
Tag the epics-base module in Git:
cd base-7.0
- git tag -m 'ANJ: Tagged for release' R7.0.8
+ git tag -m 'ANJ: Tagged for release' R7.0.8.1
Don't push to GitHub yet.
@@ -303,12 +303,12 @@ everything that has to be done since it's so easy to miss steps.
files and directories that are only used for continuous integration:
From 57c930fbee53b3ca8ab4e8b5461c54f1518f9676 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Sat, 8 Jun 2024 22:34:41 -0500
Subject: [PATCH 5/6] Release R7.0.8.1
From 615e7e99ce3ca6ff8f067fe6b648e677ea37a6ff Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Sat, 8 Jun 2024 23:05:39 -0500
Subject: [PATCH 6/6] Update version numbers and submodules after release
---
configure/CONFIG_BASE_VERSION | 4 ++--
configure/CONFIG_CA_VERSION | 4 ++--
configure/CONFIG_DATABASE_VERSION | 4 ++--
configure/CONFIG_LIBCOM_VERSION | 4 ++--
documentation/RELEASE_NOTES.md | 7 +++++++
modules/normativeTypes | 2 +-
modules/pvAccess | 2 +-
modules/pvData | 2 +-
modules/pvDatabase | 2 +-
modules/pva2pva | 2 +-
modules/pvaClient | 2 +-
11 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/configure/CONFIG_BASE_VERSION b/configure/CONFIG_BASE_VERSION
index 78e75be79..e48336bf8 100644
--- a/configure/CONFIG_BASE_VERSION
+++ b/configure/CONFIG_BASE_VERSION
@@ -52,11 +52,11 @@ EPICS_MODIFICATION = 8
# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
# Not included in the official EPICS version number if zero
-EPICS_PATCH_LEVEL = 1
+EPICS_PATCH_LEVEL = 2
# Immediately after an official release the EPICS_PATCH_LEVEL is incremented
# and the -DEV suffix is added (similar to the Maven -SNAPSHOT versions)
-EPICS_DEV_SNAPSHOT=
+EPICS_DEV_SNAPSHOT=-DEV
# No changes should be needed below here
diff --git a/configure/CONFIG_CA_VERSION b/configure/CONFIG_CA_VERSION
index 54d24a22b..d565e7ce1 100644
--- a/configure/CONFIG_CA_VERSION
+++ b/configure/CONFIG_CA_VERSION
@@ -2,11 +2,11 @@
EPICS_CA_MAJOR_VERSION = 4
EPICS_CA_MINOR_VERSION = 14
-EPICS_CA_MAINTENANCE_VERSION = 4
+EPICS_CA_MAINTENANCE_VERSION = 5
# Development flag, set to zero for release versions
-EPICS_CA_DEVELOPMENT_FLAG = 0
+EPICS_CA_DEVELOPMENT_FLAG = 1
# Immediately after a release the MAINTENANCE_VERSION
# will be incremented and the DEVELOPMENT_FLAG set to 1
diff --git a/configure/CONFIG_DATABASE_VERSION b/configure/CONFIG_DATABASE_VERSION
index 8ee2abff6..b770ea72a 100644
--- a/configure/CONFIG_DATABASE_VERSION
+++ b/configure/CONFIG_DATABASE_VERSION
@@ -2,11 +2,11 @@
EPICS_DATABASE_MAJOR_VERSION = 3
EPICS_DATABASE_MINOR_VERSION = 23
-EPICS_DATABASE_MAINTENANCE_VERSION = 1
+EPICS_DATABASE_MAINTENANCE_VERSION = 2
# Development flag, set to zero for release versions
-EPICS_DATABASE_DEVELOPMENT_FLAG = 0
+EPICS_DATABASE_DEVELOPMENT_FLAG = 1
# Immediately after a release the MAINTENANCE_VERSION
# will be incremented and the DEVELOPMENT_FLAG set to 1
diff --git a/configure/CONFIG_LIBCOM_VERSION b/configure/CONFIG_LIBCOM_VERSION
index 8be90d9c8..bb5c55904 100644
--- a/configure/CONFIG_LIBCOM_VERSION
+++ b/configure/CONFIG_LIBCOM_VERSION
@@ -2,11 +2,11 @@
EPICS_LIBCOM_MAJOR_VERSION = 3
EPICS_LIBCOM_MINOR_VERSION = 23
-EPICS_LIBCOM_MAINTENANCE_VERSION = 1
+EPICS_LIBCOM_MAINTENANCE_VERSION = 2
# Development flag, set to zero for release versions
-EPICS_LIBCOM_DEVELOPMENT_FLAG = 0
+EPICS_LIBCOM_DEVELOPMENT_FLAG = 1
# Immediately after a release the MAINTENANCE_VERSION
# will be incremented and the DEVELOPMENT_FLAG set to 1
diff --git a/documentation/RELEASE_NOTES.md b/documentation/RELEASE_NOTES.md
index 8cad1a544..fc535d0d8 100644
--- a/documentation/RELEASE_NOTES.md
+++ b/documentation/RELEASE_NOTES.md
@@ -18,6 +18,13 @@ should also be read to understand what has changed since earlier releases:
- [pva2pva](https://epics-base.github.io/pva2pva/release_notes.html)
- [pvaClient](https://github.com/epics-base/pvaClientCPP/blob/master/documentation/RELEASE_NOTES.md)
+**This version of EPICS has not been released yet.**
+
+## Changes made on the 7.0 branch since 7.0.8.1
+
+
+-----
+
## EPICS Release 7.0.8.1
### Limit to `_FORTIFY_SOURCE=2`
diff --git a/modules/normativeTypes b/modules/normativeTypes
index 1250a3c23..7a2d264f2 160000
--- a/modules/normativeTypes
+++ b/modules/normativeTypes
@@ -1 +1 @@
-Subproject commit 1250a3c236f0aa92e0b5bd73647fd71d8a09360d
+Subproject commit 7a2d264f2cb107bfd10adb23bc2b73d8323a79e4
diff --git a/modules/pvAccess b/modules/pvAccess
index 96061ca1c..f1268adb8 160000
--- a/modules/pvAccess
+++ b/modules/pvAccess
@@ -1 +1 @@
-Subproject commit 96061ca1cc6d0e101b0033635396a8e6b6add68c
+Subproject commit f1268adb8ecbacbd74bb66c172d02d9d427bedfd
diff --git a/modules/pvData b/modules/pvData
index 0ef8a3617..144f0228c 160000
--- a/modules/pvData
+++ b/modules/pvData
@@ -1 +1 @@
-Subproject commit 0ef8a361721bc4972743a9c9a0112f441ba36b0f
+Subproject commit 144f0228cc412d2dc1eaad7e09e310697d18532f
diff --git a/modules/pvDatabase b/modules/pvDatabase
index e4cb8d239..f207e512d 160000
--- a/modules/pvDatabase
+++ b/modules/pvDatabase
@@ -1 +1 @@
-Subproject commit e4cb8d23973723d8d943bd86bc0213da2bd53eff
+Subproject commit f207e512d67addab79e33a00b712e3444228ba7c
diff --git a/modules/pva2pva b/modules/pva2pva
index 3a08da445..949b3f63c 160000
--- a/modules/pva2pva
+++ b/modules/pva2pva
@@ -1 +1 @@
-Subproject commit 3a08da445b46e2e7029406d24425cdd3dfd7da24
+Subproject commit 949b3f63c2387bb92c1c22ca2f80f8d320805117
diff --git a/modules/pvaClient b/modules/pvaClient
index a34876e36..8ed07fef9 160000
--- a/modules/pvaClient
+++ b/modules/pvaClient
@@ -1 +1 @@
-Subproject commit a34876e36a56c9de9b172d6a83a9439bb330783d
+Subproject commit 8ed07fef96e41d35d47ab61276e29eb1a81e7fec