This is the mail archive of the
mailing list for the Cygwin project.
Re: extremely rarely fork errors: who occuppies the space?
Corinna Vinschen writes:
> On Feb 6 11:00, Heiko Elger wrote:
> > Corinna Vinschen writes:
> > > >
> > > > Antivirus software is deinstalled, Windows defender is deactivated.
> > > > Rebaseall and peflagsall were running.
> > >
> > > YoU don't need to run peflags. If you have set the ASLR flag, it could
> > > be the culprit. Try resetting it and, I think, reboot the machine. As
> > > far as I understand ASLR on Windows, it stores rebase addresses for DLLs
> > > in a database and always uses the same values until reboot.
> > >
> > Oops - I thought running rebaseall AND peflagsall is recommended on a
> > system?
> No, that was a misunderstanding at one point. I thought this has been
> removed from the relevant docs.
That's possible - I cannot find this documentation now - but I'm really sure
that I'd read this some months ago.
> > I just installed a full cygwin installation (without
> > another directory (please note: no snapshot installed) and did the
> > for testing how many dlls have ASLR bit set:
> > $find . -iname '*.dll' | xargs peflags -v 2>/dev/null |
grep '+dynamicbase' |
> > wc -l
> > [fresh installation]
> > 77 (is this OK?)
> > [old installation with peflagsall run]
> > 1450
> > 1450 DLLs !!! so perhaps this is real problem.
> > But what's about the other possible problem: tsawareness?
> > Should I set tsware for the DLLs - we always use remote desktop for
> > to other windows machines - so tsware should be set?
> > Is this correct?
> Yes and no. Only executables need this flag, it's ignored on DLLs.
> And, gcc sets this flag by default since 4.3.4, so I think there's no
> reason to use it anymore. Latest gcc 4.5.x also sets the large address
> awareness flag on executables. Advantage of that flag: You get an
> extra 2 Gigs of VM per process starting at 0x80000000 on 64 bit systems.
> Cygwin will put its application heap there, so you have more space in the
> lower 2 Gigs for DLL rebasing.
Oops - that was my personal error - I know tsawareness is set to EXE files
> > What's the best to reinstall our system, cause I really not know which dll
> > should have set dynamicbase or not?
> None of it, actually.
> > Use cygwin setup option REINSTALL or remove installation and INSTALL?
> Just use peflags to remove the flag instead of reinstalling. I'm not
> sure if some DLLs have this flag set by default in the distro, and in
> that case you're back to square one and have to run peflags anyway.
That's why I did counting dlls with dynamicbase flag already set - in a fresh
installation. So over 77 dlls have set this flag.
Or do you mean to remove the flag on really all DLLs?
So - why do not REINSTALL/INSTALL?
Are there any benefits - expect for the effort of time.
Just two question beyond the scope of this posting:
What's the best and easy way to duplicate a cygwin installation to 25 other
How to completely remove an cygwin installation includeing registry settings?
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple