Re: [Mingw-w64-public] Slow pseudo-relocations

2014-10-25 Thread Kai Tietz
2014-10-25 2:53 GMT+02:00 dw : > >> Ups, that was unintended to send an empty mail :) > > I did wonder. I assumed it was just a ping. > >> So, here is a patch. > > Your patch does not look right. You have added the new checks using "||"? Hmm, might be a typo. >> It would be great if somebody co

Re: [Mingw-w64-public] Slow pseudo-relocations

2014-10-25 Thread Kai Tietz
So things are clear, dw please apply your patch. It is indeed better to change flags - if possible - just once. Thanks, Kai 2014-10-25 6:01 GMT+02:00 Vadim Chugunov : > I've tried both patches (fixed conditions in Kai's) and both eliminate > extraneous calls to VirtualProtect. However Kai's pat

Re: [Mingw-w64-public] Slow pseudo-relocations

2014-10-24 Thread Vadim Chugunov
I've tried both patches (fixed conditions in Kai's) and both eliminate extraneous calls to VirtualProtect. However Kai's patch did not seem to affect startup performance at all. DW's patch, on the other hand, also gets rid of VirtualQuery', and that cuts down the startup time of my test example

Re: [Mingw-w64-public] Slow pseudo-relocations

2014-10-24 Thread dw
> Ups, that was unintended to send an empty mail :) I did wonder. I assumed it was just a ping. > So, here is a patch. Your patch does not look right. You have added the new checks using "||"? > It would be great if somebody could verify that the reported > issue is solved by it. Yes, this

Re: [Mingw-w64-public] Slow pseudo-relocations

2014-10-24 Thread Kai Tietz
Ups, that was unintended to send an empty mail :) So, here is a patch. It would be great if somebody could verify that the reported issue is solved by it. Kai diff --git a/mingw-w64-crt/crt/pseudo-reloc.c b/mingw-w64-crt/crt/pseudo-reloc.c index 4e7f31b..74ad6d1 100644 --- a/mingw-w64-crt/crt/p

Re: [Mingw-w64-public] Slow pseudo-relocations

2014-10-23 Thread Kai Tietz
-- ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Re: [Mingw-w64-public] Slow pseudo-relocations

2014-10-14 Thread dw
I have created a fix for this, but I'm having trouble testing it. My relocations always end up on pages marked PAGE_EXECUTE_READ. To see Vadim's problem, I need PAGE_EXECUTE_WRITECOPY. Vadim, can you provide any more context here? OS (W7? W8?), 32bit? 64bit? Using LoadLibrary? LoadLibrary

Re: [Mingw-w64-public] Slow pseudo-relocations

2014-08-20 Thread dw
Well, I've done what I can to diagnose this. It's up to the mingw devs from here. dw On 8/19/2014 1:04 PM, Vadim Chugunov wrote: No, sorry, I don't have the setup to build mingw. Not likely that I will have time to do it any time soon either. I meant this as a bug report. I hope the problem

Re: [Mingw-w64-public] Slow pseudo-relocations

2014-08-19 Thread Vadim Chugunov
No, sorry, I don't have the setup to build mingw. Not likely that I will have time to do it any time soon either. I meant this as a bug report. I hope the problem has been investigated sufficiently for mingw devs to act on it. Vadim On Mon, Aug 18, 2014 at 9:34 PM, dw wrote: > Did you ever

Re: [Mingw-w64-public] Slow pseudo-relocations

2014-08-15 Thread dw
So, it looks like what has happened is that newer OSs (ie >= Vista) set the page protect to PAGE_EXECUTE_WRITECOPY when doing a LoadLibrary. This is a (relatively) new flag and apparently Mingw still assumes the old values are always in use. There are 3 places in pseudo-reloc.c that do compar

Re: [Mingw-w64-public] Slow pseudo-relocations

2014-08-15 Thread Vadim Chugunov
Okay, I was wrong about __MINGW64_VERSION_MAJOR: it *was* defined. What apparently happens is that the VirtualQuery() call that follows mark_section_writable(), returns page protection status of 0x80 (PAGE_EXECUTE_WRITECOPY), which is unexpected by the relocator code, so it falls back to calling V

Re: [Mingw-w64-public] Slow pseudo-relocations

2014-08-15 Thread lh_mouse
-15 - 发件人:Vadim Chugunov 发送日期:2014-08-15 16:01 收件人:mingw-w64-public 抄送: 主题:[Mingw-w64-public] Slow pseudo-relocations Hi, I am trying to figure out the cause of a slow application startup, and the evidence I have so far, points to mingw's _pei386_runtime_relocator() routine as the culprit

[Mingw-w64-public] Slow pseudo-relocations

2014-08-15 Thread Vadim Chugunov
Hi, I am trying to figure out the cause of a slow application startup, and the evidence I have so far, points to mingw's _pei386_runtime_relocator() routine as the culprit. When I start my app under debugger, I see this function calling VirtualProtect() about a zillion times in a row. Looking at