Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

880 lines
33 KiB

  1. ***************************************************************************
  2. ***************************************************************************
  3. *** ***
  4. *** This file contains the change history for the MSVC++ v7.1 C/C++ ***
  5. *** Run-Time Libraries (that is, modifications since since 7.0). ***
  6. *** The file should always be edited at the top so that the most ***
  7. *** recent changes are at the beginning of the file (immediately ***
  8. *** after this comment) and the oldest changes are at the end. ***
  9. *** ***
  10. ***************************************************************************
  11. ***************************************************************************
  12. -----------------------------------------------------------------
  13. Tue 07-May-02 (Gautamb)
  14. crtw32\string\wcscat.c wcscmp.c wcslen.c wcsset.c
  15. Added #pragma function for wcscat, wcscmp, wcscpy, wcslen, wcsset
  16. which are intrinsic on IA64.
  17. -----------------------------------------------------------------
  18. Mon 06-May-02 (Gautamb)
  19. crtw32\time\strftime.c
  20. Fix for VS7#513874. earlier strftime() truncated am/pm string to 2 char,
  21. which was wrong e.g. in Mexican/Spanish locale.
  22. -----------------------------------------------------------------
  23. Mon 06-May-02 (Gautamb)
  24. crtw32\h\ctype.h
  25. crtw32\misc\ctype.c, nlsdata2.c
  26. Fix for VS7#339660, by adding extra array of __newctype with 384
  27. elements so that bbt can't break it up for static build. For DLL
  28. build, things remain as they were, we will need to add KeepTogether
  29. and KeepAlive for _ctype and __tmpctype.
  30. -----------------------------------------------------------------
  31. Fri 03-May-02 (Gautamb)
  32. crtw32\misc\setenv.c
  33. VS7#340665, Putting off prefast warnings.
  34. -----------------------------------------------------------------
  35. Thu 02-May-02 (Gautamb)
  36. crtw32\rtc\init.cpp
  37. VS7#339926, Wrapped all the locks, unlocks in try finally.
  38. -----------------------------------------------------------------
  39. Thu 02-May-02 (Gautamb)
  40. crtw32/eh/typinfo.cpp typname.cpp
  41. crtw32/h/mtdll.h
  42. crtw32/iostream/mtlock.c
  43. crtw32/lowio/cgets.c cgetws.c dup.c getch.c getwch.c osfinfo.c putch.c
  44. crtw32/misc/dbgdel.cpp winsig.c
  45. crtw32/startup/crt0dat.c mlock.c
  46. crtw32/stdcpp/_tolower.c _toupper.c xmbtowc.c xstrcoll.c xstrxfrm.c xwcscoll.c xwcsxfrm.c xwctomb.c
  47. crtw32/time/tzset.c
  48. VS7#339926, Wrapped all the locks, unlocks in try finally fot MT version.
  49. -----------------------------------------------------------------
  50. Wed 01-May-02 (Gautamb)
  51. crtw32\misc\initctype.c ctype.c setlocal.c
  52. crtw32\string\ i386\_ctype.asm ia64\_ctype.s
  53. crtw32\h\ctype.h, setlocal.h
  54. srcrel\pd-b
  55. makefile.inc
  56. doc\copysource.bat
  57. VS7#339660. Modified the way isupper or any isxx macro would look to _ctype
  58. array. Previously there was no way to distinguish between EOF and 0xff. Now
  59. we have moved _ctype to asm files so that _ctype points in middle of array
  60. with first 127 elements ranging from 0x80 to 0xfe, element at _ctype (EOF) then
  61. 256 elements.
  62. -----------------------------------------------------------------
  63. Wed 01-May-02 (PhilipLu)
  64. makefile
  65. Add loadcfg.obj to the chelper.lib compiler helpers lib.
  66. -----------------------------------------------------------------
  67. Tue 30-Apr-02 (PhilipLu)
  68. crtw32\convert\xtow.c
  69. VS7#525627 Calling _itow with a radix of 2 will overrun an internal
  70. buffer used to convert ANSI to Unicode.
  71. crtw32\stdio\fdopen.c
  72. VS7#526205 Passing an illegal mode string to _fdopen would hit an AV
  73. that left a file critsec owned, leading to deadlocks.
  74. crtw32\misc\dbgheap.c
  75. VS7#530559 There's a potential deadlock between _HEAP_LOCK and
  76. _SETLOCALE_LOCK when _CrtMemDumpAllObjectsSince calls isprint, if the
  77. locale is being changed by another thread.
  78. crtw32\heap\resetstk.c
  79. VS7#530044 _resetstkoflw will put the guard page back too close to the
  80. end of the stack allocation block, so the next stack overflow may not
  81. have any stack available for exception handling of the overflow. The
  82. guard page should be one page higher than currently.
  83. crtw32\misc\i386\eh3valid.c
  84. VS7#522476 The new SafeSEH _except_handler3 validation code calls
  85. VirtualQuery, which takes a kernel trip and is thus much slower than the
  86. old version. The URT had an EH-heavy test degrade by up to 400%.
  87. Recover the perf by adding an LRU of recently-validated pages holding
  88. scopetables, avoiding the VirtualQuery call.
  89. libw32\msvcprt.src, sysprt.src, sysptr64.src
  90. VS7#514769 The compiler is going to stop automatically issuing the
  91. /export directives to supply the old name decorations for exported
  92. template functions, so manually add them to the .def file for the
  93. C++ Standard Library.
  94. -----------------------------------------------------------------
  95. Thu 05-Apr-02 (Gautamb)
  96. crtw32\misc\setlocal.c
  97. VS7#342716. Fixed buffer overrun bug in __lc_strloc function.
  98. crtw32\startup\tidtable.c
  99. crtw32\h\mtdll.h
  100. VS7#508599. All the calls to Tls and Fls go through same function
  101. pointers, this way we can have consistiency which avoids the kind of
  102. problems that appverifier was running into.
  103. -----------------------------------------------------------------
  104. Thu 04-Apr-02 (PhilipLu)
  105. crtw32\iostream\ostrptr.cpp
  106. VSW#2505 Old iostream ostream::operator<<(const void *) has a buffer
  107. overrun on 64-bit platforms.
  108. libw32\msvcrt.src, syscrt.src, syscrt64.src
  109. VSW#13883 Names defined in crtw32\misc\ia64\miscs.s need to be added
  110. to the msvcr*.dll .def files so they are exported.
  111. crtw32\stdhpp64\new
  112. libw32\inc64\new
  113. VSW#17046 The old VC6 version of <new> needs to pick up a fix from
  114. the VC7 version, putting everything related to std::nothrow_t under
  115. a "#ifndef __NOTHROW_T_DEFINED".
  116. -----------------------------------------------------------------
  117. Mon 01-Apr-02 (PhilipLu)
  118. doc\copysrc.bat
  119. Need to copy new files loadcfg.c and secchk.c for user rebuild of CRT.
  120. -----------------------------------------------------------------
  121. Wed 27-Mar-02 (PhilipLu)
  122. crtw32\stdhpp64\xlocnum
  123. libw32\inc64\xlocnum
  124. VS98#68551 Fix buffer overrun in fixed-format floating point output
  125. in the old 6.0 Std C++ Library sources.
  126. -----------------------------------------------------------------
  127. Tue 26-Mar-02 (PhilipLu)
  128. crtw32\string\lsources, sources.nt,
  129. crtw32\string\ia64\memcpy.s, memcpyi.s [NEW], memset.s, memseti.s [NEW],
  130. srcrel\objects.mkf, pd-b,
  131. makefile, makefile.inc,
  132. Modify previous checkin of McKinley versions of memcpy & memset.
  133. Rename the Itanium versions to _mem{cpy,set}_ita, with a leading
  134. underscore for standards conformance. Split the Itanium versions out
  135. into their own objects, so we don't drag them into an image all the
  136. time. Intentionally do not export these Itanium versions from the
  137. CRT DLLs, but just leave them as static link components of the implibs,
  138. so we can drop support for them in the future.
  139. -----------------------------------------------------------------
  140. Wed 20-Mar-02 (PhilipLu)
  141. crtw32\stdhpp\algorithm, iterator, xutility, yvals.h
  142. crtw32\tools\win32\relinc.if
  143. libw32\include\algorithm, iterator, xutility, yvals.h
  144. (integrated from vs7evestage 112160, 112380, 113190)
  145. Add part of the partial specialization changes from the latest
  146. Dinkumware drop. Don't have time for a full integration right now,
  147. but we need to get the changes dependent on iterator_trait partial
  148. specializations in to unblock work on the front-end and at alpha test
  149. sites.
  150. -----------------------------------------------------------------
  151. Wed 20-Mar-02 (PhilipLu)
  152. All integrated from Everett:
  153. crtw32\eh\i386\ehprolg2.c, trnsctrl.cpp
  154. crtw32\h\exsup.inc
  155. crtw32\misc\lsources
  156. crtw32\misc\i386\eh3valid.c [NEW], exsup3.asm
  157. crtw32\misc\dll\sources
  158. crtw32\misc\dlllib\sources
  159. crtw32\misc\mt\sources
  160. crtw32\misc\nt\sources
  161. crtw32\misc\psx\sources
  162. crtw32\misc\st\sources
  163. srcrel\objects.mkf, pd-b
  164. makefile, makefile.inc
  165. Safe exceptions work part 3. Protect all CRT exception handlers
  166. against hacker attacks. Add several tests to validate the registration
  167. node for _except_handler3. Prevent _except_handler3 from leaking
  168. useful data in registers to exploit code. Add the random security
  169. cookie into the internal handlers in trnsctrl.cpp to prevent spoofing.
  170. crtw32\eh\special.mak
  171. crtw32\misc\special.mak [NEW]
  172. libw32\tools\i386\aliasobj.exe
  173. libw32\tools\ia64\aliasobj.exe
  174. srcrel\pd-b
  175. makefile.sub
  176. Safe exceptions work part 2. Using one-off build rules in special.mak,
  177. add .sxdata for the 2 internal exception handlers in trnsctrl.cpp and
  178. the 1 handler in exsup.asm, using the new 'sxgen' obj munging tool
  179. (this is temporary until we get a new assembler directive to do this).
  180. Globally add the new assembler switch /safeseh to put the @feat.00
  181. symbol in all asm-built objs. Check in new versions of aliasobj.exe
  182. which create the aliases with @feat.00 in them so they won't get in the
  183. way of creating safe images.
  184. crtw32\h\internal.h
  185. crtw32\misc\lsources, secchk.c [NEW], seccinit.c, seccook.c
  186. crtw32\misc\i386\loadcfg.c [NEW]
  187. crtw32\misc\dll\sources
  188. crtw32\misc\dlllib\sources
  189. crtw32\misc\mt\sources
  190. crtw32\misc\nt\sources
  191. crtw32\misc\psx\sources
  192. crtw32\misc\st\sources
  193. srcrel\pd-b
  194. makefile, makefile.inc
  195. Safe exceptions work part 1. Add the default load config struct to
  196. be pulled in by the linker when .sxdata is present. Split seccook.c
  197. in two, putting most of the code in secchk.c, and leaving just the
  198. definition of __security_cookie in seccook.c, so a build without /GS
  199. but with .sxdata won't drag in all the /GS code due to the reference
  200. to __security_cookie in the load config. Finally, don't reinitialize
  201. __security_cookie if it has already been initialized (generally, by
  202. the OS loader).
  203. -----------------------------------------------------------------
  204. Wed 20-Mar-02 (PhilipLu)
  205. crtw32\stdcpp\locale.cpp, locale0.cpp, wlocale.cpp
  206. crtw32\stdhpp\fstream
  207. libw32\include\fstream
  208. (integrated from 03-Mar-02 checkin @110182 in 7.01 tree)
  209. VS7#319508 Unnecessary dependencies between parts of the C++ Std Lib
  210. almost tripled the size of a trivial Hello World app using I/O Streams
  211. in VC7.0 (64K to 168K). Remove those dependencies by getting rid of
  212. an unneeded element std::locale std::basic_filebuf::_Loc, replacing by
  213. a same sized dummy to keep object compatibility with 7.0, and moving
  214. some definitions of various std::locale::id facet IDs to a central
  215. location.
  216. -----------------------------------------------------------------
  217. Wed 13-Mar-02 (v-vadimp)
  218. crtw32\misc\ia64\jmpuwind.s
  219. crtw32\string\ia64\strcat.s, strcmp.s, strcpy.s, strlen.s
  220. added missing unwind descriptors
  221. crtw32\string\ia64\memcpy.s, memset.s
  222. added McKinley versions; Itanium versions renamed to *_ita
  223. -----------------------------------------------------------------
  224. Wed 13-Mar-02 (PhilipLu)
  225. crtw32\dllstuff\crtlib.c
  226. VS7#338020 Change TlsSetValue to FLS_SETVALUE. Missed one spot when
  227. the per-fiber data change was made.
  228. -----------------------------------------------------------------
  229. Mon 04-Mar-02 (PhilipLu)
  230. crtw32\h\malloc.h, stdlib.h
  231. libw32\include\malloc.h, stdlib.h
  232. libw32\inc64\malloc.h, stdlib.h
  233. srcrel\msvc40.if
  234. Add _CRTNOALIAS and _CRTRESTRICT declspecs to C library heap APIs.
  235. These are only in the user headers, and turned off in the CRT build,
  236. since there's no guarantee they are true internal to the CRT, since
  237. e.g. noalias means in effect no side-effects, but the CRT can certainly
  238. see side-effects in its internal heap implementations. Those side-
  239. effects just aren't visible to users.
  240. -----------------------------------------------------------------
  241. Thu 14-Feb-02 (PhilipLu)
  242. crtw32\stdhpp\deque, list, string, utility, vector, xhash, xstring, xtree
  243. libw32\include\deque, list, string, utility, vector, xhash, xstring, xtree
  244. VS7#338170 New compiler conformance work means we need to use a
  245. conformant version of std::swap specializations for various collection
  246. classes, instead of the "friend void swap" class member declaration
  247. that was used before as a hack around missing partial ordering.
  248. -----------------------------------------------------------------
  249. Wed 30-Jan-02 (gautamb)
  250. crtw32\h\setloc.h, mtdll.h
  251. crtw32\misc\nlsdata2.c, setloc.c, getqloc.c
  252. VSWhidbey#13307. Fixed the problem due to static variables in getqloc.
  253. Made all static variables by setlocale to per thread locale this is done
  254. to minimize the code under setlocale lock.
  255. -----------------------------------------------------------------
  256. Wed 23-Jan-02 (PhilipLu)
  257. makefile
  258. Add -debugtype:pdata for 64-bit SysCRT targets
  259. -----------------------------------------------------------------
  260. Tue 22-Jan-02 (gautamb)
  261. crtw32\h\setloc.h
  262. crtw32\misc\nlsdata2.c, setloc.c
  263. Changed LCID *__lc_handle to LCID __lc_handle[]. This change was made
  264. for backward compatiblity.
  265. -----------------------------------------------------------------
  266. Tue 18-Dec-01 (gautamb)
  267. crtw32\h\ctype.h, locale.h, setlocal.h
  268. crtw32\misc\nlsdata2.c, setlocal.c, wsetloca.c
  269. crtw32\startup\tidtable.c
  270. crtw32\stdhpp\wctype.h
  271. crtw32\stdhpp64\wctype.h
  272. libw32\inc64\locale.h
  273. libw32\include\locale.h, wctype.h
  274. Added _configthreadlocale with all the flags needed to configure the thread
  275. locale.
  276. -----------------------------------------------------------------
  277. Mon 17-Dec-01 (Gautamb)
  278. makefile
  279. Added chelper.lib as crt build library. This library will be used for
  280. compiler helper functions.
  281. -----------------------------------------------------------------
  282. Tue 30-Nov-01 (PhilipLu)
  283. makefile, makefile.inc
  284. crtw32\helper\ia64\divhelp.c [NEW]
  285. crtw32\helper\lsources, sources.nt
  286. doc\copysrc.bat
  287. srcrel\pd-b
  288. VSWhidbey#2362 Add compiler helpers for -Os div/rem operations.
  289. -----------------------------------------------------------------
  290. Wed 28-Nov-01 (gautamb)
  291. fpw32\tran\amd64\fpsr.asm
  292. VS7.1#2727. Added prologue to the _get_fpsr. All other functions were leaf
  293. functions that did not require prologue.
  294. -----------------------------------------------------------------
  295. Mon 26-Nov-01 (gautamb)
  296. libw32\msvcrt.src, syscrt.src, syscrt64.src
  297. VS7.1#4730,Added rotl64, rotr64, byteswap routines and abs64 to crt exports.
  298. -----------------------------------------------------------------
  299. Wed 21-Nov-01 (gautamb)
  300. crtw32\convert\_ctype.c, _mbslen.c, atox.c, gcvt.c, isctype.c, iswctype.c,
  301. mblen.c, mbstowcs.c, mbtowc.c, strtol.c, strtoq.c, tolower.c, toupper.c,
  302. towlower.c, towupper.c, wcstol.c, wcstombs.c, wcstoq.c, wctomb.c
  303. crtw32\dllstuff\crtlib.c
  304. crtw32\h\ctype.h, mtdll.h, nlsint.h, setlocal.h, stdlib.h, wchar.h
  305. crtw32\mbstring\mbctype.c
  306. crtw32\misc\a_cmp.c, a_loc.c, a_map.c, a_str.c, ctype.c, initcoll.c, initctyp.c,
  307. initmon.c, initnum.c, inittime.c, lconv.c, nlsdata2.c, setlocal.c, w_cmp.c,
  308. w_loc.c, w_map.c, w_str.c
  309. crtw32\startup\crt0dat.c, tidtable.c
  310. crtw32\stdcpp64\_tolower.c, _toupper.c, xmbtowc.c, xstrcoll.c, xstrxfrm.c,
  311. xwctomb.c
  312. crtw32\stdhpp\wctype.h
  313. crtw32\stdio\input.c, output.c
  314. crtw32\string\memicmp.c, strcoll.c, stricmp.c, stricoll.c, strlwr.c, strncoll.c,
  315. strnicmp.c, strnicol.c, strupr.c, strxfrm.c, wcscoll.c, wcsicmp.c,
  316. wcsicoll.c, wcslwr.c, wcsncoll.c, wcsnicmp.c, wcsnicol.c, wcsupr.c, wcsxfrm.c
  317. crtw32\time\strftime.c, tzset.c, wcsftime.c
  318. fpw32\conv\cvt.c, strgtold.c
  319. libw32\inc64\ctype.h, stdlib.h, wchar.h, wctype.h
  320. libw32\include\ctype.h, stdlib.h, wchar.h, wctype.h, syscrt64.src
  321. srcrel\msvc40.if
  322. Added ground work for implementing true per thread locale. In this ground
  323. work, all the dependencies of setlocale on global variables is elemenated,
  324. instead they modify locale struct passed to them. This way any change will be
  325. limited to this particular locale struct.
  326. -----------------------------------------------------------------
  327. Tue 20-Nov-01 (gautamb)
  328. crtw32\h\float.h
  329. Added _CW_DEFAULT for AMD64.
  330. crtw32\convert\fcvt.c, gcvt.c
  331. crtw32\h\fltintrn.h
  332. crtw32\stdio\output.c
  333. fpw32\conv\cfin.c, cfout.c cvt.c fltinf.c intrncvt.c
  334. fpw32\include\cv.h
  335. srcrel\msvc40.if
  336. Replaced DOUBLE with _CRT_DOUBLE and FLOAT with _CRT_FLOAT. The reason behind
  337. this is that windows.h used DOUBLE and FLOAT.
  338. -----------------------------------------------------------------
  339. Thu 08-Nov-01 (gautamb)
  340. crtw32\h\sect_attribs.h
  341. crtw32\misc\setlocal.c
  342. crtw32\startup\crt0.c, crt0dat.c, stdenvp.c
  343. crtw32\stdio\_file.c
  344. Changes for minimizing CRT leaks in debug builds.
  345. -----------------------------------------------------------------
  346. Tue 06-Nov-01 (PhilipLu)
  347. crtw32\h\malloc.h
  348. crtw32\heap\heapinit.c
  349. libw32\include\malloc.h
  350. libw32\inc64\malloc.h
  351. libw32\msvcrt.src
  352. VS98#67228 Add new API _get_heap_handle, so IIS can enable the new
  353. Low Fragmentation Heap on the CRT heap.
  354. -----------------------------------------------------------------
  355. Fri 19-Oct-01 (PhilipLu)
  356. crtw32\misc\i386\sehprolg.asm
  357. VS7#313643 __SEH_prolog was setting FS:0, establishing a new link in
  358. the EH handler frame chain, before it finished initializing the new
  359. frame. If a stack overflow then happened in __SEH_prolog before the
  360. frame was fully initialized, the stack overflow exception was
  361. dispatched to __except_handler3 with bogus data, causing recursing
  362. AVs that exhausted the stack and the process was silently terminated.
  363. -----------------------------------------------------------------
  364. Tue 16-Oct-01 (gautamb)
  365. crtw32\dllstuff\crtlib.c
  366. crtw32\h\mtdll.h
  367. crtw32\startup\dllcrt0.c, thread.c, threadex.c, tidtable.c
  368. Enabled fiber aware CRT. Fixes fiber related bugs on OS with new fiber
  369. related APIs. Mostly the changes were related to per thread data
  370. allocations. If possible these changes will use per thread data on per
  371. fiber basis.
  372. -----------------------------------------------------------------
  373. Sun 23-Sep-01 (gautamb)
  374. fpw32\tran\ia64\acos.s, acosf.s, asin.s, asinf.s, atan.s, atan2.s, atan2f.s,
  375. atanf.s, ceilf.s, cosh.s, coshf.s, exp.s, expf.s, fabs.s, fabsf.s, floor.s,
  376. floorf.s, fmod.s, fmodf.s, isnan.s, isnanf.s, ldexp.s, ldexpf.s,
  377. libm_atan2_reg.s, libm_error.c, libm_reduce.s, log.s, logb.s, logbf.s,
  378. logf.s, modf.s, modff.s, pow.s, powf.s, sincosf.s, sinh.s, sinhf.s, sqrt.s,
  379. sqrtf.s, tan.s, tanf.s
  380. srcrel\pd-b
  381. [Added:]
  382. fpw32\tran\ia64\tanh.s, tanhf.s
  383. [Deleted:]
  384. fpw32\tran\ia64\tanhf.c
  385. Updating math library to intel version 5.6. Also adding tanh.s to fix
  386. VS7#273640. Modifying libm_error.c to fix VS7#132405.
  387. -----------------------------------------------------------------
  388. Fri 21-Sep-01 (GautamB)
  389. crtw32\eh\frame.cpp, ia64\ehstate.cpp trnsctrl.cpp
  390. crtw32\h\trnsctrl.h ehstate.h mtdll.h
  391. New C++ implementation for IA64.
  392. -----------------------------------------------------------------
  393. Fri 21-Sep-01 (GautamB)
  394. crtw32\eh\i386\trnsctrl.cpp
  395. VS7#305455. Temp fix for C++Eh to works with apps with fibers. This is
  396. more of a reverse compatiblith issue as this fix doesn't really fix the
  397. problem in C++Eh when fiber is switched between C++Eh (mostly when
  398. executing in catch block).
  399. -----------------------------------------------------------------
  400. Thu 20-Sep-01 (PhilipLu)
  401. crtw32\eh\frame.cpp
  402. langapi\include\ehdata.h
  403. Buildfix - the 18-Sep-01 checkin for exception specification support
  404. broke the compiler backend. We can't redefine the value of
  405. EH_MAGIC_NUMBER1 and add EH_MAGIC_NUMBER1_OLD. Instead, leave
  406. EH_MAGIC_NUMBER1 with the original value and add EH_MAGIC_NUMBER2.
  407. The new magic number should only be used in function info that is
  408. using the new ES data. The throw object should still be using the
  409. old magic number.
  410. crtw32\misc\ia64\longjmp.s
  411. VS7#304879 Port IA64 longjmp bugfix from NT CRT tree. The wrong value
  412. for RNAT can be loaded in some cases.
  413. crtw32\string\ia64\strlen.s
  414. VS7#304529 IA64 strlen.s is returning the wrong result for strings
  415. over 4G long.
  416. -----------------------------------------------------------------
  417. Tue 18-Sep-01 (GautamB)
  418. crtw32\string\ia64\memcpy.s
  419. Optimized version of memcpy.s from eugene, with no use of r23/r24.
  420. -----------------------------------------------------------------
  421. Tue 18-Sep-01 (GautamB)
  422. crtw32\h\mtdll.h
  423. crtw32\eh\frame.cpp, ia64\trnsctrl.cpp, i386\trnsctrl.cpp
  424. libw32\msvcrt.src, syscrt.src, syscrt64.src
  425. Added Support for ExceptionSpecification. Changes mainly made by Arturl.
  426. -----------------------------------------------------------------
  427. Fri 12-Sep-01 (GautamB)
  428. crtw32\string\ia64\memcpy.s
  429. Optimized version of memcpy.s from eugene.
  430. -----------------------------------------------------------------
  431. Wed 29-Aug-01 (PhilipLu)
  432. crtw32\stdhpp64\complex
  433. libw32\inc64\complex
  434. Buildfix for IA64 Sys CRTs build with 7.1 compiler. Fix bug VS7#302850
  435. in the old C++ headers as a workaround for a build breakage due to
  436. unneccesary code in dlldef.cpp I'd rather not remove right now.
  437. -----------------------------------------------------------------
  438. Tue 21-Aug-01 (PhilipLu)
  439. libw32\msvcirt.rc, msvcprt.rc, msvcrt.rc, syscrt.rc, sysirt.rc, sysprt.rc
  440. Update the version info to 7.10 for V.Next.
  441. -----------------------------------------------------------------
  442. Tue 14-Aug-01 (PhilipLu)
  443. crtw32\stdio\output.c
  444. VS7#298618 The local variable 'buffer' in _output() is not protected
  445. against buffer overruns/underruns on extreme precision values.
  446. Underruns can occur on integer conversions, which can trigger stack
  447. overflows (e.g. %.2000000d). Overruns can occur on FP conversions,
  448. which can overwrite the return address 0x30303030 and crash (e.g.
  449. %.2000f). Cap the precision at 512. For FP conversions, allocate
  450. the buffer dynamically if 'buffer' still isn't enough (a conversion
  451. of %.512f can actually require 815 chars).
  452. -----------------------------------------------------------------
  453. Thu 09-Aug-01 (PhilipLu)
  454. fpw32\tran\i386\log_pentium4.asm, log10_pentium4.asm
  455. VS7#298130 Work around unexpected BBT behavior. 16 bytes of data at
  456. label place_R was being removed because place_R is never referenced
  457. by name. But that data was being loaded as edx+place_L with EDX==16.
  458. Get rid of the place_R labels so BBT won't assume the data there is
  459. unused.
  460. crtw32\stdhpp64\locale
  461. libw32\inc64\locale
  462. Buildfix for IA64 SysCRT - disable new 7.1 warning C4675 about Koening
  463. lookup changing the overload resolution.
  464. -----------------------------------------------------------------
  465. Wed 01-Aug-01 (PhilipLu)
  466. crtw32\misc\setlocal.c, wsetloca.c
  467. VS7#283330 Prompted by QFE VS98#67185. _wsetlocale can do a double
  468. free and crash when called from multiple threads at the same time.
  469. Add a lock on _SETLOCALE_LOCK to prevent that. Also, note that the
  470. return string from _wsetlocale will currently be freed by a later call
  471. to _wsetlocale, which is another potential crash (much rarer). To
  472. avoid that, only allocate the return value buffer once, the first
  473. time through. The same problem exists for setlocale, but that's not
  474. being fixed here, as it's a much riskier fix and this customer isn't
  475. open to that (as long as he's just using _wsetlocale). See bug
  476. VS7#294369 for that issue, to be fixed in VC7.1.
  477. Also fix a related problem noticed in setlocale(...,NULL). That
  478. codepath wasn't acquiring _SETLOCALE_LOCK because it thought it would
  479. just retrieve info. That's not true - it'll also potentially allocate
  480. the global buffer for the return value, so failing to lock can lead
  481. to multiple threads in setlocale modifying global variable
  482. __lc_category[category].locale at the same time.
  483. crtw32\stdhpp\xdebug, xmemory
  484. libw32\include\xdebug, xmemory
  485. VS7#289498 Reported by a beta customer. We had a template method
  486. template<T> std::allocator::allocate(size_t, const T *)
  487. but the standard says we're just supposed to have non-template method
  488. std::allocator::allocate(size_t, const void *)
  489. That template version causes code that worked with VC6 to fail when
  490. calling myalloc.allocate(sz, 0), since the compiler couldn't deduce a
  491. pointer type from the 0. Make the same change for allocator child
  492. class _DebugHeapAllocator, too.
  493. Getting rid of the template member means the change for VS7#221135
  494. can be reverted, which I've done.
  495. crtw32\heap\newopnt.cpp
  496. VS7#293336 The nothrow_t placement scalar new should call the
  497. non-placement scalar new, not duplicate what the default non-placement
  498. scalar new implementation does. That way, users who write their own
  499. non-placement scalar new but don't replace the other 3 replaceable
  500. forms of operator new will not break code which uses nothrow new. This
  501. is important given all the work that was done for VS7#237394.
  502. makefile
  503. VS7#293060 User rebuild of the CRT is broken because winver.h has been
  504. moved in the default installation. It was previously found in
  505. \Program Files\Microsoft Visual Studio.NET\Vc7\include
  506. but is now found in
  507. \Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include
  508. Adjust the settings of VCTOOLS and VCTOOLSINC in the rebuild makefile
  509. accordingly.
  510. -----------------------------------------------------------------
  511. Fri 20-Jul-01 (GautamB)
  512. crtw32\string\ia64\memcpy.s, memmove.s
  513. Changing use of register r23, r24 to use r27, r28. This is done on request
  514. from David Gillies from BBT.
  515. -----------------------------------------------------------------
  516. Thu 19-Jul-01 (GautamB)
  517. crtw32\eh\frame.cpp
  518. VS7#276150 Modified com+ C++Eh implementation.
  519. -----------------------------------------------------------------
  520. Sun 15-Jul-01 (PhilipLu)
  521. clean.cmd, cleanbld.cmd, makefile, makefile.inc, makefile.sub
  522. crtw32\dirs
  523. crtw32\eh\frame.cpp, lsources, sources.nt, typname.cpp
  524. crtw32\eh\dll\sources
  525. crtw32\eh\mt\sources
  526. crtw32\eh\nt\sources
  527. crtw32\eh\st\sources
  528. crtw32\h\crtdbg.h, cruntime.h, ehstate.h, excpt.h, float.h, fltintrn.h, heap.h,
  529. internal.h, malloc.h, math.h, mbstring.h, memory.h, mtdll.h, setjmp.h,
  530. setjmpex.h, stdarg.h, stdio.h, stdlib.h, string.h, trnsctrl.h, varargs.h,
  531. wchar.h, winheap.h
  532. crtw32\helper\lsources, sources.nt
  533. crtw32\misc\assert.c, lsources
  534. crtw32\misc\dll\sources
  535. crtw32\misc\mt\sources
  536. crtw32\misc\nt\sources
  537. crtw32\misc\psx\sources
  538. crtw32\misc\st\sources
  539. crtw32\rtc\error.cpp, stack.cpp
  540. crtw32\startup\crt0dat.c, crt0init.c, tidtable.c, tlssup.c
  541. crtw32\startup\dll\sources
  542. crtw32\startup\dlllib\sources
  543. crtw32\startup\mt\sources
  544. crtw32\startup\nt\sources
  545. crtw32\startup\psx\sources
  546. crtw32\startup\st\sources
  547. crtw32\stdio\output.c
  548. crtw32\string\lsources, memcpy.c, memmove.c, memset.c, sources.nt, strset.c
  549. crtw32\tools\win32\relinc.if, relinc64.if
  550. fpw32\conv\tenpow.c
  551. fpw32\include\cv.h, trans.h
  552. fpw32\tran\fabs.c, fpexcept.c, lsources, sincosh.c, sources.nt, tanh.c
  553. libw32\inc64\crtdbg.h, excpt.h, float.h, malloc.h, math.h, mbstring.h,
  554. memory.h, setjmp.h, setjmpex.h, stdarg.h, stdio.h, stdlib.h, string.h,
  555. varargs.h, wchar.h
  556. libw32\include\crtdbg.h, excpt.h, float.h, malloc.h, math.h, mbstring.h,
  557. memory.h, setjmp.h, setjmpex.h, stdarg.h, stdio.h, stdlib.h, string.h,
  558. varargs.h, wchar.h
  559. libw32\msvcirt.src, msvcrt.src, syscrt.src, syscrt64.src, sysirt.src,
  560. sysirt64.src
  561. srcrel\clnsrcrel.bat, common.mkf, external.mkf, makefile, mkclnmkf.c,
  562. msvc40.if, objects.mkf, pd-b
  563. [DELETED:]
  564. crtw32\eh\alpha\bridge.h, bridge.s, ehunwind.c, ehunwind.h, trnsctrl.cpp,
  565. xcptmisc.h, xcptmisc.s
  566. crtw32\helper\alpha\divdat.s, divide2.s, extv.s, extvvol.s, extzv.s,
  567. extzvvol.s, fastdiv.s, insv.s, insvvol.s, memcmp_.s, ots_as.hs,
  568. ots_defs.hs, otsdiv.s, otsnote.txt, scmpeql.s, scmpeqlp.s, scmpleq.s,
  569. scmpleqp.s, scmplss.s, scmplssp.s, sfill.s, sfillx.s, sfwdcpy.s, sloc.s,
  570. smove.s, smovem.s, strans.s, strcmp_.s, strcpy_.s, strlen_.s, szero.s
  571. crtw32\misc\alpha\chandler.c, chkesp.c, ghandler.c, jmpuwind.s, longjmp.s,
  572. otsjmp.s, otsjmpex.s, otsuwind.s, setjmp.s, setjmpex.s
  573. crtw32\startup\alpha\chkstk.s
  574. crtw32\string\alpha\strcat.c, strcmps.s, strcpys.s, strlens.s
  575. doc\copycrt.bat
  576. fpw32\tran\alpha\acos.s, acosf.s, asin.s, asinacos.s, asinf.s, ata_tabs.s,
  577. ata_tabt.s, atan2f.s, atan2s.s, atanf.s, atans.s, cabs.s, cabsf.s,
  578. captcont.s, ceilf.s, ceils.s, chopt.s, copysgnf.s, cos_vo.s, cosf.s,
  579. cosf_vo.s, cosh.s, coshf.s, coss.s, cot.s, cotf.s, dpml_com.s, dpml_exc.c,
  580. expf.s, exph.c, exps.s, F_acos.s, F_acosf.s, F_asin.s, F_asinf.s, F_atan.s,
  581. F_atan2.s, F_atan2f.s, F_atanf.s, F_cos.s, F_cosf.s, F_exp.s, F_expf.s,
  582. F_hypot.s, F_hypotf.s, F_log.s, F_log10.s, F_log10f.s, F_logf.s, F_pow.s,
  583. F_powf.s, F_sin.s, f_sincof.s, F_sincos.s, F_sinf.s, F_sqrt.s, F_sqrtf.s,
  584. F_tan.s, F_tanf.s, fabsf.s, fabss.s, filter.c, finitef.s, floorf.s,
  585. floors.s, fmodf.s, fmods.s, fp_clasf.s, fpctrl.s, fpint.s, frexp.s,
  586. frexpf.s, frnd.s, getsetrg.c, huge.s, hypotf.s, hypoth.c, hypots.s, ieee.c,
  587. invtrigs.s, invtrigt.s, isnanf.s, j0f.s, j1f.s, jnf.s, l10_tabt.s, ldexp.s,
  588. log10f.s, log10s.s, log_tabt.s, logbf.s, logf.s, logs.s, modff.s, modfs.s,
  589. nextaftf.s, pow_tabt.s, powcerr.s, powf.s, pows.s, rsqrt.s, rsqrtf.s,
  590. sin_tabt.s, sin_vo.s, sincofvo.s, sincos.s, sincosf.s, sincosvo.s, sinf.s,
  591. sinf_vo.s, sinh.s, sinhcosf.s, sinhcosh.s, sinhf.s, sins.s, specexp.s,
  592. specexpf.s, sqr_tabt.s, sqrt.c, sqrtf.s, sqrts.s, tan_tabt.s, tanf.s,
  593. tanh.s, tanhf.s, tans.s, trig_rdf.s, trig_rdx.s, trig_tab.s, y0f.s, y1f.s,
  594. ynf.s
  595. fpw32\tran\axp64\acos.s, acosf.s, asin.s, asinacos.s, asinf.s, ata_tabs.s,
  596. ata_tabt.s, atan2f.s, atan2s.s, atanf.s, atans.s, cabs.s, cabsf.s,
  597. captcont.s, ceilf.s, ceils.s, chopt.s, copysgnf.s, cos_vo.s, cosf.s,
  598. cosf_vo.s, cosh.s, coshf.s, coss.s, cot.s, cotf.s, dpml_com.s, expf.s,
  599. exps.s, f_acos.s, f_acosf.s, f_asin.s, f_asinf.s, f_atan.s, f_atan2.s,
  600. f_atan2f.s, f_atanf.s, f_cos.s, f_cosf.s, f_exp.s, f_expf.s, f_hypot.s,
  601. f_hypotf.s, f_log.s, f_log10.s, f_log10f.s, f_logf.s, f_pow.s, f_powf.s,
  602. f_sin.s, f_sincof.s, f_sincos.s, f_sinf.s, f_sqrt.s, f_sqrtf.s, f_tan.s,
  603. f_tanf.s, fabsf.s, fabss.s, finitef.s, floorf.s, floors.s, fmodf.s,
  604. fmods.s, fp_clasf.s, fpctrl.s, fpint.s, frexp.s, frexpf.s, frnd.s, huge.s,
  605. hypotf.s, hypots.s, invtrigs.s, invtrigt.s, isnanf.s, j0f.s, j1f.s, jnf.s,
  606. l10_tabt.s, ldexp.s, log10f.s, log10s.s, log_tabt.s, logbf.s, logf.s,
  607. logs.s, modff.s, modfs.s, nextaftf.s, pow_tabt.s, powcerr.s, powf.s,
  608. pows.s, rsqrt.s, rsqrtf.s, sin_tabt.s, sin_vo.s, sincofvo.s, sincos.s,
  609. sincosf.s, sincosvo.s, sinf.s, sinf_vo.s, sinh.s, sinhcosf.s, sinhcosh.s,
  610. sinhf.s, sins.s, specexp.s, specexpf.s, sqr_tabt.s, sqrtf.s, sqrts.s,
  611. tan_tabt.s, tanf.s, tanh.s, tanhf.s, tans.s, trig_rdf.s, trig_rdx.s,
  612. trig_tab.s, y0f.s, y1f.s, ynf.s
  613. libw32\buildcrt.nt
  614. libw32\tools\alpha\aliasobj.exe, detab.exe, ifstrip.exe, pd.exe, striphdr.exe,
  615. tolwrupr.exe, trailing.exe, whackline.exe
  616. Massive cleanup to remove all references to Alpha, MIPS, or PPC.
  617. makefile
  618. srcrel\external.mkf, mkclnmkf.c, objects.mkf, pd-b
  619. Remove BBT/LEGO refs and targets (zst/zmt/zdll), since the release
  620. build is already fully BBT-ready (full debug info).
  621. -----------------------------------------------------------------
  622. Sun 15-Jul-01 (PhilipLu)
  623. log.txt -> log_v70.txt
  624. Renamed old LOG.TXT from V7.0 and started a new LOG.TXT (this file).
  625. -----------------------------------------------------------------
  626. ***************************************************************************
  627. ***************************************************************************
  628. *** ***
  629. *** This file contains the history for MSVC++ v7.1 (relative to v7.0) ***
  630. *** The file should always be edited at the top so that the most ***
  631. *** recent changes are at the beginning of the file and the oldest ***
  632. *** changes are at the end of the file. This comment marks the end. ***
  633. *** ***
  634. ***************************************************************************
  635. ***************************************************************************