Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Feb 2009 15:38:36 -0800
From:      Xin LI <delphij@delphij.net>
To:        freebsd-hackers <freebsd-hackers@freebsd.org>, kan@FreeBSD.org
Subject:   How to change an interface?
Message-ID:  <49A5D67C.8080102@delphij.net>

next in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

Just wanted to confirm that the following procedure to change an
existing interface:

 - Remove the symbol in question from all previous FBSD_1.* namespaces
with their corresponding Symbol.map files;

 - Add the new symbol into latest FBSD_1.* namespace, say, FBSD_1.1 for
now, into corresponding Symbol.map files;

 - Create a new file containing the compatibility shims with prefix __
and suffix of something indicating its obsoleteness, e.g. _44bsd.  For
instance, for function foo(), the shim function would be called
__foo_44bsd();

 - At the tail of the shim file, add glues for the old symbols like this:

__sym_compat(foo, __foo_44bsd, FBSD_1.0);

 - Double check to make sure that new .so would work with old binaries.

Is that correct?

Cheers,
- --
Xin LI <delphij@delphij.net>	http://www.delphij.net/
FreeBSD - The Power to Serve!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (FreeBSD)

iEYEARECAAYFAkml1nwACgkQi+vbBBjt66CgLwCgojrOaeSyuNHdHQyzxA0+UEMq
PREAn0rFE8zpFez0WbccVAir8Nhf/AK0
=MBeo
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49A5D67C.8080102>