Comment 8 for bug 1786927

Revision history for this message
Andrew Johnson (anj) wrote :

Ahh, no it doesn't work with the VxWorks 5.5 compiler, both the APS and PSI Jenkins builds for this failed:

/usr/local/vw/tornado22-ppc/host/x86-linux/bin/ccppc -DCPU=PPC604 -DvxWorks=vxWorks -include /usr/local/vw/tornado22-ppc/target/h/vxWorks.h -O2 -Wall -mcpu=604 -mstrict-align -mno-implicit-fp -mlongcall -fno-implicit-templates -fno-builtin -I. -I../O.Common -I. -I../../../src/libCom/osi/compiler/gcc -I../../../src/libCom/osi/compiler/default -I. -I../../../src/libCom/osi/os/vxWorks -I../../../src/libCom/osi/os/posix -I../../../src/libCom/osi/os/default -I.. -I../../../src/libCom/as -I../../../src/libCom/bucketLib -I../../../src/libCom/calc -I../../../src/libCom/cvtFast -I../../../src/libCom/cppStd -I../../../src/libCom/cxxTemplates -I../../../src/libCom/dbmf -I../../../src/libCom/ellLib -I../../../src/libCom/env -I../../../src/libCom/error -I../../../src/libCom/fdmgr -I../../../src/libCom/flex -I../../../src/libCom/freeList -I../../../src/libCom/gpHash -I../../../src/libCom/iocsh -I../../../src/libCom/log -I../../../src/libCom/macLib -I../../../src/libCom/misc -I../../../src/libCom/osi -I../../../src/libCom/pool -I../../../src/libCom/ring -I../../../src/libCom/taskwd -I../../../src/libCom/timer -I../../../src/libCom/yacc -I../../../src/libCom/yacc -I../../../src/libCom/yajl -I../../../include/compiler/gcc -I../../../include/os/vxWorks -I../../../include -I/usr/local/vw/tornado22-ppc/target/h -c ../../../src/libCom/iocsh/iocsh.cpp
In file included from ../../../src/libCom/iocsh/iocsh.cpp:23:
../../../src/libCom/osi/epicsStdio.h:95: `epicsGetStdin' is already declared in this scope
../../../src/libCom/osi/epicsStdio.h:96: `epicsGetStdout' is already declared in this scope
../../../src/libCom/osi/epicsStdio.h:97: `epicsGetStderr' is already declared in this scope
../../../src/libCom/osi/epicsStdio.h:98: `epicsStdoutPrintf' is already declared in this scope
../../../src/libCom/osi/epicsStdio.h:99: `epicsStdoutPuts' is already declared in this scope
../../../src/libCom/osi/epicsStdio.h:100: `epicsStdoutPutchar' is already declared in this scope
../../../configure/RULES_BUILD:239: recipe for target 'iocsh.o' failed

IIRC that compiler didn't actually support namespaces properly, it just pretended to do so.

I'm hoping Dirk will be able to take a look and propose a resolution, probably just disabling the "namespace std { using ::epics*Std*; }" code for gcc versions that old would fix it.