underscore in function name (OPENSSL_isservice)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

underscore in function name (OPENSSL_isservice)

Roumen Petrov
Hello all,

Check-in [19505] and [19557] "cryptlib.c: allow application to override
OPENSSL_isservice"  adds  call for GetProcAddress with argument name of
function that start with underscore.
The function OPENSSL_isservice is specific for windows platforms and on
those platforms in not well defined naming convention for functions with
"C" calling conventions - it is compiler dependent.

May be code after call could check for function name without underscode.

Roumen
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [hidden email]
Automated List Manager                           [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: underscore in function name (OPENSSL_isservice)

Andy Polyakov
Roumen Petrov wrote:
> Hello all,
>
> Check-in [19505] and [19557] "cryptlib.c: allow application to override
> OPENSSL_isservice"  adds  call for GetProcAddress with argument name of
> function that start with underscore.
> The function OPENSSL_isservice is specific for windows platforms and on
> those platforms in not well defined naming convention for functions with
> "C" calling conventions - it is compiler dependent.

It's kind if expected to work same way as applink. I.e. if some compiler
deviates from "main-stream" ones, Visual C and gcc/mingw, then it's its
problem. Visual C and gcc/ming being in same "category" means that they
do share naming convention, more specifically exported __cdecl symbols
appearing verbatim in exported symbols table. As for other compilers,
even though there is no well-defined convention, there ought to be some
way to set the a name of programmer's choice. How otherwise would they
inter-operate with anything? For reference, so far the only compiler
observed deviating from above mentioned naming convention is Borland's
(where problem can be worked around *in this case* directly in C code by
declaring to be exported function __stdcall as depicted in ms/applink.c).

> May be code after call could check for function name without underscode.

The intention was to use name *different* from OPENSSL_isservice.
Meaning that if it will be shown that checking for two names benefits
something, then we'd have to change the base name, e.g. to one with two
underscores or something completely different. A.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [hidden email]
Automated List Manager                           [hidden email]