Large-Address awareness on 64 bit systems
Ryan Johnson
ryan.johnson@cs.utoronto.ca
Tue Jun 28 14:55:00 GMT 2011
On 28/06/2011 2:41 AM, Corinna Vinschen wrote:
> On Jun 27 21:52, Yaakov (Cygwin/X) wrote:
>> On Sun, 2011-06-19 at 10:09 +0200, Corinna Vinschen wrote:
>>> On Jun 19 02:24, Yaakov (Cygwin/X) wrote:
>>>> But I think I do. :-) I have rebased and reflagged my system
>>>> accordingly, and so far (running GNOME 3 desktop) so good. I'll keep
>>>> you posted.
>>> Great, thanks! As I just wrote in my reply to Ryan, I even rebased the
>>> Cygwin DLL(*) and it runs fine for me.
>> I still have been getting the occasional "fork: Resource temporarily
>> unavailable" error with make, but I haven't seen the "unable to remap
>> dll" error. I have also been getting SIGABRT from throwing exceptions
>> across C++ DLLs, with GDB pointing to RtlUpdateClonedSRWLock() in ntdll,
>> but I was seeing that sometimes before this as well. (This is with
>> 1.7.9; recent snapshots haven't been working for me but I haven't had
>> the time to track down why.)
> Oh, please try to track it down. I'm running the latest from CVS on
> W7 32 bit and 2008 R2 64 bit daily, and I don't have problems. If the
> new stuff to avoid collisions works as designed, the chance to see the
> fork problem should be much reduced.
>
> Having said that, even without rebasing to large addresses I had a
> strange problem a few days ago. For some reason perl was suddenly
> broken. Trying to start perl generated a stackdump from within the
> constructor loop in per_module::run_ctors in dll_init.cc. Rebasing
> didn't help. Reinstalling helped. What could that be? I'm pretty
> sure it has something to do with rebasing.
Hmm. I noticed a similar problem a while back where a statically-linked
dll loading at the wrong address caused run_dtors to call addresses
which are la-la land in the child process (sometimes even the dtor list
itself was garbage). However, we don't run_ctors inforkee, and code in
dll_list::alloc verifies that {data,bss}x{start,end} are where they belong.
If you're able to reproduce the problem, can you figure out whether it's
a bad function address being called or a valid ctor crashing? My gut
feeling is that communication with some other dll is failing, perhaps
registering debug/unwind info with libgcc_s, or some perl module phoning
home to the mothership.
Ryan
More information about the Cygwin-developers
mailing list