[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