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 stated below). -- Brane > *From:* Branko Čibej <mailto:br...@wandisco.com> > *Sent:* Wednesday, March 4, 2015 9:20 AM > *To:* dev@subversion.apache.org <mailto:dev@subversion.apache.org> > > On 03.03.2015 21:28, julianf...@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: > http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_hash.h?rev=1663780&r1=1663779&r2=1663780&view=diff > > > ============================================================================== > > --- 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 >