OSDN Git Service

Correction for issues #1956 and #1958.
[mingw/mingw-org-wsl.git] / NEWS
1 mingwrt-4.0
2 w32api-4.0
3 -----
4 We have combined the source libraries for winsup/mingw and winsup/w32api into
5 our own repository named mingw-org-wsl.  This change allows us to maintain our
6 repositories locally and provide the MinGW users a better maintenance plan.
7
8 We have a new license for all files that fell into public domain originally. The
9 license is now MIT style and is embedded at the top of all files where we were
10 able to apply our own license to the file.  Files not containing this new
11 license are stored in the misc directory in the repository.  The move of the
12 repository files does not change the location of the distributed files.
13
14 All include files now include the _mingw.h file in order to make use of some new
15 macros as explained later.  The w32api.h file is now deprecated and should not
16 be used.  If you are using it you will receive a warning telling you to not use
17 the file.
18
19 All filters for OS version now check only _WIN32_WINNT and use a named macro as
20 defined in the new file include/sdkddkver.h and the filters were moved to the
21 end of the file if possible to reduce the noise caused by the filter.
22
23 A new macro named __AW() and defined in _mingw.h is used to suffix a symbol with
24 the ANSI versus UNICODE A or W declarations and definitions.  This reduced the
25 number of lines in an include file by significant amounts dependent on the
26 number of symbols which are specific to ANSI versus UNICODE.
27
28 You should now always define NTDDI_VERSION with the least OS version you wish
29 your application to support.  We determine a default based on the _WIN32_WINNT
30 value suffixed with 0000 (service pack 0).  If _WIN32_WINNT is not defined we
31 determine a default for it based on WINVER if it is defined otherwise
32 _WIN32_WINNT_WIN2K.  If NTDDI_VERSION is defined then _WIN32_WINNT is checked
33 for a match if defined and give an error if they do not match.  If NTDDI_VERSION
34 is defined but _WIN32_WINNT not defined _WIN32_WINNT takes on the
35 OSDIR(NTDDI_VERSION) value.  The windows.h header file will include sdkddkver.h
36 but you may need to specify the include in your source in order to use the
37 definitions in that file to set the NTDDI_VERSION.
38
39 CRTDLL is no longer supported.  We have removed the creation of the library and
40 the filters from the code.  This also removes startup object files that you
41 would have had to specify to the linker.  The GCC specs file is already not
42 supporting CRTDLL; I do not know when this was removed.
43
44 All occurances of __MSVCRT_VERSION__ filters were removed as unneeded.  This
45 results in the fact that if you do not specify an appropriate -lmsvcr?? library
46 where ?? represents the library version number and you use a symbol that is
47 only available in a versioned library DLL then you will either receive an error
48 during the link step or during runtime.  However, this also removes the
49 inconsistency between a Microsoft build and the MinGW build in that you do not
50 need to define __MSVCRT_VERSION__ correctly.
51
52 We now assume that GCC is the only compiler used with the MinGW.org WSL
53 (Windows System Libraries) and that the minimum supported version of GCC is
54 3.5.4.  This allowed for futher code refactoring reducing the number of lines
55 in a header file.  You will receive an error if __GNUC__ is not defined or
56 if the GCC version isn't 3.5.4.
57
58 The build system was revamped in order to take advantage of the combined MinGW
59 runtime and w32api source.  We will currently continue to release both the
60 mingwrt and the w32api library packages for the time being.  We will eventually
61 do away with the dual release packages and have a release under the
62 mingw-org-wsl name.
63
64 A new macro _HAVE_32BIT_TIME_T can be used if you are needing _USE_32BIT_TIME_T
65 and have a library that contains the symbols (e.g. _localtime32).  Otherwise the
66 when _USE_32BIT_TIME_T is defined but _HAVE_32BIT_TIME_T the time functions use
67 the 64bit time_t functions and type define as appropriate.  This allows you to
68 use 32bit time_t with msvcrt.dll but it would be slightly slower.  Note, I
69 have discovered that the SysWOW64/msvcrt.dll contains the 32bit time_t functions
70 but we do not deliver libmsvcrt.a with these imports as this is not available on
71 all systems.  However, you could possibly (needs testing) use the msvcrt.dll
72 directly to link against and define _HAVE_32BIT_TIME_T during the compile. 
73
74 We have an ABI incompatibility due to a reworking of the dirent.c which provides
75 opendir() and friends.  You will need to rebuild all libraries to that use
76 these functions.
77
78 Issues resolved:
79 gdtoa/gd_qnan.h: Make NAN constants positive valued.
80 Add MemoryBarrier to libmingwex.a.
81 Declare _wexec* and _wspawn* functions in include/process.h.
82 Declare _strtoi64, _strtoi64_l, _strtoui64, _strtoui64_l, _wcstrtoi64,
83   _wcstrtoi64_l, _wcstrtoui64, _wcstrtoui64_l in include/stdlib.h.
84 Declare _wcstrtoi64, _wcstrtoi64_l, _wcstrtoui64, _wcstrtoui64_l in
85   include/wchar.h.
86 Add __STRICT_ANSI__ guard for _getws, _putws, _wfdpen, _wfopen, _wfsopen,
87   _wtmpnam, _wtempnam, _wrename, _wremove, _wperror, _wpopen and PATH_MAX.
88 Declare _lock_file and _unlock_file in include/stdio.h.
89 When setting default for MAXPATHLEN make sure that PATH_MAX is defined before
90   using it in include/sys/param.h.
91 Declare threadlocalinfostruct, threadmbinfostruct, *pthreadlocinfo,
92   *pthreadmbcinfo, _locale_tstruct, and *_locale_t in include/_mingw.h.
93 Resolve an issue with tsearch.c.
94 Some preparation for _WIN64.
95 Performance improvements in libmingwex.a dirent.c code.
96 Correct _wfindfirst, _wfindnext, _wfindfirst32, _wfindnext32, _wfindfirsti64
97   _wfindnexti64, _wfindfirst32i64, _wfindfirst64i32, _wfindnext32i64,
98   _wfindnext64i32, _wfindnext64 to use intptr_t in include/io.h.
99 Add inline definitions for getc, putc, getchar, putchar, fopen64 and ftello64
100   in include/stdio.h.
101 Reapply fix for __dyn_tls_init.
102 Handling of errno in mingwex is more POSIX conformant.
103 Redefine the structure for dirent and _wdirent to include d_type and be
104   copesetic to Microsoft attributes.
105 Declare DIR and _WDIR as opaque data types.
106 __dirstream_t and __wdirstream_t are moved to mingwex dirent.c.
107 Add MemoryBarrier to include/winnt.h.
108 Correct declaration of VerQueryValue[AW] based on MSDN in include/winver.h.
109 Correct typos in include/setupapi.h.
110 Correct dwItemData definition for tagMENUITMEINFO[AW] in include/winuser.h.
111 Add declaration of WTSVirtualChannelClose, WTSVirtualChannelOpen,
112   WTSVirtualChannelOpenEx, WTSVirtualChannelPurgeInput,
113   WTSVirtualChannelPurgeOutput, WTSVirtualChannelQuery, WTSVirtualChannelRead,
114   and WTSVirtualChannelWrite in include/wtsapi32.h.
115 Add import symbols WTSVirtualChannelOpenEx@12 to wtsapi32.def.
116 Do not deliver amvideo.h and amaudio.h due to incomplete dependencies.
117 Add delivery of include/sdkddkver.h.
118 Correct OS version guard for GetModuleHandleEx[AW].
119 Add delivery of include/shobjidl.h.
120 Reorder IP_LOCAL_BINDING definition before IP_ADAPTER_BINDING_INFO.
121 Default OS version is now Windows 2000 service pack 0.
122 Define JOB_OBJECT_LIMIT_BREAKAWAY_OK, JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK in
123   include/winnt.h.
124 Define JOB_OBJECT_BREAKAWAY_OK as JOB_OBJECT_LIMIT_BREAKAWAY_OK and deprecate.
125 Define JOB_OBJECT_SILENT_BREAKAWAY as JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK and
126   deprecate.
127 Define PROCESS_QUERY_LIMITED_INFORMATION in include/winnt.h.
128 Define MAPVK_* in include/winuser.h.
129 Resolve typo for IMAGE_DLLCHARACTERISTICS_* in include/winnt.h.
130 Deprecate IMAGE_DLL_CHARACTERISTICS_*.
131 Define SIO_UDP_CONNRESET in include/winsock2.h.
132 Correct GCP_RESULTSW definition in include/wingdi.h.
133 Define STACK_SIZE_PARAM_IS_A_RESERVATION in include/winbase.h.
134 Removed PACKED macro from incldue/windef.h.
135 Replace PACKED in include/wincon.h with __attribute__((packed)).
136 Correct PREAD_PROCESS_MEMORY_ROUTINE definition in imagehlp.h.
137 Define DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS in winnt.h.
138 Some new functions and definitions in userenv.h.
139 O_RAW is now declared if ndef _NO_MOLDNAMES in fcntl.h.
140 CRYPT_KEY_PROV_INFO and CRYPT_KEY_PROV_PARAM are now defined in wincrypt.h.
141 KeQueryActiveProcessorCount is now declared in ddk/ntddk.h; but still is
142   broken.  See Issue [#1183].
143 Remove ndef _NO_OLDNAMES guard from off_t in sys/types.h so that it is always
144   defined.
145 Added definitions of _MCW_DN, _DN_SAVE and _DN_FLUSH to float.h.
146 The stat functions were modified to use the various _stat32, _stat64,
147   _stat64i32, etc functions.  Using _stat will resolve to the correct structure.
148   The resolution is a result of _USE_32BIT_TIME_T and _HAVE_32BIT_TIME_T user
149   land initiated definitions.  See sys/stat.h for the implementation.
150 The POINTTOPOINTS returned data type was changed from a POINTS structure to the
151   value of MAKELONG based on user experience with the macro.
152 The POINTSTOPOINT, MAKEWORD, MAKELONG, LOWORD, HIWORD, LOBYTE, HIBYTE macros
153   were corrected to use the correct data type casts.
154 Correct the tdelete, tfind and tsearch declarations in search.h
155 Correct the LaunchScreenSaver implementation in src/libscrnsave/scrnsave.c to
156   allow operation on systems older than Windows 2000.
157 Correct the typo defining LPENUMSTATPROPSTG as a pointer in objfwd.h.
158 Correct the constants in gd_qnan.h to produce the correct NaN results.
159 Added declaration and import of WSAPoll function.
160 Added declaration and import of CertEnumCRLsInStore function.
161 Corrected declarations and definitions for DllMain [#1670].
162 Added declaration of _vscwprintf.
163 Include reason.h in winreg.h so that the public definitions are defined by
164   including windows.h.
165 Define LONG_PTR specific to _WIN64 versus _WIN32.
166 Define _MAX_ENV if not __STRICT_ANSI__.
167 Define interfaced declarations for ICreateTypeInfo, ICreateTypeInfo2,
168   ICreateTypeLib and ICreateTypeLib2.
169 Provide implementations for IID_IGlobalInterface, FMTID_DocSummaryInformation,
170   FMTID_SummaryInformation, FMTID_UserDefinedProperties, and
171   CLSID_StdGlobalInterfaceTable.
172 Added declaration and import of RegisterTypeLibForUser and
173   UnRegisterTypeLibForUser.
174 Resolve the shell globbing issue as describe in thread
175   http://thread.gmane.org/gmane.comp.gnu.mingw.user/38302