multiply defined symbols with epicsAtomic

Bug #1425197 reported by mdavidsaver
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
EPICS Base
3.15
Fix Released
High
mdavidsaver

Bug Description

Do to inconsistency between C and C++ (and between C89 and C99), usage of the 'inline' qualifier by epicsAtomic* functions results in multiple definitions and linker failure.

The specific case is with GCC using -std=c99 or -std=gnu99 (the present default). With this configuration a strong public symbol (nm says 'T') is included in every C compilation unit where "epicsAtomic.h" is included. Linking then fails if more than once C compilation unit does this.

At present only callback.c in libdbCore includes epicsAtomic.h, so there is no failure. However, this bug is preventing further use of epicsAtomic.

Related branches

Revision history for this message
mdavidsaver (mdavidsaver) wrote :
Changed in epics-base:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → mdavidsaver (mdavidsaver)
milestone: none → 3.16.branch
Andrew Johnson (anj)
no longer affects: epics-base/3.16
no longer affects: epics-base
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.