[Bug 66560] Re: --onlytop does not work

Jules Colding colding at omesc.com
Tue Dec 19 13:23:59 UTC 2006


Yes, I still have this problem. The problem occurs if you are including
an IDL file in another IDL file. Imagine this:

/* a.idl */
module BRUTUS {
   interface foobar {
      void method();
   };
};

/* b.idl */
#Include "a.idl"
module BRUTUS {
   interface foo {
      void bar(in foobar parm);
   };
};

/* c.idl */
#Include "a.idl"
module BRUTUS {
   interface footty {
      void barty(out foobar parm);
   };
};

"b.idl" and "c.idl" are both including "a.idl". Now compile these 3 idl
files without the --onlytop option. You will observe that b.h and c.h
does not merely contain #include "a.h" but the entire content of a.h.
This will therefore make linking of the b.idl and c.idl compilation
products impossible due to multible definitions of foobar.

You must compile with --onlytop to produce file that merely includes the
appropiate headers instead of the entire file content. Only --onlytop
will give you IDL compilation products that compile _and_ link as
intended.

A good way to demonstrate this is simply to go get:

http://www.omesc.com/content/downloads/dist/SOURCES/evolution-
brutus-1.1.22.tar.gz

and simply do:

./autogen.sh && make

evolution-brutus has a lot of IDL files that includes other IDL files.

-- 
--onlytop does not work
https://launchpad.net/bugs/66560




More information about the desktop-bugs mailing list