Login | Register
My pages Projects Community openCollabNet

Discussions > dev [DISABLED] > [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

subversion
Discussion topic

Hide all messages in topic

All messages in topic

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author chemodax
Full name deleted
Date 2007-08-28 08:02:21 PDT
Message On 7/1/07, Stefan Küng <tortoisesvn at gmail dot com> wrote:
> Ivan Zhakov wrote:
> > On 7/1/07, steveking <tortoisesvn at gmail dot com> wrote:
> >> Ivan Zhakov wrote:
> >>
> >> > Sorry, I was busy and I have not time to report my research results.
> >> >
> >> > My patch almost complete and I need somebody's eyes to look and
> >> > confirm that I'm on right way (or say that I'm on wrong way :)
> >> >
> >> > I used Windows MIME database to convert page name to Windows page
> >> > identifier.
> >> > And most important question is it acceptable to read Windows MIME
> >> > database directly from registry instead of using MLang API [1]? I
> >> > didn't use MLang API, because it requires
> >> > CoInitialize()/CoUni​nitialize().
> >>
> >> I think it would be better to use the API instead of reading the
> >> registry. Because the registry is not documented and could change any
> >> time.
> >> About CoInitialize(): we could call that in svn_utf_initialize() and
> >> call CoUninitialize in an apr cleanup handler.
> > Actually registry is documented, at least for Windows CE :)
> > I agree that using API is better, but it's not too easy. We have to
> > call CoInitalize() in each thread that using COM. Another problem that
> > we don't require user libraries to call svn_utf8_initalize().
> >
> > As workaround of problems above we can call to
> > CoInitialize()/CoUninitalize() every time in win32_open_xlate(). This
> > function get called only once for each page identifiers, so it
> > shouldn't cause performance degradation. What do you think about it?
>
> I forgot about the backward compatibility. Otherwise we could just
> document that CoInitialize() must be called for every thread.
>
> If the registry is documented, then we can of course use that. I don't
> think it will be faster than using the API since registry accesses are
> expensive too, but at least for most conversions it's not needed anyway.
>
> [snip]
> >> I know this is the correct way to do this, but I don't like it. You
> >> allocate memory here which is needed only for a few lines of code. That
> >> memory is allocated in the apr pool, which we don't know when it gets
> >> cleared again (maybe not until the app exits because it's the same pool
> >> that holds the translated strings). That means that a lot of memory is
> >> 'wasted'.
> >> For example, assume you do an
> >> svn log -v url/to/kde/repository/root
> >> and you'd have to keep that log information alive until your app exits.
> >> With using an apr pool to reserve memory here that would mean that a
> >> *lot* of memory is kept allocated but not used anymore.
> >> That's why I used calloc() and free() in my patch - which isn't really
> >> good either in terms of platform independence, but it won't consume a
> >> lot of memory for nothing. Question is: do we really need apr pools here
> >> for this Windows-specific code?
> >> The correct way here may be to create a subpool and destroy that subpool
> >> before the function exits. But that's an expensive operation.
> >>
> >> In case you're wondering why someone would do such a thing (get the log
> >> info for a whole repository and keep it until the app exits), the
> >> revision graph in TSVN needs to do exactly that.
> > Yes, I know about this problem. I propose to discuss it separately
> > after committing simplest implementation. Because we can made several
> > optimizations: for example try to allocate small buffers on stack.
>
> Yes, that would improve the performance a lot. Since most conversions
> are done on paths, I suggest to allocate buffers smaller than
> MAX_PATH*sizeof(WCHAR) on the stack, the rest could use an apr subpool.
>
Hi Stefan,

I've implemented allocation of small buffers on stack in r26357. Now
buffers smaller than MAX_PATH allocated on stack.

I'm not sure about temporary allocating buffer using apr
subpool/malloc, so I didn't implement that. Feel free to propose patch
and/or open this topic on list if you want.

--
Ivan Zhakov

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author chemodax
Full name deleted
Date 2007-07-08 01:06:47 PDT
Message On 7/8/07, D.J. Heap <djheap at gmail dot com> wrote:
> On 7/7/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> [snip]
> > And of course primary question: Does it work without my patch? Because
> > these failures can be related to new txn generation code, committed by
> > Blair in r25430.
> >
>
>
> I'm building with trunk r25679 and after backing out r25650, the
> fs-test.exe passes all tests again. So, either the patch is bringing
> out some lurking problem, or it is affecting the fs stuff in some way
> I can't seem to figure out.
>
It seems I found way to reproduce problem even without my patch. Many
fs-test will fail on Windows if you just remove time part from
generated transaction name in fs_fs. See patch:

Index: subversion/libsvn_fs_fs/fs_fs.c
====================​====================​====================​=======
--- subversion/libsvn_fs_fs/fs_fs.c (revision 25654)
+++ subversion/libsvn_fs_fs/fs_fs.c (working copy)
@@ -3195,7 +3195,7 @@
       *p = '-';

   process_id = getpid();
- now = apr_time_now();
+ now = 0; /* It's for testing purposes only! should apr_time_now(). */

   unique_basename = apr_psprintf(pool, "%s-%05d-%" APR_TIME_T_FMT,
                                  hostname_str, process_id, now);
Index: subversion/libsvn_subr/utf.c
====================​====================​====================​=======
--- subversion/libsvn_subr/utf.c (revision 25654)
+++ subversion/libsvn_subr/utf.c (working copy)
@@ -253,7 +253,7 @@
     pool = apr_hash_pool_get(xl​ate_handle_hash);

   /* Try to create a handle. */
-#if defined( WIN32)
+#if 0
   apr_err = svn_subr__win32_xlat​e_open(&handle, topage, frompage, pool);
 #elif defined(AS400)
   apr_err = apr_xlate_open(&handle, (int)topage, (int)frompage, pool);

So it seems the problem of my patch that it made running Subversion
faster and we got two transactions in the same time :)

Now I'm trying to figure out why this transaction generation code
fails on Windows.

--
Ivan Zhakov

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author djh
Full name D.J. Heap
Date 2007-07-07 18:47:34 PDT
Message On 7/7/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
[snip]
> And of course primary question: Does it work without my patch? Because
> these failures can be related to new txn generation code, committed by
> Blair in r25430.
>


I'm building with trunk r25679 and after backing out r25650, the
fs-test.exe passes all tests again. So, either the patch is bringing
out some lurking problem, or it is affecting the fs stuff in some way
I can't seem to figure out.

DJ

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author djh
Full name D.J. Heap
Date 2007-07-07 18:32:05 PDT
Message On 7/7/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
[snip]
> Is it happens only with 'Debug' build, but doesn't happen with 'Release'?


It fails quite consistently with Release, somewhat sporadically with Debug.


>
> May be there are some problems with DLLs? Did you try to build with
> --disable-shared? Another source of problems may be that there are
> different APR libraries installed somewhere.


Haven't tried --disable-shared (the fs-test.exe is statically linked
anyway), but I'm fairly certain the APR libraries are the correct ones
-- while debugging I watched which ones were loaded.


>
> Also could you check how is your APR built: Is it built with
> APR_HAS_UNICODE_FS or not?


Yes it is.


>
> Do you have some antivirus software installed?


No.

I will back out the patch and see what happens...The buildbot had been
running pretty clean up until that day, as I recall, though -- and I
got the same failures on a different VM with the VC6 build as well.

DJ

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author chemodax
Full name deleted
Date 2007-07-07 15:47:49 PDT
Message On 7/8/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> On 7/7/07, D.J. Heap <djheap at gmail dot com> wrote:
> > On 7/5/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> > [snip]
> > > > svn_tests: Reference to non-existent node
> > > > '1.0.tDJ-VM-XP-VS6-0​2704-118325758456250​0-1' in filesystem
> > > > 'test-repo-check-root-revision'
> > > > FAIL: fs-test.exe 26: ensure accurate storage of root node
> > [snip]
> > > I committed my patch and found that these tests fails on your buildbot
> > > slave even with VS2005. But they work on my computer. Could you see
> > > what happens on your buildbot slave?
> >
> >
> > I've spent a few hours trying to debug through this now and haven't
> > found out exactly what is going on. It doesn't happen when I step
> > through the code with a debugger, and it is somewhat sporadic in the
> > debug build anyway. So I've had to put in sleeps, printf traces, etc.
> > to get anywhere and those sometimes stop the failure from happening as
> > well.
> >
> > But in all the failures I've seen, it comes down to a transaction
> > child-node file not being there -- whether it was never created or has
> > been deleted or something, I'm not sure yet. Any ideas or suggestions
> > on where to look or what to look for?
> >
> Is it happens only with 'Debug' build, but doesn't happen with 'Release'?
>
> May be there are some problems with DLLs? Did you try to build with
> --disable-shared? Another source of problems may be that there are
> different APR libraries installed somewhere.
>
> Also could you check how is your APR built: Is it built with
> APR_HAS_UNICODE_FS or not?
>
> Do you have some antivirus software installed?
>
And of course primary question: Does it work without my patch? Because
these failures can be related to new txn generation code, committed by
Blair in r25430.

--
Ivan Zhakov

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author chemodax
Full name deleted
Date 2007-07-07 15:32:02 PDT
Message On 7/7/07, D.J. Heap <djheap at gmail dot com> wrote:
> On 7/5/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> [snip]
> > > svn_tests: Reference to non-existent node
> > > '1.0.tDJ-VM-XP-VS6-0​2704-118325758456250​0-1' in filesystem
> > > 'test-repo-check-root-revision'
> > > FAIL: fs-test.exe 26: ensure accurate storage of root node
> [snip]
> > I committed my patch and found that these tests fails on your buildbot
> > slave even with VS2005. But they work on my computer. Could you see
> > what happens on your buildbot slave?
>
>
> I've spent a few hours trying to debug through this now and haven't
> found out exactly what is going on. It doesn't happen when I step
> through the code with a debugger, and it is somewhat sporadic in the
> debug build anyway. So I've had to put in sleeps, printf traces, etc.
> to get anywhere and those sometimes stop the failure from happening as
> well.
>
> But in all the failures I've seen, it comes down to a transaction
> child-node file not being there -- whether it was never created or has
> been deleted or something, I'm not sure yet. Any ideas or suggestions
> on where to look or what to look for?
>
Is it happens only with 'Debug' build, but doesn't happen with 'Release'?

May be there are some problems with DLLs? Did you try to build with
--disable-shared? Another source of problems may be that there are
different APR libraries installed somewhere.

Also could you check how is your APR built: Is it built with
APR_HAS_UNICODE_FS or not?

Do you have some antivirus software installed?


--
Ivan Zhakov

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author djh
Full name D.J. Heap
Date 2007-07-07 08:31:40 PDT
Message On 7/5/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
[snip]
> > svn_tests: Reference to non-existent node
> > '1.0.tDJ-VM-XP-VS6-0​2704-118325758456250​0-1' in filesystem
> > 'test-repo-check-root-revision'
> > FAIL: fs-test.exe 26: ensure accurate storage of root node
[snip]
> I committed my patch and found that these tests fails on your buildbot
> slave even with VS2005. But they work on my computer. Could you see
> what happens on your buildbot slave?


I've spent a few hours trying to debug through this now and haven't
found out exactly what is going on. It doesn't happen when I step
through the code with a debugger, and it is somewhat sporadic in the
debug build anyway. So I've had to put in sleeps, printf traces, etc.
to get anywhere and those sometimes stop the failure from happening as
well.

But in all the failures I've seen, it comes down to a transaction
child-node file not being there -- whether it was never created or has
been deleted or something, I'm not sure yet. Any ideas or suggestions
on where to look or what to look for?

DJ

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author Mark Phippard <markphip at gmail dot com>
Full name Mark Phippard <markphip at gmail dot com>
Date 2007-07-05 13:23:59 PDT
Message On 7/5/07, D.J. Heap <djheap at gmail dot com> wrote:
> On 7/5/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> [snip]
> > I committed my patch and found that these tests fails on your buildbot
> > slave even with VS2005. But they work on my computer. Could you see
> > what happens on your buildbot slave?
>
>
> Yes I will as soon as I can -- probably this Saturday, I'm swamped
> until then, sorry. :(

Just an fyi, but my MSVC 6.0 build passed all tests (ra_local + fsfs).
 There is still the problem that win-tests.py will not run if the
apriconv.dll is not present.

--
Thanks

Mark Phippard
http://markphip.blogspot.com/

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author djh
Full name D.J. Heap
Date 2007-07-05 13:21:09 PDT
Message On 7/5/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
[snip]
> I committed my patch and found that these tests fails on your buildbot
> slave even with VS2005. But they work on my computer. Could you see
> what happens on your buildbot slave?


Yes I will as soon as I can -- probably this Saturday, I'm swamped
until then, sorry. :(

DJ

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author chemodax
Full name deleted
Date 2007-07-05 12:48:46 PDT
Message On 7/1/07, D.J. Heap <djheap at gmail dot com> wrote:
> On 6/30/07, D.J. Heap <djheap at gmail dot com> wrote:
> > On 6/30/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> > [snip]
> > > Sorry, I was busy and I have not time to report my research results.
> > >
> > > My patch almost complete and I need somebody's eyes to look and
> > > confirm that I'm on right way (or say that I'm on wrong way :)
> >
> >
> > I've built trunk r25598 + Stefan/Ivan's patch and posted the binaries at:
> >
> > http://subversion.ti​gris.org/servlets/Pr​ojectDocumentList?fo​lderID=8682&expa​ndFolder=8682&fo​lderID=8682
> >
> > so people with multi-language setups can test them a bit.
> >
>
>
> FYI, I get two fs-test failures with this patch on WinXP with VC6:
>
> PASS: fs-test.exe 25: create and modify large file (seed=2683120967)
> CLEANUP: C:/Temp/tmp/tests/su​bversion/tests/libsv​n_fs/test-repo-large​-file-integrity
> svn_tests: Reference to non-existent node
> '1.0.tDJ-VM-XP-VS6-0​2704-118325758456250​0-1' in filesystem
> 'test-repo-check-root-revision'
> FAIL: fs-test.exe 26: ensure accurate storage of root node
> PASS: fs-test.exe 27: svn_fs_node_created_rev test
> CLEANUP: C:/Temp/tmp/tests/su​bversion/tests/libsv​n_fs/test-repo-node-​created-rev
> svn_tests: Reference to non-existent node
> '2.0.tDJ-VM-XP-VS6-0​2704-118325758493750​0-1' in filesystem
> 'test-repo-check-related'
> FAIL: fs-test.exe 28: test svn_fs_check_related
> PASS: fs-test.exe 29: test complex copies (branches)
>
I committed my patch and found that these tests fails on your buildbot
slave even with VS2005. But they work on my computer. Could you see
what happens on your buildbot slave?

--
Ivan Zhakov

Re: Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author Mark Phippard <markphip at gmail dot com>
Full name Mark Phippard <markphip at gmail dot com>
Date 2007-07-05 10:48:53 PDT
Message On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> On 7/5/07, Paul Burba <pburba at collab dot net> wrote:
> > Mark,
> >
> > I did a build of trunk on my MSVC6 VM this morning and encountered the same problem you did. I think this explains the problem:
> >
> > http://trolltech.com​/developer/knowledge​base/faq.2007-05-04.​4776834989/
> >
> > After replacing this line in my build script:
> >
> > set SDKLIB=C:\Program Files\Microsoft Platform SDK\Lib
> >
> > with this:
> >
> > set SDKLIB=C:\Program Files\Microsoft Visual Studio\VC98\Lib;C:\Program Files\Microsoft Platform SDK\Lib
> >
> > Everything worked fine.
>
> I will give that a try, but I seem to recall I had to do the exact
> opposite for APR 1.2.8 to build because of needing newer LDAP
> libraries or something like that. I suppose since APR is built
> separate this might not be too big of an issue.

OK, this worked for getting it to build. Now win-tests.py bombs out
before it runs because it cannot find libapriconv.dll to copy it to
the Release folder.

--
Thanks

Mark Phippard
http://markphip.blogspot.com/

Re: Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author Mark Phippard <markphip at gmail dot com>
Full name Mark Phippard <markphip at gmail dot com>
Date 2007-07-05 08:10:48 PDT
Message On 7/5/07, Paul Burba <pburba at collab dot net> wrote:
> Mark,
>
> I did a build of trunk on my MSVC6 VM this morning and encountered the same problem you did. I think this explains the problem:
>
> http://trolltech.com​/developer/knowledge​base/faq.2007-05-04.​4776834989/
>
> After replacing this line in my build script:
>
> set SDKLIB=C:\Program Files\Microsoft Platform SDK\Lib
>
> with this:
>
> set SDKLIB=C:\Program Files\Microsoft Visual Studio\VC98\Lib;C:\Program Files\Microsoft Platform SDK\Lib
>
> Everything worked fine.

I will give that a try, but I seem to recall I had to do the exact
opposite for APR 1.2.8 to build because of needing newer LDAP
libraries or something like that. I suppose since APR is built
separate this might not be too big of an issue.


--
Thanks

Mark Phippard
http://markphip.blogspot.com/

RE: Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author pburba
Full name Paul T. Burba
Date 2007-07-05 07:59:51 PDT
Message Mark,

I did a build of trunk on my MSVC6 VM this morning and encountered the same problem you did. I think this explains the problem:

http://trolltech.com​/developer/knowledge​base/faq.2007-05-04.​4776834989/

After replacing this line in my build script:

set SDKLIB=C:\Program Files\Microsoft Platform SDK\Lib

with this:

set SDKLIB=C:\Program Files\Microsoft Visual Studio\VC98\Lib;C:\Program Files\Microsoft Platform SDK\Lib
  
Everything worked fine.

Hope that helps.

Paul

> -----Original Message-----
> From: Stefan Küng [mailto:tortoisesvn at gmail dot com]
> Sent: Thursday, July 05, 2007 9:43 AM
> To: Mark Phippard
> Cc: Ivan Zhakov; D.J. Heap; Daniel Rall; dev at subversion dot tigris dot org
> Subject: Re: [PATCH] Remove APR ICONV dependency on Windows
> (was SVN Win32 Developers -- need some help)
>
> On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> > On 7/5/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> > > On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> > > > On 7/5/07, Stefan Küng <tortoisesvn at gmail dot com> wrote:
> > > > > > Now when I build SVN it cannot create the
> libsvn_subr-1.dll
> > > > > > The reason is that it cannot resolve the symbols
> for these new functions
> > > > > > we are calling ... CoInitialize etc... I imagine
> there is some new
> > > > > > .lib that we have to make available during the
> compile? I am
> > > > > > using MSVC 6.0 with the latest SDK.
> > > > >
> > > > > Both CoInitialize() and CoUninitialize() are declared in
> > > > > objbase.h and you must link against ole32.lib.
> > > >
> > > > Thanks. Isn't this detail usually handled by
> gen-make.py? I did
> > > > re-run that before building. Or are we expecting that to be a
> > > > default library provided by the IDE?
> > > >
> > > Hi Mark,
> > > It builds for me with Visual Studio 2005. Could you try to apply
> > > following patch, run gen-make.py and build Subversion.
> >
> > That gets me a different error. I made sure that I blew away the
> > Release folder and tried again, but still get the same:
> >
> > --------------------​Configuration: libsvn_subr_dll - Win32
> > Release--------------
> > ------
> > Compiling resources...
> > Compiling...
> > empty.c
> > Linking...
> > .\libsvn_subr.def : warning LNK4087: CONSTANT keyword is
> obsolete; use DATA
> > Creating library
> > ..\..\..\Release​subversion\libsvn_​subr/libsvn_subr-1.l​ib
> an d object
> > ..\..\..\Release​subversion\libsvn_​subr/libsvn_subr-1.e​xp
> > uuid.lib(mlang_i.obj) : fatal error LNK1103: debugging information
> > corrupt; reco mpile module Error executing link.exe.
> >
> > __ALL_TESTS__ - 1 error(s), 3 warning(s)
>
> Since the linker is complaining about mlang_i.obj, telling
> you that the debug info in there is corrupt, I strongly
> recommend you download and install the Windows SDK again.
> Seems your copy is corrupt somehow (which would explain your
> crashes with my patch some time ago).
>
> Stefan
>
> --
> ___
> oo // \\ "De Chelonian Mobile"
> (_,\/ \_/ \ TortoiseSVN
> \ \_/_\_/> The coolest Interface to (Sub)Version Control
> /_/ \_\ http://tortoisesvn.net
>
> --------------------​--------------------​--------------------​---------
> To unsubscribe, e-mail: dev-unsubscribe@subv​ersion.tigris.org
> For additional commands, e-mail: dev-help at subversion dot tigris dot org
>
>

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author steveking
Full name Stefan Küng
Date 2007-07-05 06:42:46 PDT
Message On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> On 7/5/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> > On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> > > On 7/5/07, Stefan Küng <tortoisesvn at gmail dot com> wrote:
> > > > > Now when I build SVN it cannot create the libsvn_subr-1.dll The
> > > > > reason is that it cannot resolve the symbols for these new functions
> > > > > we are calling ... CoInitialize etc... I imagine there is some new
> > > > > .lib that we have to make available during the compile? I am using
> > > > > MSVC 6.0 with the latest SDK.
> > > >
> > > > Both CoInitialize() and CoUninitialize() are declared in objbase.h and
> > > > you must link against ole32.lib.
> > >
> > > Thanks. Isn't this detail usually handled by gen-make.py? I did
> > > re-run that before building. Or are we expecting that to be a default
> > > library provided by the IDE?
> > >
> > Hi Mark,
> > It builds for me with Visual Studio 2005. Could you try to apply
> > following patch, run gen-make.py and build Subversion.
>
> That gets me a different error. I made sure that I blew away the
> Release folder and tried again, but still get the same:
>
> --------------------​Configuration: libsvn_subr_dll - Win32 Release--------------
> ------
> Compiling resources...
> Compiling...
> empty.c
> Linking...
> .\libsvn_subr.def : warning LNK4087: CONSTANT keyword is obsolete; use DATA
> Creating library ..\..\..\Release​subversion\libsvn_​subr/libsvn_subr-1.l​ib an
> d object ..\..\..\Release​subversion\libsvn_​subr/libsvn_subr-1.e​xp
> uuid.lib(mlang_i.obj) : fatal error LNK1103: debugging information corrupt; reco
> mpile module
> Error executing link.exe.
>
> __ALL_TESTS__ - 1 error(s), 3 warning(s)

Since the linker is complaining about mlang_i.obj, telling you that
the debug info in there is corrupt, I strongly recommend you download
and install the Windows SDK again. Seems your copy is corrupt somehow
(which would explain your crashes with my patch some time ago).

Stefan

--
       ___
  oo // \\ "De Chelonian Mobile"
 (_,\/ \_/ \ TortoiseSVN
   \ \_/_\_/> The coolest Interface to (Sub)Version Control
   /_/ \_\ http://tortoisesvn.net

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author Mark Phippard <markphip at gmail dot com>
Full name Mark Phippard <markphip at gmail dot com>
Date 2007-07-05 06:37:28 PDT
Message On 7/5/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> > On 7/5/07, Stefan Küng <tortoisesvn at gmail dot com> wrote:
> > > > Now when I build SVN it cannot create the libsvn_subr-1.dll The
> > > > reason is that it cannot resolve the symbols for these new functions
> > > > we are calling ... CoInitialize etc... I imagine there is some new
> > > > .lib that we have to make available during the compile? I am using
> > > > MSVC 6.0 with the latest SDK.
> > >
> > > Both CoInitialize() and CoUninitialize() are declared in objbase.h and
> > > you must link against ole32.lib.
> >
> > Thanks. Isn't this detail usually handled by gen-make.py? I did
> > re-run that before building. Or are we expecting that to be a default
> > library provided by the IDE?
> >
> Hi Mark,
> It builds for me with Visual Studio 2005. Could you try to apply
> following patch, run gen-make.py and build Subversion.

That gets me a different error. I made sure that I blew away the
Release folder and tried again, but still get the same:

--------------------​Configuration: libsvn_subr_dll - Win32 Release--------------
------
Compiling resources...
Compiling...
empty.c
Linking...
.\libsvn_subr.def : warning LNK4087: CONSTANT keyword is obsolete; use DATA
   Creating library ..\..\..\Release​subversion\libsvn_​subr/libsvn_subr-1.l​ib an
d object ..\..\..\Release​subversion\libsvn_​subr/libsvn_subr-1.e​xp
uuid.lib(mlang_i.obj) : fatal error LNK1103: debugging information corrupt; reco
mpile module
Error executing link.exe.

__ALL_TESTS__ - 1 error(s), 3 warning(s)

--
Thanks

Mark Phippard
http://markphip.blogspot.com/

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author chemodax
Full name deleted
Date 2007-07-05 06:25:23 PDT
Message On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> On 7/5/07, Stefan Küng <tortoisesvn at gmail dot com> wrote:
> > > Now when I build SVN it cannot create the libsvn_subr-1.dll The
> > > reason is that it cannot resolve the symbols for these new functions
> > > we are calling ... CoInitialize etc... I imagine there is some new
> > > .lib that we have to make available during the compile? I am using
> > > MSVC 6.0 with the latest SDK.
> >
> > Both CoInitialize() and CoUninitialize() are declared in objbase.h and
> > you must link against ole32.lib.
>
> Thanks. Isn't this detail usually handled by gen-make.py? I did
> re-run that before building. Or are we expecting that to be a default
> library provided by the IDE?
>
Hi Mark,
It builds for me with Visual Studio 2005. Could you try to apply
following patch, run gen-make.py and build Subversion.

Index: build.conf
====================​====================​====================​=======
--- build.conf (revision 25654)
+++ build.conf (working copy)
@@ -311,7 +311,7 @@
 install = fsmod-lib
 path = subversion/libsvn_subr
 libs = aprutil apriconv apr xml zlib
-msvc-libs = advapi32.lib shfolder.lib
+msvc-libs = advapi32.lib shfolder.lib ole32.lib
 msvc-export = svn_auth.h svn_base64.h svn_cmdline.h svn_config.h
svn_ctype.h svn_dso.h svn_error.h svn_hash.h svn_io.h svn_md5.h
svn_nls.h svn_opt.h svn_mergeinfo.h svn_path.h svn_pools.h svn_props.h
svn_quoprint.h svn_sorts.h svn_string.h svn_subst.h svn_time.h
svn_types.h svn_user.h svn_utf.h svn_version.h svn_xml.h
private\svn_atomic.h private\svn_mergeinfo_private.h

 # Low-level grab bag of utilities


--
Ivan Zhakov

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author Mark Phippard <markphip at gmail dot com>
Full name Mark Phippard <markphip at gmail dot com>
Date 2007-07-05 06:19:17 PDT
Message On 7/5/07, Stefan Küng <tortoisesvn at gmail dot com> wrote:
> > Now when I build SVN it cannot create the libsvn_subr-1.dll The
> > reason is that it cannot resolve the symbols for these new functions
> > we are calling ... CoInitialize etc... I imagine there is some new
> > .lib that we have to make available during the compile? I am using
> > MSVC 6.0 with the latest SDK.
>
> Both CoInitialize() and CoUninitialize() are declared in objbase.h and
> you must link against ole32.lib.

Thanks. Isn't this detail usually handled by gen-make.py? I did
re-run that before building. Or are we expecting that to be a default
library provided by the IDE?

--
Thanks

Mark Phippard
http://markphip.blogspot.com/

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author steveking
Full name Stefan Küng
Date 2007-07-05 06:14:17 PDT
Message On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> > Thanks Ivan.
> >
> > Is it possible to build apr-util without iconv now? Or do we still
> > have to build apr-iconv and ship the DLL and just know that we are now
> > not actually using it?
>
> I figured this out. Just had to edit apu.h.
>
> Now when I build SVN it cannot create the libsvn_subr-1.dll The
> reason is that it cannot resolve the symbols for these new functions
> we are calling ... CoInitialize etc... I imagine there is some new
> .lib that we have to make available during the compile? I am using
> MSVC 6.0 with the latest SDK.

Both CoInitialize() and CoUninitialize() are declared in objbase.h and
you must link against ole32.lib.

Stefan

--
       ___
  oo // \\ "De Chelonian Mobile"
 (_,\/ \_/ \ TortoiseSVN
   \ \_/_\_/> The coolest Interface to (Sub)Version Control
   /_/ \_\ http://tortoisesvn.net

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author Mark Phippard <markphip at gmail dot com>
Full name Mark Phippard <markphip at gmail dot com>
Date 2007-07-05 06:11:42 PDT
Message On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> Thanks Ivan.
>
> Is it possible to build apr-util without iconv now? Or do we still
> have to build apr-iconv and ship the DLL and just know that we are now
> not actually using it?

I figured this out. Just had to edit apu.h.

Now when I build SVN it cannot create the libsvn_subr-1.dll The
reason is that it cannot resolve the symbols for these new functions
we are calling ... CoInitialize etc... I imagine there is some new
.lib that we have to make available during the compile? I am using
MSVC 6.0 with the latest SDK.

--
Thanks

Mark Phippard
http://markphip.blogspot.com/

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author steveking
Full name Stefan Küng
Date 2007-07-05 06:10:53 PDT
Message On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> On 7/5/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> > On 7/3/07, D.J. Heap <djheap at gmail dot com> wrote:
> > > On 7/2/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> > > [snip]
> > > > Here is revisited patch. Major vhanges from previous version:
> > > > - Use MLang API for converting page name to page id.
> > > > - All Windows stuff moved to separate file win32_xlate.c.
> > > >
> > > > [[[
> > > > Remove APR ICONV dependency on Windows and use native Windows
> > > > character conversion API (MultiByteToWideChar​/WideCharToMultiByte​).
> > > >
> > >
> > >
> > > I've built and posted binaries with this patch at:
> > >
> > > http://subversion.ti​gris.org/servlets/Pr​ojectDocumentList?fo​lderID=8682&expa​ndFolder=8682&fo​lderID=8682
> > >
> > > I still get 2 fs-test failures with VS6 -- haven't had time to dig
> > > into them yet.
> > >
> > > Also, I think we should probably check the return of CoInit and not
> > > call CoUninit if it fails (because CoInit/CoInitEx has already been
> > > called with a different apartment or something).
> > >
> > Good point! I've added check for return value of CoInitialize() and
> > also added logic to detect when COM already initialized for different
> > apartment.
> >
> > I think that patch is acceptable for trunk, thus I've committed it in
> > r25640. Review more than welcome :)
> >
> > On 7/3/07, Daniel Rall <dlr at collab dot net> wrote:
> > > Just a nitpick, but some of the formatting is pretty inconsistent with
> > > the rest of the code base (use of Hungarian notation, lack of
> > > whitespace between data type and value in type casts, etc.).
> > Thanks, I've checked my patch again and fixed what I found.
>
> Thanks Ivan.
>
> Is it possible to build apr-util without iconv now? Or do we still
> have to build apr-iconv and ship the DLL and just know that we are now
> not actually using it?

AFAIK Subversion doesn't build apr/apr-util anymore?
Anyway: you must patch the apr build a little bit to make sure that
the apr-iconv dll isn't needed anymore:

there's a file 'apu.hw' which gets copied to 'apu.h' in the build
process. Depending on where you got the apr sources (repository
checkout or tarball), you have to edit the hw or the h file.
You have to change the defines:
APU_HAVE_APR_ICONV and APU_HAVE_ICONV to be both '0', not '1'.
Then you must of course do a rebuild of apr (and I think apr-util too).

Stefan

--
       ___
  oo // \\ "De Chelonian Mobile"
 (_,\/ \_/ \ TortoiseSVN
   \ \_/_\_/> The coolest Interface to (Sub)Version Control
   /_/ \_\ http://tortoisesvn.net

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author chemodax
Full name deleted
Date 2007-07-05 06:07:05 PDT
Message On 7/5/07, Mark Phippard <markphip at gmail dot com> wrote:
> On 7/5/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> > On 7/3/07, D.J. Heap <djheap at gmail dot com> wrote:
> > > On 7/2/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> > > [snip]
> > > > Here is revisited patch. Major vhanges from previous version:
> > > > - Use MLang API for converting page name to page id.
> > > > - All Windows stuff moved to separate file win32_xlate.c.
> > > >
> > > > [[[
> > > > Remove APR ICONV dependency on Windows and use native Windows
> > > > character conversion API (MultiByteToWideChar​/WideCharToMultiByte​).
> > > >
> > >
> > >
> > > I've built and posted binaries with this patch at:
> > >
> > > http://subversion.ti​gris.org/servlets/Pr​ojectDocumentList?fo​lderID=8682&expa​ndFolder=8682&fo​lderID=8682
> > >
> > > I still get 2 fs-test failures with VS6 -- haven't had time to dig
> > > into them yet.
> > >
> > > Also, I think we should probably check the return of CoInit and not
> > > call CoUninit if it fails (because CoInit/CoInitEx has already been
> > > called with a different apartment or something).
> > >
> > Good point! I've added check for return value of CoInitialize() and
> > also added logic to detect when COM already initialized for different
> > apartment.
> >
> > I think that patch is acceptable for trunk, thus I've committed it in
> > r25640. Review more than welcome :)
> >
> > On 7/3/07, Daniel Rall <dlr at collab dot net> wrote:
> > > Just a nitpick, but some of the formatting is pretty inconsistent with
> > > the rest of the code base (use of Hungarian notation, lack of
> > > whitespace between data type and value in type casts, etc.).
> > Thanks, I've checked my patch again and fixed what I found.
>
> Thanks Ivan.
>
> Is it possible to build apr-util without iconv now? Or do we still
> have to build apr-iconv and ship the DLL and just know that we are now
> not actually using it?
>
Subversion don't build apr, apr-util and apr-iconv since r24859.
Probably we have to fix packaging scripts.

--
Ivan Zhakov

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author Mark Phippard <markphip at gmail dot com>
Full name Mark Phippard <markphip at gmail dot com>
Date 2007-07-05 05:58:48 PDT
Message On 7/5/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> On 7/3/07, D.J. Heap <djheap at gmail dot com> wrote:
> > On 7/2/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> > [snip]
> > > Here is revisited patch. Major vhanges from previous version:
> > > - Use MLang API for converting page name to page id.
> > > - All Windows stuff moved to separate file win32_xlate.c.
> > >
> > > [[[
> > > Remove APR ICONV dependency on Windows and use native Windows
> > > character conversion API (MultiByteToWideChar​/WideCharToMultiByte​).
> > >
> >
> >
> > I've built and posted binaries with this patch at:
> >
> > http://subversion.ti​gris.org/servlets/Pr​ojectDocumentList?fo​lderID=8682&expa​ndFolder=8682&fo​lderID=8682
> >
> > I still get 2 fs-test failures with VS6 -- haven't had time to dig
> > into them yet.
> >
> > Also, I think we should probably check the return of CoInit and not
> > call CoUninit if it fails (because CoInit/CoInitEx has already been
> > called with a different apartment or something).
> >
> Good point! I've added check for return value of CoInitialize() and
> also added logic to detect when COM already initialized for different
> apartment.
>
> I think that patch is acceptable for trunk, thus I've committed it in
> r25640. Review more than welcome :)
>
> On 7/3/07, Daniel Rall <dlr at collab dot net> wrote:
> > Just a nitpick, but some of the formatting is pretty inconsistent with
> > the rest of the code base (use of Hungarian notation, lack of
> > whitespace between data type and value in type casts, etc.).
> Thanks, I've checked my patch again and fixed what I found.

Thanks Ivan.

Is it possible to build apr-util without iconv now? Or do we still
have to build apr-iconv and ship the DLL and just know that we are now
not actually using it?

--
Thanks

Mark Phippard
http://markphip.blogspot.com/

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author chemodax
Full name deleted
Date 2007-07-05 02:11:42 PDT
Message On 7/3/07, D.J. Heap <djheap at gmail dot com> wrote:
> On 7/2/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
> [snip]
> > Here is revisited patch. Major vhanges from previous version:
> > - Use MLang API for converting page name to page id.
> > - All Windows stuff moved to separate file win32_xlate.c.
> >
> > [[[
> > Remove APR ICONV dependency on Windows and use native Windows
> > character conversion API (MultiByteToWideChar​/WideCharToMultiByte​).
> >
>
>
> I've built and posted binaries with this patch at:
>
> http://subversion.ti​gris.org/servlets/Pr​ojectDocumentList?fo​lderID=8682&expa​ndFolder=8682&fo​lderID=8682
>
> I still get 2 fs-test failures with VS6 -- haven't had time to dig
> into them yet.
>
> Also, I think we should probably check the return of CoInit and not
> call CoUninit if it fails (because CoInit/CoInitEx has already been
> called with a different apartment or something).
>
Good point! I've added check for return value of CoInitialize() and
also added logic to detect when COM already initialized for different
apartment.

I think that patch is acceptable for trunk, thus I've committed it in
r25640. Review more than welcome :)

On 7/3/07, Daniel Rall <dlr at collab dot net> wrote:
> Just a nitpick, but some of the formatting is pretty inconsistent with
> the rest of the code base (use of Hungarian notation, lack of
> whitespace between data type and value in type casts, etc.).
Thanks, I've checked my patch again and fixed what I found.

--
Ivan Zhakov

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author djh
Full name D.J. Heap
Date 2007-07-04 07:48:13 PDT
Message On 7/3/07, Daniel Rall <dlr at collab dot net> wrote:
[snip]
> > I don't have any strong feelings about the temporary memory
> > management, but I would tend to prefer a subpool, I think, unless it
> > turns out to be a performance issue as Stefan thinks it might.
>
> Is this question in relation to svn_subr__win32_xlat​e_to_stringbuf()?
>


Right.

DJ

Re: [PATCH] Remove APR ICONV dependency on Windows (was SVN Win32 Developers -- need some help)

Author Daniel Rall <dlr at collab dot net>
Full name Daniel Rall <dlr at collab dot net>
Date 2007-07-03 09:58:00 PDT
Message On Sun, 01 Jul 2007, D.J. Heap wrote:

> On 7/1/07, Ivan Zhakov <chemodax at gmail dot com> wrote:
...
> >Btw, what do you think about patch itself?
>
> As you and Stefan said, using the API rather than the registry will
> probably be more robust and I think the win32 specific stuff might be
> better off in its own file.

Just a nitpick, but some of the formatting is pretty inconsistent with
the rest of the code base (use of Hungarian notation, lack of
whitespace between data type and value in type casts, etc.).

> I don't have any strong feelings about the temporary memory
> management, but I would tend to prefer a subpool, I think, unless it
> turns out to be a performance issue as Stefan thinks it might.

Is this question in relation to svn_subr__win32_xlat​e_to_stringbuf()?
Attachments
Page: of 2 « Previous | Next »
Messages per page: