multiply defined symbols with epicsAtomic

Bug #1425197 reported by mdavidsaver on 2015-02-24
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
EPICS Base
3.15
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

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) on 2015-11-24
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  Edit
Everyone can see this information.

Other bug subscribers