* 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:
@@ -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; }
|
||||
|
||||
|
Reference in New Issue
Block a user