On 04.03.2015 09:37, Bert Huijben wrote:
> As noted on irc we have one .def file that is used for release and
> maintenance builds. This generated file has all the function names
> that are published by a .DLL.
> If the function is not in the list, we can’t use it in maintainer
> builds from libraries != libsvn_subr. And if it is in the list, it
> must be available or the linker will return an error in release mode.
But the .def file generator doesn't look for #ifdef DEBUG blocks, right.
Otherwise we'd have had this problem for ages with svn_err__locate
(which, fwiw, is not declared within '#idfef DEBUG', as I implicitly
> *From:* Branko Čibej <mailto:brane_at_wandisco.com>
> *Sent:* Wednesday, March 4, 2015 9:20 AM
> *To:* dev_at_subversion.apache.org <mailto:dev_at_subversion.apache.org>
> On 03.03.2015 21:28, julianfoad_at_apache.org wrote:
> > Author: julianfoad
> > Date: Tue Mar 3 20:28:30 2015
> > New Revision: 1663780
> > URL: http://svn.apache.org/r1663780
> > Log:
> > * subversion/include/svn_hash.h
> > (svn_hash__gets): Remove #if from prototype to match definition.
> > Modified:
> > subversion/trunk/subversion/include/svn_hash.h
> > Modified: subversion/trunk/subversion/include/svn_hash.h
> > URL:
> > --- subversion/trunk/subversion/include/svn_hash.h (original)
> > +++ subversion/trunk/subversion/include/svn_hash.h Tue Mar 3
> 20:28:30 2015
> > @@ -239,7 +239,6 @@ svn_hash_from_cstring_keys(apr_hash_t **
> > const apr_array_header_t *keys,
> > apr_pool_t *pool);
> > -#ifdef SVN_DEBUG
> > /* In debug builds, the svn_hash_gets macro forwards the parameters
> > * through this function in order to have parameter type checking,
> > * particularly for the key. The svn_hash_sets macro gets parameter
> > @@ -247,7 +246,6 @@ svn_hash_from_cstring_keys(apr_hash_t **
> > */
> > void *
> > svn_hash__gets(apr_hash_t *ht, const char *key);
> > -#endif
> No, that's wrong. The should not be available in non-SVN_DEBUG mode
> because nobody should be calling svn_hash__gets directly. All calls
> should come from the expansion of the svn_hash_gets macro, which only
> expands to the call in SVN_DEBUG mode.
> The problem with the "missing prototype" warning should be solved in the
> same way we solve it for error tracing (see the definition of
> SVN_ERR__TRACING in svn_error.h and how it's used in libsvn_subr/error.c).
> -- Brane
Received on 2015-03-04 09:49:10 CET