Currently the DSO_METHOD interface has one entry point to bind all
authorGeoff Thorpe <geoff@openssl.org>
Fri, 16 Jun 2000 10:45:36 +0000 (10:45 +0000)
committerGeoff Thorpe <geoff@openssl.org>
Fri, 16 Jun 2000 10:45:36 +0000 (10:45 +0000)
commite9a68cfbc38922e167697cf385e664b6dd7493bd
tree81dca625d177d3428504390dff3c27cb6772d9d2
parentd3ed8ceb3d5f4f6318e96a147433cb1b09bec211
Currently the DSO_METHOD interface has one entry point to bind all
"symbols" including functions (of all prototypes( and variables. Whilst
casting any function type to another violates ANSI C (I believe), it is
a necessary evil in shared-library APIs. However, it is quite
conceivable that functions in general and data symbols could very well
be represented differently to each other on some systems, as Bodo said;

> Since the function/object distinction is a lot more likely to be
> important on real-life platforms supporting DSO *and* it can be quite
> easily done *and* it will silence compilers that don't like
> assignments from void pointers to function pointer variables, why
> not do it?

I agree. So this change splits the "dso_bind" handler in DSO_METHOD
into "dso_bind_var" and "dso_bind_func". Similarly the exported
function DSO_bind() has been split in two. I've also put together
changes for the various DSO_METHOD implementations, but so far only
DSO_dlfcn() has been tested. BTW: The prototype for dso_bind had been
a bit strange so I've taken the opportunity to change its shape (in
both variations).

Also, the README has been updated - particularly with a note about
using customised native name-translation for shared libraries (and that
you can't do it yet).
crypto/dso/README
crypto/dso/dso.h
crypto/dso/dso_dl.c
crypto/dso/dso_dlfcn.c
crypto/dso/dso_err.c
crypto/dso/dso_lib.c
crypto/dso/dso_null.c
crypto/dso/dso_win32.c
util/libeay.num