* dcrt0.cc (dll_crt0_0): Remove call to wincap.init.

* init.cc (dll_entry): Rename is_wow64_proc to wow64_test_stack_marker.
	Call wincap.init here before doing anything else.  Use wincap.is_wow64
	to determine if we're running in a WOW64 emulator.
	* mmap.cc (MapViewNT): Don't use AT_ROUND_TO_PAGE in WOW64, it's
	apparently not supported.
	(mmap64): Don't create mappings beyond EOF, which would need to use
	AT_ROUND_TO_PAGE, on WOW64.
	* wincap.cc (wincap): Throw into the .cygwin_dll_common section.
	(wincapc::init): Determine if running in WOW64 and set wow_64 flag.
	* wincap.h (class wincapc): Add wow64 member.
	(wincapc::is_wow64): New method.
This commit is contained in:
Corinna Vinschen
2006-01-10 18:11:32 +00:00
parent dea958bc06
commit b773a592d3
6 changed files with 38 additions and 12 deletions

View File

@@ -70,6 +70,7 @@ class wincapc
{
OSVERSIONINFOEX version;
char osnam[40];
bool wow64;
void *caps;
public:
@@ -78,6 +79,7 @@ public:
void set_chunksize (DWORD nchunksize);
const char *osname () const { return osnam; }
const bool is_wow64 () const { return wow64; }
#define IMPLEMENT(cap) cap() const { return ((wincaps *) this->caps)->cap; }