From 9b64341966fec46b46ee7410dba3c1011b2b3e95 Mon Sep 17 00:00:00 2001 From: Dirk Zimoch Date: Fri, 16 Jan 2026 12:07:34 +0100 Subject: [PATCH] fix gcc-15 problem gcc-15 mangles variables inside namespaces even if they are declared extern "C". That causes linker errors. This is probably a bug in gcc-15. Observed with gcc version 15.1.1. --- devOpcuaSup/iocshIntegration.cpp | 6 ++---- devOpcuaSup/opcuaItemRecord.cpp | 3 ++- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/devOpcuaSup/iocshIntegration.cpp b/devOpcuaSup/iocshIntegration.cpp index 5db2f6eb..0260e136 100644 --- a/devOpcuaSup/iocshIntegration.cpp +++ b/devOpcuaSup/iocshIntegration.cpp @@ -1106,8 +1106,6 @@ void opcuaIocshRegister () iocshRegister(&opcuaShowDataFuncDef, opcuaShowDataCallFunc); } -extern "C" { -epicsExportRegistrar(opcuaIocshRegister); -} - } // namespace + +extern "C" { epicsExportRegistrar(opcuaIocshRegister); } diff --git a/devOpcuaSup/opcuaItemRecord.cpp b/devOpcuaSup/opcuaItemRecord.cpp index 8a45fa90..ab0f89b4 100644 --- a/devOpcuaSup/opcuaItemRecord.cpp +++ b/devOpcuaSup/opcuaItemRecord.cpp @@ -203,6 +203,7 @@ rset opcuaItemRSET = { get_control_double, get_alarm_double }; -extern "C" { epicsExportAddress(rset, opcuaItemRSET); } } // namespace + +extern "C" { epicsExportAddress(rset, opcuaItemRSET); }