Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[tao-bugs] Autotools build system: Some files not installed in $PREFIX/include/orbsvcs

64 views
Skip to first unread message

Vladimir Panov

unread,
Dec 27, 2005, 6:36:14 PM12/27/05
to
TAO VERSION: 1.4.8
ACE VERSION: 5.4.8

HOST MACHINE and OPERATING SYSTEM:

Any.

TARGET MACHINE and OPERATING SYSTEM, if different from HOST:

Not different.

COMPILER NAME AND VERSION (AND PATCHLEVEL):

N/A

THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
specific file, simply state which one]:

Not used.

THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
use a link to a platform-specific file, simply state which one
(unless this isn't used in this case, e.g., with Microsoft Visual
C++)]:

Not used.

CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
(used by MPC when you generate your own makefiles):

// $Id$
// This is an automatically generated file.

ssl=0
qos=1
cidl=0
rwho=0
sctp=0


AREA/CLASS/EXAMPLE AFFECTED:

Compiling programs against an autotools-installed TAO might fail.

DOES THE PROBLEM AFFECT:
COMPILATION?
If so, what do your $ACE_ROOT/ace/config.h and
$ACE_ROOT/include/makeinclude/platform_macros.GNU contain?
Not used.

LINKING?
On Unix systems, did you run make realclean first?
N/A

EXECUTION?
N/A

OTHER (please specify)?
Building programs which use TAO is affected.

SYNOPSIS:
When using the autotools build system on any OS/compiler, "make install" does not install some files in $PREFIX/include/orbsvcs. As a result,
compiling programs against the installed TAO may fail with "No such file or directory".

DESCRIPTION:
Whether the compilation of a particular source file using TAO will fail or not depends on whether it uses a header which includes a non-installed
another header or not.

REPEAT BY:

cd ACE_wrappers
mkdir objdir
cd objdir
../configure --prefix=$PREFIX
make
make install
Now create a program which uses orbsvcs/CosLoadBalancingC.h, for example. Compiling it will fail with
"$PREFIX/include/orbsvcs/CosLoadBalancingC.h:43:56: orbsvcs/LoadBalancing/LoadBalancing_export.h: No such file or directory".


SAMPLE FIX/WORKAROUND:

The files which are not installed should be added to the "nobase_include_HEADERS" variable in ACE_wrappers/TAO/orbsvcs/orbsvcs/Makefile.am. But because:
1. Some of these files should be installed conditionally;
2. Makefile.am is generated but I don't exactly know how and from what;
I will leave the fix to you and will only point you the files. They are:

orbsvcs/AVStreamsS.inl
orbsvcs/AVStreamsS_T.h
orbsvcs/Concurrency/concurrency_export.h
orbsvcs/CosConcurrencyControlS.inl
orbsvcs/CosEvent/CEC_Defaults.h
orbsvcs/CosEvent/event_serv_export.h
orbsvcs/CosLifeCycleS.inl
orbsvcs/CosLoadBalancingS.inl
orbsvcs/CosNaming.idl
orbsvcs/CosNotifyFilter.idl
orbsvcs/DsLogAdmin.idl
orbsvcs/ESF/ESF_Peer_Admin.h
orbsvcs/ESF/ESF_Proxy_Admin.h
orbsvcs/ESF/ESF_Worker.h
orbsvcs/Event/ECG_Defaults.h
orbsvcs/Event/EC_Defaults.h
orbsvcs/Event/rtcorba_event_export.h
orbsvcs/Event/rtkokyu_event_export.h
orbsvcs/Event/sched_event_export.h
orbsvcs/Event_Service_Constants.h
orbsvcs/FTRTS.inl
orbsvcs/FTRT_GroupManagerS.inl
orbsvcs/FT_CORBAS.inl
orbsvcs/FT_CORBAS_T.h
orbsvcs/FT_CORBA_ORBS.inl
orbsvcs/FT_FaultDetectorFactoryS.inl
orbsvcs/FT_FaultDetectorFactoryS_T.h
orbsvcs/FT_NotifierS.inl
orbsvcs/FT_NotifierS_T.h
orbsvcs/FT_ReplicaS.inl
orbsvcs/FT_ReplicaS_T.h
orbsvcs/FT_ReplicationManagerS.inl
orbsvcs/FT_ReplicationManagerS_T.h
orbsvcs/FaultTolerance/FT_ClientORB_export.h
orbsvcs/FaultTolerance/FT_ServerORB_export.h
orbsvcs/FtRtEvent/ClientORB/ftrt_clientorb_export.h
orbsvcs/FtRtEvent/EventChannel/FTEC_Fault_Listener.h
orbsvcs/FtRtEvent/Utils/ScopeGuard.h
orbsvcs/FtRtEvent/Utils/ftrtevent_export.h
orbsvcs/FtRtecEventChannelAdminS.inl
orbsvcs/FtRtecEventCommS.inl
orbsvcs/HTIOP/HTIOP_Acceptor_Impl.cpp
orbsvcs/HTIOP/HTIOP_Connector_Impl.cpp
orbsvcs/HTIOP/HTIOP_Export.h
orbsvcs/HTIOPS.inl
orbsvcs/IFRService/IFR_BaseS_T.h
orbsvcs/IFRService/IFR_BaseS_T.inl
orbsvcs/IFRService/IFR_BasicS_T.h
orbsvcs/IFRService/IFR_BasicS_T.inl
orbsvcs/IFRService/IFR_ComponentsS_T.h
orbsvcs/IFRService/IFR_ComponentsS_T.inl
orbsvcs/IFRService/IFR_ExtendedS_T.h
orbsvcs/IFRService/IFR_ExtendedS_T.inl
orbsvcs/IFRService/IFR_Service_Utils_T.h
orbsvcs/IFRService/IFR_macro.h
orbsvcs/IFRService/ifr_service_export.h
orbsvcs/LB_ORTS.inl
orbsvcs/LB_ORTS_T.cpp
orbsvcs/LifeCycle/lifecycle_export.h
orbsvcs/LifeCycleServiceS.inl
orbsvcs/LoadBalancing/LB_LoadAlertMap.h
orbsvcs/LoadBalancing/LB_LoadListMap.h
orbsvcs/LoadBalancing/LB_LoadMap.h
orbsvcs/LoadBalancing/LB_Location_Index_Map.h
orbsvcs/LoadBalancing/LB_MonitorMap.h
orbsvcs/LoadBalancing/LoadBalancing_export.h
orbsvcs/Log/rteventlog_export.h
orbsvcs/Notify/Consumer_Map.h
orbsvcs/Notify/Event_Persistence_Strategy.h
orbsvcs/Notify/Factory.h
orbsvcs/Notify/FilterFactory.h
orbsvcs/Notify/Method_Request_Updates_T.h
orbsvcs/Notify/Method_Request_Updates_T.inl
orbsvcs/Notify/Property.h
orbsvcs/Notify/Property_T.h
orbsvcs/Notify/ProxyConsumer_T.h
orbsvcs/Notify/ProxySupplier_T.h
orbsvcs/Notify/Proxy_T.h
orbsvcs/Notify/Refcountable_Guard_T.h
orbsvcs/Notify/Timer.h
orbsvcs/Notify/Topology_Factory.h
orbsvcs/Notify/notify_persist_export.h
orbsvcs/Notify/notify_serv_export.h
orbsvcs/Notify/rt_notify_export.h
orbsvcs/Null_MediaCtrlS.inl
orbsvcs/Null_MediaCtrlS_T.h
orbsvcs/PortableGroup/PG_Factory_Map.h
orbsvcs/PortableGroup/PG_Factory_Set.h
orbsvcs/PortableGroup/PG_Location_Map.h
orbsvcs/PortableGroup/PG_ObjectGroup_Map.h
orbsvcs/PortableGroup/PG_Property_Set_Find.h
orbsvcs/PortableGroupS.inl
orbsvcs/PortableGroupS_T.h
orbsvcs/PortableGroup_Simple_DSS.h
orbsvcs/RTEventLogAdminS.inl
orbsvcs/RtecBaseS.inl
orbsvcs/RtecBaseS_T.h
orbsvcs/RtecDefaultEventDataS_T.h
orbsvcs/RtecEventChannelAdminS_T.h
orbsvcs/RtecEventCommS_T.h
orbsvcs/RtecSchedulerS.inl
orbsvcs/RtecUDPAdminS_T.h
orbsvcs/SSLIOP/SSLIOP_OpenSSL_st_T.cpp
orbsvcs/Sched/Reconfig_Sched_Utils_T.h
orbsvcs/Sched/Reconfig_Scheduler_T.h
orbsvcs/Sched/sched_export.h
orbsvcs/SecurityLevel1S.inl
orbsvcs/SecurityLevel1S_T.h
orbsvcs/SecurityLevel2S.inl
orbsvcs/SecurityLevel2S_T.h
orbsvcs/SecurityS.inl
orbsvcs/SecurityS_T.h
orbsvcs/Time/time_export.h
orbsvcs/TimeBaseS.inl
orbsvcs/TimeBaseS_T.h
orbsvcs/TimeServiceS.inl
orbsvcs/Trader/Constraint_Tokens.h
orbsvcs/Trader/Interpreter_Utils_T.h
orbsvcs/Trader/Offer_Database.cpp
orbsvcs/Trader/Offer_Iterators_T.h
orbsvcs/Trader/Trader_Interfaces.cpp
orbsvcs/Trader/Trader_T.h
orbsvcs/Trader/trading_serv_export.h
orbsvcs/miopS.inl
orbsvcs/miopS_T.h
orbsvcs/sfpS.inl
orbsvcs/sfpS_T.h

I have obtained this list with the attached script. The script should be run in $PREFIX/include and is probably GNU-specific.
The script gives some false positives, namely:
orbsvcs/Event/Kokyu/Kokyu.h
orbsvcs/Notify/ACEXML/common/DefaultHandler.h
orbsvcs/Notify/ACEXML/common/FileCharStream.h
orbsvcs/Notify/ACEXML/parser/parser/Parser.h
orbsvcs/orb.idl
These are files which were included without the "ace/" or "tao/" prefix. Their inclusion probably needs fixing, too.

Also, have in mind that some of these files are generated (i.e. they should be taken from ACE_wrappers/objdir/TAO/orbsvcs), others are part of the
source distribution (i.e. they should be taken from ACE_wrappers/TAO/orbsvcs). But automake should take care of this.


ala.sh

J.T. Conklin

unread,
Dec 27, 2005, 8:17:35 PM12/27/05
to
Hi,

Vladimir Panov <g...@voidland.org> writes:
> SYNOPSIS:
> When using the autotools build system on any OS/compiler, "make
> install" does not install some files in $PREFIX/include/orbsvcs. As a
> result, compiling programs against the installed TAO may fail with "No
> such file or directory".

This is a good catch.

The missing *.idl files are due to us separating out IDL compilation
into their own MPC projects. Since they use custom_only=1, only the
files are compiled and not installed. This may need MPC work.

Missing *S.{cpp,h,inl} and *S_T.{cpp,h,inl} files are caused by the
opposite problem. If they aren't listed in the MPC files, they are
orphaned. I don't think this is a problem in most cases, since if
they're not listed in MPC they probably aren't used.

Missing *export.h headers is a simple oversight. A simple tweak of
the *.mpc is probably all that's needed.

I'll start working on these. Hopefully the worst offenders will be
fixed by the next beta.

--jtc

--
J.T. Conklin

Vladimir Panov

unread,
Feb 14, 2006, 3:30:37 PM2/14/06
to
J.T. Conklin wrote:

Hi, J.T.

IMHO, this problem is far from fixed. I have attached an improved
version of the script. Now it detects missing headers from missing
headers (until no more are found), and does not report false positives.
You have to customize the first 4 variables in it before running. After
it is done (should be no more than half an hour on a recent PC), check
the *.missing files.

Vlado

ala.sh

J.T. Conklin

unread,
Feb 14, 2006, 3:34:58 PM2/14/06
to
Vladimir Panov <g...@voidland.org> writes:

> Hi, J.T.
>
> IMHO, this problem is far from fixed. I have attached an improved
> version of the script. Now it detects missing headers from missing
> headers (until no more are found), and does not report false
> positives. You have to customize the first 4 variables in it before
> running. After it is done (should be no more than half an hour on a
> recent PC), check the *.missing files.

Hi Vladimir,

I know the problem is not yet fixed. I've banked some time to work on
getting the remaining bits installed by TAO 1.5. Thanks for the updated
script.

--jtc

--
J.T. Conklin

0 new messages