[Gtk-sharp-list] DllImport on *.so files

Mikkel Kruse Johnsen mikkel@linet.dk
Tue, 19 Aug 2003 08:35:37 +0200


--Boundary_(ID_u2UoZoV6JbRLMuoAK/P+4w)
Content-type: text/plain
Content-transfer-encoding: 7BIT

Hi All


> Some way of verifying if function-calls map with existing libraries would 
> be prefered.
> 


Here are a set of rules to help you update your library version
information:


     1. Start with version information of `0:0:0' for each libtool
        library.
     2. Update the version information only immediately before a public
        release of your software. More frequent updates are unnecessary,
        and only guarantee that the current interface number gets larger
        faster.
     3. If the library source code has changed at all since the last
        update, then increment revision (`c:r:a' becomes `c:r+1:a').
     4. If any interfaces have been added, removed, or changed since the
        last update, increment current, and set revision to 0.
     5. If any interfaces have been added since the last public release,
        then increment age.
     6. If any interfaces have been removed since the last public
        release, then set age to 0.


There is no way to verifie that functions are in the library, unless you
run some sort of ABI control on it every time. You have to trust the
developer to follow the rules above, so that if the current version
number is changed, then function have changed and the wrapping need to
be checked.

There is no way in the current situation using only C programs that
library is cecked for functions, so your gtkhtml3 exemple is also only
checked with the version number of the libgtkhtml.

But what we really nedd it to have support in RPM and DEP for checking
assemlies version and even signing for the packages. So you can do like
this in the SPEC (RPM):

    Signing:        JGJ13234123JGJGJGJGJ12312312

or something, and only a assemplie signed with that key can be used.

/Mikkel

--Boundary_(ID_u2UoZoV6JbRLMuoAK/P+4w)
Content-type: text/html; charset=utf-8
Content-transfer-encoding: 7BIT

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.0.8">
</HEAD>
<BODY>
Hi All<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE><FONT COLOR="#737373"><I>Some way of verifying if function-calls map with existing libraries would 
be prefered.
</I></FONT></PRE>
</BLOCKQUOTE>
<BR>
Here are a set of rules to help you update your library version information:<BR>
<BR>
<OL TYPE=1>
    <LI TYPE=1 VALUE=1>Start with version information of `0:0:0' for each libtool library.
    <LI TYPE=1 VALUE=2>Update the version information only immediately before a public release of your software. More frequent updates are unnecessary, and only guarantee that the current interface number gets larger faster.
    <LI TYPE=1 VALUE=3>If the library source code has changed at all since the last update, then increment <TT>revision</TT> (`<TT>c</TT>:<TT>r</TT>:<TT>a</TT>' becomes `<TT>c</TT>:r+1:<TT>a</TT>').
    <LI TYPE=1 VALUE=4>If any interfaces have been added, removed, or changed since the last update, increment <TT>current</TT>, and set <TT>revision</TT> to 0.
    <LI TYPE=1 VALUE=5>If any interfaces have been added since the last public release, then increment <TT>age</TT>.
    <LI TYPE=1 VALUE=6>If any interfaces have been removed since the last public release, then set <TT>age</TT> to 0.
</OL>
<BR>
There is no way to verifie that functions are in the library, unless you run some sort of ABI control on it every time. You have to trust the developer to follow the rules above, so that if the current version number is changed, then function have changed and the wrapping need to be checked.<BR>
<BR>
There is no way in the current situation using only C programs that library is cecked for functions, so your gtkhtml3 exemple is also only checked with the version number of the libgtkhtml.<BR>
<BR>
But what we really nedd it to have support in RPM and DEP for checking assemlies version and even signing for the packages. So you can do like this in the SPEC (RPM):<BR>
<BR>
&nbsp;&nbsp;&nbsp; Signing:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JGJ13234123JGJGJGJGJ12312312<BR>
<BR>
or something, and only a assemplie signed with that key can be used.<BR>
<BR>
/Mikkel
</BODY>
</HTML>

--Boundary_(ID_u2UoZoV6JbRLMuoAK/P+4w)--