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

[tao-users] TAO : Questions regarding IDL compilatio​n

380 views
Skip to first unread message

Susanta Biswal

unread,
Apr 3, 2012, 6:57:51 AM4/3/12
to tao-...@list.isis.vanderbilt.edu

Hi,
 
    Greetings to everybody.
 
  We are evaluating ACE+TAO 2.0a  to replace IONA Orbix(of Progress Software) with ACE+TAO 2.0a in one of our project.
During initial phase , we are facing following difficulties to compile the existing IDL files.
 
The details as follows:
 
==================================================================
 
                 TAO VERSION: 2.0a
 
                 HOST MACHINE and OPERATING SYSTEM: LINUX (Red Hat Enterprise Linux Server release 5.2 (Tikanga) )
                 TARGET MACHINE and OPERATING SYSTEM, if different from HOST: LINUX (Red Hat Enterprise Linux Server release 5.2 (Tikanga) )
                 COMPILER NAME AND VERSION (AND PATCHLEVEL): gcc-c++-4.1.2-42.el5
                 CONTENTS OF $ACE_ROOT/ace/config.h : #include "ace/config-linux.h"
                 CONTENTS OF $ACE_ROOT/include/makeinclude/platform_macros.GNU :include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
                                                                                                                             INSTALL_PREFIX=/tmp/TAO-INSTAL
                 CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features: File is not present.
                 LEVEL OF URGENCY (LOW, MEDIUM, or HIGH): HIGH
                 AREA/CLASS/EXAMPLE AFFECTED: IDL file compilation
                 DOES THE PROBLEM AFFECT:
                                  COMPILATION? Yes
                                  LINKING? No
                                  On Unix systems, did you run make realclean first? No
                                  EXECUTION? No
                                  OTHER (please specify)? No
 
==================================================================


SYNOPSIS and DESCRIPTION as follows :
 
=============================================================================
 
1. Can we use the same IDL files which we are using for IONA Orbix? or Do we need to modify the IDL files ?
 
2. When we compile our existing IDL files(.idl), for some of the IDL files. the tao_idl compiler  complains saying  "Error: anonymous types are deprecated by OMG spec".
    May I know what are the possible reason behind this error. Why this error is coming for some of our existing IDL files not for ALL.
    As per the tao_idl compiler options , we can silent this error by using -as option.
                     - If we do so what are the side effects.
                     - Is it possible to fix this error by changing the IDL files(without any functional impact) and not using -as option.
 
3. Our existing IDL files has reference to "string port" becasue of which the tao_idl compiler complains saying "Illegal syntax or missing identifier following member type".
     Is "port" a keyword for TAO?
     Is there any way to fix this error without changing the variable name (i.e. port)?
 
4. In one of the IDL file, we are including one of our header file. but the IDL compiler complains saying
 
                                ERROR, invalid file '<header File Name>' includedbe_visitor_root_ch::init - Error opening client header file
                                be_visitor_root_ch::init - failed to initialize
                               BE_visit_root - client header for Root failed
                               Fatal Error - Aborting
 
     Why it is so ? If I make the #include at the start of the IDL file,  then  I do not see this error.
      Is there any way to overcome this issue without moving the line to first line?
 
5. IDL file includes header file which inturn includes a rougwave(a third party) header file.
     But the tao_idl compiler complains saying "tao_idl: "<File Name>", line <Number>: Statement cannot be parsed".
     If I look at the line where the tao_idl is complaining I do not see any wrong. FYI. IONA Orbix does not complain the same.
     The line is like(Note I have changed the function name and the string ) :
                         inline const char * func() { return "Some String"; }
=============================================================================================================
Please do let me know your answers/suggestions.
 
 
Thanks,
Susanta

Adam Mitz

unread,
Apr 3, 2012, 7:25:56 AM4/3/12
to tao-...@list.isis.vanderbilt.edu
On 4/3/2012 5:57 AM, Susanta Biswal wrote:

2. When we compile our existing IDL files(.idl), for some of the IDL files. the tao_idl compiler  complains saying  "Error: anonymous types are deprecated by OMG spec".
    May I know what are the possible reason behind this error. Why this error is coming for some of our existing IDL files not for ALL.
    As per the tao_idl compiler options , we can silent this error by using -as option.
                     - If we do so what are the side effects.

There aren't any, but we suggest making your IDL compliant with the latest specifications.


                     - Is it possible to fix this error by changing the IDL files(without any functional impact) and not using -as option.
 

Avoid anonymous types.  Use typedefs to give names to each type you use.


3. Our existing IDL files has reference to "string port" becasue of which the tao_idl compiler complains saying "Illegal syntax or missing identifier following member type".
     Is "port" a keyword for TAO?

Not just for TAO, it's a keyword of IDL 3.x.


     Is there any way to fix this error without changing the variable name (i.e. port)?
 

In the IDL file, use "unsigned long _port;" (or similar).  The generated C++ code will drop the _.



4. In one of the IDL file, we are including one of our header file. but the IDL compiler complains saying
 
                                ERROR, invalid file '<header File Name>' includedbe_visitor_root_ch::init - Error opening client header file
                                be_visitor_root_ch::init - failed to initialize
                               BE_visit_root - client header for Root failed
                               Fatal Error - Aborting
 
     Why it is so ? If I make the #include at the start of the IDL file,  then  I do not see this error.
      Is there any way to overcome this issue without moving the line to first line?
 

I'm not sure what this is exactly.  IDL should really only include other IDL files.  The contents of a C++ header are not meaningful to the IDL compiler.


5. IDL file includes header file which inturn includes a rougwave(a third party) header file.
     But the tao_idl compiler complains saying "tao_idl: "<File Name>", line <Number>: Statement cannot be parsed".
     If I look at the line where the tao_idl is complaining I do not see any wrong. FYI. IONA Orbix does not complain the same.
     The line is like(Note I have changed the function name and the string ) :
                         inline const char * func() { return "Some String"; }

This is certainly not in the IDL language, right?

Thanks,
Adam Mitz
Senior Software Engineer
Object Computing, Inc.

0 new messages