[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Using consistent calling convention declarations (ITS 1074)

I don't see any problem doing this in regards to UNIX
builds.  I'd suggesting first applying the changes to
one of the smaller libraries (e.g. -lldif) and then
see what issues pop up in other build environments.


At 02:57 PM 2001-09-06, Dave Steck wrote:
>There's a problem with inconsistent function declarations in the CLDAP client code.
>The include files prototype functions like this:
>   LDAP_F ( int )  ldap_search_ext ( ... );
>But the source code usually declares functions like this, without the LDAP_F:
>   int ldap_search_ext (...) 
>  { ... }
>LDAP_F is a macro in ldap_cdefs.h which gives the developer some control over the calling convention.
>By leaving out the LDAP_F in the function declaration, it's making an assumption about the compiler defaults.  In MSVC6, the default compiler options cause compilation errors in our build environment.
>For various reasons, we can't just change the compiler option.  To build the library as a DLL, we've had to modify all the source code to declare it consistently (1000's of places!).  Makes synching with OpenLDAP very painful.  Same situation for LDAP_LDIF_F, LDAP_LUTIL_F, etc.
>I'd like to propose modifying the source code to declare functions consistently.
>Functions that are exported MUST have the LDAP_F declaration.
>For purely internal private functions, I don't care whether it contains LDAP_F or not, as long as it matches.
>I'd be willing to do the work   (he who whines... :)
>Does anyone have reasons this should not be done?
>Is it going to cause anyone problems?
>Dave Steck
>Novell, Inc., the leading provider of Net services software