On Mon, Nov 23, 2009 at 11:42 AM, Branko Čibej <br...@xbc.nu> wrote:
> Paul Burba wrote:
>> On Mon, Nov 23, 2009 at 10:00 AM, Branko Čibej <br...@xbc.nu> wrote:
>>
>>> Paul Burba wrote:
>>>
>>>> On Sun, Nov 22, 2009 at 9:49 PM, Arfrever Frehtes Taifersar Arahesis
>>>> <arfrever....@gmail.com> wrote:
>>>>
>>>>
>>>>> 2009-11-19 16:41:43 Paul Burba napisał(a):
>>>>>
>>>>>
>>>>>> On Mon, Nov 16, 2009 at 2:16 PM, Paul Burba <ptbu...@gmail.com> wrote:
>>>>>>
>>>>>>
>>>>>>> On Sat, Nov 14, 2009 at 2:42 PM, Arfrever Frehtes Taifersar Arahesis
>>>>>>> <arfrever....@gmail.com> wrote:
>>>>>>>
>>>>>>>
>>>>>>>> Author: arfrever
>>>>>>>> Date: Sat Nov 14 11:42:26 2009
>>>>>>>> New Revision: 40510
>>>>>>>>
>>>>>>>> Log:
>>>>>>>> Move inclusion of svn_debug.h from svn_types.h to svn_private_config.h.
>>>>>>>>
>>>>>>>> * subversion/include/svn_types.h: Don't include "private/svn_debug.h".
>>>>>>>>
>>>>>>>> * configure.ac: Include "private/svn_debug.h" in generated 
>>>>>>>> svn_private_config.h.in
>>>>>>>>   file.
>>>>>>>>
>>>>>>>> * subversion/svn_private_config.hw: Include "private/svn_debug.h".
>>>>>>>>
>>>>>>>> Review by: gstein
>>>>>>>>
>>>>>>>> Modified:
>>>>>>>>   trunk/configure.ac
>>>>>>>>   trunk/subversion/include/svn_types.h
>>>>>>>>   trunk/subversion/svn_private_config.hw
>>>>>>>>
>>>>>>>> Modified: trunk/configure.ac
>>>>>>>> URL: 
>>>>>>>> http://svn.collab.net/viewvc/svn/trunk/configure.ac?pathrev=40510&r1=40509&r2=40510
>>>>>>>> ==============================================================================
>>>>>>>> --- trunk/configure.ac  Sat Nov 14 00:02:24 2009        (r40509)
>>>>>>>> +++ trunk/configure.ac  Sat Nov 14 11:42:26 2009        (r40510)
>>>>>>>> @@ -615,7 +615,15 @@ if test "$enable_nls" = "yes"; then
>>>>>>>>   fi
>>>>>>>>  fi
>>>>>>>>
>>>>>>>> -AH_BOTTOM(
>>>>>>>> +AH_BOTTOM([/*
>>>>>>>> + * Subversion developers may want to use some additional debugging 
>>>>>>>> facilities
>>>>>>>> + * while working on the code. We'll pull that in here, so individual 
>>>>>>>> source
>>>>>>>> + * files don't have to include this header manually.
>>>>>>>> + */
>>>>>>>> +#ifdef SVN_DEBUG
>>>>>>>> +#include "private/svn_debug.h"
>>>>>>>> +#endif
>>>>>>>> +
>>>>>>>>  #define N_(x) x
>>>>>>>>  #define U_(x) x
>>>>>>>>  #ifdef ENABLE_NLS
>>>>>>>> @@ -629,7 +637,7 @@ AH_BOTTOM(
>>>>>>>>  #define gettext(x) (x)
>>>>>>>>  #define dgettext(domain, x) (x)
>>>>>>>>  #endif
>>>>>>>> -)
>>>>>>>> +])
>>>>>>>>
>>>>>>>>  dnl Used to simulate makefile conditionals.
>>>>>>>>  GETTEXT_CODESET=\#
>>>>>>>>
>>>>>>>> Modified: trunk/subversion/include/svn_types.h
>>>>>>>> URL: 
>>>>>>>> http://svn.collab.net/viewvc/svn/trunk/subversion/include/svn_types.h?pathrev=40510&r1=40509&r2=40510
>>>>>>>> ==============================================================================
>>>>>>>> --- trunk/subversion/include/svn_types.h        Sat Nov 14 00:02:24 
>>>>>>>> 2009        (r40509)
>>>>>>>> +++ trunk/subversion/include/svn_types.h        Sat Nov 14 11:42:26 
>>>>>>>> 2009        (r40510)
>>>>>>>> @@ -1144,14 +1144,4 @@ typedef unsigned long svn_linenum_t;
>>>>>>>>  #include "svn_error.h"
>>>>>>>>
>>>>>>>>
>>>>>>>> -/*
>>>>>>>> - * Subversion developers may want to use some additional debugging 
>>>>>>>> facilities
>>>>>>>> - * while working on the code. We'll pull that in here, so individual 
>>>>>>>> source
>>>>>>>> - * files don't have to include this header manually.
>>>>>>>> - */
>>>>>>>> -#ifdef SVN_DEBUG
>>>>>>>> -#include "private/svn_debug.h"
>>>>>>>> -#endif
>>>>>>>> -
>>>>>>>> -
>>>>>>>>  #endif /* SVN_TYPES_H */
>>>>>>>>
>>>>>>>> Modified: trunk/subversion/svn_private_config.hw
>>>>>>>> URL: 
>>>>>>>> http://svn.collab.net/viewvc/svn/trunk/subversion/svn_private_config.hw?pathrev=40510&r1=40509&r2=40510
>>>>>>>> ==============================================================================
>>>>>>>> --- trunk/subversion/svn_private_config.hw      Sat Nov 14 00:02:24 
>>>>>>>> 2009        (r40509)
>>>>>>>> +++ trunk/subversion/svn_private_config.hw      Sat Nov 14 11:42:26 
>>>>>>>> 2009        (r40510)
>>>>>>>> @@ -91,3 +91,12 @@
>>>>>>>>  #define APU_WANT_DB
>>>>>>>>  #include <apu_want.h>
>>>>>>>>  #endif
>>>>>>>> +
>>>>>>>> +/*
>>>>>>>> + * Subversion developers may want to use some additional debugging 
>>>>>>>> facilities
>>>>>>>> + * while working on the code. We'll pull that in here, so individual 
>>>>>>>> source
>>>>>>>> + * files don't have to include this header manually.
>>>>>>>> + */
>>>>>>>> +#ifdef SVN_DEBUG
>>>>>>>> +#include "private/svn_debug.h"
>>>>>>>> +#endif
>>>>>>>>
>>>>>>>>
>>>>>>> Hi Arfrever,
>>>>>>>
>>>>>>> This change breaks the debug build on Windows since __attribute__ is
>>>>>>> not longer defined, see __attribute__no.longer.defined.txt.
>>>>>>>
>>>>>>> I thought that simply adding #include <apr.h> to svn_debug.h would fix
>>>>>>> this, but I end up with even more weirdness, see include.apr.h.txt.
>>>>>>>
>>>>>>> I hate to admit I can't quite figure this out.  I've reverted this
>>>>>>> change locally so I can build, but please look into this when you can.
>>>>>>>
>>>>>>>
>>>>>> Hi Arfrever,
>>>>>>
>>>>>> I've been unable to fix the broken Windows debug build and it doesn't
>>>>>> appear anyone else is working on this.  Edmund has confirmed the
>>>>>> breakage on a his machine.  So, per our rules in HACKING, I
>>>>>> regrettably reverted this change in r882182.
>>>>>>
>>>>>> I'm more than happy to test a new version of r40510(r880584) or assist
>>>>>> in any way I can.
>>>>>>
>>>>>>
>>>>> Please test the attached patch.
>>>>>
>>>>>
>>>> Hi Arfrever,
>>>>
>>>> That works.  I still don't understand why we can't use __attribute__
>>>> in svn_debug.h.  It is used in svn_cmdline.h, svn_io.h, svn_string.h,
>>>> and various other places without any problems.
>>>>
>>>>
>>> Perhaps svn_debug.h doesn't include apr.h, where __attribute__ is
>>> defined for compilers other than GCC?
>>>
>>
>> Hi Brane,
>>
>> That was my initial thought too and I tried it, but received some very
>> odd results.  See the start of this thread:
>> http://mail-archives.apache.org/mod_mbox/subversion-dev/200911.mbox/browser.
>>
>
> Hmm, curious ... I'd suggest producing a preprocessed source to see
> where apr.h is first included.

Brane,

A disclaimer: I haven't generated preprocessed source in an age and
even then it was with much simpler code than ours...so maybe I'm doing
this all wrong.

I updated my WC back to r882181, right before I reverted r880584.
Recall that the first place the problem with __attribute__ no being
defined arises in in libsvn_subr/config_win.c.  So from within the
VS2008 IDE I changed the Configuration
Properties:C/C++"Preprocessor:Generate Preprocessed File setting for
the libsvn_subr project to 'With Line Numbers (/P)' from the default
of 'No'.  Then I rebuilt just the libsvn_subr project.  Quite
unexpectedly (at least to me) config_win.c now compiles, even though
config_win.i shows that apr.h is not included till well after
svn_debug.h.  All the files in libsvn_subr compile, but no object
files are created so the build fails.  Consider me confused.

Paul

> From looking at the surces, I can't see
> what would be going wrong, either.
>
> -- Brane
>

Reply via email to