Bug 92071

Summary: orbit-idl must produce an error in case of missing include files in .idl
Product: [Retired] Red Hat Linux Reporter: Sysoltsev Slawa <vyatcheslav.sysoltsev>
Component: ORBitAssignee: Mark McLoughlin <markmc>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0Keywords: MoveUpstream, Triaged
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-07-28 08:23:06 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Sysoltsev Slawa 2003-06-02 10:07:22 EDT
Description of problem:
Orbit-idl uses a compiler to preprocess idl file. This idl file can contain #include 
directives. If header file pointed in the include directive is missed the compiler 
emits an error and changes its exit status to non-zero. GNU compiler doesn’t stop 
working at this and continues preprocessing the rest of the main source file. That’s 
only its behavior and the output after the error is quite unreliable. However orbit-idl 
doesn’t check compiler output status and the error presence and continues to 
process the output. Don’t you think it is too bizarre to go on in the presence of 
errors? If there is a missed header file, the errors probably will appear during the 
build stage where source files use orbit-idl generated header and ultimately an 
user will be frustrated by the incomprehensible errors (like unknown identifier used, 
but not defined anywhere!). Orbit-idl should prevent these situations and report 
about the problem timely. Nowadays there is no any diagnostics at all if .idl file 
includes missed header file.

As another reason to check for compiler errors, you can imagine that not all 
compilers continue working after error is spotted; Intel compiler is the case. In 
such a case the header produced by orbit-idl is incomplete and cannot be used 

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Compose an idl file (test.idl):
struct One {
    long i;

#include <inexisting.h>

struct Two {
    long j;

2. Try `orbit-idl test.idl`
Actual results:
No any diagnostics, error is suppressed, output files are produced.

Expected results:
Error or at least warning about missing file. A Developer or an user spot it and fix 
the .idl file accordingly.

Additional info:
Comment 1 Havoc Pennington 2003-06-02 12:47:03 EDT
This may already be fixed in orbit-idl-2, which you should be using
rather than orbit-idl - can you give that a try?
Comment 2 Sysoltsev Slawa 2003-06-09 06:20:32 EDT
This error happens while building evolution package. They calls orbit-idl, not orbit-
idl-2, so I concern only about orbit-idl.
With orbit-idl-2 the compiler errors are shown, but exit status is zero.
Comment 3 Mark McLoughlin 2004-07-28 08:23:06 EDT
(Sorry about the inactivity here)

I'm pretty sure this has been fixed with ORBit2 and nothing really
uses ORBit anymore. Closing, but feel free to re-open if the problem
still exists with ORBit2