VxWorks even in version 6.9 does not know the printf format specifier %z. It will instead print a literal z (and shift all arguments to the next format o course).
This is related to bug #1740426 but not exactly the same.
Affected code in EPICS 7 (as found by grep %z):
modules/pvData/src/factory/FieldCreateFactory.cpp: sprintf(buffer, "%s<%zu>", ScalarTypeFunc::name(getElementType()), size);
modules/pvData/src/factory/FieldCreateFactory.cpp: sprintf(buffer, "%s[%zu]", ScalarTypeFunc::name(getElementType()), size);
modules/pvData/testApp/pv/testPVData.cpp:#define SHOW(T) testDiag("sizeof(" #T ")==%zu", sizeof(T))
modules/pvData/testApp/pv/performstruct.cpp: printf("# %zu sample %f +- %f %s\n", count, mean/mult, std/mult, unit);
modules/pvData/testApp/pv/performstruct.cpp: sprintf(buf, "field%zu", i);
modules/pvAccess/pvtoolsSrc/pvlist.cpp: "Broadcast address #%zu: %s.", i, inetAddressToString(broadcastAddresses[i]).c_str());
modules/pvAccess/pvtoolsSrc/pvlist.cpp: LOG(logLevelDebug, "UDP Tx (%zu) -> %s", sendBuffer.getPosition(), strBuffer);
modules/pvAccess/src/remote/blockingUDPTransport.cpp: LOG(logLevelDebug, "UDP Tx (%zu) %s -> %s.",
modules/pvAccess/src/remote/blockingUDPTransport.cpp: LOG(logLevelDebug, "Sending %zu bytes %s -> %s.",
modules/pvAccess/src/remote/blockingUDPTransport.cpp: LOG(logLevelDebug, "Sending %zu bytes %s -> %s.",
modules/pvAccess/src/remote/blockingUDPTransport.cpp: "Broadcast address #%zu: %s. (%sunicast)", i, inetAddressToString(list[i]).c_str(),
modules/pvAccess/src/remote/transportRegistry.cpp: LOG(logLevelDebug, "Context still has %zu transport(s) active and closing...", temp.size());
modules/pvAccess/src/remote/codec.cpp: "Transport to %s still has %zu channel(s) active and closing...",
modules/pvAccess/src/remote/codec.cpp: "Transport to %s still has %zu client(s) active and closing...",
modules/pvAccess/src/server/responseHandlers.cpp: LOG(logLevelError, "Monitor Logic Error: send outside of window %zu", _window_closed.size());
modules/pvAccess/src/ioc/reftrackioc.cpp: printf(" %s : %zu (delta %zd)\n",
modules/pvAccess/src/ioc/reftrackioc.cpp: printf(" %s : %zu\n", it->first.c_str(), it->second.current);
modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("Spamming %zu", nfree);
modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("nfree=%zu %c", nfree, (nfree>0)?'T':'F');
modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("Spamming %zu", nfree);
modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("Count %d nfree=%zu %c", c, nfree, (nfree>0)?'T':'F');
modules/pvAccess/testApp/remote/testChannelConnect.cpp: sprintf(buf, "test%zu", (i+1));
modules/pva2pva/pdbApp/pdbgroup.cpp: printf(" Atomic Get/Put:%s Monitor:%s Members:%zu\n",
modules/pva2pva/pdbApp/pvalink_jlif.cpp: printf(" #disconn=%zu prov=%s", pval->lchan->num_disconnect, pval->lchan->providerName.c_str());
modules/pva2pva/pdbApp/pvalink.cpp: fprintf(stderr, "pvaLink leaves %zu channels open\n",
modules/pva2pva/pdbApp/pvalink.cpp: printf("conn=%c %zu disconnects, %zu type changes",
modules/pva2pva/pdbApp/pvalink.cpp: printf(" %zu/%zu channels connected used by %zu links\n",
modules/pva2pva/testApp/testpdb.cpp: testDiag("Cnt %s = %zu (%ld)", it->first.c_str(), it->second.current, it->second.delta);
modules/pva2pva/testApp/testpdb.cpp: testDiag("Cnt %s = %zu (%ld)", it->first.c_str(), it->second.current, it->second.delta);
modules/libcom/test/epicsErrlogTest.c: testOk(pvt.count >= N && pvt.count<=N+2, "Logged %u messages, expected %zu", pvt.count, N+1);
modules/libcom/test/yajl_test.c: fprintf(stderr, "%zu is an invalid buffer size\n",
modules/libcom/test/yajl_test.c: "failed to allocate read buffer of %zu bytes, exiting.",
VxWorks even in version 6.9 does not know the printf format specifier %z. It will instead print a literal z (and shift all arguments to the next format o course).
This is related to bug #1740426 but not exactly the same.
Affected code in EPICS 7 (as found by grep %z):
modules/ pvData/ src/factory/ FieldCreateFact ory.cpp: sprintf(buffer, "%s<%zu>", ScalarTypeFunc: :name(getElemen tType() ), size); pvData/ src/factory/ FieldCreateFact ory.cpp: sprintf(buffer, "%s[%zu]", ScalarTypeFunc: :name(getElemen tType() ), size); pvData/ testApp/ pv/testPVData. cpp:#define SHOW(T) testDiag("sizeof(" #T ")==%zu", sizeof(T)) pvData/ testApp/ pv/performstruc t.cpp: printf("# %zu sample %f +- %f %s\n", count, mean/mult, std/mult, unit); pvData/ testApp/ pv/performstruc t.cpp: sprintf(buf, "field%zu", i); pvAccess/ pvtoolsSrc/ pvlist. cpp: "Broadcast address #%zu: %s.", i, inetAddressToSt ring(broadcastA ddresses[ i]).c_str( )); pvAccess/ pvtoolsSrc/ pvlist. cpp: LOG(logLevelDebug, "UDP Tx (%zu) -> %s", sendBuffer. getPosition( ), strBuffer); pvAccess/ src/remote/ blockingUDPTran sport.cpp: LOG(logLevelDebug, "UDP Tx (%zu) %s -> %s.", pvAccess/ src/remote/ blockingUDPTran sport.cpp: LOG(logLevelDebug, "Sending %zu bytes %s -> %s.", pvAccess/ src/remote/ blockingUDPTran sport.cpp: LOG(logLevelDebug, "Sending %zu bytes %s -> %s.", pvAccess/ src/remote/ blockingUDPTran sport.cpp: "Broadcast address #%zu: %s. (%sunicast)", i, inetAddressToSt ring(list[ i]).c_str( ), pvAccess/ src/remote/ transportRegist ry.cpp: LOG(logLevelDebug, "Context still has %zu transport(s) active and closing...", temp.size()); pvAccess/ src/remote/ codec.cpp: "Transport to %s still has %zu channel(s) active and closing...", pvAccess/ src/remote/ codec.cpp: "Transport to %s still has %zu client(s) active and closing...", pvAccess/ src/server/ responseHandler s.cpp: LOG(logLevelError, "Monitor Logic Error: send outside of window %zu", _window_ closed. size()) ; pvAccess/ src/ioc/ reftrackioc. cpp: printf(" %s : %zu (delta %zd)\n", pvAccess/ src/ioc/ reftrackioc. cpp: printf(" %s : %zu\n", it->first.c_str(), it->second. current) ; pvAccess/ testApp/ remote/ testmonitorfifo .cpp: testDiag("Spamming %zu", nfree); pvAccess/ testApp/ remote/ testmonitorfifo .cpp: testDiag("nfree=%zu %c", nfree, (nfree>0)?'T':'F'); pvAccess/ testApp/ remote/ testmonitorfifo .cpp: testDiag("Spamming %zu", nfree); pvAccess/ testApp/ remote/ testmonitorfifo .cpp: testDiag("Count %d nfree=%zu %c", c, nfree, (nfree>0)?'T':'F'); pvAccess/ testApp/ remote/ testChannelConn ect.cpp: sprintf(buf, "test%zu", (i+1)); pva2pva/ pdbApp/ pdbgroup. cpp: printf(" Atomic Get/Put:%s Monitor:%s Members:%zu\n", pva2pva/ pdbApp/ pvalink_ jlif.cpp: printf(" #disconn=%zu prov=%s", pval->lchan- >num_disconnect , pval->lchan- >providerName. c_str() ); pva2pva/ pdbApp/ pvalink. cpp: fprintf(stderr, "pvaLink leaves %zu channels open\n", pva2pva/ pdbApp/ pvalink. cpp: printf("conn=%c %zu disconnects, %zu type changes", pva2pva/ pdbApp/ pvalink. cpp: printf(" %zu/%zu channels connected used by %zu links\n", pva2pva/ testApp/ testpdb. cpp: testDiag("Cnt %s = %zu (%ld)", it->first.c_str(), it->second.current, it->second.delta); pva2pva/ testApp/ testpdb. cpp: testDiag("Cnt %s = %zu (%ld)", it->first.c_str(), it->second.current, it->second.delta); libcom/ test/epicsErrlo gTest.c: testOk(pvt.count >= N && pvt.count<=N+2, "Logged %u messages, expected %zu", pvt.count, N+1); libcom/ test/yajl_ test.c: fprintf(stderr, "%zu is an invalid buffer size\n", libcom/ test/yajl_ test.c: "failed to allocate read buffer of %zu bytes, exiting.",
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/
modules/