OSDN Git Service

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