This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] setup: allow building with i686-w64-mingw32


On 2012-06-01 18:45, JonY wrote:
Some of these errors might be related to ntdef.h use, try removing it.

This stops the duplication errors, but NT_SUCCESS is defined in ntdef.h, leading to some undeclared errors.


There appear to be some bugs in winternl.h. According to MSDN[1], winternl.h is wrong wrt the fourth argument type of NtQueryInformationFile (should be ULONG, not LONG). Also, the member names in struct FILE_RENAME_INFORMATION do not match MSDN[2].

With those changes, the results are:

CXX filemanip.o
filemanip.cc: In function ‘DWORD GetFileAttributesW(const WCHAR*)’:
filemanip.cc:296:10: error: ‘FILE_SHARE_VALID_FLAGS’ was not declared in this scope
filemanip.cc:297:24: error: ‘FILE_OPEN_FOR_BACKUP_INTENT’ was not declared in this scope
filemanip.cc:297:54: error: ‘FILE_OPEN_REPARSE_POINT’ was not declared in this scope
filemanip.cc:299:25: error: ‘NT_SUCCESS’ was not declared in this scope
filemanip.cc:309:26: error: ‘NT_SUCCESS’ was not declared in this scope
filemanip.cc: In function ‘WINBOOL SetFileAttributesW(const WCHAR*, DWORD)’:
filemanip.cc:328:10: error: ‘FILE_SHARE_VALID_FLAGS’ was not declared in this scope
filemanip.cc:329:24: error: ‘FILE_OPEN_FOR_BACKUP_INTENT’ was not declared in this scope
filemanip.cc:329:54: error: ‘FILE_OPEN_REPARSE_POINT’ was not declared in this scope
filemanip.cc:331:25: error: ‘NT_SUCCESS’ was not declared in this scope
filemanip.cc:341:26: error: ‘NT_SUCCESS’ was not declared in this scope
filemanip.cc:343:28: error: ‘NT_SUCCESS’ was not declared in this scope
filemanip.cc: In function ‘WINBOOL MoveFileW(const WCHAR*, const WCHAR*)’:
filemanip.cc:360:22: error: ‘FILE_SHARE_VALID_FLAGS’ was not declared in this scope
filemanip.cc:361:10: error: ‘FILE_OPEN_FOR_BACKUP_INTENT’ was not declared in this scope
filemanip.cc:361:40: error: ‘FILE_OPEN_REPARSE_POINT’ was not declared in this scope
filemanip.cc:363:25: error: ‘NT_SUCCESS’ was not declared in this scope
filemanip.cc:379:26: error: ‘NT_SUCCESS’ was not declared in this scope
filemanip.cc:381:28: error: ‘NT_SUCCESS’ was not declared in this scope
filemanip.cc: In function ‘BOOL unlink(const WCHAR*, ULONG)’:
filemanip.cc:398:22: error: ‘FILE_SHARE_VALID_FLAGS’ was not declared in this scope
filemanip.cc:399:10: error: ‘FILE_OPEN_FOR_BACKUP_INTENT’ was not declared in this scope
filemanip.cc:400:12: error: ‘FILE_OPEN_REPARSE_POINT’ was not declared in this scope
filemanip.cc:403:25: error: ‘NT_SUCCESS’ was not declared in this scope
filemanip.cc:410:26: error: ‘NT_SUCCESS’ was not declared in this scope
filemanip.cc:412:28: error: ‘NT_SUCCESS’ was not declared in this scope
filemanip.cc: In function ‘WINBOOL DeleteFileW(const WCHAR*)’:
filemanip.cc:418:25: error: ‘FILE_NON_DIRECTORY_FILE’ was not declared in this scope
filemanip.cc: In function ‘WINBOOL RemoveDirectoryW(const WCHAR*)’:
filemanip.cc:424:25: error: ‘FILE_DIRECTORY_FILE’ was not declared in this scope
filemanip.cc: In function ‘FILE* nt_wfopen(const wchar_t*, const char*, mode_t)’:
filemanip.cc:446:14: error: ‘FILE_OPEN’ was not declared in this scope
filemanip.cc:450:14: error: ‘FILE_OVERWRITE_IF’ was not declared in this scope
filemanip.cc:454:14: error: ‘FILE_OPEN_IF’ was not declared in this scope
filemanip.cc:492:3: error: ‘FILE_OPEN’ was not declared in this scope
filemanip.cc:498:28: error: ‘FILE_SHARE_VALID_FLAGS’ was not declared in this scope
filemanip.cc:499:5: error: ‘FILE_OPEN_FOR_BACKUP_INTENT’ was not declared in this scope
filemanip.cc:500:7: error: ‘FILE_OPEN_REPARSE_POINT’ was not declared in this scope
filemanip.cc:501:7: error: ‘FILE_SYNCHRONOUS_IO_NONALERT’ was not declared in this scope
filemanip.cc:503:26: error: ‘NT_SUCCESS’ was not declared in this scope
cc1plus: warnings being treated as errors
filemanip.cc: In function ‘WINBOOL RemoveDirectoryW(const WCHAR*)’:
filemanip.cc:425:1: error: control reaches end of non-void function
filemanip.cc: In function ‘WINBOOL DeleteFileW(const WCHAR*)’:
filemanip.cc:419:1: error: control reaches end of non-void function
filemanip.cc: In function ‘WINBOOL MoveFileW(const WCHAR*, const WCHAR*)’:
filemanip.cc:382:1: error: control reaches end of non-void function
filemanip.cc: In function ‘WINBOOL SetFileAttributesW(const WCHAR*, DWORD)’:
filemanip.cc:344:1: error: control reaches end of non-void function
filemanip.cc: At global scope:
filemanip.cc:385:1: error: ‘BOOL unlink(const WCHAR*, ULONG)’ defined but not used
Makefile:830: recipe for target `filemanip.o' failed
make[2]: *** [filemanip.o] Error 1
CXX io_stream_file.o
CXX main.o
main.cc: In function ‘void main_display()’:
main.cc:166:22: error: invalid initialization of reference of type ‘const IID&’ from expression of type ‘const GUID*’
/usr/i686-w64-mingw32/sys-root/mingw/include/objbase.h:261:11: error: in passing argument 1 of ‘HRESULT CoCreateInstance(const IID&, IUnknown*, DWORD, const IID&, void**)’
main.cc: In function ‘int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)’:
main.cc:250:15: error: ‘_argv’ was not declared in this scope
Makefile:830: recipe for target `main.o' failed
make[2]: *** [main.o] Error 1
CXX mkdir.o
mkdir.cc: In function ‘int mkdir_p(int, const char*, mode_t)’:
mkdir.cc:75:6: error: ‘FILE_SHARE_VALID_FLAGS’ was not declared in this scope
mkdir.cc:75:30: error: ‘FILE_CREATE’ was not declared in this scope
mkdir.cc:76:6: error: ‘FILE_DIRECTORY_FILE’ was not declared in this scope
mkdir.cc:77:8: error: ‘FILE_SYNCHRONOUS_IO_NONALERT’ was not declared in this scope
mkdir.cc:78:8: error: ‘FILE_OPEN_FOR_BACKUP_INTENT’ was not declared in this scope
mkdir.cc:79:26: error: ‘NT_SUCCESS’ was not declared in this scope
Makefile:830: recipe for target `mkdir.o' failed
make[2]: *** [mkdir.o] Error 1
CXX mklink2.o
mklink2.cc: In function ‘void make_link_2(const char*, const char*, const char*, const char*)’:
mklink2.cc:32:71: error: invalid initialization of reference of type ‘const IID&’ from expression of type ‘const IID*’
mklink2.cc: At global scope:
mklink2.cc:115:3: error: ‘FILE_LINK_INFORMATION’ does not name a type
mklink2.cc: In function ‘int mkcyghardlink(const char*, const char*)’:
mklink2.cc:144:55: error: ‘FILE_SHARE_VALID_FLAGS’ was not declared in this scope
mklink2.cc:145:10: error: ‘FILE_OPEN_FOR_BACKUP_INTENT’ was not declared in this scope
mklink2.cc:145:40: error: ‘FILE_OPEN_REPARSE_POINT’ was not declared in this scope
mklink2.cc:146:26: error: ‘NT_SUCCESS’ was not declared in this scope
mklink2.cc:150:24: error: ‘FILE_LINK_INFORMATION’ was not declared in this scope
mklink2.cc:151:8: error: ‘struct<anonymous>’ has no member named ‘fli’
mklink2.cc:152:8: error: ‘struct<anonymous>’ has no member named ‘fli’
mklink2.cc:153:8: error: ‘struct<anonymous>’ has no member named ‘fli’
mklink2.cc:154:16: error: ‘struct<anonymous>’ has no member named ‘fli’
mklink2.cc:155:49: error: ‘struct<anonymous>’ has no member named ‘fli’
mklink2.cc:157:28: error: ‘NT_SUCCESS’ was not declared in this scope
cc1plus: warnings being treated as errors
mklink2.cc:158:1: error: control reaches end of non-void function
Makefile:830: recipe for target `mklink2.o' failed
make[2]: *** [mklink2.o] Error 1


Some of these declarations are from wdm.h. So:

#include<winternl.h>
#include<wdm.h>

Nope, that leads to tons of conflicting declaration errors. It looks like these FILE_* declarations need to be copied into winternl.h.


Btw, what's with the __STRING_DEFINED and __UNICODE_STRING_DEFINED defines?

ntdef.h and winternl.h define conflicting types otherwise.



Yaakov


[1] http://msdn.microsoft.com/en-us/library/windows/hardware/ff567052(v=vs.85).aspx
[2] http://msdn.microsoft.com/en-us/library/windows/hardware/ff540344(v=vs.85).aspx



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]