[OE-core] [PATCH 00/29] Add gobject introspection support to oe-core

Alexander Kanavin alexander.kanavin at linux.intel.com
Wed Nov 11 13:48:19 UTC 2015


On 11/11/2015 03:34 PM, Mark Hatle wrote:

> Also has anyone looked at the .typelib information and determined if any of it
> is available via direct inspection via readelf, dwarf interpretation or other
> method that does not require execution?  Is there a definition of the .typelib
> information anywhere and some simple examples of how its generated by the
> runtime objects?  (To pursue this, the way forward is to determine a way to
> generate the .typelib by reading the chosen binaries in some way -- and then
> running a 'ptest' like check that the generated and runtime versions result in
> the same data.)

You can simply take a look at any of the .gir files: they are XMLs that 
are used to generate typelibs and contain essentially the same information.

I think it's totally unrealistic to extract all the high-level OOP 
semantics from .so libraries with readelf and friends.

For instance, gstreamer pipelines:


     <class name="Bin"
            c:symbol-prefix="bin"
            c:type="GstBin"
            parent="Element"
            glib:type-name="GstBin"
            glib:get-type="gst_bin_get_type"
            glib:type-struct="BinClass">
       <implements name="ChildProxy"/>
       <constructor name="new" c:identifier="gst_bin_new">
         <return-value transfer-ownership="none">
           <type name="Element" c:type="GstElement*"/>
         </return-value>
         <parameters>
           <parameter name="name"
                      transfer-ownership="none"
                      nullable="1"
                      allow-none="1">
             <doc xml:space="preserve">the name of the new bin</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </constructor>
       <virtual-method name="add_element">
         <return-value transfer-ownership="none">
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
...

etc etc etc.


Alex




More information about the Openembedded-core mailing list