[tao-bugs] Another Oracle Studio 12.4 issue

Melton, Jim jim.melton at lmco.com
Thu Nov 2 15:01:55 CDT 2017


This is likely a compiler bug, but it is triggered by dead code that should probably be removed. I see that some of the dead code was removed 3 months ago...



TAO VERSION: 2.3.0

    ACE VERSION: 6.3.0



    HOST MACHINE and OPERATING SYSTEM: Oracle SunFire X4270 M2 / Solaris 11.3



    TARGET MACHINE and OPERATING SYSTEM: same

    COMPILER NAME AND VERSION: Solaris Studio 12.4 (CC 5.13)



    THE $ACE_ROOT/ace/config.h FILE: config-sunos5.11.h

(I created this and it includes config-sunos5.10.h and adds the following clause:

#if (__SUNPRO_CC >= 0x5130)

#define ACE_ANY_OPS_USE_NAMESPACE

#endif

)



    THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE:

ace_for_tao=1

fast=0

rwho=0

buildbits=64

threads=1

CFLAGS += -std=sun03 -features=zla

include $(ACE_ROOT)/include/makeinclude/platform_sunos5_sunc++.GNU



    CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features: N/A



    AREA/CLASS/EXAMPLE AFFECTED: Does not link



    DOES THE PROBLEM AFFECT:

        COMPILATION?

        LINKING? yes

        EXECUTION?

        OTHER?



    SYNOPSIS:

Undefined symbol <classname>::__desc when linking. I haven't been able to determine what this symbol represents (possibly RTTI implementation details).



    DESCRIPTION:

Two different cases of the same symptom have been identified (so far). When building $TAO_ROOT/orbsvcs/FT_Naming_Service, I get undefined symbols while linking:



CosLoadBalancing::AMI_StrategyHandler::__descr .obj/FT_Naming_Main.o  (symbol belongs to implicit dependency $ACE_ROOT/lib/libTAO_CosLoadBalancing.so.2.3.0)

[hint: static member CosLoadBalancing::AMI_StrategyHandler::__descr must be defined in the program]

(other similar errors)





When building $TAO_ROOT/orbsvcs/tests/CosEvent/Basic, this error:



RND_Timer::__desc              .obj/Random.o

[hint : static member RND_Timer ::_desc must be defined in the program]





    REPEAT BY:

Compiling TAO



    SAMPLE FIX/WORKAROUND:
For FT_Naming_Service, the problem is resolved by addling libTAO_CosLoadBalancing.so to the link line. Unfortunately, I couldn't figure out how to modify the MPC files to accomplish this, so my local workaround modifies the GNUMakefile.FT_Naming_Service directly

For Random, it was a little more puzzling, since the problem exists in a local file. However, grep shows that RND_Timer is not actually used; simply removing the class definition from Random.h works.

--
Jim Melton
Software Architect, Fusion Programs
Lockheed Martin RMS
(720) 922-5584


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.isis.vanderbilt.edu/pipermail/tao-bugs/attachments/20171102/68f11321/attachment.html>


More information about the tao-bugs mailing list