*************************************************************************** *************************************************************************** *** *** *** This file contains the change history for the MSVC++ v7.0 C/C++ *** *** Run-Time Libraries (that is, modifications since since 6.0). *** *** The file should always be edited at the top so that the most *** *** recent changes are at the beginning of the file (immediately *** *** after this comment) and the oldest changes are at the end. *** *** *** *************************************************************************** *************************************************************************** ----------------------------------------------------------------- Fri 21-Sep-01 (GautamB) crtw32\eh\i386\trnsctrl.cpp VS7#305455. Temp fix for C++Eh to works with apps with fibers. This is more of a reverse compatiblith issue as this fix doesn't really fix the problem in C++Eh when fiber is switched between C++Eh (mostly when executing in catch block). ----------------------------------------------------------------- Tue 10-Jul-01 (PhilipLu) crtw32\stdhpp\xstring libw32\msvcprt.src makefile Get rid of all _RETAIN_OLD_CRT_CODE uses, for final VC7 LKG CRT. ----------------------------------------------------------------- Tue 03-Jul-01 (GautamB) crtw32\eh\frame.cpp libw32\msvcrt.src syscrt.src syscrt64.src VS7#275954 Added a new function CxxCallUnwindVecDtor for COM+ eh stuff. ----------------------------------------------------------------- Fri 29-Jun-01 (PhilipLu) makefile.sub VS7#270726 CRT components which get distributed in binary form, not source, must be compiled /Z7 instead of /Zi so the CRT rebuild creates a usable PDB that won't produce LNK4099 warnings. makefile VS7#268410 Move msvc*.dll base address from 0x5d0?0000 to 0x7c0?0000. ----------------------------------------------------------------- Sun 17-Jun-01 (PhilipLu) crtw32\h\new.h crtw32\stdhpp\new libw32\inc64\new.h libw32\include\new, new.h Tweak Friday's checkin for VS7#237394 to better cooperate with the VS build. Add declarations of nothrow_t placement new/delete ops to , and move those declarations in both and under #ifndef __NOTHROW_T_DEFINED (so redef errors in VS build can be avoided). Also, bracket headers and with #pragma push_macro("new")/#undef new/.../#pragma pop_macro("new") so VS attempts to #define new don't trash these headers. ----------------------------------------------------------------- Fri 15-Jun-01 (PhilipLu) crtw32\h\new.h crtw32\heap\lsources, nothrow0.cpp [NEW] crtw32\linkopts\lsources, sources, thrownew.cpp [NEW] crtw32\stdcpp\lsources, sources.nt crtw32\stdhpp\new doc\copysrc.bat libw32\inc64\new.h libw32\include\new, new.h libw32\msvcprt.src makefile, makefile.inc srcrel\makefile, mkclnmkf.c, msvc40.if, pd-b [RENAMED/MOVED] crtw32\stdcpp\delaop2.cpp -> crtw32\heap\delaopnt.cpp crtw32\stdcpp\delop2.cpp -> crtw32\heap\delopnt.cpp crtw32\stdcpp\newaop2.cpp -> crtw32\heap\newaopnt.cpp crtw32\stdcpp\newop2.cpp -> crtw32\heap\newopnt.cpp [DELETED] crtw32\stdcpp\delaop2_s.cpp, delop2_s.cpp, newaop2_s.cpp, newop2_s.cpp VS7#237394 Reconfigure global operator new/delete. We intentionally have two versions of operator new. The main CRT defines a legacy version that returns NULL on failure, the C++ Std Lib defines the conformant version that throws std::bad_alloc on failure. The first problem is that it is possible to get the wrong version linked into a program. If an app links to the C++ Std Lib, it must use the throwing version of new, since the C++ Std Lib doesn't check for null returns on memory allocations, instead assuming exceptions will be used. Usually, the order of /defaultlib directives in objects will cause the correct throwing new to be loaded, but it is possible for this to fail. To work around that, I'm adding a new linkopts object, thrownew.obj. Explicitly linking in thrownew.obj will forcibly use a throwing version of new. The second problem concerns the difficulty in producing a .lib which can't be sure if it will end up linked to the throwing or non-throwing version of new (e.g. third-party libs). Such a lib may not want to force a dependency on the Std C++ Lib, but still want to work in case the final link module uses the Std C++ Lib. The proper way to handle this is for that third-party lib to use the nothrow_t placement new, which will always return NULL on failure. To make that work and still not force a dependency on the Std C++ Lib, nothrow_t placement new and associated routines are moved out of the Std C++ Lib and into the main CRT. In addition, constant std::nothrow is also moved into the main CRT, while still being left in the Std C++ Lib for backwards-compatibility (it was exported from the DLL). ----------------------------------------------------------------- Fri 15-Jun-01 (GautamB) crtw32\eh\frame.cpp Added stubs for IA64 com+ nothing working yet. ----------------------------------------------------------------- Fri 15-Jun-01 (PhilipLu) crtw32\startup\mlock.c, tidtable.c VS7#267669/Windows#414059 _mtinit needs to call _mtterm to free resources if a failure is encountered. ----------------------------------------------------------------- Wed 13-Jun-01 (PhilipLu) crtw32\string\i386\_memicmp.asm, _stricmp.asm, _strnicm.asm, memccpy.asm, memchr.asm, memcmp.asm, memcpy.asm, memset.asm, strcat.asm, strchr.asm, strcmp.asm, strlen.asm, strncat.asm, strncmp.asm, strncpy.asm, strnset.asm, strrchr.asm, strrev.asm, strset.asm, strspn.asm, strstr.asm VS7#267015 Replace INC/DEC by ADD/SUB by 1 in string/memory .asm routines, for better Pentium 4 performance. crtw32\h\conio.h, excpt.h, fpieee.h, rtcapi.h, setjmp.h, wchar.h crtw32\h\i386\emmintrin.h libw32\include\conio.h, emmintrin.h, excpt.h, fpieee.h, rtcapi.h, setjmp.h, wchar.h libw32\inc64\conio.h, excpt.h, fpieee.h, rtcapi.h, setjmp.h, wchar.h VS7#267063 Fix headers usable by C code so /Za /W4 won't warn. Primarily, get rid of C++-style comments. ----------------------------------------------------------------- Mon 11-Jun-01 (PhilipLu) crtw32\stdhpp\exception libw32\include\exception makefile VS7#266694 Fix user CRT rebuild so the no-exceptions configuration supplied by Dinkumware (-D_HAS_EXCEPTIONS=0) at least builds. The user rebuild makefile can now be invoked with STDCPP_NOEH=YES to enable the no-exceptions build, and header has been fixed so the _HAS_EXCEPTIONS=0 branch will actually build. No testing has been done to verify any sort of usability of this configuration, which is undocumented and unsupported for VC7.0, but since it is discoverable by anyone perusing the source, I decided to go ahead and fix the build. ----------------------------------------------------------------- Mon 11-Jun-01 (GautamB) fpw32\tran\ia64\ieee.c VS7#216001 Added support for Flush-to-Zero mode using _controlfp(). ----------------------------------------------------------------- Wed 06-Jun-01 (PhilipLu) crtw32\stdhpp\xutility libw32\include\xutility VS7#256042 The global function operator- for the diff of two std::reverse_iterator instances was returning a size_t instead of a ptrdiff_t. makefile VS7#264114 Debug CRT DLLs need to be built /debugtype:cv,fixup, not just /debugtype:cv, for proper Vulcan support. Also, strip all references to /debugtype out of the makefile that gets shipped for the user CRT rebuild, since this is an undocumented linker switch. ----------------------------------------------------------------- Tue 05-Jun-01 (PhilipLu) crtw32\heap\resetstk.c VS7#264306 _resetstkoflw() should not attempt to shrink the committed stack. Also, it should not do anything if a guard page is already present. Done so the WinXP app verifier /stacks will work. ----------------------------------------------------------------- Wed 15-May-01 (tentzen) crtw32\h\stdarg.h libw32\inc64\stdarg.h libw32\include\stdarg.h Implement va_start, va_arg, and va_end as intrinsics for IJW/IA64. To simplify BE code generation, _APALIGN(t,ap) is passed as 3rd parameter in va_arg() intrinsic instead of __builtin_alignof(t). This part need be fixed once COM+ start supporting va-arg family. ----------------------------------------------------------------- Wed 09-May-01 (SHanson, PhilipLu) crtw32\h\string.h, wchar.h crtw32\string\ia64\memcpy.s, memmove.s [NEW] crtw32\string\lsources, sources.nt libw32\inc64\string.h, wchar.h libw32\include\string.h, wchar.h libw32\msvcrt.src, syscrt.src, syscrt64.src makefile, makefile.inc srcrel\objects.mkf, pd-b VS7#195834 (sort of) Replace IA64 memcpy and memmove, and move memcpy, memmove, and memset so they are static-link components of the IA64 CRT DLL, to avoid the overhead of calling into the DLL. Maintain the existing exports of these routines from the DLL for old code. Also, since memmove used to be dllimport, keep the __imp_ definition in the implib by marking memmove as a DATA export in the def files, allowing existing .obj files to find the necessary definition. ----------------------------------------------------------------- Mon 07-May-01 (PhilipLu) crtw32\stdhpp\fstream libw32\include\fstream VS7#249553 Bad interaction between wifstream and tellg turned out to be bugs in basic_filebuf::seekoff and seekpos, which failed to properly handle pushback characters (which get used all the time for wchar_t streams). ----------------------------------------------------------------- Thu 03-May-01 (PhilipLu) crtw32\stdhpp\xlocale libw32\include\xlocale VS7#248580 I recently changed std::_Maklocstr, adding a 3rd argument of type std::_Locinfo::_Cvtvec&. That's illegal under /Za, since a non-const ref can only be bound to an lvalue. The arg should have been const std::_Locinfo::_Cvtvec&. crtw32\stdhpp\list, vector libw32\include\list, vector VS7#248877 The ctors for std::vector(size_type _Count) and std::list(size_type _Count) could both potentially leak resources if constructing the default fill value threw. ----------------------------------------------------------------- Wed 02-May-01 (PhilipLu) crtw32\h\i386\ivec.h libw32\include\ivec.h VS7#239974 Disable C4799 inside ivec.h if _SILENCE_IVEC_C4799 is defined. As written, this header will generate that warning, but that is to be expected, since the code uses MMX intrinsics without an EMMS or _m_empty in each function. Allow users to shut up the warning, but don't do so unconditionally, since clients of ivec.h need to understand the potential for problems if they don't use EMMS in their own code. ----------------------------------------------------------------- Wed 02-May-01 (GautamB) crtw32\rtc\error.cpp makefile VS7#241349 Removed the runtmchk.lib dependencies on CRT by adding obj to runtmchk.lib. earlier runtmchk.lib was same as rtc.lib but now it also includes exsup.obj exsup3.obj sehprolog.obj chkstk.obj. ----------------------------------------------------------------- Thu 26-Apr-01 (GautamB) crtw32\eh\frame.cpp VS7#236286 Fixed a problem with a rethrow without a throw and catch(...) ----------------------------------------------------------------- Wed 25-Apr-01 (PhilipLu) crtw32\misc\initcrit.c VS7#244210 It isn't safe to call LoadLibrary/FreeLibrary during DllMain, so use GetModuleHandle instead in __crtInitCritSecAndSpinCount. ----------------------------------------------------------------- Tue 24-Apr-01 (PhilipLu) crtw32\rtc\error.cpp crtw32\stdhpp\xlocale libw32\include\xlocale makefile langapi\undname\testundn.mak, undname.inl, undname.mak VS7#243471 Build the CRT with /Zc:forScope, and get rid of all instances of non-conformant for scoping in the build. Also change the standalone makefiles used for langapi\undname to use /Zc:forScope, to prevent CRT build problems appearing after FE checkins to undname. ----------------------------------------------------------------- Thu 19-Apr-01 (PhilipLu) crtw32\h\malloc.h crtw32\heap\resetstk.c libw32\include\malloc.h libw32\inc64\malloc.h VS7#239962 _resetstkoflw did not work on Win9x. Simplified some tests which were not correct for Win9x, tweaked the test for attempting to set a guard page too low (Win9x and WinNT have different requirements), and set a guard page as PAGE_NOACCESS instead of PAGE_GUARD for Win9x. Also changed the return from void to int, and return a nonzero success code if the stack reset worked. ----------------------------------------------------------------- Fri 13-Apr-01 (KarlSi) makefile VS7#233650 Move the location of the VC CRT build's DLL PDB files out of the dll_pdb subdirectory, back to the same directory as the DLLs. Part of allowing the build lab to build VC CRTs without full paths in the PDB info. For now, the Sys CRTs still have their DLL PDB files down under dll_pdb. ----------------------------------------------------------------- Fri 13-Apr-01 (GautamB) crtw32\eh\frame.cpp VS7#236286 Fixed problem of rethrow of Seh to be caught by __except. ----------------------------------------------------------------- Fri 13-Apr-01 (PhilipLu) crtw32\stdhpp\complex, sstream, xlocmon, xstring libw32\include\complex, sstream, xlocmon, xstring libw32\msvcprt.src VS7#226252 Remove explicit dllexport/import of some internal template base classes (_Complex_base, _Mpunct, _String_val), now that the C++ frontend will implicitly apply dllexport/import for these base classes. More importantly, stop dllimporting std::allocator just because xstring has been included. That breaks people who define their own operator new, and expect that new to be used for STL collection classes. That wasn't happening in modules that included xstring, but was for other modules, leading to cross-heap delete crashes. std::allocator is not a base class of basic_string; it's a member of the _String_val base class. So the fix here is to get rid of the explicit _CRTIMP2 specialization of allocator in xstring, and to disable the C4251 warning complaining about an object member not being dllimport in a class that is dllimport. That warning isn't a problem here, because every use of the allocator member is within a member function that will be dllimported, and thus hidden away. Until the next LKG update, the C++ CRT DLL must still export the allocator members, but these are now private exports so they don't appear in the implib. ----------------------------------------------------------------- Thu 12-Apr-01 (PhilipLu) crtw32\stdcpp\wlocale.cpp crtw32\stdhpp\xlocale, xlocmon, xlocnum, xloctime libw32\include\xlocale, xlocmon, xlocnum, xloctime VS7#230612 The Dinkumware code had a number of problems with wchar_t facets in Asian locales that use MBCS. Underneath the wchar_t facet, all real work was done in MBCS, but the conversion between Unicode and MBCS didn't handle leadbytes at all. Fixes were made to _MAKLOCSTR, ctype::do_widen & do_narrow, and time_put::do_put. ----------------------------------------------------------------- Mon 09-Apr-01 (PhilipLu) crtw32\stdcpp\iosptrs.cpp, locale.cpp, locale0.cpp crtw32\stdhpp\xlocale, xmemory libw32\msvcprt.src Remove code under _RETAIN_OLD_CRT_CODE that isn't needed now that the 9176 LKG update has taken place. There is still some code present under _RETAIN_OLD_CRT_CODE, for the 21-Mar-01 checkin. crtw32\stdhpp\cctype, cerrno, clocale, cmath, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, hash_map, hash_set, list, map, memory, set, typeinfo, vector, xdebug, xhash, xmemory, xstring, xtree, yvals.h crtw32\tools\win32\relinc.if, relinc64.if libw32\include\cctype, cerrno, clocale, cmath, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, hash_map, hash_set, list, map, memory, set, typeinfo, vector, xdebug, xhash, xmemory, xstring, xtree, yvals.h Remove references to _GLOBAL_USING and _HAS_MEMBER_TEMPLATES_REBIND, now that the LKG update has picked up these being permanently enabled. All code under the #if arms for these names not set has been removed, at the request of Dinkumware. ----------------------------------------------------------------- Mon 09-Apr-01 (GautamB) crtw32\eh\frame.cpp VS7#234115 uncaught_exception was not working for CLR. Fixed it. ----------------------------------------------------------------- Fri 06-Apr-01 (PhilipLu) crtw32\dllstuff\crtlib.c VS7#235781 If CRT DLL is unloading without doexit() having been called already, then we need to call _cexit, not _c_exit, to make sure all the terminators are called (flush stdio, remove tmpfiles, ...). This can happen more easily now with the URT dynamically loading and unloading the CRT DLL for C#/VB calling into the CRT DLL via P/Invoke. fpw32\tran\i386\87cdisp.asm VS7#132450 sinh was incorrectly reporting an _UNDERFLOW error to _matherr on denormal inputs. Turns out the internal error handling for the CHECKOVER case was doing the same thing as the CHECKRANGE case, checking for overflow and underflow, when it's supposed to only look for overflow. CHECKOVER is only used by sinh and cosh, and cosh will never underflow, since cosh(x) >= 1, so sinh is the only FP API that could be hit by this longstanding (1992 or so) bug. ----------------------------------------------------------------- Thu 05-Apr-01 (PhilipLu) crtw32\stdhpp\xhash libw32\include\xhash PJP noticed an additional change, to _Hash::clear(), that was missing in the Mar 25 and Apr 4 updates. ----------------------------------------------------------------- Wed 04-Apr-01 (PhilipLu) crtw32\convert\tolower.c, toupper.c crtw32\stdcpp\_tolower.c, _toupper.c crtw32\stdcpp64\_tolower.c, _toupper.c VS7#232853 _tolower, _toupper, and the Dinkumware equivalents, when returning a double-byte char, were returning (leadbyte + trailbyte<<8). It's supposed to be (leadbyte<<8 + trailbyte). crtw32\stdhpp\xhash libw32\include\xhash VS7#233708 The fix for 230612 on Mar 25 was incomplete, breaking hash_map. Fix _Hashval() to use _Mask instead of _Vec.size(). ----------------------------------------------------------------- Wed 28-Mar-01 (PhilipLu) crtw32\bsku\bsku.cpp crtw32\dllstuff\atonexit.c, crtexe.c, crtlib.c, dll_argv.c, dllargv.c crtw32\eh\unhandld.cpp crtw32\h\internal.h crtw32\linkopts\noarg.c, noenv.c, setargv.c, wsetargv.c crtw32\lowio\ioinit.c crtw32\mbstring\mbctype.c crtw32\misc\charmax.c, lcnvinit.c, onexit.c crtw32\startup\crt0.c, crt0dat.c, crt0init.c, dllcrt0.c, stdargv.c, stdenvp.c crtw32\stdio\_file.c crtw32\time\clock.c fpw32\tran\i386\cpu_disp.c VS7#231220 Stop almost all instances of _amsg_exit fatal errors from showing up in the CRT DLL or a DLL linked with the CRT DLL. Make all the various startup routines, including those in the .CRT$XI* startup array, return errors back to the DllMain or mainCRTStartup level instead of calling _amsg_exit. EXEs will still call _amsg_exit, but now from the mainCRTStartup level. DLLs, include the CRT DLL, will now just return FALSE from DLL_PROCESS_ATTACH, failing the load. One subtlety here: the .CRT$XI* array is processed in EXEs linked to the CRT DLL, but not in DLLs linked to the CRT DLL. That's because the only possible .CRT$XI* entry in these circumstances will be for __lconv_init, if the component was compiled with -J. We only want to run that initializer for an EXE, not a DLL, because DLLs linked to the CRT DLL should not override the localeconv() settings of an EXE linked to the CRT DLL. Since __lconv_init is the only possible entry here, and it never returns an error, we will process the .CRT$XI* array in the EXE startup with _initterm instead of _initterm_e (which will propogate an error code back), so any error will go undetected. That means we don't have to add a new export to the CRT DLL that would damage backwards-compatibility. Of course none of this confusing behavior was documented in the code. It is now. crtw32\dllstuff\crtlib.c crtw32\heap\heapinit.c crtw32\misc\assert.c, dbgrpt.c, secfail.c, seclocf.c crtw32\rtc\pdblkup.cpp crtw32\startup\crt0msg.c, stdargv.c VS7#231284 GetModuleFileName will not zero-terminate the output buffer when a name must be truncated to fit. None of the CRT calls to GMFN accounted for that, exposing them to buffer-overrun problems. ----------------------------------------------------------------- Tue 27-Mar-01 (PhilipLu) crtw32\dllstuff\crtlib.c crtw32\rtc\error.cpp crtw32\startup\crt0.c, dllcrt0.c VS7#230286 Always use GetVersionExA, not GetVersionEx, so we don't run into problems running on Win9x. srcrel\pd-b [DELETED:] crtw32\dllstuff\i386\cinitexe.a, cinitexe.mak crtw32\lowio\i386\cinitcon.a crtw32\misc\i386\cinitone.a crtw32\startup\i386\crt0init.a, crt0init.mak crtw32\stdio\i386\cinitstd.a, cinittmp.a crtw32\time\i386\cinitclk.a Get rid of ancient files that haven't been used since 1994 or so. An early part of the fix for VS7#231220. ----------------------------------------------------------------- Mon 26-Mar-01 (PhilipLu) crtw32\stdhpp\xdebug libw32\include\xdebug Back out Saturday's VS buildfix, now that compiler bug VS7#230468 has been fixed. ----------------------------------------------------------------- Sun 25-Mar-01 (PhilipLu) crtw32\h\mtdll.h, setlocal.h crtw32\misc\inittime.c crtw32\time\strftime.c VS7#196892 strftime specifiers %c, %x, and %X return a time formatted accorded to the current locale data, as specified in the Regional Settings control panel page, but we weren't handling these correctly. For calendars more complicated than the basic localized Gregorian, we can't simply translate the locale formatting string ourself, since it assumes a large base of knowledge of era/period strings, modified years, etc. (e.g. this is year 4334 according to one of the Korean calendar types). For these types, we should just call Win32 APIs GetDateFormat/GetTimeFormat to handle the formatting. I'm not doing this for calendar type 1, localized Gregorian, because that seems a bit riskier in that we might slightly change the existing output when what we're doing now is fine. Also fixed the handling of leading zero suppression in _store_winword, which handles these localized date/time formats (now for calendar type 1 only). Previously, leading zero suppression wasn't happening at all, which became clear when I compared the results against that returned by GetDateFormat/GetTimeFormat. crtw32\stdhpp\xhash libw32\include\xhash VS7#230612 P. J. Plauger sent me a fix for a bug a customer of his recently ran into. The hash_set/hash_map containers could hit an infinite loop. In the test case, this happened after a specific list of about 250 inserts and erases. ----------------------------------------------------------------- Sat 24-Mar-01 (PhilipLu) crtw32\stdhpp\xdebug libw32\include\xdebug Rolling VS buildfix. Work around compiler bug VS7#230468 exposed by fix for VS7#201153. Don't declare placement vector operator new/delete in case non-placement vector new/delete aren't declared. Workaround will be removed in a day or two. crtw32\startup\stdargv.c, wincmdln.c VS7#229081 _acmdln and _wcmdln can be NULL under certain error conditions, so check them before dereferencing. crtw32\stdhpp\xlocinfo.h libw32\include\xlocinfo.h Add _CRTIMP2 and _CRTIMP to various prototypes in xlocinfo.h. crtw32\stdhpp\xutility, yvals.h libw32\include\xutility, yvals.h Move _cpp_max/_cpp_min #defines from yvals.h to xutility. crtw32\h\fpieee.h libw32\include\fpieee.h libw32\inc64\fpieee.h Remove workaround for x86 backend bug #163574, error using __declspec(align) on function parameters (I think). crtw32\stdhpp\exception libw32\include\exception Remove workaround for VS7#227182, VS build problem caused by the VC debugger having a header named eh.h, the same as a CRT header. The debugger team has deleted the unneeded header. crtw32\startup\tlssup.c The pointer to the callback array in the IMAGE_TLS_DIRECTORY is off by one, pointing at a NULL, so dynamic TLS inits never had a chance of working. Bump the pointer to the first actual function pointer. Still need linker and frontend work to really enable this, which will have to wait for post-VC7.0. ----------------------------------------------------------------- Fri 23-Mar-01 (PhilipLu) crtw32\rtc\error.cpp crtw32\stdhpp\sstream, streambuf, strstream libw32\include\sstream, streambuf, strstream Rolling buildfix. More /Wp64 warnings just got enabled at /W3 and are firing in RTC and I/O Streams code, so add more casts to shut them up. crtw32\stdcpp\_tolower.c, ios.cpp, locale.cpp, locale0.cpp, lsources, sources.nt, strstrea.cpp, wlocale.cpp, xdebug.cpp [NEW], xlocale.cpp, xmutex.cpp crtw32\stdhpp\fstream, locale, streambuf, xdebug [NEW], xlocale, xlocmes, xlocmon, xlocnum, xloctime crtw32\time\strftime.c crtw32\tools\win32\relinc.cmd doc\copysrc.bat libw32\include\fstream, locale, streambuf, xdebug [NEW], xlocale, xlocmes, xlocmon, xlocnum, xloctime srcrel\pd-b makefile.inc VS7#201153 Customers trying to use _CrtDumpMemoryLeaks() instead of _CRTDBG_LEAK_CHECK_DF were seeing all the internal allocations for the C++ Standard Library appearing as leaks. The C++ library needed to make all internal allocations _CRT_BLOCKs, so they are ignored by the leak detection routines. That includes defining derivatives of std::allocator and std::basic_string that use the debug CRT heap with _CRT_BLOCK tagging. ----------------------------------------------------------------- Thu 22-Mar-01 (PhilipLu) crtw32\h\crtdbg.h, mtdll.h crtw32\misc\dbgrpt.c crtw32\startup\mlock.c libw32\inc64\crtdbg.h libw32\include\crtdbg.h VS7#124998 Implement _CrtSetReportHook2. Uses a doubly-linked list to record registered debug report hook functions. The original function, _CrtSetReportHook, doesn't meet ATL Server's needs when DLLs try to register hooks, but cannot guarantee hooks will be added and removed in LIFO order. In that case, we can end up pointing at a hook function that has been unloaded. ----------------------------------------------------------------- Wed 21-Mar-01 (PhilipLu) crtw32\eh\stdexcpt.cpp crtw32\h\typeinfo.h crtw32\stdhpp\exception, new, stdexcept, typeinfo libw32\inc64\typeinfo.h libw32\include\exception, new, stdexcept, typeinfo, typeinfo.h libw32\msvcprt.src, msvcrt.src, syscrt.src, syscrt64.src makefile VS7#5327, #5417, #127825 Make a set of exception classes used for RTTI support, ::bad_cast, ::bad_typeid, and ::__non_rtti_object, identical to those names in the std namespace, via using directives. Trickier than it sounds, because the preexisting global and std namespace definitions were not identical, and I need to preserve the same class layout and exported methods as existed previously. The slimiest hack involves the need for ::bad_cast to now have two incompatible ctors, bad_cast(const char*) and bad_cast(const char* const&). The latter was the only ctor before, but the former had to be added so std::bad_cast kept its preexisting ctor. I got rid of bad_cast(const char* const&), added a private ctor bad_cast(const char* const*), and since the two of those have identical codegen, added an alias '=' declaration in the .def file for the main CRT DLL. The .def file for the C++ DLL now has a number of forwarder lines, e.g. ??1bad_cast@std@@UAE@XZ = BASECRT.??1bad_cast@@UAE@XZ PRIVATE to preserve the existing exports from that DLL. These can be removed once the next LKG update with this code takes place. The stdhpp changes are to put _Doraise, a protected virtual member of the exception hierarchy classes in the Dinkumware code, under control of "#if !_HAS_EXCEPTIONS", since this function is only used by the special non-throwing version of the C++ Library, which does not need to use the main CRT's exception classes. crtw32/stdcpp/stdthrow.cpp Minor bug noticed while working on the previous checkin. A reference to stderr should be to _cpp_stderr, for _STATIC_CPPLIB compatibility. This wasn't detected before because stdthrow is only used for a C++ Library build with _HAS_EXCEPTIONS == 0, which we don't use. ----------------------------------------------------------------- Tue 20-Mar-01 (PhilipLu for KFrei) crtw32\rtc\error.cpp, pdblkup.cpp makefile VS7#227306 Fix buffer overrun problems in RTC support, and configure so /GS will not insert cookie checks in any RTC support code, by using _alloca to allocate any local string buffers. VS7#224261 Reenable /GS in the CRT build. The static link components of the msvcrt[d].lib implib must not have any /GS checks in them, since that adds new dependencies to user code that wasn't previously needing to run the CRT startup code. Now that the /GS checks in RTC have been removed, /GS is OK. srcrel\external.mkf, makefile A request from the build lab. Unconditionally clear _CL_ in these makefiles if we're doing a cross-hosted CRT build (i.e. IA64 CRT built on x86). These makefiles are used to build native-hosted tools needed during the CRT build, and the lab uses _CL_ to point to the boot-phase cross-compiler passes during the self-build. Right now, clearing _CL_ is under a define set by the lab only, but they're changing the define and there's no good reason this can't be unconditional. ----------------------------------------------------------------- Sun 18-Mar-01 (PhilipLu) crtw32\stdhpp\exception libw32\include\exception VS7#5283 Names terminate, set_terminate, terminate_handler, unexpected, set_unexpected, and unexpected_handler all need to be placed in namespace std, as well as the global namespace where they exist now. crtw32\h\stdexcpt.h libw32\include\stdexcpt.h libw32\inc64\stdexcpt.h Cleanup noticed while making the change for VS7#5283. There's a block of code that's been under an "#elif 0" for 5 years. It can be removed. crtw32\h\cruntime.h, new.h crtw32\heap\setnewh.cpp crtw32\stdcpp\stdhndlr.cpp crtw32\tools\win32\relinc.if, relinc64.if libw32\msvcrt.src, syscrt.src libw32\include\new.h srcrel\msvc40.if VS7#194908 Headers new.h and new were incompatible if you tried to use set_new_handler. The main CRT had an archaic version of ::set_new_handler, in setnewh.cpp, which asserted if you passed in anything except NULL. This has been superceded by the implementation of std::set_new_handler in the Dinkumware-supplied stdhndlr.cpp, but the headers botched forcing any use of set_new_handler to the std one. Fixed so including will define std::set_new_handler and std::new_handler, while including will define those two names, and inject them with using directives as ::set_new_handler and ::new_handler. setnewh.cpp, with the old definition of ::set_new_handler, is retained for backwards compatibility with old binaries, but this routine is no longer available through the headers. The old function is forcibly exported from the main CRT DLL. Defined _USE_OLD_STDCPP in cruntime.h when the old stdcpp64/stdhpp64 files are used, so the changes to new.h can be done only when using stdcpp/stdhpp instead. Configured the relinc process so the include files for Win64 syscrts use the old new.h definitions, everything else uses the new ones. crtw32\stdhpp\new libw32\include\new Noticed while making the change for VS7#194908 that the fix for VS98#18416 had been undone. A declaration of a non-existant "_New_hand" had slipped back into the header. makefile Back out the actual makefile enabling of /GS that was checked in yesterday. The VS build is failing because of the extra CRT dependencies this causes, and I need to investigate why. ----------------------------------------------------------------- Sat 17-Mar-01 (PhilipLu) crtw32\dllstuff\crtlib.c crtw32\startup\crt0.c, dllcrt0.c makefile VS7#224261 Turn on /GS in the x86 CRT. Not totally trivial, because the startup code that initializes the global guard cookie can't trigger the compiler's local buffer overrun guard logic, since the global cookie on entry will differ from that on exit. Worked around by allocating the OSVERSIONINFO via _alloca. crtw32\stdhpp\xloctime libw32\include\xloctime VS7#159194 Addition to Dinkumware drop 3.10. The time_get facet was not accepting dates in the same format as time_put was outputting. crtw32\stdhpp\streambuf libw32\include\streambuf Tweak to the Dinkumware drop 3.10, to bring changes I made in line with the official Dinkumware version. Just moved a _Mutex base class in basic_streambuf to be the first data member instead, and added _Lock and _Unlock non-virtual member functions. ----------------------------------------------------------------- Fri 16-Mar-01 (PhilipLu) crtw32\stdhpp\complex, fstream, ios, istream, locale, ostream, sstream, streambuf, string, xcomplex, xlocale, xlocmes, xlocmon, xlocnum, xloctime, xstring crtw32\tools\win32\relinc.if, relinc64.cmd, relinc64.if [new] libw32\include\complex, fstream, ios, istream, locale, ostream, sstream, streambuf, string, xcomplex, xlocale, xlocmes, xlocmon, xlocnum, xloctime, xstring VS7#216778 The frontend now allows "template class __declspec(dllimport) myclass" to mean an explicit specialization should be imported from a DLL. Previously, you needed to say "extern" at the front of that, which was an extension, so using it failed under /Za with an error, and under /Ze you got a C4231 warning. Since the frontend has changed, I've removed the unneeded extern, along with the pragmas to suppress C4231, allowing the C++ Standard Library headers to be used /Za /MD[d]. The relinc changes are necessary because now the stdhpp header cleanse treats __FORCE_INSTANCE as always on, but stdhpp64 must still treat it as always off. The same relinc.if can no longer be used for both sets of headers. ----------------------------------------------------------------- Thu 15-Mar-01 (PhilipLu) langapi\undname\testundn.cxx, undname.cxx VS7#5674 Fix of 10-Dec-99 was incomplete. We should use a lock in __unDNameEx as well as __unDName. Also, added a -x switch to testundn, the undecorator verification test app, to test __unDNameEx instead of __unDName. Added heap leak detection to testundn, too, to head off future problems (no leaks currently). ----------------------------------------------------------------- Wed 14-Mar-01 (PhilipLu) crtw32\stdhpp\xmemory VS7#225243 As part of the 3.10 Dinkumware integration, I removed some stuff under _RETAIN_OLD_CRT_CODE that I thought was unnecessary. I was wrong. The code removed is needed until the next LKG update, when the LKG headers will pick up the enabling of _HAS_MEMBER_TEMPLATES_REBIND. crtw32\string\strlwr.c VS7#224860 _strlwr will leak the heap buffer malloc'd if _alloca can't be used because the stack is almost full. Also some minor formatting and comment changes to make this file and strupr.c look the same. crtw32\lowio\getch.c VS7#224864 _kbhit will leak the heap buffer malloc'd if _alloca can't be used because the stack is almost full. crtw32\stdio\input.c VS7#224990 _input/_winput should only allocate the bit map used for handling the %[...] spec the first time one of those is seen. The code was allocating it each time, leaking 8K for the _winput case when the stack was almost full and malloc was used instead of _alloca. crtw32\string\strupr.c VS7#224974 _strupr has a race condition because it passes 0 instead of the proper per-thread codepage to __crtLCMapStringA. If another thread changes the global locale between entry to _strupr and the load of the locale in __crtLCMapStringA, the wrong codepage will be used. Also some minor formatting and comment changes to make this file and strlwr.c look the same (which is how this turned up). ----------------------------------------------------------------- Tue 13-Mar-01 (PhilipLu) crtw32\stdcpp\_tolower.c, _toupper.c VS7#190902 std::ctype<>::tolower and toupper use helper functions _Tolower and _Toupper, which take a pointer to the ctype's locale info, which may not match the current C library's global locale. But the helpers weren't using that specific locale when checking if a character below 0x100 was upper/lowercase. crtw32\stdcpp\newop2.cpp VS7#112077 The nothrow version of operator new needs to call malloc under the try/catch, instead of just calling _callnewh there. That's because malloc can itself call _callnewh, if _set_new_mode(1) is active. crtw32\stdcpp\newop.cpp, newop2.cpp VS7#221760 _callnewh needs to be marked throw(...), so the optimizer won't discard the try/catch in the nothrow version of operator new. Also fixed the _callnewh prototype in the throwing operator new for consistency. ----------------------------------------------------------------- Mon 12-Mar-01 (PhilipLu) crtw32\stdcpp\cerr.cpp, cin.cpp, clog.cpp, cout.cpp, delaop2.cpp, delop2.cpp, fiopen.cpp, instances.cpp, iomanip.cpp, ios.cpp, iosptrs.cpp, iostream.cpp, locale.cpp, locale0.cpp, newaop.cpp, newaop2.cpp, newop2.cpp, nomemory.cpp, nothrow.cpp, raisehan.cpp, stdhndlr.cpp, stdthrow.cpp, string.cpp, strstrea.cpp, uncaught.cpp, wcerr.cpp, wcin.cpp, wclog.cpp, wcout.cpp, wctrans.c, wctype.c, wiostrea.cpp, wlocale.cpp, xcosh.c, xdateord.cpp, xdnorm.c, xdscale.c, xdtest.c, xexp.c, xfcosh.c, xfdnorm.c, xfdscale.c, xfdtest.c, xferaise.c, xfexp.c, xfsinh.c, xfvalues.c, xgetwctype.c, xlcosh.c, xldnorm.c, xldscale.c, xldtest.c, xlexp.c, xlocale.cpp, xlock.cpp, xlpoly.c, xlsinh.c, xlvalues.c, xmath.h, xmbtowc.c, xmtx.c, xmtx.h, xmutex.cpp, xpoly.c, xsinh.c, xstod.c, xtowlower.c, xtowupper.c, xvalues.c crtw32\stdhpp\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, stl.h, streambuf, string, strstream, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h libw32\include\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, stl.h, streambuf, string, strstream, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmath.h, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h Integrate the 010208 drop of the Dinkumware C++ Library, version 3.10. Fixes bugs VS7#150517 and 157130. Also has a start of the fix for VS7#188201, but the fix appears to need more work. Most of the work is some internal framework shuffling to make sure lazy facets aren't leaked. crtw32\stdhpp\xutility libw32\include\xutility VS7#188201 Permit comparisons between an iterator on the LHS and the corresponding const_iterator on the RHS, for _Ptrit-based iterators. The opposite order, const_iterator on the LHS, already worked fine because we have a ctor that will convert the non-const iterator to the corresponding const_iterator. For non-const on the left, add global template functions that match non-const LHS, const RHS and invert the comparison order so the RHS will get converted to a const_iterator. crtw32\h\i386\dvec.h, fvec.h, ivec.h libw32\include\dvec.h, fvec.h, ivec.h VS7#127210 The Intel-supplied headers [dfi]vec.h, for easier access to the MMX/SSE/SSE2 intrinsics, used the old I/O streams, and thus got a deprecated warning when used. Switched to using the supported Dinkumware I/O streams instead, and moved all the uses under an #ifdef _ENABLE_VEC_DEBUG, since we don't want to require compiling /GX or bloating the code whenever these are used. Also fixed level 1 warnings and a "cout <<" instead of "os <<" that I ran across while fixing this. ----------------------------------------------------------------- Fri 09-Mar-01 (PhilipLu) eh\i386\lowhelpr.asm misc\i386\exsup.asm, exsup3.asm VS7#221754 Add .FPO directives to the asm code that calls into the user code for C++ EH and SEH, so callstacks are correct. Added FPO data for _CallSettingFrame, _except_handler3, _abnormal_termination, and _local_unwind2. makefile, makefile.inc, makefile.sub Fix and clean the user-rebuild makefiles. My 26-Feb change to the CRT build broke the user CRT rebuild scenario when the path to the include directory has spaces in it, as is the default. I needed to put quotes around $(VCTOOLSINC) in the recursive make invocations. I also noticed some text in the cleansed makefiles which shouldn't have been there. There were references to BLD_SYSCRT and DEVBUILD, as well as to the stdcpp64 directory and some private CRT build tools. Removed them all using additional STRIPLIN comments. ----------------------------------------------------------------- Thu 08-Mar-01 (PhilipLu) crtw32\h\math.h fpw32\tran\ceil.c, floor.c, lsources, modf.c, sources.nt fpw32\tran\i386\87ctran.asm, atan.asm, atan_pentium4.asm [NEW], atan_table.c [NEW], ceil_pentium4.asm [NEW], cpu_disp.c [NEW], disp_pentium4.inc [NEW], exp_pentium4.asm [NEW], floor_pentium4.asm [NEW], ftol2.asm [NEW], libm_error.c [NEW], libm_support.h [NEW], log.asm, log10_pentium4.asm [NEW], log_pentium4.asm [NEW], modf_pentium4.asm [NEW], pow.asm, pow_pentium4.asm [NEW] libw32\inc64\math.h libw32\include\math.h libw32\msvcrt.src, syscrt.src srcrel\objects.mkf, pd-b makefile, makefile.inc VS7#215249 Pick up improved floating point functions from Intel. Most of this consists of SSE2-specific versions of ceil, floor, modf, atan, exp, log, log10, and pow, which are automatically called if running on an SSE2-capable CPU (i.e. the Pentium4). This has been in the works for a couple months, and includes a few minor bugfixes in the existing non-SSE2 code that turned up in validating the routines: modf(x) for x a negative integer should return a fractional part of -0.0, not +0.0 log and log10(-denormal) were not setting an errno of EDOM pow(+/-0, -denorm) was returning 0 instead of infinity Note that the SSE2 implementations can be unavoidably different in the LSB, since SSE2 uses 8-byte FP, and the x87 stack 10 byte. To allow users to force use of the old routines, I've added new function _set_SSE2_enable(). So that existing apps using MSVCRT.DLL won't suddenly get different results on a Pentium4, I've made the system CRT default to not using the new SSE2 code. You can still call _set_SSE2_enable(TRUE) to switch to the new routines when running on a Pentium4. Finally, there's _ftol2, a replacement for _ftol which doesn't need to change the rounding mode, so it avoids the FLDCW stalls. A new name is required because it uses 2 slots on the x87 stack, while _ftol only uses 1. The compiler will have to switch the name of the helper. I've made _ftol2 statically linked even in msvcrt.lib, so we don't take an unnecessary indirect branch to get into the CRT DLL. srcrel\common.mkf, external.mkf, makefile, objects.mkf makefile Some additional build work, continuing what was done for VS7#214893 back on 26-Feb. Print out the current TARGET_CPU, LLP64, and BLD_SYSCRT settings. More importantly, detect attempts to use a pre-existing build tree that had different values for these vars, or attempts to use stdcpp when the tree already has stdcpp64 (or vice- versa), and issue a fatal NMAKE error. ----------------------------------------------------------------- Wed 07-Mar-01 (PhilipLu) VS7#221122 My 20-Feb-01 checkin to remove _RT_LOCK fatal errors broke the CRT running on Win9x, and probably broke it elsewhere too, but NT was too kind to mention that. I was releasing the _HEAP_LOCK critsec before I was finished using the heap. Change to free all normal locks first, so they can be freed from the heap, then free all the preallocated locks, including _HEAP_LOCK. ----------------------------------------------------------------- Tue 06-Mar-01 (PhilipLu) crtw32\stdhpp\xmemory libw32\include\xmemory VS7#221135 Turning on _HAS_MEMBER_TEMPLATES_REBIND broke anyone who wrote their own operator new, compiled /MD[d], and had container classes (except basic_string) specialized on char, wchar_t or unsigned short. The problem is std::allocator for those types is dllimported from msvcp70 (thanks to questionable declarations in xstring), but now, std::allocator::allocate is a member template function, which means it is always locally generated, and never specialized. So allocate() would use the local operator new, and the dllimported deallocate() would use the CRT operator new, triggering a quick crash. Fix is just to make the member-template allocate() stop calling global template function _Allocate() directly, and instead call through a non-template member form of allocate(), which will be dllimported to match deallocate(). crtw32\h\i386\mm3dnow.h libw32\include\mm3dnow.h VS7#199371 Add prototypes for new 3DNow intrinsics _m_from_float and _m_to_float. ----------------------------------------------------------------- Mon 05-Mar-01 (PhilipLu) fpw32\tran\i386\debug.c, filter_simd.c, xmmi2_fp_emul.c, xmmi_fp_emul.c, xmmi_types.h VS7#215249 Pick up Intel's support for the Pentium4 DAZ bit in _fpieee_flt. crtw32\stdhpp\xlocale, yvals.h libw32\include\xlocale, yvals.h VS7#212255 std::_Tidyfac<_Facet>::_Tidy must be __declspec(unmanaged) for /clr compiles. This function is registered for callback via atexit, but by the time it is called, the URT has already been shut down. In general, any function run at DLL unload must be unmanaged. crtw32\startup\stdenvp.c VS7#174755 Fix a null deref problem reported by NT. If __crtGetEnvironmentStrings[AW] fails and returns a NULL during startup, _[aw]envptr will be NULL on entry to _setenvp, which failed to check for that before dereferencing it. Just added a NULL check, issuing the same _RT_SPACEENV fatal error used elsewhere in _setenvp in out-of-memory situations. ----------------------------------------------------------------- Tue 27-Feb-01 (PhilipLu) crtw32\convert\isctype.c VS7#213380 Code that compiled /D_DEBUG /ML and was fine in VC6 could fail to link in VC7. That's because we added a debug test to ctype.h, which called a routine that was only present in debug CRTs. The CRT headers use _DEBUG as the flag that a debug CRT is being used, but in this case, by manually defining _DEBUG, the user is fooling that logic. The problem is that _DEBUG has been hijacked by other, non-CRT code. If we had more CRT header code under _DEBUG, the proper fix would probably be to have cl.exe define both _DEBUG and _CRT_DEBUG if the /M[LTD]d switches are used, and key the header tests off _CRT_DEBUG instead. But that can wait until we add more debug header tests. For now, this is a minor case that only shows up when using /ML and compiling C, not C++. So we're going with the simpler fix of defining the missing entrypoint, _chvalidator, in libc.lib, and not in the other retail CRTs. srcrel\common.mkf Tweak the new common.mkf file added yesterday for VS7#214893. If %VCFLAVOR% exists in the environment, then we look for the native toolset at, e.g. %DEVTOOLS%\x86\%VCFLAVOR%. If it's not defined, look for the VC7 and VCLKG trees as before. ----------------------------------------------------------------- Mon 26-Feb-01 (PhilipLu) srcrel\common.mkf [NEW], external.mkf, makefile, pd-b cleanbld.cmd, makefile VS7#214893 Some CRT build changes to make it easier for other devs to build the CRT. Previously, the build relied on %VCTOOLS%, and after my 14-Feb-01 checkin, some fixed paths under %DEVTOOLS%\*\vc7. That's problematic for people who use vclkg instead of vc7 under devtools. I'm changing the build so the only thing necessary is %DEVTOOLS%. The makefiles will search for the flavor of VC that's present under there, with VC7 taking precedence over VCLKG. You can also directly specify all the various paths needed, using %VCTOOLS% or %VCTOOLSINC% for the main CRT build, and %DEVTOOLSBIN%, %DEVTOOLSLIB%, %DEVTOOLSINC%, and %DEVTOOLSSDKLIB% for the srcrel tools build. Makefile and srcrel\common.mkf now have extensive error messaging that explains what's required if the setup is in some way incorrect. mk.bat Trivial change - have mk.bat (which builds the CRT in-place in the source tree under the build directory) save the build log to bld.log instead of build.log, so mkbld and mk don't overwrite the other's log. crtw32\eh\frame.cpp VS7#217108 Finish up work on new helper function __CxxCallUnwindDtor. I noticed that the __except(terminate()) should probably be __except(FrameUnwindFilter(exception_info())), to match the unmanaged case. That permits SEH to pass out of a dtor unwind, but a throw to result in a call to terminte(). After testing, MarkLe agreed, so now it's changed. ----------------------------------------------------------------- Sun 25-Feb-01 (PhilipLu) crtw32\stdhpp\yvals.h VS7#218235 Dinkumware support for MBCS in mbrtowc and other such routines was busted by the checkin for vs7#202930. The definition for _cpp_isleadbyte(c) needlessly shifts 'c' right by 8 bits, breaking the Dinkumware code in locales with leadbytes like Japanese. ----------------------------------------------------------------- Sat 24-Feb-01 (PhilipLu) crtw32\eh\frame.cpp libw32\msvcrt.src, syscrt.src, syscrt64.src VS7#217108 Add helper function __CxxCallUnwindDtor from MarkLe. It is called by managed code to handle calling a destructor during an unwind so that terminate() will be called if the dtor throws. crtw32\h\i386\dvec.h, emmintrin.h, fvec.h, ivec.h, mmintrin.h, xmmintrin.h libw32\include\dvec.h, emmintrin.h, fvec.h, ivec.h, mmintrin.h, xmmintrin.h VS7#217691 Remove "INTEL CONFIDENTIAL" from dvec.h/emmintrin.h, since SSE2 is now publicly released. Also clean up the header comments, getting rid of source control system comments and a revision comment. crtw32\stdhpp\deque, iterator, list, xtree, xutility libw32\include\deque, iterator, list, xtree, xutility VS7#216777 Remove #pragma warning controls for C4284 from these C++ Library headers. That warning no longer exists, and a /Wall compile will issue C4619 complaining about a non-existant warning number being used by #pragma warning. ----------------------------------------------------------------- Fri 23-Feb-01 (gautamb) fpw32\tran\ia64\acos.s, acosf.s, asin.s, asinf.s, atan2.s, atan2f.s, exp.s, expf.s, ldexp.s, ldexpf.s, pow.s, powf.s, sinh.s, sinhf.s makefile VS7#212094 changed the function names in almap.lib to correct ones for ia64 specific case. Added new math update libm ver 5.5.104 ----------------------------------------------------------------- Fri 23-Feb-01 (gautamb) crtw32\convert\wcstod.c, wtof.c crtw32\eh\typname.cpp crtw32\startup\wild.c crtw32\stdio\input.c, popen.c VS7#215477 Added check for return values for malloc. This will avoid some unwanted AVs in low memory conditions. ----------------------------------------------------------------- Wed 21-Feb-01 (PhilipLu) crtw32\misc\initcrit.c Buildfix - Yesterday's change to initcrit.c would use InitializeCriticalSectionAndSpinCount on Win98/WinME, but that API on those OSes is broken. It should return a BOOL success code, but instead is a VOID return. Just use InitializeCriticalSection there. langapi\undname\undname.cxx Forgot to check in the langapi component of VS7#172586. ----------------------------------------------------------------- Tue 20-Feb-01 (PhilipLu) crtw32\h\exsup.inc, internal.h, mtdll.h crtw32\lowio\ioinit.c, osfinfo.c crtw32\misc\initcrit.c crtw32\startup\mlock.c, tidtable.c crtw32\stdio\popen.c, rmtmp.c, stream.c, tempnam.c, tmpfile.c srcrel\pd-b [DELETED:] fpw32/inc/i386/os2dll.inc VS7#172586 Stop issuing _RT_LOCK fatal errors. This is an out-of-memory error when a critical section could not be allocated. CRT fatal errors have to be avoided if at all possible, because the CRT DLL could be used by some long-lived server app (e.g. IIS), and calling ExitProcess, as CRT fatal errors do, is unacceptable in such an app. We now preallocate all named locks, as well as the FILE* locks for stdin, stdout, and stderr. We don't preallocate 4 named locks, but always call _mtinitlocknum to allocate those before every use, so failure to allocate on the first call can be detected. This currently gives 14 preallocated locks, as compared to the 4 we previously used. We also detect a failure to allocate a lock for other files, and fail the file open instead of abort. Note that one instance of _RT_LOCK still exists, when a _lock call is issued on a lock which hasn't been allocated yet, but that should never happen. If it does, it's an internal error in the CRT. As part of this, got rid of file os2dll.inc, which is no longer used, and had a number of ancient, incorrect, asm equates for the named locks. Also got rid of a bunch of obsolete named locks that are never used. ----------------------------------------------------------------- Wed 14-Feb-01 (PhilipLu) cleanbld.cmd srcrel\external.mkf, makefile The VS team devtools project is being reorganized, so now the CRT build requires environment variable DEVTOOLS to be set. Use %DEVTOOLS% to find the proper native-hosted components when building the srcrel tools during a cross-hosted Win64 CRT build. ----------------------------------------------------------------- Mon 12-Feb-01 (PhilipLu) crtw32\stdhpp\yvals.h crtw32\include\yvals.h VS7#5292 Turn on _GLOBAL_USING to wrap C library in namespace std, once again. The new LKG compiler fixes the bugs that prevented this back on Dec 8, 2000. Also turn on _HAS_MEMBER_TEMPLATES_REBIND now that the compiler is capable of handling it, and the VS build has fixed three places where a std::map had a const key type. That's illegal - the key must be assignable, and _HAS_MEMBER_TEMPLATES_REBIND exposed that problem because it generated an allocator. ----------------------------------------------------------------- Thu 08-Feb-01 (GautamB) crtw32\h\stdlib.h crtw32\misc\bswap.c libw32\inc64\stdlib.h libw32\include\stdlib.h VS7#209247 added __cdecl before byteswap functions. ----------------------------------------------------------------- Thu 08-Feb-01 (PhilipLu) libw32\syscrt64.src Buildfix for 64-bit sys CRTs. ----------------------------------------------------------------- Wed 07-Feb-01 (PhilipLu) crtw32\h\ctype.h, wchar.h crtw32\misc\initctyp.c libw32\include\ctype.h libw32\inc64\ctype.h Buildfixes to complete fix for VS7#202930. crtw32\h\math.h, stdio.h libw32\inc64\math.h, wchar.h libw32\include\math.h, wchar.h Cosmetic changes. ----------------------------------------------------------------- Wed 7-Feb-01 (GautamB) crtw32\h\ctype.h, mtdll.h, setlocal.h, stdio.h, stdlib.h crtw32\misc\ctype.c, initctyp.c, setlocal.c crtw32\stdcpp\_tolower.c, _toupper.c, cerr.cpp, cin.cpp, clog.cpp, cout.cpp, stdthrow.cpp, wcerr.cpp, wcin.cpp, wclog.cpp, wcout.cpp, xdateord.cpp, xmbtowc.c, xstrcoll.c, xstrxfrm.c, xwcscoll.c, xwcsxfrm.c, xwctomb.c crtw32\stdhpp\xlocale, yvals.h crtw32\stdio\_file.c libw32\inc64\stdlib.h libw32\include\stdlib.h, xlocale libw32\msvcrt.src, syscrt.src, syscrt64.src VS7#202930 Fixed problem with _STATIC_CPPLIB to work. there were some problem with data being exported from dll. crtw32\h\math.h libw32\include\math.h libw32\inc64\math.h VS7#193177 Now we need to define _USE_MATH_DEFINES to define math constants ----------------------------------------------------------------- Wed 07-Feb-01 (PhilipLu) fpw32\tran\ia64\modf.s, modff.s VS7#209420 modf/modff can improperly raise on Invalid Exception if passed an FP value greater than the _INT64_MAX. An fcvt.fx.trunc should be using .s1 instead of .s0. makefile.sub VS7#209816 Don't use IA64 compiler option -QIA64_A0 any longer. Cl.exe already supplies the proper default. ----------------------------------------------------------------- Thu 14-Dec-00 (PhilipLu) Ported Tue 06-Feb-01 (KarlSi) crtw32\stdcpp\xlock.cpp crtw32\stdhpp\istream, ostream, streambuf, xloctime, yvals.h libw32\include\istream, ostream, streambuf, xloctime, yvals.h Enable new breaking CRT changes that have been waiting for next LKG update under _CRT_NEW_STL_DROP. This is only going into the nextVCLKG branch for now. These edits change the size of some types exported from msvcp70.dll, so they can only happen at LKG updates. ----------------------------------------------------------------- Mon 05-Feb-01 (PhilipLu) crtw32\h\stdarg.h libw32\include\stdarg.h libw32\inc64\stdarg.h VS7#201535 Fix va_start(ap,v) for C++, where it is incorrect to use &v, since v may be an instance of a class that defines an operator&. ----------------------------------------------------------------- Thu 18-Jan-01 (PhilipLu) libw32\inc64\xlocale, xstring Forgot to update the relinc headers for the previous checkin. ----------------------------------------------------------------- Tue 16-Jan-01 (PhilipLu) crtw32\stdcpp64\strstrea.cpp crtw32\stdhpp64\xlocale, xstring IA64 Sys CRT buildfix. Add casts to shut up new frontend warning, same as was done for the IA64 VC CRT on Friday. ----------------------------------------------------------------- Fri 12-Jan-01 (PhilipLu) crtw32\tools\win32\newline.sed Tweak sed script so it works for sed V1.08 used on x86 and V2.05 used on IA64. crtw32\stdcpp\strstrea.cpp IA64 rolling build fix. Add (int) cast to shut up new frontend warning. ----------------------------------------------------------------- Thu 04-Jan-01 (GautamB) crtw32\h\stdlib.h crtw32\misc\rotl.h, rotr.h, abs.h makefile.inc Added 64 bit intrinsics _abs64, _rtol64, _rotr64 etc. also added __byte_swap intrinsic functions. libw32\msvcrt.rc, msvcirt.rc, msvcprt.rc, msvcrt40.rc, syscrt.rc, sysirt.rc, sysprt.rc, syscrt64.rc, sysirt64.rc, sysprt64.rc Copyright changes to match the product. ----------------------------------------------------------------- Thu 15-Dec-00 (PhilipLu) <<< 212 files not worth listing individually >>> Copyright update part 3. Update P.J. Plauger's copyrights to 2001, with his approval. ----------------------------------------------------------------- Mon 11-Dec-00 (PhilipLu) crtw32\h\stdio.h crtw32\stdio\tempnam.c libw32\include\stdio.h libw32\inc64\stdio.h VS7#5416 Fix comments about L_tmpnam in stdio.h, and fix double-free bug in _tempnam() I noticed while investigating this bug. crtw32\h\crtdbg.h libw32\include\crtdbg.h libw32\inc64\crtdbg.h VS7#166572 The non-_DEBUG macro definitions of _CrtSetReportHook, _CrtSetReportFile, _CrtSetAllocHook, and _CrtSetDumpClient should be typed the same as the _DEBUG function definitions. crtw32\h\tchar.h libw32\include\tchar.h libw32\inc64\tchar.h VS7#180102 Fix _strnextc for chars >= 0x80. crtw32\h\cmacros.inc crtw32\tools\fixcopyright.pl [NEW] fpw32\conv\cfout.c, constpow.c, cvt.c fpw32\inc\i386\cmacros.inc, elem87.inc, mathmac.inc, os2supp.inc fpw32\tran\bessel.c, hypot.c fpw32\tran\i386\87cdisp.asm, 87csqrt.asm, 87ctran.asm, 87ctrig.asm, 87ctriga.asm, 87ctrigh.asm, 87disp.asm, 87fmod.asm, 87sqrt.asm, 87tran.asm, 87trig.asm, 87triga.asm, 87trigh.asm, acos.asm, adj_fdiv.asm, asin.asm, atan.asm, common.asm, cos.asm, fpctrl.c, frnd.c, ftol.asm, ieee.c, ieee87.c, ldsplit.asm, log.asm, log10.asm, pow.asm, sin.asm, sqrt.asm, tan.asm, trig.asm, triga.asm, xmmi_types.h fpw32\tran\ia64\fpctrl.c, ieee.c libw32\msvcrt40.rc Copyright update part 1. In preparation for updating copyright text from 2000 to 2001, check in a perl script which updates the copyrights and outputs warnings for files where the copyright does not have the proper form. Fix all those warnings, so the script runs warning-clean. <<< 1,218 files not worth listing individually >>> Copyright update part 2. Update copyrights to run up to 2001. ----------------------------------------------------------------- Sun 10-Dec-00 (PhilipLu) crtw32\dllstuff\crtexe.c crtw32\startup\crt0.c VS7#167293 Tighten up the check for a managed EXE in case it ever sees a PE+ on x86 or PE on IA64, or an image without a COM Descriptor directory entry. crtw32\h\stdio.h libw32\include\stdio.h libw32\inc64\stdio.h VS7#122990 Define _FPOSOFF for _POSIX_ so C++ I/O Streams can be compiled. ----------------------------------------------------------------- Fri 08-Dec-00 (PhilipLu) crtw32\stdhpp\yvals.h libw32\include\yvals.h Turn off _GLOBAL_USING temporarily. Turning it on back on Wednesday, to wrap the C library in namespace std has triggered bugs in the C++ compiler frontend (VS7#190308, 190674). This will be reenabled once the frontend is fixed. crtw32\h\malloc.h libw32\include\malloc.h libw32\inc64\malloc.h Fix the _POSIX_ (NT) build by moving prototype for _resetstkoflw out from under #ifndef _POSIX_. ----------------------------------------------------------------- Thu 07-Dec-00 (PhilipLu) crtw32\stdcpp\xgetwctype.c Fix the 64-bit VC CRT build (missing cast from size_t -> int). ----------------------------------------------------------------- Wed 06-Dec-00 (PhilipLu) makefile.inc crtw32\stdcpp\lsources, sources.nt, xdateord.cpp, xgetwctype.c, xmath.h, xtowlower.c, xtowupper.c crtw32\stdhpp\algorithm, fstream, ios, iosfwd, memory, sstream, utility, vector, xcomplex, xhash, xlocinfo, xlocinfo.h, xloctime, xmemory, xutility, yvals.h libw32\include\algorithm, fstream, ios, iosfwd, memory, sstream, utility, vector, xcomplex, xhash, xlocinfo, xlocinfo.h, xloctime, xmath.h, xmemory, xutility, yvals.h libw32\msvcrt.src, syscrt.src, syscrt64.src Integrate the 001118 drop of the Dinkumware C++ Library. Fixes bugs VS7#149387, 155323, and 182248. Also contains a fix for VS7#161213, but that can't be turned on until an LKG update. Also contains a start on the fixes for VS7#150517 and 157130. Also turning on _GLOBAL_USING in yvals.h, so VS7#5292 is finally fixed, with the C library properly wrapped in the std namespace. This can be done now that the Beta 1 C++ compiler has been promoted to the LKG toolset. crtw32\stdcpp\cerr.cpp, cin.cpp, clog.cpp, cout.cpp, delaop2.cpp, delop2.cpp, fiopen.cpp, instances.cpp, iomanip.cpp, ios.cpp, iosptrs.cpp, iostream.cpp, locale.cpp, locale0.cpp, newaop.cpp, newaop2.cpp, newop2.cpp, nomemory.cpp, nothrow.cpp, raisehan.cpp, stdhndlr.cpp, stdthrow.cpp, string.cpp, strstrea.cpp, uncaught.cpp, wcerr.cpp, wcin.cpp, wclog.cpp, wcout.cpp, wctrans.c, wctype.c, wiostrea.cpp, wlocale.cpp, xcosh.c, xdnorm.c, xdscale.c, xdtest.c, xexp.c, xfcosh.c, xfdnorm.c, xfdscale.c, xfdtest.c, xferaise.c, xfexp.c, xfsinh.c, xfvalues.c, xlcosh.c, xldnorm.c, xldscale.c, xldtest.c, xlexp.c, xlocale.cpp, xlock.cpp, xlpoly.c, xlsinh.c, xlvalues.c, xmtx.c, xmtx.h, xmutex.cpp, xpoly.c, xsinh.c, xstod.c, xvalues.c crtw32\stdhpp\bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, functional, hash_map, hash_set, iomanip, iostream, iso646.h, istream, iterator, limits, list, locale, map, new, numeric, ostream, queue, set, stack, stdexcept, stl.h, streambuf, string, strstream, valarray, xiosbase, xlocale, xlocmes, xlocmon, xlocnum, xstddef, xstring, xtree, ymath.h libw32\include\bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, functional, hash_map, hash_set, iomanip, iostream, iso646.h, istream, iterator, limits, list, locale, map, new, numeric, ostream, queue, set, stack, stdexcept, stl.h, streambuf, string, strstream, valarray, xiosbase, xlocale, xlocmes, xlocmon, xlocnum, xstddef, xstring, xtree, ymath.h Dinkumware files unchanged by the 001118 drop except for a change in the version comment from V3.06:0009 to V3.09:0009 ----------------------------------------------------------------- Tue 05-Dec-00 (PhilipLu) doc\copysrc.bat srcrel\external.mkf, nmktobat.c, pd-b [RENAME] srcrel\bldwin95.bat -> srcrel\bldwin9x.bat VS7#178683 Rename bldwin95.bat to bldwin9x.bat, since VS won't be supporting Win95 any longer. Also renamed some references to Win95 to Win9x instead. srcrel\makefile Minor cleanup - hide the rule to create srcrel\pd-b under !if 0. This file is always hand-edited nowadays, not generated, and it was getting overwritten whenever the timestamp for pd-exe was newer than that for pd-b (as in a newly enlisted project with pd-b then copied from elsewhere). crtw32\h\wchar.h libw32\include\wchar.h libw32\inc64\wchar.h VS7#186936 The inline definition of mbsinit() in wchar.h was a stub that just returned 1. Changed that to the proper definition, which is just a simple (p == NULL || *p == 0). ----------------------------------------------------------------- Mon 04-Dec-00 (PhilipLu) [NEW] crtw32\stdcpp\xdateord.cpp, xgetwctype.c, xtowlower.c, xtowupper.c doc\copysrc.bat srcrel\pd-b Check in dummy placeholders for new files that will be required for the next Dinkumware integration. This is to meet a 12/8/00 deadline for entering new files into FLDB for the VS7 setup. ----------------------------------------------------------------- Wed 29-Nov-00 (Gautamb) Delete crtw32\mbstring\i386\mbscat.asm crtw32\mbstring\mbscat.c mbsdup.c Edit makefile makefile.inc doc\copysrc.bat srcrel\external.mkf objects.mkf pd-b crtw32\string\stricmp.c stricoll.c crtw32\mbstring\sources.nt lsources libw32\msvcrt.src syscrt.src syscrt64.src VS7#100359 Added an alias lib for duplicate functions with same code. ----------------------------------------------------------------- Tue 28-Nov-00 (Gautamb) crtw32\stdio\input.c VS7#162114, 167304. Bug fix for use of uninitialized variable and for wscanf crashing due to low stack. ----------------------------------------------------------------- Mon 27-Nov-00 (PhilipLu) crtw32\stdhpp\istream, xlocale, xlocnum, xstring libw32\include\istream, xlocale, xlocnum, xstring Buildfix for IA64 VC CRT. Add casts to silence warnings about 64 bit to 32 bit truncations. fpw32\tran\ia64\acos.s, acosf.s, asin.s, asinf.s VS7#186484 LIBM v5.4 turned off exceptions on errors in acos, acosf, asin, and asinf. Turn the exceptions back on. fpw32\tran\lsources, sources.nt srcrel\pd-b [DELETED:] fpw32\tran\ia64\em_types.h, emfloat.s, remainder.s, remainderf.s, scalb.s, scalbf.s Get rid of more IA64 LIBM files that are unneeded. Files em_types.h and emfloat.s are old _fpieee_flt support files that are no longer needed. The remainder and scalb files are for LIBM v5.4 code that we don't have on the x86 side and thus don't currently want for IA64. fpw32\tran\ia64\isnan.s, isnanf.s, logb.s, logbf.s fpw32\tran\ieeemisc.c Get the implementations of _isnan and _logb from the IA64 LIBM asm code instead of ieeemisc.c. Add an underscore prefix to the routine names in the LIBM .s files, since that's what we document and declare in the headers. ----------------------------------------------------------------- Fri 24-Nov-00 (PhilipLu) crtw32\h\conio.h, stdio.h, wchar.h crtw32\lowio\putwch.c crtw32\stdio\fputwc.c, fputwchr.c, output.c libw32\include\conio.h, stdio.h, wchar.h libw32\inc64\conio.h, stdio.h, wchar.h VS7#176345 putwchar appeared twice in wchar.h, once with a wint_t arg, once with wchar_t, leading to errors when compiling /Zc:wchar_t. On examination, it turns out that several functions were wrongly declared with wint_t args: fputwc, _fputwchar, putwc, putwchar, and _putwch. Switch all of them to take a wchar_t arg instead. ----------------------------------------------------------------- Wed 22-Nov-00 (PhilipLu) clean.cmd, cleanbld.cmd, makefile srcrel\clnsrcrel.bat, external.mkf, makefile, mkclnmkf.c, objects.mkf, pd-b Checking in changes to enable a native IA64-hosted CRT build. Currently, you still need to specify LLP64=1 in the environment. fpw32\tran\sources.nt fpw32\tran\ia64\acos.s, acosf.s, asin.s, asinf.s, atan.s, atan2.s, atan2f.s, atanf.s, ceil.s, ceilf.s, cosh.s, coshf.s, exp.s, expf.s, floor.s, floorf.s, fmod.s, fmodf.s, hypot.s, hypotf.s, ldexp.s, ldexpf.s, libm_atan2_reg.s, libm_error.c, libm_reduce.s, libm_tan.s, log.s, logb.s, logbf.s, logf.s, pow.s, powf.s, remainder.s, remainderf.s, scalb.s, scalbf.s, sincos.s, sincosf.s, sinh.s, sinhf.s, sqrt.s, sqrtf.s, tan.s, tanf.s srcrel\pd-b [DELETED:] fpw32\tran\ia64\asincosf.c, atan2f.c, atanf.c, ceilf.c, expf.c, fabsf.c, floorf.c, fmodf.c, fp80.s, fp80c.c, log10f.c, logf.c, powf.c, sincosf.c, sincoshf.c, sqrtf.c, tanf.c Update to IA64 LIBM v5.4 108 from Intel, dated 09/21. Also get rid of a bunch of tran\ia64\*.c files which should have been removed when we first switched from the C-based to asm-based LIBM. ----------------------------------------------------------------- Mon 20-Nov-00 (PhilipLu) crtw32\h\setjmp.h crtw32\misc\ia64\longjmp.s, setjmp.s, setjmpex.s libw32\include\setjmp.h libw32\inc64\setjmp.h Back out VS7#182574, so IA64 setjmp/longjmp once again will save/restore the FPSR. NT rethought its decision on this. [Added:] libw32\tools\ia64\aliasobj.exe, detab.exe, ifstrip.exe, pd.exe, striphdr.exe, tolwrupr.exe, trailing.exe, whackline.exe Add IA64 versions of tools needed for a native-hosted IA64 CRT build. ----------------------------------------------------------------- Fri 17-Nov-00 (PhilipLu) crtw32\misc\ia64\longjmp.s VS7#184669 The IA64 setjmp/longjmp change made on Monday for vs7#182574 can crash the OS and cause an immediate reboot without hitting the BSOD when using _setjmpex for safe longjmps. That's because a safe longjmp uses RtlUnwind2 to unwind and restore state back to the setjmp point, and the code in RtlUnwind2 still assumes that the jmp_buf holds a valid saved FPSR. Apparently, a bogus FPSR is enough to bring the machine down! Fixed by changing longjmp to save the ambient FPSR in the jmp_buf just before calling RtlUnwind2 in the safe longjmp path. ----------------------------------------------------------------- Mon 13-Nov-00 (PhilipLu) fpw32\tran\lsources, sources.nt fpw32\tran\ia64\modf.s, modff.s srcrel\pd-b VS7#180200 modff is declared in math.h but wasn't available. Rather than add an inline modff in math.h (which was removed for VS7#2515), I'm instead adding the Intel IA64 libm modf.s and modff.s. There are a number of libm routines which we don't make available, but for now, I'm just going to fix this particular pair. crtw32\h\setjmp.h crtw32\misc\ia64\longjmp.s, setjmp.s, setjmpex.s libw32\include\setjmp.h libw32\inc64\setjmp.h VS7#182574 Setjmp/longjmp on IA64 should not save/restore the FPSR any longer. That maintains compatibility with the other platforms. Also, rename unused fields in the IA64 _JUMP_BUFFER to Reserved[12]. crtw32\stdhpp64\fstream, streambuf, xiosbase libw32\inc64\fstream, streambuf, xiosbase VS7#181246 Clean up some /Wp64 warnings in the old stdhpp64 headers for NT. Introduce casts to silence the warnings. ----------------------------------------------------------------- Mon 06-Nov-00 (PhilipLu) srcrel\pd-b Get rid of references to MIPS and PPC files that have already been deleted from the source tree. crtw32\misc\initnum.c, setlocal.c VS7#181380 Fix pageheap-detected use-after-free bugs in LC_MONETARY and LC_NUMERIC setlocale data when a thread exits and removes the last reference to data which is still pointed to by the global locale. We can only free data with a zero refcount if that data is not also in the global locale. crtw32\convert\atox.c Trivial checkin which avoids a warning in the _NTSUBSET_ build of the CRT. ----------------------------------------------------------------- Fri 03-Nov-00 (PhilipLu) crtw32\stdhpp\xlocnum libw32\include\xlocnum Bandaid build breakage fix for VS7#170063, which is now appearing in the 32-bit /Wp64 build after a recent compiler change. We're warning on a cast from unsigned long to void *, since that's not /Wp64 clean. Change it to 'ptr = (void*)(uintptr_t)ulval;' to silence the warning. This doesn't fix the bug, though - the code should be using unsigned __int64 on Win64. Leave that for later. ----------------------------------------------------------------- Wed 25-Oct-00 (PhilipLu) crtw32\string\ia64\memcpy.s VS7#178057 Remove superfluous reference to exit(), which triggers undesired dependency on other CRT functions. ----------------------------------------------------------------- Mon 23-Oct-00 (PhilipLu) crtw32\string\ia64\strcmp.s VS7#176998 IA64 strcmp should compare unsigned chars, not signed, for compatibility with x86. Also for x86 compatibility, canonicalize the result to be -1, 0, +1 instead of just <0, 0, >0. ----------------------------------------------------------------- Sun 22-Oct-00 (PhilipLu) srcrel\pd-b [Deleted:] crtw32\crt.mkf, infer.mkf, oldnames.mkf crtw32\convert\convert.mkf crtw32\dos\dos.mkf crtw32\eh\eh.mkf crtw32\exec\exec.mkf crtw32\heap\heap.mkf crtw32\iostream\iostream.mkf crtw32\linkopts\linkopts.mkf crtw32\lowio\lowio.mkf crtw32\mbstring\mbstring.mkf crtw32\misc\misc.mkf crtw32\startup\startup.mkf crtw32\stdio\stdio.mkf crtw32\string\string.mkf crtw32\time\time.mkf fpw32\fp.mkf, infer.mkf fpw32\conv\conv.mkf fpw32\tran\tran.mkf libw32\buildall.cmd, makefile Build system cleanup - get rid of old make files that haven't been used in years. ----------------------------------------------------------------- Thu 19-Oct-00 (PhilipLu) crtw32\lowio\ioinit.c VS7#176001 Avoid alignment fault when mixing printf and wprintf to stdout when stdout not available in a GUI or server app, by forcing __badioinfo to text mode. ----------------------------------------------------------------- Tue 17-Oct-00 (PhilipLu) crtw32\lowio\pipe.c VS7#173087 Remove potential deadlock on race condition in _alloc_osfhnd called from _pipe. Do not call _alloc_osfhnd a second time without first unlocking the _ioinfo returned by the first call. Also, don't initialize the returned handle values until we know the operation succeeded. ----------------------------------------------------------------- Mon 16-Oct-00 (PhilipLu) crtw32\string\lsources crtw32\string\ia64\memcpy.s, memset.s, strcat.s, strcmp.s, strlen.s srcrel\objects.mkf, pd-b makefile.inc VS7#173518 Pick up optimized IA64 mem/str routines from Intel. These asm routines get built in the pre-build and copied over to the post-build. ----------------------------------------------------------------- Thu 12-Oct-00 (PhilipLu) crtw32\misc\initmon.c, initnum.c VS7#169596 Don't call fix_grouping when initializing monetary locale info if any error is detected, since the mon_grouping member may not be valid. ----------------------------------------------------------------- Thu 12-Oct-00 (GautamB) crtw32\string\wcsxfrm.c VS7#164393, changed wcsxfrm.c to be similar to strxfrm.c which fixes the bug. crtw32\misc\setlocale.c VS7#159775, changed setlocale_set_cat to return if this locale is same as current locale for the same category. crtw32\convert\wtof.c VS7#166022, Fixed buffer overrun. crtw32\h\useoldio.h VS7#172378, added comments for the _OLD_IOSTREAMS_ARE_DEPRECATED ----------------------------------------------------------------- Wed 11-Oct-00 (PhilipLu) crtw32\string\lsources srcrel\objects.mkf, pd-b makefile.inc VS7#101018 Fix IA64 build so memcpy.c and memset.c are built. Since early August, the IA64 build has been importing memcpy and memset from kernel32 instead of including them from the CRT sources. For now, don't use the IA64 asm routines under crtw32\string\ia64. crtw32\h\tchar.h libw32\include\tchar.h libw32\inc64\tchar.h VS7#166192 Add missing _MBCS mapping for _tcserror. ----------------------------------------------------------------- Wed 27-Sep-00 (PhilipLu) makefile, makefile.inc, makefile.sub Get rid of references to dead platforms MIPS and PPC. Hide references to ALPHA and ALPHA64 platforms so they get stripped out of released versions of makefiles. crtw32\convert\strtoq.c crtw32\heap\align.c crtw32\stdcpp64\xmbtowc.c Fix format of file header comments so revision history is properly cleansed by build process. srcrel\makefile Need to cleanse several files from stdcpp/stdcpp64 instead of just copying them, so the revision history is removed. ----------------------------------------------------------------- Tue 26-Sep-00 (GautamB) crtw32\lowio\putch.c libw32\msvcrt.rc, msvcprt.rc, msvcirt.rc, syscrt.rc, sysprt.rc, sysiprt.rc, syscrt64.rc, sysprt64.src, sysirt64.rc, msvcrt40.rc srcrel\_sample_.rc crtw32\misc\winsig.c, winxfltr.c crtw32\direct\seterrm,c crtw32\string\memcpy.c, memmove.c, i386\memcpy.asm VS7#116063 Changed the copyright info. ----------------------------------------------------------------- Tue 26-Sep-00 (PhilipLu) crtw32\h\crtdbg.h libw32\include\crtdbg.h libw32\inc64\crtdbg.h VS7#166894 Fix _ASSERT* and _RPT* macros so they compile /W4-clean. Replaced the do{...}while(0) construct with an expression-form instead, much like the one used by assert.h. This only works when _CrtDebugBreak() is a function call, so the old form is still used when compiling with pre-VC7 x86 compilers, where _CrtDebugBreak turns into inline asm. libw32\msvcrt.src, syscrt.src, syscrt64.src VS7#45611 Export _control87 from the IA64 CRT DLL, since it's already available for IA64 in the static models. Not sure it makes sense to have _control87 instead of _controlfp for IA64, but this makes it easier to port existing code over. crtw32\startup\ia64\chkstk.s VS7#156660 Get rid of the version of _chkstk that uses B6 as the link reg. Only the B7 version should be available. crtw32\eh\ia64\handlers.s crtw32\startup\ia64\chkstk.s VS7#166899 Use Soft2.6 unwind info (version 3) instead of the old version 2 info that was there. Also, stop hardcoding the unwind info, and use the IAS directives that generate the table automatically. ----------------------------------------------------------------- Mon 25-Sep-00 (PhilipLu) makefile.inc srcrel\object.mkf Add undname.obj to the list of object files no longer needed for the user CRT rebuild. makefile Change the default value of VCTOOLS during the user CRT rebuild from \Program Files\Microsoft Visual Studio 7\Vc7 to \Program Files\Microsoft Visual Studio.NET\Vc7 ----------------------------------------------------------------- Mon 25-Sep-00 (PhilipLu) makefile VS7#160801 Standalone version of the RTC support, runtmchk.lib, was not being built. Drop the release DLL prebuild rtc.lib as runtmchk.lib, since that version is built /Z7 with no dependency on any CRT pdbs. makefile, makefile.inc libw32\msvcrt.src, syscrt.src, syscrt64.src srcrel\objects.mkf Replace 184 object files in the crt\src\{platform}\*_lib dirs with two libs, eh.lib and rtc.lib, in each of the 6 CRT models. The build was needlessly copying all the components in eh.lib and rtc.lib over from the prebuild to the postbuild, and then dropping them out for the user CRT rebuild. Instead, just copy those two libs from the prebuild, for a net reduction of 172 files that get shipped. makefile fpw32\tran\lsources srcrel\pd-b Get rid of all warnings from IA64 build. Tcmap build was using mbslen.obj twice instead of mbslen.obj and mbslen.obf. Tran lsources specified ldexp.obj and tanh.obj twice each. Pd-b specified tanhf.c twice. ----------------------------------------------------------------- Thu 21-Sep-00 (PhilipLu) crtw32\misc\seccinit.c VS7#165188 The /GS security cookie initialization was too non-random. We now combine a number of sources of randomness, especially the high frequency counter returned by QueryPerformanceCounter. crtw32\stdhpp\list, xtree libw32\include\list, xtree VS7#5312 The node pointers in std::list and std::_Tree no longer need to be typed void*, since the compiler properly delays instantiating template class members until they are used, allowing us to implicitly instantiate std::allocator on an incomplete type. The pointers are now typed with the actual type, allowing full dumping of lists and trees in the debugger. crtw32\h\stdarg.h libw32\include\stdarg.h libw32\inc64\stdarg.h VS7#103357 The IA64 definition of va_start for C++ needed changes coordinated with the backend and frontend. ----------------------------------------------------------------- Mon 18-Sep-00 (PhilipLu) crtw32\stdcpp\xlock.cpp crtw32\stdhpp\istream, ostream, streambuf, yvals.h libw32\include\istream, ostream, streambuf, yvals.h VS7#163945 The 09/15/00 Dinkumware checkin fails to maintain compatibility between old libs/headers and the new dll. The problem is the introduction of multiple locks, especially the per-stream locks. That caused everything in the ostream, istream, and streambuf heirarchies to get larger. Changing the sizes of types exported from the C++ DLL can only happen at LKG toolset updates, since that is a rebuild-everything kind of change. Backed out the multiple locks. Everything now uses a single lock, as it did before Friday's checkin. The new code is still there, under #if _CRT_STL_NEW_DROP, ready to be reenabled at the next LKG update. crtw32\tools\win32\relinc.if libw32\include\cctype, cerrno, clocale, cmath, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype Friday's drop did not turn on _GLOBAL_USING, as I stated below. All the wrapping of C functions in the std namespace was being stripped out of the headers by relinc. Stop stripping it out, but turn _GLOBAL_USING off for now, until a compiler bug I found, vs7#163702, gets fixed. ----------------------------------------------------------------- Sun 17-Sep-00 (PhilipLu) crtw32\misc\crtmbox.c VS7#123291 __crtMessageBoxA needs to set MB_SERVICE_NOTIFICATION on WinNT in non-interactive processes like services, so the message box is visible on the console (and the program doesn't hang). crtw32\misc\seccinit.c, seccook.c VS7#162619 Initialization of the /GS buffer overrun global security must happen earlier. Also, make sure the cookie is never zero, so a buffer overrun setting the local cookie and return address to the same value will always be detected. ----------------------------------------------------------------- Fri 15-Sep-00 (GautamB) crtw32\stdio\sscanf.c swscanf.c lsources snscanf.c snwscanf.c crtw32\h\stdio.h wchar.h tchar.h srcrel\pd-b libw32\msvcrt.src, syscrt.src, sys64crt.src VS7#103628 Added new functions _snscanf and _snwscanf ----------------------------------------------------------------- Fri 15-Sep-00 (PhilipLu) makefile.inc crtw32\stdcpp\cerr.cpp, cin.cpp, clog.cpp, cout.cpp, delaop2.cpp, delop2.cpp, fiopen.cpp, instances.cpp, iomanip.cpp, ios.cpp, iosptrs.cpp, iostream.cpp, locale.cpp, locale0.cpp, lsources, newaop.cpp, newaop2.cpp, newop2.cpp, nomemory.cpp, nothrow.cpp, raisehan.cpp, sources.nt, stdhndlr.cpp, stdthrow.cpp, string.cpp, strstrea.cpp, uncaught.cpp, wcerr.cpp, wcin.cpp, wclog.cpp, wcout.cpp, wctrans.c, wctype.c, wiostrea.cpp, wlocale.cpp, xcosh.c, xdnorm.c, xdscale.c, xdtest.c, xexp.c, xfcosh.c, xfdnorm.c, xfdscale.c, xfdtest.c, xferaise.c, xfexp.c, xfsinh.c, xfvalues.c, xlcosh.c, xldnorm.c, xldscale.c, xldtest.c, xlexp.c, xlocale.cpp, xlock.cpp, xlpoly.c, xlsinh.c, xlvalues.c, xmath.h, xmtx.c [NEW], xmtx.h [NEW], xmutex.cpp [NEW], xpoly.c, xsinh.c, xstod.c, xvalues.c crtw32\stdhpp\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, stl.h, streambuf, string, strstream, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h doc\copysrc.bat libw32\include\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, stl.h, streambuf, string, strstream, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmath.h, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h srcrel\pd-b Integrate the 000718 drop of Dinkumware C++ Library. It implements a more graceful locking mechanism. Instead of a single critical section for all the C++ Library use, there are now individual locks for each I/O stream, as well as separate locks for locale and global stream data structures. I'm also turning on _GLOBAL_USING, so the C headers are properly wrapped in the std namespace. This can be done now that compiler bugs preventing this have been fixed. This fixes VS7#5292. ----------------------------------------------------------------- Thu 07-Sep-00 (PhilipLu) crtw32\h\wchar.h crtw32\stdhpp\wctype.h crtw32\stdhpp64\wctype.h libw32\include\wchar.h, wctype.h libw32\inc64\wchar.h, wctype.h More for VS7#147943. Buildfix for IA64 syscrt build, and add _wctype and const changes in a few headers missed before. ----------------------------------------------------------------- Thu 07-Sep-00 (PhilipLu) crtw32\misc\getqloc.c VS7#81673 For geopolitical correctness, refer to "country/region", not "country", in a comment. Also, move all the data tables to .rdata. crtw32\startup\tlssup.c VS7#154062 _tls_start and _tls_end only need to be 1 byte long, not sizeof(void*). crtw32\eh\rtti.cpp, stdexcpt.cpp, typinfo.cpp, typname.cpp crtw32\time\strftime.c VS7#159463 Get rid of /lib:libcp{mt}[d] or /lib:msvcprt[d] directives from main CRT objects that include stdhpp headers. crtw32\h\internal.h, mbstring.h, stdarg.h, stdio.h, wchar.h libw32\include\mbstring.h, stdarg.h, stdio.h, wchar.h libw32\inc64\mbstring.h, stdarg.h, stdio.h, wchar.h VS7#159777 Remove _M_CEE-specific definition of va_list. crtw32\startup\crt0dat.c Remove obsolete reference to Mac version of CRT. crtw32\stdio\ftell.c Reindent and reformat file for easier reading. ----------------------------------------------------------------- Thu 07-Sep-00 (GautamB) fpw32\tran\ia64\fmod.s, fmodf.s VS7#126122. Fixed the problem with matherr getting wrong arguments. ----------------------------------------------------------------- Thu 07-Sep-00 (GautamB) crtw32\dllstuff\crtlib.c crtw32\h\mtdll.h, setlocal.h, wchar.h, ctype.h crtw32\misc\initctype.c, ctype.c, setlocal.c crtw32\convert\iswctype.c VS7#147943. pwctype was a locale dependent wctype table. Which should not ever be local dependent. removed all the wctype and pwctype from thread local data, and made wctype as first 256 unicode character type tabel ----------------------------------------------------------------- Wed 06-Sep-00 (GautamB) crtw32\startup\stdargv.c VS7#147806. there was problem with parsing commandline. e.g. "c:\test\"foo.exe would result in two arguments arg0 c:\test\ and arg1 as foo.exe. fixed ----------------------------------------------------------------- Tue 05-Sep-00 (GautamB) fpw32\conv\cfout.c, cvt.c crtw32\h\fltintrn.h crtw32\convert\fcvt.c, gcvt.c VS7#156300. Fixed the problem with printf generating overflow or underflow floating point exception when used to print doubles.The problem was exposed when doubles like 4.94e-324 were used. This was due to the functions being passed double as agrument and instructions like fld would generate fp underflow exception. ----------------------------------------------------------------- Tue 29-Aug-00 (PhilipLu) crtw32\h\stdlib.h crtw32\misc\seccook.c, secfail.c, seclocf.c libw32\msvcrt.src, syscrt.src libw32\include\stdlib.h libw32\inc64\stdlib.h Change the /GS support implementation so it can be easily extended in the future. The error handler is now called __security_error_handler, and it now takes a code for the type of failure (only _SECERR_BUFFER_OVERRUN is defined for now) and a void* pointer to an extra data packet (unused for now). Also add a documented function for registering a new failure handler. ----------------------------------------------------------------- Wed 30-Aug-00 (GautamB) fpw32\tran\ia64\filter.c VS7#154760 fixed problem with inexact exception thrown by fcvt instruction. ----------------------------------------------------------------- Tue 29-Aug-00 (PhilipLu) crtw32\eh\rtti.cpp VS7#156255 - IA64 bug: dynamic_cast<> and typeid need to use the image base for the object's _RTTICompleteObjectLocator, not the return address of the call to __RTDynamicCast or __RTtypeid. cleanbld.cmd Make the DELOBJ option clean the generated .def files, so setting BLD_TESTCRT=1 and running a DELOBJ build will work. ----------------------------------------------------------------- Fri 25-Aug-00 (PhilipLu) crtw32\stdhpp64\xtree libw32\inc64\xtree VS7#152018 Propogate fix for VC6SP5 bugfix VS98#66191 to the VC6-based 64-bit STL headers. The 10-Jul-00 change to xtree removed too many locks, leaving std::_Tree::erase open to a race condition bug that was reported by the NT group. crtw32\stdhpp64\fstream libw32\inc64\fstream VS7#155221 Propogate fix for VC6SP6 bugfix VS98#61009. The routine std::basic_filebuf::overflow will fail when outputting DBCS, because the size and count args to an fwrite call were reversed. crtw32\h\dbgint.h VS7#153113 On IA64, the debug CRT heap was not returning 16 byte aligned memory, even though the Win32 Heap routines do, because the debug preheader struct _CrtMemBlockHeader wasn't set up for 64-bits. The struct's size wasn't a multiple of 16 bytes, which is needed to maintain alignment. Swapping the order of two fields reduced the size from 56 to 48 bytes, and eliminated gaps between fields. This was only done for IA64, to avoid breaking any x86 client code that looked in this struct (in an undocumented manner - this is done by Visual Studio). makefile The linker no longer supports -debugtype:both, so switch to -debugtype:cv for IA64, the same as all the other platforms. ----------------------------------------------------------------- Thu 24-Aug-00 (GautamB) crtw32\eh\frame.cpp Fixed Problem with BuildCatchObject when called from __CxxExceptionFilter. ----------------------------------------------------------------- Thu 24-Aug-00 (PhilipLu) crtw32\eh\rtti.cpp VS7#154575 - dynamic_cast<> wasn't thread-safe on IA64. ----------------------------------------------------------------- Wed 24-Aug-00 (KFrei) crtw32\rtc\error.cpp crtw32\h\rtcapi.h libw32\include\rtcapi.h VS7#153812, 153067, 154281. Initialization was messed up, and _RTC_IsEnabled is dead (so I removed it from the headers) ----------------------------------------------------------------- Wed 23-Aug-00 (GautamB) fpw32\tran\ia64\pow.s, atan.s VS7#109539. The new drop from intel fixes the problem with pow() and atan() fpw32\tran\ia64\libm_error.c VS7#153477 Removed calls to fputs from libm_error support. ----------------------------------------------------------------- Tue 22-Aug-00 (GautamB) crtw32\setlocal.c vs7#151944. clike stuff was not working as it should. FIxed it. crtw32\dllstuff\crtlib.c crtw32\startup\dllcrt0.c Fixed possible leak of ptd in _CRT_INIT functions. crtw32\string\stricmp VS7#100359. strcmpi was just a wrapper function around stricmp. To increase performance, selfincluded the file so that strcmpi can use the same code again. ----------------------------------------------------------------- Tue 22-Aug-00 (GautamB) crtw32\h\awint.h crtw32\misc\a_str.c, a_cmp.c, a_map.c, w_cmp.c, w_str.c, w_map.c Addfile crtw32\misc\convrtcp.c VS7#5671. All the crt implementation of Win String APIs did not work with any code page other than Ansi code page. Fixed this by converting to ansi codepage and then calling WinAPI. ----------------------------------------------------------------- Fri 17-Aug-00 (GautamB) crtw32\h\ctype.h crtw32\misc\wcstol.c, wchtodig.c VS7#152362 Fixed MACRO __ascii_iswalpha and __ascii_iswdigit Addfile wchtodig.c which contains new api wchtodig() ----------------------------------------------------------------- Thu 17-Aug-00 (PhilipLu) crtw32\stdhpp\xhash libw32\include\xhash VS7#151623 Relational comparisons for hash_maps were comparing only the keys, not the entire pair. Same bug as 97336, this time for hash_map instead of map. ----------------------------------------------------------------- Wed 16-Aug-00 (PhilipLu) doc\copysrc.bat VS7#150831 (and 5437, reopened) Copysrc.bat needs to copy the makefiles from the CRT build using xcopy /r, so that read-only files get replaced. The build lab wasn't picking up the latest versions of these files because of this. Also added a few recent additional files that were missing from the script, and expanded the usage comments. ----------------------------------------------------------------- Wed 09-Aug-00 (PhilipLu) crtw32\misc\seccook.c, secfail.c VS7#147203 /GS failed with the debug CRTs because __security_check_cookie wasn't preserving EAX. Rewrite as __declspec(naked) inline asm so /Od builds won't trash EAX. Also changed code so in case of a failure, control can never return to the user code (barring some sort of longjmp in a user-installed handler). Instead, just ExitProcess if a reporting handler returns. ----------------------------------------------------------------- Tue 08-Aug-00 (GautamB) crtw32\string\lsources srcrel\object.mkf, pd-b makefile.inc Backed out the changes for new string routines. ----------------------------------------------------------------- Tue 08-Aug-00 (GautamB) crtw32\stdhpp\complex fstream iosfwd istream locale ostream sstream streambuf string xlocale xlocmes xlocmon xlocnum xloctime xmemory xstring yvals.h libw32\include\limits, yvals.h VS7#146241 Changed the _NATIVE_CRTBLD_WCHAR_T to _CRTBLD_NATIVE_WCHAR_T for the all the headers except limits. And instead used _CRTBLD_NATIVE_WCHAR_T include unsigned short version of wchar_t while building CRT with wchar_t as native data type. ----------------------------------------------------------------- Tue 08-Aug-00 (PhilipLu) crtw32\misc\qsort.c VS7#123134 The fix for vs7#99674 would cause the compare function to be called with the same pointer passed for both arguments, which triggered asserts in some user code that wasn't expecting self-compares (even though that's fine by the standard). In the interest of backwards-compatibility, tweak qsort() so it will never issue a self-compare. Also uncovered a couple more minor performance wins, so the self-compare avoidance doesn't slow down qsort(). crtw32\h\winheap.h Make sure __active_heap isn't available for _WIN64 builds. ----------------------------------------------------------------- Sun 06-Aug-00 (PhilipLu) crtw32\dllstuff\crtexe.c crtw32\startup\crt0.c, crt0dat.c VS7#117746 Replace references to COM+ or complus with "managed." fpw32\tran\i386\filter_simd.c, xmmi_types.h Placeholder fix for new DAZ status bit in C-step Pentium 4 - don't handle WNI exceptions if DAZ bit set. Last minute change from Intel for VC6PP, propogated to VC7. crtw32\heap\calloc.c, expand.c, malloc.c, realloc.c VS7#131005 When using the system heap, don't round up allocations to paragraph-multiples, since that defeats pageheap overrun detection. Keep doing the rounding for the V5 and V6 heaps (even when the block is too big for the small block heap), so we don't modify the behavior there and potentially break existing (buggy) apps. crtw32\startup\thread.c, threadex.c VS7#118688 Detect and give errno EINVAL on NULL threadproc in _beginthread and _beginthreadex. ----------------------------------------------------------------- Tue 01-Aug-00 (Gautamb) crtw32\string\wcsstr.c VS7#145615 Fix for wcsstr("", ""). crtw32\convert\wcstol.c, wcstoq.c VS7#5679, Added multilingual support for wcstol(). ----------------------------------------------------------------- Tue 01-Aug-00 (Gautamb) makefile, makefile.inc srcrel\makefile, object.mkf, pd-b crtw32\string\lsources, sources.nt Addfile crtw32\string\ia64\memcpy.s, memset.s, strcmp.s, strcpy.s, strcat.s, strlen.s Added intels drop for string routines ----------------------------------------------------------------- Wed 26-Jul-00 (Gautamb) crtw32\eh\frame.cpp VS7#124342, Fixed the multiple destruction of exception object. ----------------------------------------------------------------- Thu 20-Jul-00 (Gautamb) crtw32\h\conio.h, stdio.h, wchar.h, ctypes.h, tchar.h crtw32\stdhpp\wctype.h Changed the typedef wchar_t wint_t to typedef unsigned short wint_t. This is useful when wchar_t is native type. ----------------------------------------------------------------- Thu 20-Jul-00 (PhilipLu) makefile Make sure the retail CRT DLLs are linked with /opt:icf to enable identical comdat folding. Chops about 50K off msvcp70.dll after the duplication of unsigned short and wchar_t specializations checked in on 7/17. crtw32\h\i386\dvec.h libw32\include\dvec.h VS7#127201 Iu16vec8 ctor with 8 args was wrong in this file from Intel. crtw32\misc\dbgheap.c VS7#129571 _CrtIsValidHeapPointer should only test that the debug heap block header can be read, not written. Testing that it is writeable would require taking the heap lock to avoid multi-threaded corruption, and is unnecessary. crtw32\stdhpp\yvals.h libw32\include\yvals.h VS7#126171 Add #define of _CPPLIB_VER so we can do conditional compilation based on version of the C++ Standard Library. Current version is 304. ----------------------------------------------------------------- Mon 17-Jul-00 (GautamB) crtw32\stdhpp\complex, fstream, ios, iosfwd, istream, limits, locale, ostream, sstream, streambuf, string, xlocale, xlocmes, xlocmon, xloctime, xmemory, xstring crtw32\stdcpp\instances.cpp, locale.cpp, lsources, wcerr.cpp, wcin.cpp, wclog.cpp, wcout.cpp, wiostrea.cpp libw32\include\iosfwd crtw32\tools\win32\relinc.if srcrel\pd-b makefile, makefile.inc Addfile: crtw32\ushcerr.cpp, ushcin.cpp, ushclog.cpp, ushcout.cpp, ushiostr.cpp VS7#123149 On compiling with -Zc:wchar_t, we would have replace all the entry points in the msvcp70.dll with wchar_t version. Now the problem was no programs compiling without -Zc:wchar_t would not be able to use this dll. Fixed this problem by including both wchar_t version and unsigned short versions of all the entrypoints. ----------------------------------------------------------------- Fri 14-Jul-00 (GautamB) crtw32\h\useoldio.h, wchar.h libw32\inc64\useoldio.h, wchar.h libw32\include\useoldio.h, wchar.h VS7#5709 Adding defination for memcpy and memmove in the inline function gave warning on PREFIX tools. move the definations out of the functions to solve the problem. VS7#127305 _OLD_IOSTREAMS_ARE_DEPRECATED warning was also given on IA64 which should not be there at this point. ----------------------------------------------------------------- Mon 10-Jul-00 (PhilipLu) crtw32\stdhpp64\xtree libw32\inc64\xtree Propogate VC6SP4 fix for vs98#56775 (deadlock in xtree) to the old Win64 headers. crtw32\tools\win32\relinc64.cmd, relinc64.sed [NEW] 64-bit release headers should not get _STATIC_CPPLIB change of Jul 6. This is a partial fix - "do_relinc 64" is still not doing exactly the right thing for wchar.h. ----------------------------------------------------------------- Mon 10-Jul-00 (PhilipLu) mkbld.cmd [NEW] Script to call cleanbld.cmd, save output in "build.log", and grep output for errors or warnings when done. srcrel\msvc40.if Silence cleansing-stage warnings about setjmp and _STATIC_CPPLIB. libw32\msvcprt.src Fix VC IA64 CRT build broken by Dinkumware 000524 integration. ----------------------------------------------------------------- Fri 07-Jul-00 (PhilipLu) makefile.inc crtw32\stdcpp\delaop2.cpp, delop2.cpp, fiopen.cpp, instances.cpp, locale.cpp, locale0.cpp, lsources, newaop.cpp, newaop2.cpp, sources.nt, xcosh.c, xdscale.c, xdtest.c, xexp.c, xfcosh.c, xfdscale.c, xfdtest.c, xferaise.c [NEW], xfexp.c, xfsinh.c, xfvalues.c, xlcosh.c, xldscale.c, xldtest.c, xlexp.c, xlsinh.c, xlvalues.c, xsinh.c, xvalues.c crtw32\stdhpp\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, fstream, hash_map, hash_set, ios, iosfwd, iso646.h, istream, iterator, limits, list, locale, map, memory, new, ostream, queue, set, sstream, stl.h, streambuf, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo.h, xlocnum, xmemory, xstring, xtree, xutility, ymath.h, yvals.h crtw32\tools\win32\relinc.if doc\copysrc.bat libw32\msvcprt.src libw32\include\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, fstream, hash_map, hash_set, ios, iosfwd, iso646.h, istream, iterator, limits, list, locale, map, memory, new, ostream, queue, set, sstream, stl.h, streambuf, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo.h, xlocnum, xmemory, xstring, xtree, xutility, ymath.h, yvals.h srcrel\pd-b Finish integrating 000524 drop of Dinkumware C++ Library. This fixes VS7 bugs 5294, 5311, 72100, 97336, 113256 This code checks in a number of changes currently under #ifdef. Code under _GLOBAL_USING and _HAS_MEMBER_TEMPLATES_REBIND is waiting for the next vcLKG compiler update before being enabled. The code under _HAS_TEMPLATE_PARTIAL_REORDERING is waiting for a potential compiler fix in the VC7 timeframe. If that doesn't happen, the code will have to stay disabled to avoid compiler errors (code is for optimization only, not correctness). I've also got code under _RETAIN_OLD_CRT_CODE that is there so that msvcp70.dll doesn't lose any exports. Once the next vcLKG update takes place, the _RETAIN_OLD_CRT_CODE sections can be removed. Finally, I've added _DEPRECATED (__declspec(deprecated)) to a number of locale-related functions from VC6 which are being retained for backwards compatibility but have been superceded by standard-conforming versions. ----------------------------------------------------------------- Wed 06-July-00 (GautamB) crtw32\h\wchar.h, internal.h crtw32\stdhpp\yvals.h, string, xloctime, xlocnum, xlocmon, xlocmes, xlocale, xcomplex, wctype.h, complex, fstream, ios, iosfwd, istream, locale, use_ansi.h, typeinfo, string, streambuf, sstream, ostream, locale, istream, iosfwd Changed the headers so as to be able to statically link to STL even when compiling with /MD option. ----------------------------------------------------------------- Wed 06-July-00 (GautamB) fpw32\tran\ia64 VS7#126252, VS7#126122, VS7#125822. The original libm_error_support used to set return values for domain errors which was not compatible with MS libm stuff (fixed). Also fixed the cases where matherr did not worked for float math functions. ----------------------------------------------------------------- Fri 23-Jun-00 (PhilipLu) crtw32\stdcpp\cerr.cpp, cin.cpp, clog.cpp, cout.cpp, delaop2.cpp, delop2.cpp, fiopen.cpp, instances.cpp, iomanip.cpp, ios.cpp, iosptrs.cpp, iostream.cpp, locale.cpp, locale0.cpp, newaop.cpp, newaop2.cpp, newop.cpp, newop2.cpp, nomemory.cpp, nothrow.cpp, raisehan.cpp, stdhndlr.cpp, stdthrow.cpp, string.cpp, strstrea.cpp, uncaught.cpp, wcerr.cpp, wcin.cpp, wclog.cpp, wcout.cpp, wctrans.c, wctype.c, wiostrea.cpp, wlocale.cpp, xcosh.c, xdnorm.c, xdscale.c, xdtest.c, xexp.c, xfcosh.c, xfdnorm.c, xfdscale.c, xfdtest.c, xfexp.c, xfsinh.c, xfvalues.c, xlcosh.c, xldnorm.c, xldscale.c, xldtest.c, xlexp.c, xlocale.cpp, xlpoly.c, xlsinh.c, xlvalues.c, xmath.h, xpoly.c, xsinh.c, xstod.c, xvalues.c crtw32\stdhpp\algorithm, bitset, complex, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, stl.h, streambuf, string, strstream, typeinfo, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h libw32\stdhpp\algorithm, bitset, complex, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, stl.h, streambuf, string, strstream, typeinfo, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmath.h, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h First step in integrating 000524 drop of Dinkumware C++ Library. Reformatting sources and renaming some variables to bring in line with the new drop, while not changing semantics at all (verified by doing binary compares of the compiled libraries). Done so I can cleanly compare the current sources against the new drop. ----------------------------------------------------------------- Wed 21-Jun-00 (PhilipLu) crtw32\stdhpp\iso646.h libw32\include\iso646.h VS7#23138 The names #defined in iso646.h are keywords in C++ under /Za only, so for /Ze, the defines should stay. crtw32\stdhpp\exception, typeinfo crtw32\stdhpp64\exception, typeinfo libw32\include\exception, typeinfo libw32\inc64\exception Remove obsolete references to _NTSDK in conditional definition of _CRTIMP. ----------------------------------------------------------------- Wed 21-Jun-00 (GautamB) Modified crtw32\eh\frame.cpp VS7#107054 Fixed differece in order of destruction depending on inlining. crtw32\heap\align.c crtw32\misc\dbgheap.c VS7#116389 Changed _aligned_realloc to mimic _realloc. fpw32\tran\fpexcept.c VS7#122777 Added _logb in the list of get_fname() so that matherr could be called for _logb. crtw32\h\useoldio.h Added #pragma deprecated(_OLD_IOSTREAMS_ARE_DEPRECATED) to generate warning for _OLD_IOSTREAMS_ARE_DEPRECATED. fpw32\tran\ia64\libm_error.c libm_support.h VS7#120653 Added _MS_ as new LIB_VARIABLE to support ms matherr handling. ----------------------------------------------------------------- Tue 20-Jun-00 (PhilipLu) crtw32\eh\hooks.cpp Improve stackwalk through terminate() or _inconsistency() by getting rid of unnecessary __try/__finally protection, since __try/__except already present. crtw32\mbstring\mbctype.c Reenable 6/3/00 fix for VS7#115987. Prevent reoccurence of VS7#116902 by getting rid of circular pprev/pnext linked list pointers in threadmbcinfo struct. Fix _POSIX_ problem that could fail to initialize fSystemSet. Fix minor performance issue in _setmbcp that would unnecessarily update __ptmbcinfo when setting codepage _MB_CP_OEM/_MP_CP_ANSI/_MB_CP_LOCALE that was already set. crtw32\startup\tidtable.c VS7#118174 _freeptd shouldn't free thread mbcinfo if its the same as global __ptmbcinfo. crtw32\h\mbctype.h, mbdata.h, mbstring.h, mtdll.h, setlocal.h srcrel\msvc40.if Remove threadmbcinfo.{pprev,pnext}, and rename THREADMBCINFO to _THREADMBCINFO, THREADLOCALEINFO to _THREADLOCALEINFO. crtw32\stdcpp\newaop.cpp, newop.cpp crtw32\stdhpp\new, xstddef libw32\include\new, xstddef VS7#112746 Use _THROW1(exception) instead of _THROW0(/*exception*/) so /EHs compiles get proper throw info. Also define _THROW1(x) as (...) to avoid warning C4290. crtw32\h\trnsctrl.h crtw32\eh\frame.cpp crtw32\eh\ia64\trnsctrl.cpp VS7#111429 (From RLanser/TiborL) IA64 workaround for SQL crash while handling a throw. ----------------------------------------------------------------- Tue 06-Jun-00 (KFrei) Modified crtw32\rtc\pdblkup.cpp VS7#110178 Modified Src/Line# lookup to use PDB7 format ----------------------------------------------------------------- Wed 07-Jun-00 (GautamB) Modified crtw32\stdhpp64\deque libw32\inc64\deque VS7#78357 Fixed Leaks in deque. ----------------------------------------------------------------- Wed 07-Jun-00 (PhilipLu) crtw32\mbstring\mbctype.c VS7#116902 Back out the fix of Jun 3 for vs7#115987. That fix exposes a bug in the circular linked list insertion in multithread version of _setmbcp. The fix for 115987 will be reinstated with a fix for the _setmbcp bug next week, after we split the trees for the PDC. ----------------------------------------------------------------- Sun 04-Jun-00 (PhilipLu) cleanbld.cmd, clns_bld.bat, makefile srcrel\bldnt.cmd, bldwin95.bat, external.mkf, makefile Change the environment variable pointing to the VC++ tools installation from V6TOOLS to VCTOOLS. The old environment variable V6TOOLS is still supported for now for internal builds, but not in the user CRT rebuild. cleanbld.cmd Tweaking the CRTMKDEP and DELOBJ options of cleanbld.cmd to make the V6TOOLS->VCTOOLS switch go smoothly. CRTMKDEP will regenerate the depend.def dependency files even if they already exist. DELOBJ will now delete the %CRT_BUILDDIR%\srcrel directory tree (an oversite I should have done when the files produced from the %CRTSRC%\srcrel stuff was moved into the %CRT_BUILDDIR% directory). makefile VS7#5678 The makefile should default VCTOOLS to the default installation point for VC7, not "\MSDEV", so the user CRT rebuild will work in a clean installation without user intervention. ----------------------------------------------------------------- Sat 03-Jun-00 (PhilipLu) crtw32\mbstring\mbctype.c VS7#115987 __updatetmbcinfo wasn't updating the per-thread mbcinfo(!). Every call to something like _ismbcspace would thus call __updatetmbcinfo, which takes a lock, so multithread apps using the MBCS APIs can exhibit a big performance loss when moving from NT4 (with a VC6 CRT) to Win2K (with a VC6.1 CRT). crtw32\mbstring\ismbdgt.c, ismbspc.c VS7#116057 speed up multithread version of _ismbcspace and _ismbcdigit. crtw32\stdhpp\xhash libw32\include\xhash VS7#85385 hash_set/hash_map could crash because of bugs in growing the underlying hash structure. Surgically applying fix from Dinkumware. crtw32\stdcpp\ios.cpp, locale.cpp, locale0.cpp crtw32\stdhpp\xlocale libw32\include\xlocale VS7#116039 Lock instantiations of the form "_Lockit _Lock(_LOCK_LOCALE);" were useless because _LOCK_LOCALE was defined to nothing, turning the object definition into a prototype for a function _Lock, so no lock was actually taken. ----------------------------------------------------------------- Fri 02-Jun-00 (GautamB) Modified crtw32\convert\strtoq.c, wcstoq.c VS7#115219 Fixed the special case for _I64_MIN. Previously underflow occurred at -_I64_MAX. ----------------------------------------------------------------- Thu 01-Jun-00 (PhilipLu) crtw32\h\crtdbg.h crtw32\misc\dbgheap.c libw32\include\crtdbg.h libw32\inc64\crtdbg.h VS7#55049 Add new routine _CrtReportBlockType which can be called from a client block dumper (as called by _CrtDoForAllClientObjects) to retrieve the block type, allowing the subblock types of _CLIENT_BLOCK's to be queried. makefile VS7#109278 Base the VC++ CRTs into the 0x5D?????? range so they don't conflict with the URT DLLs. crtw32\startup\threadex.c VS7#114394 If _beginthreadex is called with a NULL thrdaddr parameter, call CreateThread with a pointer to a dummy location to store the thread ID. CreateThread on Win9x cannot be called with a non-NULL final argument. ----------------------------------------------------------------- Thu 01-Jun-00 (GautamB) Modified crtw32\h\setjmpex.h VS7#113737 fixed the macro redefination problem arising due to order of including the header setjmp.h and setjmpex.h. Now for the case on IA64, inclusion of setjmpex.h will define setjmp to _setjmpex on matter if setjmp.h is included or not. ----------------------------------------------------------------- Tue 30-May-00 (GautamB) Modified crtw32\h\setjmpex.h VS7#113737 fixed the macro redefination problem arising due to order of including the header setjmp.h and setjmpex.h Modified crtw32\misc\ia64\setjmp.s libw32\msvcrt.src, syscrt.src, syscrt64.src VS7#103476 Added entry point for _setjmp() along with setjmp() in setjmp.s to make it compatible to what function we have on x86. The problem was that we had setjmp() on x86 and _setjmp() on ia64. crtw32\stdio\input.c vs7#5473 Fixed the problem with scanf while reading octal or hex integers when format specifier is %d. Which was not according to the standards ----------------------------------------------------------------- Wed 31-May-00 (KFrei) crtw32\rtc\error.cpp crtw32\rtc\init.cpp crtw32\rtc\initsect.cpp crtw32\rtc\userapi.cpp VS7#95387,110897 initialization simplified - no more locking ----------------------------------------------------------------- Tue 30-May-00 (PhilipLu) crtw32\h\i386\fvec.h libw32\include\fvec.h VS7#101068 add missing functions simd_avg (from Intel). ----------------------------------------------------------------- Tue 30-May-00 (GautamB) Modified crtw32\eh\frame.cpp VS7#112630 Some more COM+ bug fixes for rethrows from different points. ----------------------------------------------------------------- Wed 24-May-00 (GautamB) Modified Makefile.sub VS7#84575 The retail IA64 CRT is currently built with /Zx (use debuggable optimizations). This is removed from makefile.sub. Modified crtw32\eh\frame.cpp VS7#5704 Handling STATUS_BREAKPOINT by catch() was not intended. Fixed this for cases when this exception could be caught by catch(...) of any other catch by use of __set_se_translator(). ----------------------------------------------------------------- Tue 23-May-00 (GautamB) modified crtw32\misc\setenv.c VS7#100392 Fixed setenv to return error for the case when SetEnvironmentVariable() returns error even if the variable is set in CRT environment. Modified crtw32\convert\atox.c, wtox.c, lsources, sources.nt crtw32\h\tchar.h, wchar.h, stdlib.h Add File crtw32\convert\wtof.c VS7#5708 Added new function _wtof and macros for _wtof, _wtoi, _wtoi64 Modified doc\copysrc.bat vs7# 110154Added the filenames of newly added file. ----------------------------------------------------------------- Thu 18-May-00 (GautamB) modified crtw32\misc\w_cmp.c crtw32\lowio\getwch.c, putwch.c VS7#100392 Fixed the return values when W API return with error not equal to ERROR_CALL_NOT_IMPLEMENTED. ----------------------------------------------------------------- Wed 17-May-00 (PhilipLu) crtw32\h\stdarg.h, varargs.h libw32\include\stdarg.h, varargs.h libw32\inc64\stdarg.h, varargs.h VS7#109619 - support soft2.5 changes to varargs handling of structs. Changes to _APALIGN macro required for IA64, using __alignof intrinsic. ----------------------------------------------------------------- Wed 17-May-00 (GautamB) modified crtw32\misc\getqloc.c VS7#62160 For most LCIDs, the combination of the expanded English-language Language/Country pair is unique, but that's not true for 0414 and 0814 on NT5. They both map to Norwegian/Norway. Taking LCID 0814 as special case, we return Langauge name as Norwegian-Nynorsk. ----------------------------------------------------------------- Wed 17-May-00 (GautamB) modified crtw32\misc\a_cmp.c, a_env.c, a_loc.c, a_map.c, a_str.c, aw_com.c, w_cmp.c, w_env.c, w_loc.c, w_map.c, w_str.c crtw32\lowio\getwch.c, cgetws.c, putwch.c VS7#100392. Used error = ERROR_CALL_NOT_IMPLEMENTED to check for availablity of Unicode version of APIs. This prevents quick fall back to A version of APIs. ----------------------------------------------------------------- Wed 17-May-00 (PhilipLu) crtw32\h\i386\emmintrin.h, mmintrin.h, xmmintrin.h libw32\include\i386\emmintrin.h, mmintrin.h, xmmintrin.h For JasonSh - the __m128, __m64, __m128i, and __m128d are now declared in the headers, instead of automatically being defined by the C/C++ frontend. ----------------------------------------------------------------- Mon 15-May-00 (PhilipLu) makefile, makefile.inc crtw32\eh\ehvccctr.cpp [NEW], ehvcccvb.cpp [NEW], lsources crtw32\eh\dll\sources crtw32\eh\dlllib\sources crtw32\eh\i386\ehcrt.mak crtw32\eh\ia64\ehcrt.mak crtw32\eh\mt\sources crtw32\eh\nt\sources crtw32\eh\st\sources libw32\makefile srcrel\objects.mkf, pd-b VS7#103362 - Add new compiler support routines for EH-aware vector copy constructors. When the compiler generates a default copy-ctor for an object which has a data member that's an array of constructable types, and exceptions are enabled, it needs to call a helper which unwinds the partially constructed array in case a copy-ctor of an array element throws. ----------------------------------------------------------------- Mon 15-May-00 (GautamB) modified fpw32\tran\lsources srcrel\pd-b fpw32\tran\ia64\atan.s, atanf.s, powf.s, pow.s, hypot.s, hypotf.s Newer version of atan used uninitialised states and causing wrong calculations. Restored the older version of atan. Newer version of pow did not handle errors correctly. Restored the older version. delfile fpw32\tran\ia64\matherr.c, matherrf.c, math_err.c math_errf.c Deleted the intel math error handling files so as to use CRT math error handling functions. ----------------------------------------------------------------- Thu 11-May-00 (PhilipLu) makefile.sub IA64 build: if debug info is enabled, then add "-d debug" switch to ias cmdlines. ----------------------------------------------------------------- Thu 11-May-00 (GautamB) crtw32\startup\crt0msg.c VS7#104567 Modified _NMSG_WRITE so not to call _CrtDbgReport for _RT_BANNER. ----------------------------------------------------------------- Thu 11-May-00 (PhilipLu) crtw32\misc\qsort.c VS7#99674 Performance tuning on qsort(). Sorting the pathological case of 0,1,0,1,... sped up by 2500x(!). Also made sure all comments about invariant conditions are up-to-date. ----------------------------------------------------------------- Wed 10-May-00 (GautamB) fpieee\tran\i386\87triga.asm VS7#99780. fixed atan2(-0.0, 1.0) to return -0.0. ----------------------------------------------------------------- Wed 03-May-00 (Build Lab for PhilipLu) crtw32\stdhpp\sstream, xiosbase, xlocnum, xstring libw32\include\sstream, xiosbase, xlocnum, xstring Check in files from the 000202 Dinkumware drop that break backward compatibility with the C++ Library DLL entrypoint list. Done as part of updating the devtools LKG toolset. ----------------------------------------------------------------- Wed 03-May-00 (PhilipLu) makefile.sub The DLL build should always be built /Z7, not just when doing a build on a multi-proc machine. Don't want the build producing a different set of files depending on how many CPUs the build machine happens to have. libw32\inc64\math.h, stdlib.h Backing out BryanT's last checkin of these headers. The math.h checkin wipes out a change made last year, and the stdlib.h checkin wipes out some CRT DLL entrypoints which are obsolete, but should probably be preserved. The stdlib.h change is actually an overly-aggressive fix for the problem noted in VS7#22423. srcrel\mkclnmkf.c Fix trivial typo reported by X-Box (== should have been =). ----------------------------------------------------------------- Mon 01-May-00 (BryanT) makefile crtw32\crt32.nt, dirs crtw32\eh\dirs crtw32\helper\nt\sources crtw32\linkopts\sources crtw32\small\makefile.inc, sources fpw32\fp32.nt fpw32\tran\sources.nt libw32\dirs libw32\lib\sources.nt libw32\lib\dll\makefile.inc libw32\lib\dll40\sources libw32\lib\exsup\makefile, sources NT Build cleanup. crtw32\heap\malloc.c, sbheap.c crtw32\startup\crt0dat.c crtw32\string\strlwr.c, strupr.c POSIX changes crtw32\startup\crt0.c libw32\inc64\deque, list, math.h, stdlib.h, typeinfo, vector, xlocale, xlocnum WIN64 changes ----------------------------------------------------------------- Mon 01-May-00 (GautamB) Addfile fpieee\tran\ia64\acos.s, acosf.s, asin.s, asinf.s, atan.s, atan2.s, atan2f.c, atan2f.s, atanf.c, atanf.s, ceil.s, ceilf.c, ceilf.s, ceill.s, cosh.s, coshf.s, exp.s, expf.c, expf.s, fabs.s, fabsf.s, floor.s, floorf.s, fmod.s, fmodf.c, fmodf.s, hypot.s, hypotf.s, isnan.s, isnanf.s, ldexp.s, ldexpf.s, libm_atan2_reg.s, libm_error.c, libm_reduce.s, libm_support.h, libm_tan.s, log.s, logb.s, logbf.s, logf.s, pow.s, powf.s, remainder.s, remainderf.s, scalb.s, scalbf.s, sincos.s, sincosf.s, sinh.s, sinhf.s, sqrt.s, sqrtf.s, tan.s, tanf.s Added new IA64 math routines files in assembly. ----------------------------------------------------------------- Mon 01-May-00 (GautamB) fpeee\tran\i386\log.asm, pow.asm, sqrt.asm, trig.asm, triga.asm VS7#86209 Speeding up the math routines by assuming (Guranteed for optimisation for speed) that the esp will be offset by 4 byte from alignment on 8 and then subtracting 4 extra bytes to align it to 8 for faster float excess. ----------------------------------------------------------------- Mon 01-May-00 (BryanT) crtw32\eh\mips crtw32\eh\ppc crtw32\helper\mips crtw32\helper\ppc crtw32\misc\mips crtw32\misc\ppc crtw32\small\mips crtw32\startup\mips crtw32\startup\ppc crtw32\string\mips crtw32\string\ppc fpw32\tran\mips fpw32\tran\ppc libw32\lib\mips libw32\lib\ppc Delete dead code for mips and ppc. Don't delete dirs in case someone wants to resurrect code at a later date... ----------------------------------------------------------------- Tue 25-Apr-00 (GautamB) addfile crtw32\lowio\getwch.c, cgetws.c crtw32\stdio\cwscanf.c modified crtw32\h\wchar.h, tchar.h, conio.h (libw32\include and libw32\inc64) libw32\msvcrt.src, syscrt.src, syscrt64.src srcrel\pd-b makefile.inc VS7#86398. Added Unicode version of console input functions. ----------------------------------------------------------------- Tue 25-Apr-00 (PhilipLu) fpw32\tran\i386\debug.c, debug.h, filter.c, filter_simd.c, xmmi2_fp_emul.c VS7#90752, 90760, 90764, 90769, 90775, 90779, 90782, 91746 - fixes for SIMD support in _fpieee_flt from Intel. makefile, makefile.sub Add BLD_CRT_LTCG to makefiles, to enable building a CRT with Link Time CodeGen enabled. Off by default, only there for internal use. ----------------------------------------------------------------- Mon 24-Apr-00 (PhilipLu) crtw32\misc\ia64\memcpys.s, memsets.s UTC_P7#1509 - memset and memcpy were truncting the size to 32-bits. Propogate RLanser's fix from the \\lang5\v7.ia64sdk3!crt SLM tree. crtw32\stdcpp64\xdnorm.c, xfdnorm.c, xfvalues.c, xlvalues.c, xvalues.c Work around new warning C4554 for code like "1 << _OFF + 1". Added parens to give "1 << (_OFF + 1)". The old code was fine, just needed to shut up the warning. crtw32\misc\sbheap.c Fix memset typo reported by X-Box. Count and value args were reversed. Only in V5 SBH code, so not a big deal. ----------------------------------------------------------------- Fri 21-Apr-00 (PhilipLu) crtw32\eh\rtti.cpp crtw32\h\rtti.h Disable new warning C4297 about a throw in an extern "C" function by adding explicit exception specification to compiler helpers for dynamic_cast and RTTI. ----------------------------------------------------------------- Wed 19-Apr-00 (GautamB) crtw32\eh\frame.cpp VS7#96508 96370 96341 93684 89697 Bug fixes. ----------------------------------------------------------------- Tue 18-Apr-00 (GautamB) crtw32\eh\frame.cpp Minor Bug fixes. ----------------------------------------------------------------- Thu 14-Apr-00 (GautamB) crtw32\stdcpp\xdnorm.c, xfdnorm.c, xvalues.c, xfvalues.c, xlvalues.c Fixed warning no. C4554 about the precedence of - and << operator. ----------------------------------------------------------------- Thu 06-Apr-00 (GautamB) crtw32\eh\frame.cpp Add more functions for C++ eh support in com+ ----------------------------------------------------------------- Wed 05-Apr-00 (PhilipLu) makefile Buildfix for msvcp* C++ DLL. Stdhndlr.obj wasn't being included in the DLL. ----------------------------------------------------------------- Wed 05-Apr-00 (PhilipLu) crtw32\eh\ia64\trnsctrl.cpp New version of macro GetLanguageSpecificData copied from ntia64.h, supplied by Steve Hanson. ----------------------------------------------------------------- Wed 05-Apr-00 (PhilipLu) crtw32\misc\i386\sehprolg.asm [NEW] crtw32\misc\lsources crtw32\misc\dll\sources crtw32\misc\dlllib\sources crtw32\misc\mt\sources crtw32\misc\nt\sources crtw32\misc\psx\sources crtw32\misc\st\sources srcrel\makefile, objects.mkf, pd-b makefile, makefile.inc Add __SEH_prolog compiler helper for /O1 SEH support. ----------------------------------------------------------------- Tue 28-Mar-00 (GautamB) crtw32\eh\frame.cpp VS7#88408. HT_DISPCATCH is used to detect no object (catch by type) for native, but doesn't work for COM+ - check for a null in the catch object. ----------------------------------------------------------------- Mon 27-Mar-00 (PhilipLu) makefile, makefile.inc libw32\msvcrt.src, syscrt.src srcrel\makefile, mkclnmkf.c Enable 64-bit VC CRT build by setting SYS_BLDCRT=0 and LLP64=1 during build. Will build CRT DLLs with the VC7.0 names instead of the old system names. crtw32\stdcpp\strstrea.cpp crtw32\stdhpp\istream, strstream, xiosbase libw32\include\istream, strstream, xiosbase Bugfixes to enable building VC7.0 C++ Standard Library for Win64. crtw32\stdhpp\fstream, sstream, streambuf libw32\include\fstream, sstream, streambuf Temporary casts to enable building VC7.0 C++ Standard Library for Win64. Looks like some C++ Standard methods assume an int can be used for stream offsets, others use "streamsize" which we currently set to signed __int64 on Win64. Until those can be reconciled, add casts to silence warnings. Code currently can experience problems with file sizes > 2 GB. ----------------------------------------------------------------- Mon 27-Mar-00 (PhilipLu) crtw32\eh\ehvecctr.cpp, ehveccvb.cpp, ehvecdtr.cpp, frame.cpp, rtti.cpp, throw.cpp crtw32\eh\ia64\handlers.s, trnsctrl.cpp crtw32\misc\ia64\jmpuwind.s makefile.sub, ntia64bld.cmd langapi\include\ehdata.h, rttidata.h Remove CC_P7_SOFT25 references from IA64 build, and make it the default. ----------------------------------------------------------------- Tue 21-Mar-00 (GautamB) crtw32\misc\dbgheap.c crtw32\heap\align.c ReOrganised _aligned_offset routines. Fixed vs7#87724. Made _aligned_malloc and _aligned_realloc as one liner that would return the value from _aligned_offset routines with offset = 0. ----------------------------------------------------------------- Fri 17-Mar-00 (PhilipLu) crtw32\time\strftime.c VS7#9374 std::time_put::put failed because time formatting for _Strftime wasn't initializing the final element ww_timefmt. Fix from PJP (actually, it's been there since mid-'98 in a file I didn't understand should be merged into the main CRT tree). ----------------------------------------------------------------- Thu 16-Mar-00 (GautamB) crtw32\misc\dbgheap.c crtw32\heap\align.c VS7#86467 Offset >= size doesn't make any sense. If offset is >=, then 1) assert for debug version, 2) return EINVAL error. ----------------------------------------------------------------- Thu 16-Mar-00 (GautamB) crtw32\misc\dbgheap.c crtw32\heap\align.c VS7#87084, 86467. Aligned routines were using 1 extra byte. (fixed). Also checked to -ve values of offset. ----------------------------------------------------------------- Thu 16-Mar-00 (GautamB) crtw32\convert\toupper.c, tolower.c VS7#9616 The performance enhancement changes were only visible for _tolower(). __tolower_mt() is also used at a lot of places. Modified code such that the performance changes are visible for both of them. ----------------------------------------------------------------- Thu 16-Mar-00 (GautamB) crtw32\lowio\putwch.c VS7#58257 _putwch was using GetConsoleCP() for conversion from Unicode to MBCS. Changed it to more suitable GetConsoleOutputCP(). ----------------------------------------------------------------- Wed 15-Mar-00 (GautamB) crtw32\stdio\sprintf.c swprintf.c vsprint.c vswprint.c crtw32\h\stdio.h wchar.h tchar.h libw32\include\stdio.h wchar.h tchar.h libw32\inc64\stdio.h wchar.h tchar.h Added a set of new functions which can be used to count the number of characters needed for printing formatted data using printf or any such function. (_scprintf(), _scwprintf(), _vscprintf(), _vscwprintf()) ----------------------------------------------------------------- Fri 10-Mar-00 (GautamB) crtw32\convert\tolower.c, toupper.c crtw32\string\stricmp.c, stnicmp.c, memicmp.c Moved the performance enhancement stuff from stricmp routines to conversion routines. ----------------------------------------------------------------- Fri 10-Mar-00 (GautamB) crtw32\stdio\output.c, sprintf.c vsprintf.c VS7#83962 - Modified sprintf and vsprintf so as to return length of the formatted even on passing NULL pointer for destination string ----------------------------------------------------------------- Thu 09-Mar-00 (PhilipLu) crtw32\h\i386\xmmintrin.h libw32\include\xmmintrin.h VSPP#78 - xmmintrin.h should not declare _mm_malloc and _mm_free when using VC. It should include malloc.h to get them, instead. srcrel\pd-b Copy over the Intel- and AMD-supplied headers from libw32\include to the build tree. ----------------------------------------------------------------- Wed 08-Mar-00 (PhilipLu) crtw32\h\i386\emmintrin.h, fvec.h, ivec.h, mmintrin.h, xmmintrin.h libw32\include\emmintrin.h, fvec.h, ivec.h, mmintrin.h, xmmintrin.h Latest versions of Intel-supplied FP intrinsics headers. ----------------------------------------------------------------- Tue 07-Mar-00 (PhilipLu) fpw32\tran\ia64\huge.s UTC_P7#1386 - _HUGE was 4-byte aligned, should be 8. ----------------------------------------------------------------- Mon 06-Mar-00 (PhilipLu) crtw32\h\internal.h crtw32\startup\crt0.c, crt0dat.c, mlock.c VS7#83663 - Call __crtExitProcess instead of ExitProcess. __crtExitProcess checks to see if this is a COM+ app by doing a GetModuleHandle on mscoree.dll, then looking for the CorExitProcess entrypoint, and calling that instead of ExitProcess if it's found. This allows COM+ to clean up cleanly when using the CRT, so the FinalizerThread has a chance to do its exit processing. ----------------------------------------------------------------- Mon 06-Mar-00 (PhilipLu) Propogate fixes/changes made to the VC6 ProcessorPack CRT: crtw32\eh\i386\trnsctrl.cpp Warning C4851 is gone for VC6 and VC7, now just C4731. crtw32\h\fpieee.h fpw32\tran\lsources fpw32\tran\i386\debug.c [NEW], debug.h [NEW], filter.h, filter_simd.c, xmmi2_fp_emul.c [NEW], xmmi_fp_emul.c, xmmi_types.h libw32\include\fpieee.h libw32\inc64\fpieee.h srcrel\pd-b New WNI support and KNI bugfixes for _fpieee_flt. crtw32\h\i386\dvec.h [NEW], emmintrin.h [NEW], fvec.h [NEW], ivec.h [NEW], mm3dnow.h [NEW], mmintrin.h [NEW], xmmintrin.h [NEW] libw32\include\dvec.h [NEW], emmintrin.h [NEW], fvec.h [NEW], ivec.h [NEW], mm3dnow.h [NEW], mmintrin.h [NEW], xmmintrin.h [NEW] srcrel\makefile, pd-b New headers of vendor-supplied FP intrinsics. These do not get used by the CRT build; they are simply there to be dropped to users. crtw32\tools\win32\relinc.cmd Handle new vendor-supplied FP intrinsic headers for 32-bit includes. ----------------------------------------------------------------- Fri 03-Mar-00 (PhilipLu) crtw32\misc\ia64\chandler.c Fix for SEH support from Intel. ----------------------------------------------------------------- Fri 03-Mar-00 (GautamB) crtw32\h\trnsctrl.h crtw32\eh\frame.cpp libw32\msvcrt.src, syscrt.src, syscrt64.src Exported __DestructExceptionObject from dll and made slight changes to definition of __CxxExceptionFilter. ----------------------------------------------------------------- Thu 02-Mar-00 (PhilipLu) crtw32\eh\i386\trnsctrl.cpp VS7#83643 - _UnwindNestedFrames must preserve callee-save regs EBX, ESI, and EDI, since RtlUnwind will trash them all. ----------------------------------------------------------------- Mon 28-Feb-00 (PhilipLu) makefile, makefile.inc crtw32\stdcpp\cerr.cpp, cin.cpp, clog.cpp, cout.cpp, delaop2.cpp, delop2.cpp, fiopen.cpp, instances.cpp, iomanip.cpp, ios.cpp, iosptrs.cpp, iostream.cpp, locale.cpp, locale0.cpp, lsources, newaop.cpp, newaop2.cpp, newop2.cpp, nomemory.cpp, nothrow.cpp [NEW], raisehan.cpp, sources.nt, stdhndlr.cpp, stdthrow.cpp, string.cpp, strstrea.cpp, uncaught.cpp, wcerr.cpp, wcin.cpp, wclog.cpp, wcout.cpp, wctrans.c, wctype.c, wiostrea.cpp, wlocale.cpp, xcosh.c, xdnorm.c, xdscale.c, xdtest.c, xexp.c, xfcosh.c, xfdnorm.c, xfdscale.c, xfdtest.c, xfexp.c, xfsinh.c, xfvalues.c, xlcosh.c, xldnorm.c, xldscale.c, xldtest.c, xlexp.c, xlocale.cpp, xlpoly.c, xlsinh.c, xlvalues.c, xmath.h, xpoly.c, xsinh.c, xstod.c, xvalues.c crtw32\stdhpp\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, streambuf, string, strstream, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h doc\copysrc.bat libw32\msvcprt.src libw32\include\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, streambuf, string, strstream, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmath.h, xmemory, xstddef, xtree, xutility, ymath.h, yvals.h srcrel\pd-b Integrate the 000202 drop of the C++ Library from Dinkumware. Main change is to reformat all the headers and use longer identifiers. Header xstring not yet integrated, because basic_string was rewritten too much to maintain compatibility between old libs and new MSVCP*.DLL. Other new code which cannot be turned on yet under #if _CRT_NEW_STL_DROP. Removes code which was previously under _RETAIN_OLD_CRT_CODE, and puts old code which must be maintained until next LKG toolset update under _RETAIN_OLD_CRT_CODE. makefile.sub Enable /Wp64 in the x86 build. ----------------------------------------------------------------- Fri 25-Feb-00 (PhilipLu) crtw32\h\crtdbg.h libw32\include\crtdbg.h libw32\inc64\crtdbg.h VS7#79719 - The _CrtDbgBreak macro should use the __debugbreak intrinsic when _MSC_VER >= 1300. crtw32\h\setjmp.h libw32\include\setjmp.h libw32\inc64\setjmp.h VS7#81945 - setjmp.h is now allowed with /com+. ----------------------------------------------------------------- Thu 24-Feb-00 (PhilipLu) doc\copysrc.bat Add 'platdst ' option to copy platform-specific files to different directory from main files. Wanted by the build lab for copying to devtools\common and devtools\%PLATFORM%. ----------------------------------------------------------------- Thu 24-Feb-00 (GautamB) crtw32\misc\setenv.c VS7#66530 _wputenv didn't use to work on Win9x as there was call in it SetEnvironmentVariable() which pointed to SetEnvironVariableW() and this API is not on Win9x so in effect environment didn't get updated. Fixed this. ----------------------------------------------------------------- Thu 24-Feb-00 (GautamB) crtw32\h\wchar.h VS7#80515 Checked all othe cases where order of including wchar.h with other header file does not make any difference. Only stdio.h had this problem. which is fixed. ----------------------------------------------------------------- Tue 16-Feb-00 (GautamB) crtw32\dllstuff\crtexe.c VS7#79603 Left out files for earlier checkin. ----------------------------------------------------------------- Tue 15-Feb-00 (PhilipLu) cleanbld.cmd srcrel\clnsrcrel.bat, external.mkf, makefile The cleanbld.cmd build no longer creates files in %CRT_SRC%\srcrel. Instead, any srcrel-related files that get built are created in %CRT_BUILDDIR%\srcrel\%PLATFORM% instead. That allows Win32 and Win64 builds to more easily share the same enlistment. ----------------------------------------------------------------- Tue 15-Feb-00 (GautamB) crtw32\lowio\lowio.mkf, lsources, putwch.c (New) crtw32\stdio\lsources, makdfile.c, output.c, cwprintf.c (New) crtw32\h\wchar.h, conio.h, tchar.h srcrel\pd-b makefile makefile.inc VS7#58257 Added unicode versions for cprintf, _putch and _cputs. (_cwprintf, _putwch, _cputws respectively). ----------------------------------------------------------------- Tue 15-Feb-00 (GautamB) crtw32\convert\convert.mkf, lsources, sources.nt, strtoq.c, wcstoq.c(New) crtw32\h\wchar.h, stdlib.h, tchar.h VS7#5427 Added strtoi64, strtoui64, wcstoi64 and wcstoui64, which converts string to __int64. ----------------------------------------------------------------- Tue 15-Feb-00 (GautamB) crtw32\startup\crt0.c VS7#79603 Changed GetModuleHandle() in check_complus_app() to GetModuleHandleA(). GetModuleHandle() maps to GetModuleHandleW() for UNICODE main (wmain) which breaks the app on Win9X. ----------------------------------------------------------------- Tue 15-Feb-00 (GautamB) crtw32\eh\frame.cpp VS7#79598 Added a function CxxExceptionFilter for use in COM+ EH. This function can be used to turn "try{...}catch(foo a){...}" to "try{...} except(_CxxExceptionFilter(foo.typeinfo, _exception_info(), &a)){...}". ----------------------------------------------------------------- Tue 15-Feb-00 (PhilipLu) crtw32\eh\frame.cpp VS7#79460 std::uncaught_exception() support broke unwinding. We were putting a __try/__finally around the call to _UnwindNestedFrames, which calls RtlUnwind, but _UnwindNestedFrames will only work if the top-most exception frame is from the exception dispatcher, not anything of ours. ----------------------------------------------------------------- Mon 14-Feb-00 (PhilipLu) crtw32\eh\i386\trnsctrl.cpp Warning C4851, disabled in Jan 31 checkin, is actually C4731 in the VC7 backend. ----------------------------------------------------------------- Fri 11-Feb-00 (GautamB) crtw32\dllstuff\crtlib.c crtw32\startup\dllcrt0.c, thread.c, threadex.c VS7#47322 There were two problem in the way threads were created. 1) if we called some locale dependent function, it would result in leak of ptd allocated during the call to the function. Second we would like to know if the thread is created ASAP, even if theread is created by some call to API so that later on when we could allocate memory for ptd failing in which results in termination of thread creation process. Earlier failing in alloting the memory for ptd, once the thread is created would terminate the whole process. ----------------------------------------------------------------- Thu 03-Feb-00 (PhilipLu) libw32\syscrt.rc, sysirt.rc, sysprt.rc srcrel\external.mkf, objects.mkf makefile Tweak the system CRT build. Version number is 7.0, not 6.1. The implibs are created as msvcrt.lib etc., not syscrt.lib. And the C++ Library DLL is now named syspr70.dll, not msvcp??.dll, so we can still have a versioned C++ DLL name, but have it for the system only. libw32\msvcrt.rc The internal filename in the version resource should be MSVCR70.DLL, not MSVCRT70.dll. ----------------------------------------------------------------- Tue 01-Feb-00 (PhilipLu) makefile.inc VS7#76534 Win64 static CRTs are not being built with delop2.cpp that was added for the Win64 CRT DLL build back in early Dec '99. ----------------------------------------------------------------- Mon 31-Jan-00 (PhilipLu) crtw32\eh\i386\trnsctrl.cpp Disable new warning C4851 about EBP being modified by inline-asm. srcrel\external.mkf, makefile Checkin for the build lab doing 64-bit builds. Clear _CL_ when we need to use the 32-bit compiler to build an .EXE, since the build lab uses _CL_ to point to the 64-bit compiler passes while self-building. ----------------------------------------------------------------- Sun 30-Jan-00 (PhilipLu) srcrel\makefile Clean up IA64 build so x86 components aren't copied over to crtbld\crt\src. doc\copysrc.bat Copy proper files for IA64 build, and don't copy CRT rebuild components when doing a SYSCRT copy. Also, copy files to the destination root, not dest-root\crt\src. ----------------------------------------------------------------- Fri 28-Jan-00 (GautamB) crtw32/string/stricmp.c, memicmp.c, strnicmp.c crtw32/h/setlocale.h, mtdll.h crtw32/misc/setlocale.c, nlsdata2.c VS7#9616 Enhanced the performance for locale based case insensitive comparision. What we do here is check if the current CTYPE locale has first 127 characters same as CLOCALE. If yes the we can convert the UPPER case character less then 127 to LOWER without calling time consuming tolower. ----------------------------------------------------------------- Fri 28-Jan-00 (GautamB) crtw32/stdio/popen.c VS7#16833 Changed the way popen used to work. Also made if threadsafe. What popen used to do was first duplicate the current stdio handle that we were supposed to trap, then close the local copy and set the one end of the pipe as that handle, then spawn the new process and then again setting up and new handle for stdio. Now we just pass the existing pipe to new process as the handle we wish to trap. ----------------------------------------------------------------- Fri 28-Jan-00 (GautamB) crtw32/align.c Performance enhancement of _aligned_realloc and _aligned_offset_realloc. ----------------------------------------------------------------- Thu 27-Jan-00 (PhilipLu) makefile VS7#5437 - The user rebuild scenario wasn't creating PDBs for the DLL CRTs. Actually, it was creating them, in the root directory! makefile VS7#14930 - Uses of the V6TOOLS macro need to be quote-protected in case V6TOOLS is a path with spaces in it. libw32\msvcrt.src srcrel\external.mkf, makefile makefile, makefile.inc, makefile.sub VS7#16831 - The user rebuild scenario was pretty thoroughly broken. This repairs it and cleans it up significantly, removing references to things like BLD_SYSCRT from the cleansed makefiles. doc\copysrc.bat Major cleanup on this file, which can now be used to copy the result of a CRT build using cleanbld.cmd into a separate tree to create the image that would be installed as %VC-ROOT%\crt\src. ----------------------------------------------------------------- Tue 25-Jan-00 (PhilipLu) crtw32\h\sect_attribs.h crtw32\misc\lsources, seccinit.c [NEW], seccook.c [NEW], secfail.c [NEW], seclocf.c [NEW] doc\copysrc.bat libw32\msvcrt.src, syscrt.src srcrel\pd-b makefile, makefile.inc Implement the CRT support for compiler switch /GS. This is used to protect against overwriting a local buffer variable and wiping out a return address, which can allow a hacker to hijack a program's execution. crtw32\startup\crt0msg.c Fix a buffer overwrite problem (!) I happened to notice while doing the /GS support. _NMSG_WRITE could overflow a local buffer when creating the text to display in a message box. ----------------------------------------------------------------- Mon 24-Jan-00 (GautamB) crtw32\heap\align.c Modified the _aligned_realloc reoutines to save the content of memblock that is reallocated as much as possible. ----------------------------------------------------------------- Mon 24-Jan-00 (PhilipLu) crtw32\h\wchar.h libw32\include\wchar.h libw32\inc64\wchar.h VS7#74640 - _wexec* and _wspawn* prototypes in wchar.h should return intptr_t, not int, for compatibility with process.h and definitions. ----------------------------------------------------------------- Thu 20-Jan-00 (PhilipLu) crtw32\h\stdarg.h, varargs.h libw32\include\stdarg.h, varargs.h libw32\inc64\stdarg.h, varargs.h srcrel\msvc40.if VS7#73359 - Remove __epcg__ references. This was an old Intel define that they no longer need. ----------------------------------------------------------------- Mon 17-Jan-00 (v-vadimp) crtw32\eh\ia64\handlers.s crtw32\eh\ia64\trnsctrl.cpp Fixed 2.5 IA64 software convention deficiencies in the previous checkins ----------------------------------------------------------------- Fri 14-Jan-00 (v-vadimp) crtw32\eh\frame.cpp crtw32\eh\ia64\handlers.s crtw32\eh\ia64\trnsctrl.cpp crtw32\misc\ia64\jmpuwind.s NLG support for the debugger, some macro defs to make code backward compatible with 2.4, __NLG_Destination & __NLG_Dispatch got an extra "_" for IA64 ----------------------------------------------------------------- Wed 12-Jan-00 (gautamb) crtw32\h\malloc.h vs7#71409 fixed the macro _mm_free which was supposed to have one parameter. ----------------------------------------------------------------- Mon 10-Jan-00 (PhilipLu) crtw32\exec\dospawn.c VS7#71206 - _spawn* called with _P_WAIT needs to sign-extend the exit code into an intptr_t for WIN64. ----------------------------------------------------------------- Thu 06-Jan-00 (rlanser) crtw32\eh\frame.cpp crtw32\eh\throw.cpp crtw32\eh\ia64\trnsctrl.cpp crtw32\h\mtdll.h crtw32\h\trnsctrl.h IA64: SOFT25 Image Relative bug fixes. ----------------------------------------------------------------- Wed 05-Jan-00 (Gautamb) crtw32\h\dbgint.h, crtdbg.h crtw32\misc\dbgheap.c crtw32\heap\align.c libw32\include\crtdbg.h libw32\inc64\crtdbg.h Added debug support for aligned routines. ----------------------------------------------------------------- Tue 04-Jan-00 (Gautamb) libw32\tools\source\ifstrip\eval.c ifstrip.c libw32\tools\source\striphdr\striphdr.c Added support for internal CRT build. ----------------------------------------------------------------- Wed 29-Dec-99 (Gautamb) crtw32\heap\align.c Fixed some serious bug in _aligned_offset_**() routines. ----------------------------------------------------------------- Fri 17-Dec-99 (PhilipLu) makefile VS7#65276 - Create alias records for data symbols and function descriptors, not just function entrypoints, e.g. create alias timezone -> _timezone, not just .timezone -> ._timezone. ----------------------------------------------------------------- Thu 16-Dec-99 (GautamB) modified crtw32\h\limits.h crtw32\stdio\fputwc.c, ungetwc.c VS7#5414 - Updated the value of MB_LEN_MAX to 5 and modified functions fputwc() and ungetwc() accordingly. ----------------------------------------------------------------- Thu 16-Dec-99 (GautamB) modified all files VS7#30929 - Modified the Copyright years for Microsoft files to -2000. ----------------------------------------------------------------- Thu 16-Dec-99 (GautamB) modified crtw32\malloc.h VS7#49169 - Modified HEAP_MAXREQ to 0xFFFFFFFFFFFFFFE0 for win64 ----------------------------------------------------------------- Thu 16-Dec-99 (PhilipLu) makefile VS7#45623 - Build of tcmapdll.lib for IA64 was incorrect, so alias records for _t* names to the equivalent _mb* names weren't working. Also, added a new build flag. Set BLD_TESTCRT=1, then the build will create CRT DLLs testcrt[d], testprt[d] and testirt[d] instead of the normal names. This allows building CRTs which can be safely tested without interfering with system protected files or the existing CRTs. ----------------------------------------------------------------- Fri 10-Dec-99 (GautamB) modified makefile.inc libw32\msvcrt.src, syscrt.src, syscrt64.src srcrel\pd-b crtw32\h\malloc.h crtw32\heap\heap.mkf, lsources crtw32\misc\a_cmp.c, a_loc.c, a_map.c, a_str.c, w_cmp.c, w_loc.c, w_map.c, w_str.c crtw32\string\strlwr.c, strupr.c, wcslwr.c, wcsupr.c, wcsxfrm.c crtw32\time\wcsftime.c crtw32\lowio\getch.c Add file crtw32\heap\resetstk.c VS7#62239 Secured the use of _alloca in case of stackoverflow. Also introduced a new function (_resetstkoflw() )which recovers for stackoverflow. ----------------------------------------------------------------- Fri 10-Dec-99 (GautamB) modified makefile.inc libw32\msvcrt.src, syscrt.src, syscrt64.src srcrel\pd-b crtw32\h\malloc.h crtw32\heap\heap.mkf, lsources crtw32\heap\mt\lsources crtw32\heap\dll\lsources libw32\include\malloc.h libw32\inc64\malloc.h addfile crtw32\heap\align.c Added _aligned_malloc, _aligned_realloc, _aligned_offset_malloc, _aligned_offset_realloc and _aligned_free functions. ----------------------------------------------------------------- Fri 10-Dec-99 (GautamB) modified crtw32\h\mtdll.h crtw32\startup\mlock.h langapi\undname\undname.cxx VS7#5674 Added a new lock for critical section in unDName() ----------------------------------------------------------------- Fri 10-Dec-99 (GautamB) modified crtw32\h\ctime.h crtw32\time\dtoxtime.c VS7#21083 Modified localtotime for taking into account leap years upto 2999. Also changed _MAX_YEAR for Win64 to 1099 ----------------------------------------------------------------- Fri 10-Dec-99 (GautamB) modified crtw32\startup\i386\crtstk.asm VS7#27118 Converted _chkstk and _alloca_probe to procedure ----------------------------------------------------------------- Fri 10-Dec-99 (GautamB) modified crtw32\h\eh.h, mtdll.h crtw32\eh\frame.cpp crtw32\stdcpp\UNCAUGHT.cpp VS#5340 Added a new function (our version of uncaught_exception) which is then used by uncaught_exception for doing it's work. Also introduced new flag in struct tiddata for keeping a look on exception. ----------------------------------------------------------------- Fri 10-Dec-99 (GautamB) modified crtw32\h\wchar.h VS#5709 Modified wmemcpy and wmemmove for faster perfomance. ----------------------------------------------------------------- Sat 08-Dec-99 (rlanser) crtw32\stdhpp64\new libw32\inc64\new Change "operator delete(void *, const std::nothrow_t&)" to _WIN64. ----------------------------------------------------------------- Sat 04-Dec-99 (rlanser) crtw32\stdcpp64\delop2.cpp, delop2_s.cpp, lsources, sources.nt crtw32\stdhpp64\new libw32\inc64\new srcrel\pd-b Add "operator delete(void *, const std::nothrow_t&)" to the hacked NT headers etal (stdhpp64, stdcpp64, inc64). ----------------------------------------------------------------- Fri 03-Dec-99 (PhilipLu) crtw32\h\math.h libw32\include\math.h libw32\inc64\math.h VS7#65291 - the headers do '#if _M_MRX000' in one place, and '#if defined(_M_MRX000)' in another. That interferes with a new warning the frontend wants to make available. Change to use defined(_M_MRX000) everywhere. srcrel\makefile We should not be copying trnsctrl.h into the crt\src user rebuild dir, since we don't ship source for the EH support and this header isn't used for the user rebuild scenario. Looks like this header was being shipped accidentally. Change the build cleansing procedure to stop copying this file over for shipping. crtw32\h\crtdbg.h, direct.h, heap.h, malloc.h, mbstring.h, memory.h, mtdll.h, new.h, nlsint.h, process.h, search.h, stdarg.h, stddef.h, stdexcpt.h, stdio.h, stdlib.h, string.h, varargs.h crtw32\heap\sbheap.c crtw32\lowio\write.c srcrel\msvc40.if The build cleansing procedure was issuing a bunch of warnings while running the ifstrip tool. Get rid of them all. ----------------------------------------------------------------- Thu 02-Dec-99 (PhilipLu) libw32\msvcprt.src VS7#66372 - The _RETAIN_OLD_CRT_CODE fix of Nov 14 was incomplete. All of the exception class methods and vtables which are no longer dllimport must be added as private exports in the .def file for msvcp*.dll so they will not appear in the msvcprt*.lib import lib. ----------------------------------------------------------------- Wed 01-Dec-99 (GautamB) modified crtw32\h\string.h crtw32\misc\lsources, strerror.c, _strerr.c add files crtw32\misc\wcserror.c, _wcserr.c VS#5706 Added wide char version for strerror() and _strerror() ----------------------------------------------------------------- Wed 01-Dec-99 (rlanser) crtw32\misc\ia64\chandler.c [v-willc] Support for reordering blocks in a try scope. ----------------------------------------------------------------- Wed 01-Dec-99 (PhilipLu) makefile.sub Enable CC_P7_SOFT25 when building for IA64. ----------------------------------------------------------------- Wed 01-Dec-99 (GautamB) crtw32\tchar.h libw32\include\tchar.h libw32\inc64\tchar.h Add alias for _tpgmptr ----------------------------------------------------------------- Tue 30-Nov-99 (PhilipLu) crtw32\eh\i386\trnsctrl.cpp crtw32\h\winheap.h crtw32\heap\sbheap.c crtw32\rtc\error.cpp, init.cpp, pdblkup.cpp crtw32\startup\tlssup.c crtw32\stdhpp\xlocale crtw32\stdio\output.c fpw32\tran\i386\filter.c, filter_simd.c libw32\include\xlocale Add casts, minor fixes, and #pragma warnings to compile cleanly on x86 with /Wp64. crtw32\h\crtdbg.h libw32\include\crtdbg.h libw32\inc64\crtdbg.h Forward declare _CrtMemBlockHeader to work around vs7#63059. cleanbld.cmd, makefile, makefile.sub Default to building release builds with debug info, and multiprocessor compile for DLL. Get rid of makefile flags BLD_REL_DBINFO and _VCBUILD. Add BLD_REL_NO_DBINFO to allow building release builds without debug info. ----------------------------------------------------------------- Thu 18-Nov-99 (PhilipLu) makefile, makefile.inc crtw32\eh\lsources crtw32\eh\dll\sources crtw32\eh\i386\ehprolg2.c [NEW] crtw32\eh\mt\sources crtw32\eh\st\sources crtw32\libw32\msvcrt.src, syscrt.src, syscrt64.src srcrel\makefile, objects.mkf, pd-b VS7#57098 - Add new compiler helper __EH_prolog2 as a static link component whose source does not get shipped. Needed to handle stack frame creation in a function compiled /Os with both a C++ EH frame and a stack that must be aligned thanks to __declspec(align()) locals. Also changing the older compiler helper __EH_prolog so it is always statically linked, instead of being used from the CRT DLL. ----------------------------------------------------------------- Wed 17-Nov-99 (GautamB) crtw32\dostypes.h Vs7#37766 Deleted this file as this file was not used anymore. ----------------------------------------------------------------- Tue 16-Nov-99 (PhilipLu) makefile, makefile.inc crtw32\dllstuff\crtexe.c, lsources crtw32\dllstuff\dlllib\sources crtw32\startup\crt0.c, lsources crtw32\startup\mt\sources crtw32\startup\st\sources doc\copysrc.bat libw32\makefile srcrel\msvc40.if, pd-b [delfiled:] crtw32\dllstuff\corexe.c, corexew.c, wcorexe.c, wcorexew.c crtw32\startup\cor0.c, wcor0.c, wincor0.c, wwincor0.c VS7#61850 (again) - The fix on 13-Nov won't work, because the linker must choose an entrypoint before starting library searching, but may not know if an app is COM+ until after it drags in a library object with metadata. So back out the previous fix and implement a new one. On entry, search the image header of the process EXE to see if the COM+ Descriptor entry in the Image Directory is empty, and handle as a COM+ app if it not. ----------------------------------------------------------------- Sun 14-Nov-99 (PhilipLu) makefile crtw32\stdcpp\instances.cpp crtw32\stdhpp\exception, new, stdexcept, xlocinfo, xstring, yvals.h crtw32\tools\win32\relinc.if libw32\include\xlocinfo, yvals.h Buildfix - msvcp70[d].dll must maintain all existing exports except at major updates of the vcLKG toolset. Restore all the old exports which were lost at the STL integration of 9-Nov-99. The functions corresponding to these exports are reintroduced into the headers in stdhpp by placing them under #if _RETAIN_OLD_CRT_CODE, which is only defined when compiling the STL DLL. Also, this #if is cleansed from the headers by relinc.cmd, so the released headers are unchanged and new code will not see any definition of the old exports. Once we update vcLKG and VS is built with the new headers, the old code under #if can be removed totally. As part of this, removing private copy-ctor and assign-ops declarations (without definitions) for _Locinfo and _Lockit, so the compiler generated defaults again appear as exports. I originally added these definitions to work around an integration problem which doesn't exist any longer. crtw32\tools\win32\relinc.cmd, relinc64.cmd Trivial cleanup - detabify and line up file. ----------------------------------------------------------------- Sat 13-Nov-99 (PhilipLu) makefile, makefile.inc crtw32\dllstuff\corexe.c [NEW], corexew.c [NEW], crtexe.c, crtexew.c, lsources, wcorexe.c [NEW], wcorexew.c [NEW], wcrtexe.c, wcrtexew.c crtw32\dllstuff\dlllib\sources crtw32\startup\ cor0.c [NEW], crt0.c, lsources, wcor0.c [NEW], wcrt0.c, wincor0.c [NEW], wincrt0.c, wwincor0.c [NEW], wwincrt0.c crtw32\startup\mt\sources crtw32\startup\st\sources doc\copysrc.bat libw32\makefile srcrel\pd-b VS7#61850 - Apps using COM+ IJW, with a native CRT startup object linked to a COM+ MSIL app, have to use a special COM+-aware version of the CRT startup code. For now, all this code does differently is return back to COM+ instead of calling exit(). Introduces 4 new entrypoints which the linker knows about and uses when linking a COM+ app, with the basic name being mainCorCRTStartup. crtw32\h\internal.h, io.h, time.h, wchar.h libw32\inc64\io.h, time.h, wchar.h libw32\include\io.h, time.h, wchar.h srcrel\msvc40.if Wrap the definition of _time64_t under #ifndef _TIME64_T_DEFINED instead of putting in under _TIME_T_DEFINED, so it's easier to mix and match VC6 and VC7 CRT headers. ----------------------------------------------------------------- Fri 12-Nov-99 (GautamB) crtw32\lowio\fstat64.c crtw32\dos\stat64.c VS7#57599 - Modified fstat64 and stat64 to take DST into account. ----------------------------------------------------------------- Fri 12-Nov-99 (PhilipLu) crtw32\misc\getqloc.c Setlocale should first try to use the language string given before using the substituted abbreviation from __rg_language[]. That's because there are language names which map to multiple abbreviations. On NT5, language 'Chinese' can be abbreviation CHS or CHT. Because of this, it's possible to have setlocale(LC_ALL,setlocale(LC_ALL,NULL)) fail, even though setlocale should always return a settings dump that is valid input to reset the locale. If the substitution table is used first, then Chinese_Taiwan.950 will be searched for as CHS_Taiwan.950, but the LCID actually corresponds to CHT_Taiwan.950. This happened because NT5 changed the language name for Taiwan from 'Chinese(Taiwan)' to 'Chinese' (vs7#61130, ntbug#426382). makefile, makefile.inc crtw32\stdcpp\lsources, sources.nt doc\copysrc.bat doc\pjp\makefile, makefile.inc, pd-b srcrel\pd-b [delfiled:] crtw32\stdcpp\delaop.cpp, delaop_s.cpp, delop.cpp, delop_s.cpp VS7#5435 - C++ Library should not define its own one-arg versions of operator delete/delete[] (the nothrow_t versions are OK). This was a problem because the C++ Library version of delete called free, but in a debug build, it should call _free_dbg in case we're not deleting a _NORMAL_BLOCK. Rather than change the definitions, it makes more sense just to get rid of them. ----------------------------------------------------------------- Tue 09-Nov-99 (GautamB) \crtw32\lowio\write.c VS7#52023 - Fixed the bug by replacing lseek_lk by lseeki64_lk. ----------------------------------------------------------------- Tue 09-Nov-99 (PhilipLu) makefile, makefile.inc \crtw32\eh\stdexcpt.cpp \crtw32\stdcpp\cerr.cpp, cin.cpp, clog.cpp, cout.cpp, delaop.cpp, delaop2.cpp [NEW], delaop2_s.cpp [NEW], delop.cpp, delop2.cpp [NEW], delop2_s.cpp [NEW], fiopen.cpp, instances.cpp [NEW], iomanip.cpp, ios.cpp, iosptrs.cpp, iostream.cpp, locale.cpp, locale0.cpp, lsources, newaop.cpp, newaop2.cpp, newop2.cpp, nomemory.cpp, raisehan.cpp, sources.nt, stdhndlr.cpp, stdthrow.cpp, string.cpp, strstrea.cpp, uncaught.cpp, wcerr.cpp, wcin.cpp, wclog.cpp, wcout.cpp, wctrans.c, wctype.c, wiostrea.cpp, wlocale.cpp, xcosh.c, xdnorm.c, xdscale.c, xdtest.c, xexp.c, xfcosh.c, xfdnorm.c, xfdscale.c, xfdtest.c, xfexp.c, xfsinh.c, xfvalues.c, xlcosh.c, xldnorm.c, xldscale.c, xldtest.c, xlexp.c, xlocale.cpp, xlpoly.c, xlsinh.c, xlvalues.c, xmath.h, xpoly.c, xsinh.c, xstod.c, xvalues.c \crtw32\stdhpp\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, streambuf, string, strstream, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h \doc\copysrc.bat \doc\pjp\makefile, makefile.inc, pd-b \libw32\include\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, streambuf, string, strstream, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmath.h, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h \srcrel\pd-b [delfiled:] crtw32\stdcpp\dlldef.cpp, limits.cpp Integrate the 990718 drop of the C++ Library from Dinkumware. ----------------------------------------------------------------- Tue 09-Nov-99 (GautamB) crtw32\h\cmsgs.h VS7#27275 - Fixed the message abort pops up. ----------------------------------------------------------------- Tue 09-Nov-99 (PhilipLu) crtw32\h\crtdbg.h libw32\msvcrt.src, syscrt.src, syscrt64.src libw32\include\crtdbg.h libw32\inc64\crtdbg.h VS7#16060 - Don't mark the debug operator new/new[] _CRTIMP in crtdbg.h, and add them to the .def files so they still get exported. Makes it easier for users to intercept these (something VSEE does). ----------------------------------------------------------------- Mon 08-Nov-99 (PhilipLu) crtw32\h\ctype.h, stdio.h, tchar.h, wchar.h crtw32\stdcpp\wctrans.c crtw32\stdhpp\wctype.h crtw32\stdhpp64\wctype.h libw32\include\ctype.h, stdio.h, tchar.h, wchar.h, wctype.h libw32\inc64\ctype.h, stdio.h, tchar.h, wchar.h, wctype.h Buildfix. New frontend enabled wchar_t as a native type, exposing bug in definition of wctype_t. Was a wchar_t, but wctype_t is really an unsigned short collection of bitflags. fpw32\tran\i386\xmmi_fp_emul.c KNI exception handler fixes from Intel. ----------------------------------------------------------------- Fri 05-Nov-99 (PhilipLu) crtw32\stdhpp64\xiosbase, xlocmon libw32\inc64\xiosbase, xlocmon Disable warning C4786 in a couple more files to fix IA64 build. ----------------------------------------------------------------- Thu 04-Nov-99 (PhilipLu) crtw32\h\string.h libw32\include\string.h libw32\inc64\string.h Back out checkin for VS7#33641 - breaking too much existing code, need to rethink if this will just be "won't fix". Leaving in the change I made to wchar.h (moved the secondary definitions under the #ifndef _WSTRING_DEFINED) so it should at least be safer to #include string.h and wchar.h together. crtw32\h\crtdbg.h libw32\include\crtdbg.h libw32\inc64\crtdbg.h Work around useless warning C4507. This warning is being removed, but it needs to be ignored until we drop a compiler without it. ----------------------------------------------------------------- Wed 03-Nov-99 (GautamB) crtw32\stdio\output.c VS7#5431 Deleted unnecessary #ifs for fixing the bug with L format specifier used with wprintf. ----------------------------------------------------------------- Wed 03-Nov-99 (PhilipLu) crtw32\h\string.h, wchar.h libw32\include\string.h, wchar.h libw32\inc64\string.h, wchar.h VS7#33641 - wcschr, wcsrchr, wcsstr, and wcspbrk must be defined in string.h the same as in wchar.h, with two versions for C++. crtw32\h\crtdbg.h, math.h libw32\include\crtdbg.h, math.h libw32\inc64\crtdbg.h, math.h Place any C++ definitions within an extern "C++" block, so the header can be safely included inside an extern "C" block. (Also for string.h and wchar.h) crtw32\h\internal.h, mbstring.h, stdio.h, wchar.h libw32\include\mbstring.h, stdio.h, wchar.h libw32\inc64\mbstring.h, stdio.h, wchar.h Continuation of VS7#54572 - Add _M_CEE version of va_list definition to all other files defining it, not just stdarg.h. crtw32\h\cruntime.h crtw32\tools\win32\relinc.sed Get rid of unneeded _VA_LIST_T. crtw32\startup\crt0.c, tidtable.c crtw32\time\localtim.c Checkins from RLanser. Fix some Win64 warnings in the _POSIX_ and _NTSUBSET_ builds. ----------------------------------------------------------------- Mon 01-Nov-99 (PhilipLu) crtw32\eh\frame.cpp, hooks.cpp, throw.cpp, validate.cpp crtw32\eh\i386\trnsctrl.cpp crtw32\h\ehassert.h, mtdll.h, trnsctrl.h VS7#5361 - A rethrow could lead to the thrown object being destroyed twice. The C++ EH code would destroy a exception object on exit from a catch block if the exit was not due to a rethrow, even if the exception object was from a rethrow inside a catch we were nested in. The fix for this is x86-only, since it introduces a FRAMEINFO linked list to track currently available exception objects. All RISC platforms already have a FRAMEINFO list, but use it in a different enough way that porting this fix requires more work. In particular, I'm popping items from the FRAMEINFO list inside the __finally handler in CallCatchBlock. All RISC platforms are instead doing this in normal code in CatchIt, which I think is error-prone. Also improved the /DENABLE_EHTRACE EH tracing dump using indenting to indicate the depth on the callstack of the current function, and with more data about what's actually being thrown/caught/destroyed/filtered/.... ----------------------------------------------------------------- Fri 29-Oct-99 (PhilipLu) crtw32\h\math.h libw32\include\math.h libw32\inc64\math.h VS7#22017 - add useful math constants a la UNIX's math.h, to make porting easier. crtw32\misc\ia64\jmpuwind.s Bugfix for IA64 from TiborL. crtw32\stdhpp64\utility libw32\inc64\utility Disable warning C4786, which appeared building dlldef.cpp for IA64 with a new frontend. ----------------------------------------------------------------- Thu 28-Oct-99 (Gautamb) crtw32\h\tchar.h libw32\include\tchar.h libw32\inc64\tchar.h VS7#5418 - fixed _tcsnextc() for handling MBCS. ----------------------------------------------------------------- Thu 28-Oct-99 (PhilipLu) crtw32\stdhpp\iosfwd crtw32\stdhpp64\iosfwd libw32\include\iosfwd libw32\inc64\iosfwd On Win64, std::streamoff and std::streamsize should be __int64, not long and int. crtw32\h\memory.h, string.h crtw32\string\memccpy.c, memicmp.c libw32\include\memory.h, string.h libw32\inc64\memory.h, string.h VS7#22416 - _memccpy, _memicmp and __ascii_memicmp should take a size_t count, not an unsigned int. crtw32\stdio\input.c VS7#10705 - scanf format %p was totally broken on Win64. ----------------------------------------------------------------- Wed 27-Oct-99 (Gautamb) crtw32\lowio\fstat.c crtw32\lowio\fstat64.c crtw32\dos\stat.c crtw32\dos\stat64.c crtw32\time\ftime.c crtw32\time\ftime64.c crtw32\time\utime.c crtw32\time\utime64.c VS7#37766. Deleted the #include in all the file as it is of no use. ----------------------------------------------------------------- Wed 27-Oct-99 (GautamB) crtw32\lowio\open.c VS7#14742 Fixed the _sopen for opening the same by file in share as well as O_TEMPORARY mode. ----------------------------------------------------------------- Wed 27-Oct-99 (PhilipLu) crtw32\misc\ia64\jmpuwind.s New implementation of __jump_unwind for CC_P7_SOFT25 calling convention on IA64 from TiborL. cleanbld.cmd, makefile, makefile.inc, makefile.sub crtw32\mbstring\lsources crtw32\stdcpp\lsources crtw32\stdcpp64\lsources [NEW] More makefile tweaks: * Repair in-place build for IA64. * Fix dependency creation (nmake depend) for in-place build. * Enable building with browser info under BLD_BROWSE=1. * For x86 asm files whose source is not shipped, assemble files with full pathnames, so a developer build (DEVBUILD=1) or in-place build will allow debugger to automatically bring up asm source without an open file popup. * add DELOBJ option to cleanbld.cmd to delete all objects before building, but leaving all sources - avoids file copy/cleanse cycle. * Use undocumented -ignore link switch to silence linker warnings. Switch is cleansed from user-rebuild makefiles. * Add "-N so" option to ias.exe invocation (equiv of -nologo). crtw32\eh\frame.cpp, unhandld.cpp, validate.cpp crtw32\eh\i386\ehcrt.mak [NEW] crtw32\h\ehassert.h Add an x86 version of ehcrt.mak, used to build the C++ EH support into a stand-alone lib for test purposes. Tweak some EH support code to fix problems in the stand-alone lib with ENABLE_EHTRACE on. Also added an EHTRACE_FMT1 dump of the 'this' pointer to _DestructExceptionObject. ----------------------------------------------------------------- Tue 26-Oct-99 (GautamB) crtw32\h\ctype.h crtw32\convert\isctype.c libw32\include\ctype.h libw32\inc64\ctype.h libw32\msvcrt.src libw32\syscrt.src libw32\syscrt64.src VS7#5695 - Added additional function for debug version to check the validity of call for character checking functions ----------------------------------------------------------------- Mon 25-Oct-99 (PhilipLu) crtw32\h\setjmp.h, stdarg.h, varargs.h crtw32\tools\win32\relinc.if libw32\include\setjmp.h, stdarg.h, varargs.h libw32\inc64\setjmp.h, stdarg.h, varargs.h srcrel\msvc40.if VS7#54572 - Add _M_CEE support for varargs to stdarg.h, issue error if varargs.h or setjmp.h used with _M_CEE. VS7#51838 - Fix varargs.h for IA64. ----------------------------------------------------------------- Mon 25-Oct-99 (PhilipLu) makefile, makefile.inc, makefile.sub, mk.bat crtw32\dllstuff\lsources crtw32\eh\lsources crtw32\heap\lsources crtw32\iostream\lsources crtw32\startup\lsources crtw32\stdcpp\lsources [NEW] Repair in-place build to build\ in the source tree, for development use. Faster than copy-and-cleanse build used for released CRTs, and allows building isolated CRT versions (st, mt, dll, xst, xmt, xdll). Also fixes to allow using CFLAGS or AFLAGS as nmake args to specify compiler/assembler flags for special builds. crtw32\eh\frame.cpp, hooks.cpp, validate.cpp crtw32\eh\i386\trnsctrl.cpp crtw32\h\ehassert.h Implement EH tracing, debug output recording path through EH support routines. Need to compile special CRT with /DENABLE_EHTRACE to turn this on. See EHTRACE_* macros in ehassert.h. ----------------------------------------------------------------- Fri 22-Oct-99 (PhilipLu) crtw32\eh\frame.cpp, rtti.cpp crtw32\eh\ia64\ehstate.cpp, trnsctrl.cpp IA64 exception handling changes from TiborL. ----------------------------------------------------------------- Fri 22-Oct-99 (PhilipLu) makefile.inc crtw32\heap\delete.cpp, delete2.cpp [NEW], heap.mkf, lsources crtw32\heap\dll\sources crtw32\heap\mt\sources crtw32\heap\st\sources crtw32\misc\dbgdel.cpp doc\copysrc.bat srcrel\pd-b VS7#53440 - operator delete and operator delete[] must be implemented in separate files, to avoid multiple definition link errors if user only supplies definition for one of the two. Also, only need one definition of delete[], in delete2.cpp, so get rid of the debug definition in dbgdel.cpp. ----------------------------------------------------------------- THU 21-Oct-99 crtw32\eh\sources.nt Binl is a C++ flag for the libcntpr build. Changed for IA64. ----------------------------------------------------------------- THU 21-Oct-99 crtw32\misc\assert.c VS7#4731 Fixed the way the output of the filenames that were too long was displayed. ----------------------------------------------------------------- Mon 18-Oct-99 (PhilipLu) makefile.inc crtw32\h\internal.h, rtcpriv.h crtw32\lowio\osfinfo.c crtw32\misc\initcrit.c [NEW], lsources crtw32\misc\dll\sources crtw32\misc\mt\sources crtw32\misc\psx\sources crtw32\misc\st\sources crtw32\startup\mlock.c crtw32\stdio\stream.c doc\copysrc.bat srcrel\pd-b VS7#49164, NtBug#413400 - Where available (NT4SP3 or better), set a spin count on critical sections when they are initialized. Also detect exceptions raised by InitializeCriticalSection. fpw32\tran\i386\filter.c VS7#5422 - Push/pop FP register save area when fixing up an FP exception, instead of just incrementing/decrementing the Top counter. crtw32\eh\frame.cpp VS7#5419 - During unwind, set EH state before entering each unwind funclet, instead of once after all funclets called, to better handle case of SEH during unwind. srcrel\makefile srcrel\mkclnmkf.c Add -noclean option to mkclnmkf, triggered by set NOCLEAN=1, to copy all source files to build tree instead of cleansing them. Preparation for getting -DDEBUG working again. ----------------------------------------------------------------- Tue 12-Oct-99 (PhilipLu) fpw32\tran\i386\filter.c VS7#6472 - Prevent _fpieee_flt from overwriting exception handling stack frame when an FP instruction exception was writing to a no-longer-existing stack local. ----------------------------------------------------------------- Mon 11-Oct-99 (KFrei) crtw32\rtc\init.cpp VS7#48979 - fix bug in removing image from list of active RTC images during shutdown. ----------------------------------------------------------------- Mon 11-Oct-99 (PhilipLu) crtw32\heap\sbheap.c libw32\msvcrt.src, syscrt.src, syscrt64.src VS7#49546 - Win64 build must define stubs for _{get,set}_sbh_threshold, even though small block heap is disabled there. ----------------------------------------------------------------- Mon 11-Oct-99 (PhilipLu) fpw32\tran\ia64\frnd.s VS7#15807 - Port new implementation of _frnd from CRT 64 sourcesafe tree. Old version failed whenever abs(arg) >= 2^63. crtw32\misc\ia64\chandler.c, cinitone.s, jmpuwind.s, longjmp.s, memcpys.s, memsets.s, miscs.s, setjmp.s, setjmpex.s crtw32\startup\ia64\chkstk.s, fp8.c fpw32\tran\ia64\asincosf.c, atan2f.c, atanf.c, ceilf.c, em_types.h, emfloat.s, expf.c, fabsf.c, filter.c, floorf.c, fmodf.c, fp80.s, fp80c.c, fpctrl.c, fpieee_flt.h, frnd.s, huge.s, ieee.c, log10f.c, logf.c, powf.c, sincosf.c, sincoshf.c, sqrtf.c, tanf.c, tanhf.c Intel has given permission to check the IA64-specific routines into the main CRT tree, so these files have been addfiled from the SLM project at \\lang3\p7!crt_ia64_asm. ----------------------------------------------------------------- Thu 07-Oct-99 (PhilipLu) crtw32\eh\ia64\trnsctrl.cpp Port SHanson change from CRT 64 sourcesafe tree. utc_p7#1126: sysmode test eh\extest fails /Ox. ----------------------------------------------------------------- Thu 07-Oct-99 (PhilipLu) crtw32\h\crtdbg.h, direct.h, heap.h, internal.h, io.h, malloc.h, mbstring.h, memory.h, mtdll.h, new.h, nlsint.h, process.h, search.h, stdarg.h, stddef.h, stdexcpt.h, stdio.h, stdlib.h, string.h, time.h, wchar.h fpw32\include\trans.h libw32\include\crtdbg.h, direct.h, io.h, malloc.h, mbstring.h, memory.h, new.h, process.h, search.h, stdarg.h, stddef.h, stdexcpt.h, stdio.h, stdlib.h, string.h, time.h, wchar.h libw32\inc64\crtdbg.h, direct.h, io.h, malloc.h, mbstring.h, memory.h, new.h, process.h, search.h, stdarg.h, stddef.h, stdexcpt.h, stdio.h, stdlib.h, string.h, time.h, wchar.h srcrel\msvc40.if VS7#29043 - Update CRTs to support /Wp64 by adding __w64 modifier as appropriate to typedefs of size_t, ptrdiff_t, time_t, intptr_t, uintptr_t. crtw32\misc\dbgheap.c VS7#5677 - Debug heap output needs to use %p when outputting pointers, %Iu when outputting size_t data. crtw32\stdio\fdopen.c, fopen.c, tmpfile.c VS7#16832 - Set errno to EMFILE when fopen and related functions run out of streams. fpw32\conv\cfin.c, fltinf.c VS7#5672 - Prevent underflow exception during strtod by copying bytes instead of a double (which might use FP instrs) in _fltin. ----------------------------------------------------------------- Thu 30-Sep-99 (PhilipLu) crtw32\time\tzset.c Fix double-free bug in tzset() when freeing lastTZ (ntbug#390281). crtw32\heap\heapinit.c Change handling of env var __MSCVRT_HEAP_SELECTED in heap init - don't use any routine that requires the heap to be available (vs7#44259). Also, check the env var before checking for NT5.0 or better, so we can change heap selection even on Win2000 (only here, not in the CRT60a tree used to build the Win2K system CRT). ----------------------------------------------------------------- Wed 29-Sep-99 (PhilipLu) Port recent fixes from CRT 64 SourceSafe tree: crtw32\makefile.sub Build IA64 with cl flags /QIA64_A0 and /Zx (release only), and ias flag -X explicit. crtw32\misc\ia64\setjmp.s All branch registers weren't being saved. crtw32\misc\ia64\longjmp.s Fix RSE hazard. ----------------------------------------------------------------- Thu 23-Sep-99 (PhilipLu) crtw32\stdhpp64\xlocnum libw32\inc64\xlocnum Fix previous checkin - use %Id, not %Ld, to sprintf an __int64. ----------------------------------------------------------------- Fri 17-Sep-99 (PhilipLu) crtw32\stdhpp64\istream, ostream, xlocnum libw32\inc64\istream, ostream, xlocnum VS7#5291 - backport __int64 support for iostream << and >> to the old 64-bit C++ headers. crtw32\eh\typname.cpp crtw32\stdhpp64\xlocale libw32\inc64\xlocale Add typecasts to fix 64-bit warnings with newest IA64 compiler. ----------------------------------------------------------------- Thu 02-Sep-99 (PhilipLu) langapi\undname\undname.cxx, undname.inl Attempt to fix VS7#23225 - reports that undecorator suballocator in HeapManager::getMemory is causing unaligned allocations. Make sure that Win32 and Win64 CRT versions of the undecorator use 8 byte alignment (should have been happening already anyway, but make more explicit), and that an attempt to suballocate 0 bytes will not trigger unaligned allocations (but I can't see anywhere that would try to allocate 0 bytes). langapi\undname\stubmain.cxx, testundn.cxx Fix build of stand-along undecorator and undecorator verifier test app using the CRT __unDName. makefile srcrel\msvc40.if Define _SYSCRT when doing a system CRT build. crtw32\dllstuff\crtlib.c Noticed by RichardS - CRT DLL issues a popup and refuses to run if started on Win32s. The popup references "MSVCRT.DLL". Change to do this for system CRT only, since the name for the VC CRT DLL is different and there's no good reason to keep checking for Win32s there. ----------------------------------------------------------------- Mon 30-Aug-99 (PhilipLu) makefile, makefile.inc crtw32\dllstuff\lsources, wdll_av.c [NEW] crtw32\dllstuff\dlllib\sources doc\copysrc.bat libw32\makefile srcrel\pd-b VS7#5425 - ___wsetargv was missing from msvcrt[d].lib, so linking with wsetargv.obj when using the CRT DLL gave a link error. Add new source file wdll_av.c corresponding to the ANSI version dll_argv.c. ----------------------------------------------------------------- Mon 30-Aug-99 (PhilipLu) Minor issues uncovered during Y2K code review crtw32\time\ctime.c, ctime64.c, difftime.c, systime.c Fix function header comments. crtw32\time\mktime.c Replace 'long' with 'time_t'. crtw32\time\strftime.c Don't overflow buffer on finding mbcs leadbyte in store_winword. crtw32\h\crtdbg.h libw32\inc64\crtdbg.h libw32\include\crtdbg.h Remove unprintable character from comment (confused 'findstr /p'). ----------------------------------------------------------------- Thu 12-Aug-99 (v-JohnMo) fpw32\tran\lsources,sources.nt Alpha/Alpha64: build using correct FP support flags fpw32\tran\alpha\dpml_exc.c Alpha/Alpha64: remove unneeded declaration fpw32\tran\alpha\getsetrg.c Alpha/Alpha64: supply default return value to avoid warning libw32\msvcrt.src Alpha/Alpha64: export new UTC compiler helper functions ----------------------------------------------------------------- Wed 11-Aug-99 (PhilipLu for v-ABorni) makefile.inc crtw32\helper\lsources, sources.nt crtw32\helper\alpha\memcmp_.s [NEW], otsnote.txt srcrel\objects.mkf, pd-b Alpha/Alpha64: add new memcmp intrinsic. ----------------------------------------------------------------- Wed 11-Aug-99 (PhilipLu for RLanser, SHanson) Porting recent checkins to the CRT64 sourcesafe tree makefile.sub crtw32\misc\ia64\setjmp.s Hazard fixes. Requires new Intel assembler (1.7) that checks for hazards. crtw32\misc\ia64\miscs.s Remove InterlockedExchangeAdd() since it's an intrinsic. crtw32\eh\ehvecctr.cpp, ehveccvb.cpp, ehvecdtr.cpp, frame.cpp crtw32\eh\ia64\trnsctrl.cpp IA64 EH image relative changes (SW 2.5 convention) under #if defined(CC_P7_SOFT25). ----------------------------------------------------------------- Tue 10-Aug-99 (PhilipLu for RichardS) crtw32\h\sect_attribs.h crtw32\rtc\initsect.cpp Use external symbols for RTC initializer/terminator table boundaries for BBT support. ----------------------------------------------------------------- Mon 09-Aug-99 (PhilipLu) makefile libw32\msvcirt.rc, msvcirt.src, msvcrt.src, syscrt.rc [NEW], syscrt.src [NEW], syscrt64.rc [NEW], syscrt64.src [NEW], sysirt.rc [NEW], sysirt.src [NEW], sysirt64.rc [NEW], sysirt64.src [NEW], sysprt.rc [NEW], sysprt.src [NEW], sysprt64.rc [NEW], sysprt64.src [NEW] srcrel\external.mkf, makefile, mkclnmkf.c, objects.mkf, pd-b, relmkf.sed Complete configuration of build for system CRT. Building with BLD_SYSCRT=1 will build the system CRT instead of the VC crt. Building with LLP64=1 implies building a system CRT, but for Win64 instead of Win32. Addfiled new .rc/.src files specific to Win32-system and Win64-system CRTs. ----------------------------------------------------------------- Wed 04-Aug-99 (PhilipLu) makefile libw32\msvcirt.rc, msvcirt.src, msvcprt.rc [NEW], msvcprt.src, msvcrt.rc, msvcrt.src srcrel\_sample_.rc, external.mkf, mkclnmkf.c, objects.mkf, pd-b, relmkf.sed Rename CRT: msvcrt.dll -> msvcr70.dll msvcrtd.dll -> msvcr70d.dll msvcp61.dll -> msvcp70.dll msvcp61d.dll -> msvcp70d.dll msvcirt.dll -> msvci70.dll msvcirtd.dll -> msvci70d.dll Also began configuration for build with BLD_SYSCRT=1 to build the system CRT instead of the VC crt. This is not complete yet. [delfiled:] libw32\msvcp42.rc, msvcp50.rc, msvcp60.rc, msvcp61.rc Replaced by msvcprt.rc crtw32\misc\setenv.c Fix use-after-free bug in __crtsetenv() when removing an existing enviroment variable. crtw32\stdio\vsprintf.c, vswprint.c Minor function header fix ----------------------------------------------------------------- Wed 04-Aug-99 (KFrei) crtw32\h\rtcsup.h rtcpriv.h crtw32\rtc\bintree.cpp chsyheap.cpp memory.cpp shadow.cpp init.cpp crtw32\misc\i386\chkesp.c crtw32\misc\alpha\chkesp.c Added _RTC_ to all external objects. Added comments to keep versioning issues in your face. Fixed some seriously leaking handles in the init code ----------------------------------------------------------------- Fri 09-Jul-99 (GregF) crtw32\h\winheap.h crtw32\heap\calloc.c, expand.c, free.c, heapchk.c, heapinit.c, heapmin.c, malloc.c, msize.c, realloc.c, sbheap.c crtw32\misc\dbgheap.c Removed VC 5.0 small-block heap, and the selection logic to enable it, from the static libraries. This was intended only for the DLL which was not affected by this change. ----------------------------------------------------------------- Wed 07-Jul-99 (GregF) crtw32\dllstfull\crtlib.c Don't clean up system resources if the process is known to be terminating. This fixes VS7 #16829 ----------------------------------------------------------------- Wed 16-Jun-99 (PhilipLu) makefile makefile.sub Partially back out checkin of 8-Jun-99. Release build no longer built by default with debug info. Necessary until I can get the build lab to drop the associated PDBs along with the libs and dlls. Debug info for release build can be selected by setting BLD_REL_DBINFO in the environment. ----------------------------------------------------------------- Mon 14-Jun-99 (PhilipLu) crtw32\tools\win32\relinc.if libw32\include\rtcapi.h libw32\inc64\rtcapi.h Cleanse #ifdef _RTC from header rtcapi.h, with _RTC on (vs7#22400). makefile makefile.sub srcrel\pd-b Fix use of whackline.exe in Alpha build (vs7#23911). ----------------------------------------------------------------- Thu 10-Jun-99 (GregF) crtw32\time\tzset.c Fixed handling of non-existent or empty TZ environment variable. This fixes VS7 #16203. ----------------------------------------------------------------- Tue 08-Jun-99 (PhilipLu) makefile makefile.sub libw32\tools\alpha\whackline.exe [NEW] BBT/Vulcan support - build debug and release targets with full debug info, running whackline over objs for which we don't ship source. This gets rid of the need to have a separate bbt target, but the bbt target remains until the build lab switches to using the release target instead. Also, if built with DEVBUILD=1 in the environment, whackline won't be run, so full line number info is available for all sources, allowing developer builds to step into these routines. ----------------------------------------------------------------- Mon 07-Jun-99 (PhilipLu) crtw32\h\float.h crtw32\startup\ia64\fp8.c libw32\include\float.h libw32\inc64\float.h For IA64, default to _PC_64 bit mode, not _PC_53. crtw32\h\math.h libw32\include\math.h libw32\inc64\math.h modff and hypotf are intrinsics for IA64 (vs7#2515). crtw32\h\process.h libw32\include\process.h libw32\inc64\process.h The oldnames (!__STDC__) versions of the exec/spawn APIs need to use intptr_t, not int, for the handle arg/return vals, same as the real APIs. [delfile:] libw32\tools\ia64\aliasobj.exe, detab.exe, ifstrip.exe, pd.exe, striphdr.exe, tolwrupr.exe, trailing.exe These are actually x86 executables. The x86-based cross-build for IA64 now pulls these tools from libw32\tools\i386, as it should, so these are no longer needed. Once we have native IA64 builds, the IA64 executables will go here. srcrel\pd-b Remove libw32\tools\{ia64,ppc,mips}\*.exe. The ppc and mips tools were delfiled a while ago by Rich Shupak. srcrel\makefile Fix typo for Alpha64 build ("!else if" should be "!elseif") ----------------------------------------------------------------- Thu 03-Jun-99 (PhilipLu) makefile Fix oldnames.lib build for IA64. crtw32\h\float.h libw32\inc64\float.h libw32\include\float.h Define _CW_DEFAULT for IA64 (vs7#22100). libw32\inc64\rtcapi.h libw32\inc64\typeinfo.h Pick up Win64 cleansed headers from recent checkins. ----------------------------------------------------------------- Wed 02-Jun-99 (PhilipLu) crtw32\convert\mbstowcs.c, mbtowc.c, wcstombs.c fpw32\tran\alpha\filter.c Warning fixes from v-kimpe for _NTSUBSET_ and Alpha build. ----------------------------------------------------------------- Wed 02-Jun-99 (GregF) crtw32\h\internal.h crtw32\misc\putenv.c, setenv.c Fixed several leaks which manifested in _putenv(). A copy of the arg string is made in _putenv first thing, but it was not subsequently freed in some cases when it should have been. This fixes VS7 #18971. ----------------------------------------------------------------- Tue 01-Jun-99 (PhilipLu) makefile.inc crtw32\eh\stdexcpt.cpp crtw32\h\internal.h, typeinfo.h crtw32\stdcpp\cerr.cpp, cin.cpp, clog.cpp, cout.cpp, delaop.cpp, delop.cpp, dlldef.cpp, fiopen.cpp, iomanip.cpp, ios.cpp, iosptrs.cpp, iostream.cpp, locale.cpp, locale0.cpp, newaop.cpp, newaop2.cpp, newop.cpp, newop2.cpp, nomemory.cpp, raisehan.cpp [NEW], sources.nt, stdhndlr.cpp [NEW], stdthrow.cpp, string.cpp, strstrea.cpp, uncaught.cpp, wcerr.cpp, wcin.cpp, wclog.cpp, wcout.cpp, wctrans.c, wctype.c, wiostrea.cpp, wlocale.cpp, xcosh.c, xdnorm.c, xdscale.c, xdtest.c, xexp.c, xfcosh.c, xfdnorm.c, xfdscale.c, xfdtest.c, xfexp.c, xfsinh.c, xfvalues.c, xlcosh.c, xldnorm.c, xldscale.c, xldtest.c, xlexp.c, xlocale.cpp, xlock.cpp, xlpoly.c, xlsinh.c, xlvalues.c, xmath.h, xpoly.c, xsinh.c, xstod.c, xstrcoll.c, xvalues.c crtw32\stdhpp\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, streambuf, string, strstream, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h doc\copysrc.bat doc\pjp\makefile.inc, pd-b libw32\include\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, hash_map, hash_set, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, streambuf, string, strstream, typeinfo.h, utility, valarray, vector, xcomplex, xhash, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmath.h, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h srcrel\pd-b Integrate 05/03/99 drop of STL from Plauger. ----------------------------------------------------------------- Wed 26-May-99 (KFrei) crtw32\h\rtcapi.h, rtcpriv.h, rtcsup.h crtw32\heap\calloc.c, delete.cpp, expand.c, free.c, malloc.c, new.cpp, new2.cpp, realloc.c crtw32\misc\dbgdel.cpp, dbgheap.c, dbgnew.cpp, i386\chkesp.c crtw32\rtc\bintree.cpp, callsite.cpp, chsyheap.cpp, contain.cpp, error.cpp, fileio.cpp, init.cpp, memory.cpp, pdblkup.cpp, shadow.cpp, userapi.cpp crtw32\stdcpp\delaop.cpp, delop.cpp, newaop.cpp, newaop2.cpp, newop.cpp, newop2.cpp crtw32\tools\win32\relinc.if libw32\include\rtcapi.h srcrel\msvc40.if Remove /RTCl and /RTCv, add /RTCu. Put shadow mem stuff under _RTC_ADVMEM, which is disabled. Clean up names to always use _RTC_ prefix. Simplify _RTC_Allocate_hook. ----------------------------------------------------------------- Fri 21-May-99 (PhilipLu) makefile Link IA64 xdll targets /debugtype:both. Also add -osversion link switches used for other Win64 dll targets to the zdll (BBT) target too. ----------------------------------------------------------------- Thu 20-May-99 (PhilipLu) crtw32\eh\ehveccrt.cpp, ehveccvb.cpp, ehvecdtr.cpp Turn off __thiscall for IA64. makefile srcrel\external.mkf, mkclnmkf.c, objects.mkf, pd-b Build msvcp60.dll for Win64, not msvcp61.dll. ----------------------------------------------------------------- Thu 20-May-99 (PhilipLu) [addfiled:] crtw32\tools\win32\relinc64.cmd libw32\inc64\algorithm, assert.h, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, conio.h, crtdbg.h, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, ctype.h, cwchar, cwctype, deque, direct.h, dos.h, eh.h, errno.h, exception, excpt.h, fcntl.h, float.h, fpieee.h, fstream, fstream.h, functional, io.h, iomanip, iomanip.h, ios, ios.h, iosfwd, iostream, iostream.h, iso646.h, istream, istream.h, iterator, limits, limits.h, list, locale, locale.h, malloc.h, map, math.h, mbctype.h, mbstring.h, memory, memory.h, minmax.h, new, new.h, numeric, ostream, ostream.h, process.h, queue, rtcapi.h, search.h, set, setjmp.h, setjmpex.h, share.h, signal.h, sstream, stack, stdarg.h, stddef.h, stdexcept, stdexcpt.h, stdio.h, stdiostr.h, stdlib.h, stl.h, streamb.h, streambuf, string, string.h, strstrea.h, strstream, tchar.h, time.h, typeinfo, typeinfo.h, use_ansi.h, useoldio.h, utility, valarray, varargs.h, vector, wchar.h, wctype.h, xcomplex, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmon, xlocnum, xloctime, xmath.h, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h libw32\inc64\sys\locking.h, stat.h, timeb.h, types.h, utime.h Cleansed headers for Win64 build. This should be temporary - delete once NT5 ships and Win32 and Win64 builds start using same STL headers. srcrel\makefile, pd-b Handle new libw32\inc64 files for Win64 build. ----------------------------------------------------------------- Thu 20-May-99 (PhilipLu) crtw32\misc\dbgheap.c Don't DebugBreak if heap allocation counter wraps around back to -1 (vs7#5363). ----------------------------------------------------------------- Wed 19-May-99 (PhilipLu) [addfiled:] crtw32\stdcpp64\_tolower.c, _toupper.c, delop.cpp, delop_s.cpp, dirs, dlldef.cpp, fiopen.cpp, iomanip.cpp, ios.cpp, iostream.cpp, locale.cpp, locale0.cpp, newop.cpp, newop2.cpp, newop2_s.cpp, newop_s.cpp, nomemory.cpp, sources.nt, string.cpp, strstrea.cpp, uncaught.cpp, wctrans.c, wctype.c, wiostrea.cpp, wlocale.cpp, xcosh.c, xdnorm.c, xdscale.c, xdtest.c, xexp.c, xfcosh.c, xfdnorm.c, xfdscale.c, xfdtest.c, xfexp.c, xfsinh.c, xfvalues.c, xlcosh.c, xldnorm.c, xldscale.c, xldtest.c, xlexp.c, xlocale.cpp, xlock.cpp, xlpoly.c, xlsinh.c, xlvalues.c, xmath.h, xmbtowc.c, xpoly.c, xsinh.c, xstod.c, xstrcoll.c, xstrxfrm.c, xvalues.c, xwcscoll.c, xwcsxfrm.c, xwctomb.c crtw32\stdhpp64\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, stl.h, streambuf, string, strstream, typeinfo, use_ansi.h, utility, valarray, vector, wctype.h, xcomplex, xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmon, xlocnum, xloctime, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h Add in old STL files from \\lang5\rtl CRT 64 sourcesafe tree. These files are used to build the Win64 version of STL for as long as NT keeps using the old STL headers for their Win32/Win64 builds. These files should go away once NT5 ships and NT updates to current STL headers. makefile, makefile.inc, makefile.sub crtw32\dirs srcrel\makefile, mkclnmkf.c, pd-b For Win64, build the STL components with the stdcpp64\stdhpp64 sources, not the stdcpp\stdhpp ones used for Win32 builds. ----------------------------------------------------------------- Wed 19-May-99 (PhilipLu) srcrel\external.mkf, makefile When building a 64-bit crt on a 32-bit system, use the V6TOOLS compiler to build the 32-bit hosted mkclnmkf.exe and striplin.exe. Also, build the proper cross-hosted 64-bit targetted version of mkclnmkf.exe. ----------------------------------------------------------------- Mon 17-May-99 (PhilipLu) crtw32\convert\isctype.c, mblen.c, mbstowcs.c, mbtowc.c, tolower.c, toupper.c, wcstombs.c, wctomb.c crtw32\dllstuff\atonexit.c, cinitexe.c, crtdll.c, crtexe.c crtw32\dos\access.c, chdir.c, chmod.c, dosmap.c, drive.c, fullpath.c, getcwd.c, getpid.c, mkdir.c, rename.c, rmdir.c, stat.c, unlink.c crtw32\eh\ehvecctr.cpp, ehveccvb.cpp, ehvecdtr.cpp, frame.cpp, hooks.cpp, oldexcpt.h, rtti.cpp, throw.cpp, unhandld.cpp, user.cpp, validate.cpp crtw32\h\assert.h, cmsgs.h, conio.h, crtdbg.h, cruntime.h, ctype.h, direct.h, dos.h, dostypes.h, eh.h, ehassert.h, ehhooks.h, ehstate.h, errno.h, excpt.h, fcntl.h, float.h, fltintrn.h, fpieee.h, fstream.h, heap.h, internal.h, io.h, iomanip.h, ios.h, iostream.h, istream.h, limits.h, locale.h, malloc.h, math.h, mbctype.h, mbstring.h, memory.h, msdos.h, mtdll.h, new.h, oscalls.h, ostream.h, process.h, rtcsup.h, search.h, setjmp.h, setjmpex.h, share.h, signal.h, stdarg.h, stddef.h, stdexcpt.h, stdio.h, stdiostr.h, stdlib.h, streamb.h, string.h, strstrea.h, tchar.h, time.h, trnsctrl.h, typeinfo.h, varargs.h, wchar.h crtw32\h\sys\locking.h, stat.h, timeb.h, types.h, utime.h crtw32\heap\free.c, heapdump.c, heapgrow.c, heapinit.c, heapmin.c, realloc.c crtw32\iostream\filebuf.cpp, stdiostr.cpp crtw32\lowio\chsize.c, close.c, commit.c, dup.c, dup2.c, eof.c, flength.c, fstat.c, isatty.c, locking.c, lseek.c, mktemp.c, open.c, osfinfo.c, read.c, setmode.c, tell.c, write.c crtw32\mbstring\ismbalnm.c, ismbalph.c, ismbdgt.c, ismbgrph.c, ismblwr.c, ismbprn.c, ismbpunc.c, ismbspc.c, ismbupr.c, mbctype.c, mbscoll.c, mbsicmp.c, mbsicoll.c, mbslwr.c, mbsnbcol.c, mbsnbico.c, mbsncoll.c, mbsnicol.c, mbsupr.c, mbtolwr.c, mbtoupr.c crtw32\misc\abs.c, assert.c, crtmbox.c, dbgheap.c, dbgrpt.c, getenv.c, getpath.c, lconv.c, onexit.c, perror.c, putenv.c, searchen.c, syserr.c crtw32\startup\crt0.c, crt0dat.c, crt0msg.c, dllcrt0.c, dllmain.c, stdargv.c crtw32\stdcpp\_tolower.c, _toupper.c, xmbtowc.c, xstrcoll.c, xstrxfrm.c, xwctomb.c crtw32\stdhpp\exception, typeinfo, wctype.h crtw32\stdio\_filbuf.c, _file.c, _flsbuf.c, _freebuf.c, _getbuf.c, _open.c, _sftbuf.c, clearerr.c, closeall.c, fclose.c, fdopen.c, fflush.c, fgetpos.c, fread.c, fseek.c, fsetpos.c, ftell.c, fwrite.c, input.c, maketabc.c, output.c, rewind.c, rmtmp.c, setvbuf.c, stream.c, tempnam.c, test_out.c, tmpfile.c crtw32\string\memicmp.c, strcoll.c, stricmp.c, stricoll.c, strlwr.c, strncoll.c, strnicmp.c, strnicol.c, strset.c, strupr.c, strxfrm.c crtw32\time\clock.c, dtoxtime.c, ftime.c, localtim.c, mktime.c, mktime64.c, strdate.c, strftime.c, strtime.c, time.c, tzset.c, utime.c doc\pjp\mkclnmkf.c fpw32\include\cv.h, trans.h fpw32\tran\fabs.c, sincosh.c, tanh.c libw32\include\assert.h, conio.h, crtdbg.h, ctype.h, direct.h, dos.h, eh.h, errno.h, exception, excpt.h, fcntl.h, float.h, fpieee.h, fstream.h, io.h, iomanip.h, ios.h, iostream.h, istream.h, limits.h, locale.h, malloc.h, math.h, mbctype.h, mbstring.h, memory.h, new.h, ostream.h, process.h, search.h, setjmp.h, setjmpex.h, share.h, signal.h, stdarg.h, stddef.h, stdexcpt.h, stdio.h, stdiostr.h, stdlib.h, streamb.h, string.h, strstrea.h, tchar.h, time.h, typeinfo, typeinfo.h, varargs.h, wchar.h, wctype.h libw32\include\sys\locking.h, stat.h, timeb.h, types.h, utime.h srcrel\msvc40.if Removing Macintosh support, stage 2: Remove all Mac support from source files. Also remove most _WIN32 #ifs, since _WIN32 is always on now and some Mac code was actually under #ifndef _WIN32 instead of #ifdef _MAC. ----------------------------------------------------------------- Mon 17-May-99 (PhilipLu) clean.cmd, makefile, makefile.inc, makefile.sub crtw32\crt.mkf, crt32.nt crtw32\convert\convert.mkf, lsources crtw32\dllstuff\lsources crtw32\dos\dos.mkf, lsources crtw32\eh\eh.mkf, lsources crtw32\exec\exec.mkf, lsources crtw32\heap\heap.mkf, lsources crtw32\helper\lsources crtw32\iostream\iostream.mkf, lsources crtw32\linkopts\lsources crtw32\lowio\lowio.mkf, lsources crtw32\mbstring\lsources, mbstring.mkf crtw32\misc\lsources, misc.mkf crtw32\startup\lsources, startup.mkf crtw32\stdio\lsources, stdio.mkf crtw32\string\lsources, string.mkf crtw32\time\lsources, time.mkf doc\copycrt.bat, copysrc.bat doc\pjp\makefile.srcrel fpw32\fp.mkf, fp32.nt, infer.mkf fpw32\conv\conv.mkf, lsources fpw32\tran\lsources, tran.mkf srcrel\bldnt.cmd, bldwin95.bat, external.mkf, makefile, mkclnmkf.c, mkfiles.sed, objects.mkf, pd-b Removing Macintosh support, stage 1: Remove all Mac support from makefiles and scripts and delfile Mac-only files. [delfiled:] mkmac.bat crtw32\mac.mkf, makemac.cmd, mkm68k.bat, mkpmac.bat crtw32\convert\mac\atold.c, strtold.c crtw32\dllstuff\macdll\makedll.cmd, makedlld.cmd, msvcrt.def, msvcrt.r, msvcrtd.def crtw32\dos\mac\remove.c crtw32\eh\mac\m68k\frame.cpp, trnsctrl.a crtw32\eh\mac\pmac\ehstate.cpp, exdsptch.cpp, handlers.asm, lowhelpr.asm, ntstatus.h, ppcinst.h, trnsctrl.cpp, unwind.asm, vunwind.cpp crtw32\exec\mac\spawn.c crtw32\h\plstring.h crtw32\h\mac\mpw.h, rtlib.h crtw32\h\mac\m68k\assert.a, crtequ.a, sysequ.a, traps.a crtw32\heap\mac\heapaslm.c crtw32\helper\mac\pmac\i64div.asm, i64rem.asm, i64rsh.asm, rfpr.asm, rgpr.asm, sfpr.asm, sgpr.asm, u64div.asm, u64rem.asm crtw32\lowio\mac\_endlow.c, dupx.c crtw32\misc\mac\cinitenv.c, cinitone.c, gestalt.c, id2path.c, signal.c, xcptfltr.c crtw32\misc\mac\m68k\libhlprs.a, rts.a, setjmp.a, stkavl.a crtw32\misc\mac\pmac\exsup.asm, setjmp.asm, stkavl.c crtw32\startup\mac\amsg.c, exit.c, init.c, libcinfo.c, runtime.c crtw32\startup\mac\m68k\applyfix.a, astart.a, chkstk.a, fixupseg.a, getstack.a, loaddata.a, loadseg.a, qd.a, quit.a, shellrtn.a, stdalone.a, unloadsn.a crtw32\startup\mac\pmac\astart.c, chkstk.asm, crtdllex.c, crtexit.c, dllexit.c, qd.c, shellrtn.c, sp.c, testexit.c crtw32\stdio\mac\initstd.c crtw32\string\special.mak crtw32\string\mac\c2pstr.c, p2cstr.c, plstrcat.c, plstrchr.c, plstrcmp.c, plstrlen.c, plstrnca.c, plstrncm.c, plstrncp.c, plstrpbr.c, plstrrch.c, plstrspn.c, plstrstr.c crtw32\time\mac\cinitclk.c crtw32\tools\mac\addseg.c, addseg.exe, adep.bat, adep.sed, asm68.exe, cdep.bat, cdep.sed, cp.exe, gawk.exe, getver.exe, ifstrip.exe, make.exe, ml.err, ml.exe, nmake.exe, relinc.cmd, relinc.if, relinc.sed, sort.exe, uniq.exe fpw32\m68k.mkf, makemac.cmd, mkm68k.bat, mkpmac.bat, pmac.mkf fpw32\conv\mac\m68k\_xtos.c, _xtou.c, cfinl.c, cfout.c, clfout.c, cvt.c, decode.a, fpdata.c, fpinit.c, lddata.c, ldinit.c, libcinfo.c fpw32\conv\mac\pmac\dtoi.asm, dtoi64.asm, dtou.asm, dtou64.asm, fpinit.c, ftou.asm, i64tod.asm, itod.asm, itof.asm, u64tod.asm, utod.asm, utof.asm fpw32\include\mac\transl.h fpw32\include\mac\m68k\sane.a, trans.a, traps.a fpw32\tran\special.mak fpw32\tran\mac\m68k\_fpxpt.c, asincosl.c, atan2.c, atan2l.c, bessell.c, ceil.a, ceill.a, error.a, exphlp.c, exphlpl.c, fabs.a, fabsl.a, floor.a, floorl.a, fmod.a, fmodl.a, fpctrl.a, frexpl.c, frnd.a, frndl.a, fsqrt.c, fsqrtl.c, huge.a, hypotl.c, iceil.a, ieee.c, ifloor.a, ifmod.a, isqrt.a, itran.a, itrig.a, itriga.a, itrigh.a, ldexpl.c, matherr.c, matherrl.c, modfl.c, sincoshl.c, sqrt.a, sqrtl.a, tanhl.c, tran.a, tranl.a, trig.a, triga.a, trigal.a, trigh.a, trighl.a, trigl.a, utill.c fpw32\tran\mac\pmac\_fpctrl.c, _fpxpt.c, fpctrl.asm, frnd.c, huge.c, ieee.c libw32\include\mrc\cfrg.r, cfrg1024.r, cfrg256.r, cfrg512.r libw32\lib\mppc\cfrg.rsc, cfrg1024.rsc, cfrg256.rsc, cfrg512.rsc libw32\tools\m68k\aliasobj.exe libw32\tools\pmac\aliasobj.exe, detab.exe, ifstrip.exe, pd.exe, striphdr.exe, tolwrupr.exe, trailing.exe srcrel\_sample_.r Mac-only files delfiled from source tree. ----------------------------------------------------------------- Fri 14-May-99 (PhilipLu) crtw32\h\assert.h, conio.h, ctype.h, direct.h, dos.h, eh.h, errno.h, excpt.h, float.h, fpieee.h, io.h, locale.h, malloc.h, math.h, mbctype.h, mbstring.h, memory.h, new.h, process.h, search.h, setjmp.h, signal.h, stddef.h, stdio.h, stdlib.h, string.h, time.h, wchar.h crtw32\h\sys\stat.h, timeb.h, utime.h crtw32\stdhpp\wctype.h fpw32\include\cv.h, trans.h libw32\include\assert.h, conio.h, ctype.h, direct.h, dos.h, eh.h, errno.h, excpt.h, float.h, fpieee.h, io.h, locale.h, malloc.h, math.h, mbctype.h, mbstring.h, memory.h, new.h, process.h, search.h, setjmp.h, signal.h, stddef.h, stdio.h, stdlib.h, string.h, time.h, wchar.h, wctype.h libw32\include\sys\stat.h, timeb.h, utime.h srcrel\msvc40.if Remove all defs of _CRTAPI1/2. There were no uses. crtw32\h\win32s.h [delfiled] crtw32\heap\handler.cpp, heapinit.c, malloc.c, oldnew.c, _newmode.c crtw32\iostream\cerrinit.cpp, cininit.cpp, cloginit.cpp, iostrini.cpp crtw32\linkopts\newnew.c crtw32\lowio\lowio.mkf crtw32\misc\ctype.c, dbghook.c, inithelp.c, lconv.c, misc.mkf, nlsdata1.c, nlsdata3.c, wsetloca.c crtw32\startup\mlock.c crtw32\stdio\ncommode.c, rmtmp.c, stream.c, tmpfile.c crtw32\time\timeset.c doc\copysrc.bat fpw32\tran\matherr.c libw32\buildall.cmd, makefile, msvcrt.src srcrel\msvc40.if, pd-b Eliminate all Win32s code still hanging around. ----------------------------------------------------------------- Thu 13-May-99 (PhilipLu) crtw32\stdcpp\iosptrs.cpp crtw32\stdhpp\xstddef libw32\include\xstddef Missing __cdecl in prototype for _Loc_atexit. ----------------------------------------------------------------- Thu 13-May-99 (PhilipLu) makefile crtw32\dllstuff\crtdll.c, crtexe.c crtw32\h\rtcapi.h, rtcpriv.h, rtcsup.h crtw32\misc\alpha\chkesp.c crtw32\misc\i386\chkesp.c crtw32\rtc\bintree.cpp, callsite.cpp, chsyheap.cpp, contain.cpp, convert.cpp, error.cpp, fileio.cpp, init.cpp, initsect.cpp, memory.cpp, pdblkup.cpp, shadow.cpp, stack.cpp, userapi.cpp crtw32\startup\crt0.c, crt0dat.c, dllcrt0.c crtw32\stdcpp\delaop.cpp, delop.cpp, newaop.cpp, newaop2.cpp, newop.cpp, newop2.cpp libw32\include\rtcapi.h libw32\msvcrt.src srcrel\msvc40.if _CC_RUNTIME_CHECKS -> _RTC and other minor RTC cleanup ----------------------------------------------------------------- Wed 12-May-99 (PhilipLu) makefile, makefile.inc, makefile.sub crtw32\eh\rtti.cpp crtw32\heap\expand.c, free.c, malloc.c, new2.cpp crtw32\misc\dbgheap.c, lsources crtw32\misc\alpha\setjmp.s, setjmpex.s crtw32\stdcpp\locale.cpp, locale0.cpp, wlocale.cpp, xlocale.cpp, xstrcoll.c, xwcscoll.c crtw32\stdhpp\ostream, streambuf, xlocale libw32\msvcrt.src libw32\include\ostream, rtcapi.h, streambuf, xlocale srcrel\makefile, objects.mkf Improve method used to disable RTC support in Win64. Fix Win64 build for Alpha64 and IA64. ----------------------------------------------------------------- Tue 11-May-99 (KFrei) This stuff moves all the runtime check code under #ifdef _CC_RUNTIME_CHECKS makefile Only define _CC_RUNTIME_CHECKS for non LLP64 builds crtw32\dllstuff\crtdll.c, crtexe.c crtw32\startup\crt0.c, crt0dat.c, dllcrt0.c #ifdef'ed RTC init and term code crtw32\h\rtcapi.h, rtcpriv.h, rtcsup.h crtw32\libw32\include\rtcapi.h #ifdef'ed the entire contents of the headers crtw32\misc\alpha\chkesp.c crtw32\misc\i386\chkesp.c #ifdef'ed the initialization, shutdown and syncronization stuff crtw32\rtc\bintree.cpp, callsite.cpp, chsyheap.cpp, contain.cpp, convert.cpp, error.cpp, fileio.cpp, init.cpp, initsect.cpp, memory.cpp, pdblkup.cpp, shadow.cpp, stack.cpp, userapi.cpp Everything is now empty #ifndef _CC_RUNTIME_CHECKS crtw32\stdcpp\delaop.cpp, delop.cpp, newaop.cpp, newaop2.cpp, newop.cpp, newop2.cpp Put all the usage of the RTC code under _CC_RUNTIME_CHECKS crtw32\libw32\msvcrt.src put _CRT_RTC_INIT export under #ifdef _CC_RUNTIME_CHECKS ----------------------------------------------------------------- Mon 10-May-99 (GregF) crtw32\convert\wcstombs.c, wctomb.c crtw32\misc\a_loc.c, a_map.c, w_cmp.c, w_map.c, w_str.c crtw32\stdcpp\xwctomb.c crtw32\time\tzset.c Changed the dwFlags argument to WideCharToMultiByte to be zero. This was suggested by K. D. Chang to avoid problems with codepage 1258 on NT 5.0. ----------------------------------------------------------------- Wed 05-May-99 (rlanser) These are all ports from the CRT64 or CRT64_SIZET_32 trees (PhilipLu) makefile link /debugtype:both,fixup for IA64 crtw32\eh\frame.cpp Add __unaligned. crtw32\misc\assert.c Define _DbgBreak for IA64. crtw32\h\crtdbg.h libw32\include\crtdbg.h Define _CrtDbgBeak for IA64. fpw32\conv\tenpow.c fpw32\include\cv.h Added _M_IA64 to alignment #if's. ----------------------------------------------------------------- Wed 05-May-99 (PhilipLu) srcrel\clnsrcrel.bat, makefile Don't copy platform-specific files of other platforms. Saves copying about 500 files on 32-bit x86 build. crtw32\eh\throw.cpp Buildfix for newer Win headers with new prototype of RaiseException, while still allowing build with old headers missing definition of PULONG_PTR. crtw32\misc\alpha\chandler.c crtw32\startup\alpha\chkstk.s Buildfixes for 32-bit Alpha build after 64-bit merge. ----------------------------------------------------------------- Tue 04-May-99 (PhilipLu) crtw32\dllstuff\ia64\dllsupp.c crtw32\h\sect_attribs.h crtw32\misc\ia64\chandler.c, cinitone.s, jmpuwind.s, longjmp.s, memcpys.s, memsets.s, miscs.s, setjmp.s, setjmpex.s crtw32\startup\ia64\chkstk.s, fp8.c, crtw32\stdcpp\dirs, sources.nt crtw32\stdcpp\stp\makefile, sources fpw32\conv\psx\makefile, sources fpw32\tran\axp64\acos.s, acosf.s, asin.s, asinacos.s, asinf.s, ata_tabs.s, ata_tabt.s, atan2f.s, atan2s.s, atanf.s, atans.s, cabs.s, cabsf.s, captcont.s, ceilf.s, ceils.s, chopt.s, copysgnf.s, cos_vo.s, cosf.s, cosf_vo.s, cosh.s, coshf.s, coss.s, cot.s, cotf.s, dpml_com.s, expf.s, exps.s, f_acos.s, f_acosf.s, f_asin.s, f_asinf.s, f_atan.s, f_atan2.s, f_atan2f.s, f_atanf.s, f_cos.s, f_cosf.s, f_exp.s, f_expf.s, f_hypot.s, f_hypotf.s, f_log.s, f_log10.s, f_log10f.s, f_logf.s, f_pow.s, f_powf.s, f_sin.s, f_sincof.s, f_sincos.s, f_sinf.s, f_sqrt.s, f_sqrtf.s, f_tan.s, f_tanf.s, fabsf.s, fabss.s, finitef.s, floorf.s, floors.s, fmodf.s, fmods.s, fp_clasf.s, fpctrl.s, fpint.s, frexp.s, frexpf.s, frnd.s, huge.s, hypotf.s, hypots.s, invtrigs.s, invtrigt.s, isnanf.s, j0f.s, j1f.s, jnf.s, l10_tabt.s, ldexp.s, log10f.s, log10s.s, log_tabt.s, logbf.s, logf.s, logs.s, modff.s, modfs.s, nextaftf.s, pow_tabt.s, powcerr.s, powf.s, pows.s, rsqrt.s, rsqrtf.s, sin_tabt.s, sin_vo.s, sincofvo.s, sincos.s, sincosf.s, sincosvo.s, sinf.s, sinf_vo.s, sinh.s, sinhcosf.s, sinhcosh.s, sinhf.s, sins.s, specexp.s, specexpf.s, sqr_tabt.s, sqrtf.s, sqrts.s, tan_tabt.s, tanf.s, tanh.s, tanhf.s, tans.s, trig_rdf.s, trig_rdx.s, trig_tab.s, y0f.s, y1f.s, ynf.s fpw32\tran\ia64\asincosf.c, atan2f.c, atanf.c, ceilf.c, em_types.h, emfloat.s, expf.c, fabsf.c, filter.c, floorf.c, fmodf.c, fp80.s, fp80c.c, fpctrl.c, fpieee_flt.h, frnd.s, huge.s, ieee.c, log10f.c, logf.c, powf.c, sincosf.c, sincoshf.c, sqrtf.c, tanf.c, tanhf.c fpw32\tran\psx\makefile, sources libw32\lib\axp64\ libw32\lib\ia64\ libw32\lib\stp\makefile, makefile.inc, sources libw32\tools\ia64\aliasobj.exe, detab.exe, ifstrip.exe, pd.exe, striphdr.exe, tolwrupr.exe, trailing.exe Merging 64-bit CRT with 32-bit CRT. Added new files from the CRT 64 tree. log_64.txt Merging 64-bit CRT with 32-bit CRT. Save log.txt from CRT 64 tree under new name. makefile makefile.inc makefile.sub crtw32\crt32.nt, dirs crtw32\convert\_mbslen.c, atof.c, mblen.c, mbstowcs.c, strtod.c, wcstombs.c crtw32\direct\findf64.c, findfile.c crtw32\dllstuff\cinitexe.c, crtdll.c, crtexe.c, lsources crtw32\dllstuff\dlllib\sources crtw32\dos\fullpath.c crtw32\eh\frame.cpp, lsources, oldexcpt.cpp, oldexcpt.h, sources.nt, throw.cpp, unhandld.cpp crtw32\eh\alpha\bridge.s, ehunwind.c, xcptmisc.h, xcptmisc.s crtw32\eh\dll\sources crtw32\eh\ia64\ehstate.cpp, handlerc.cpp, handlers.s, trnsctrl.cpp crtw32\eh\mt\sources crtw32\eh\nt\sources crtw32\eh\st\sources crtw32\exec\cenvarg.c, dospawn.c, execl.c, execle.c, execlp.c, execlpe.c, execv.c, execvp.c, execvpe.c, getproc.c, loaddll.c, spawnl.c, spawnle.c, spawnlp.c, spawnlpe.c, spawnv.c, spawnve.c, spawnvp.c, spawnvpe.c, system.c, wait.c crtw32\h\assert.h, conio.h, crtdbg.h, cruntime.h, ctime.h, ctype.h, direct.h, dos.h, eh.h, ehstate.h, errno.h, excpt.h, float.h, fpieee.h, heap.h, internal.h, io.h, locale.h, malloc.h, math.h, mbctype.h, mbstring.h, memory.h, mtdll.h, new.h, nlsint.h, process.h, search.h, setjmp.h, signal.h, stdarg.h, stddef.h, stdexcpt.h, stdio.h, stdlib.h, streamb.h, string.h, time.h, trnsctrl.h, varargs.h, wchar.h, winheap.h crtw32\h\sys\stat.h, timeb.h, types.h, utime.h crtw32\heap\new.cpp crtw32\heap\dll\sources crtw32\heap\mt\sources crtw32\heap\st\sources crtw32\helper\lsources, sources.nt crtw32\iostream\_strstre.cpp, ostream.cpp, stdiostr.cpp, streamb.cpp crtw32\linkopts\lsources crtw32\lowio\cgets.c, close.c, cputs.c, dup.c, dup2.c, getch.c, initcon.c, ioinit.c, open.c, osfinfo.c, pipe.c, putch.c, read.c, write.c crtw32\mbstring\mbctype.c, mbsnbcol.c, mbsnbico.c, mbsncoll.c, mbsnicol.c, sources.nt crtw32\misc\a_env.c, bsearch.c, charmax.c, dbgheap.c, dbgnew.cpp, dbgrpt.c, getenv.c, lsources, onexit.c, perror.c, putenv.c, qsort.c, setenv.c, setlocal.c, splitpat.c, w_env.c, wperror.c, wsetloca.c crtw32\misc\alpha\chandler.c, ghandler.c, jmpuwind.s, longjmp.s, otsjmp.s, otsjmpex.s crtw32\misc\dll\sources crtw32\misc\mt\sources crtw32\misc\nt\sources crtw32\misc\psx\sources crtw32\misc\st\sources crtw32\startup\crt0.c, crt0dat.c, crt0init.c, crt0msg.c, lsources, startup.mkf, stdenvp.c, thread.c, threadex.c, tidtable.c, tlssup.c, wild.c crtw32\startup\alpha\chkstk.s crtw32\startup\dll\sources crtw32\startup\dlllib\sources crtw32\startup\mt\sources crtw32\startup\nt\sources crtw32\startup\psx\sources crtw32\startup\st\sources crtw32\stdcpp\xstrcoll.c, xstrxfrm.c, xwcscoll.c, xwcsxfrm.c crtw32\stdio\_file.c, _flsbuf.c, fflush.c, fputs.c, fputws.c, fread.c, ftell.c, ftelli64.c, fwrite.c, input.c, output.c, popen.c, puts.c, rmtmp.c, setvbuf.c, sprintf.c, sscanf.c, swprintf.c, swscanf.c, tempnam.c, vsprintf.c, vswprint.c crtw32\string\lsources, memcpy.c, memmove.c, memset.c, sources.nt, strncoll.c, strnicol.c, strset.c, strxfrm.c, wcscspn.c, wcsncoll.c, wcsnicol.c, wcsspn.c, wcsxfrm.c crtw32\time\clock.c, dtoxtime.c, gmtime.c, localtim.c, mktime.c, wcsftime.c fpw32\conv\cfin.c, fltinf.c, fpinit.c fpw32\include\cv.h, trans.h fpw32\tran\asincos.c, atan.c, bessel.c, ceil.c, exp.c, fabs.c, floor.c, fmod.c, fpexcept.c, frexp.c, hypot.c, ieeemisc.c, ldexp.c, log.c, lsources, modf.c, pow.c, sincos.c, sincosh.c, sources.nt, sqrt.c, tan.c, tanh.c fpw32\tran\alpha\dpml_exc.c, filter.c fpw32\tran\i386\filter_simd.c, xmmi_fp_emul.c libw32\makefile, msvcirt.src, msvcrt.src libw32\include\assert.h, conio.h, crtdbg.h, ctype.h, direct.h, dos.h, eh.h, errno.h, excpt.h, float.h, fpieee.h, io.h, locale.h, malloc.h, math.h, mbctype.h, mbstring.h, memory.h, new.h, process.h, search.h, setjmp.h, signal.h, stdarg.h, stddef.h, stdexcpt.h, stdio.h, stdlib.h, streamb.h, string.h, time.h, varargs.h, wchar.h libw32\include\sys\stat.h, timeb.h, types.h, utime.h libw32\lib\dirs, sources.nt srcrel\external.mkf, makefile, mkclnmkf.c, msvc40.if, objects.mkf, pd-b Merging 64-bit CRT with 32-bit CRT. Merged in diffs from CRT 64 tree. crtw32\heap\calloc.c, expand.c, free.c, heapchk.c, heapinit.c, heapmin.c, malloc.c, msize.c, realloc.c, sbheap.c Merging 64-bit CRT with 32-bit CRT. Merged in diffs from CRT 64 tree. Also, disable the small block heap under Win64. All heap routines just pass through to the underlying OS APIs. ----------------------------------------------------------------- Mon 26-Apr-99 (PhilipLu) crtw32\eh\comerr.cpp crtw32\h\comerr.h crtw32\winheap\*.* libw32\include\comerr.h Delfile unnecessary files ----------------------------------------------------------------- Mon 26-Apr-99 (PhilipLu) crtw32\h\mtdll.h, setlocal.h crtw32\misc\initmon.c, initnum.c, setlocal.c crtw32\startup\tidtable.c Introduced one more reference counter for pieces of the per-thread locale information, cleaned up more setlocale memory leaks. ----------------------------------------------------------------- Fri 16-Apr-99 (GregF) crtw32\heap\realloc.c Added a call to __sbh_find_block to handle the case where __sbh_alloc_block has caused the header list to be moved. This fixes VS7 #14020. ----------------------------------------------------------------- Wed 14-Apr-99 (PhilipLu) crtw32\stdcpp\delaop.cpp, delop.cpp, newaop.cpp, newaop2.cpp, newop.cpp, newop2.cpp Add back RTC functionality wiped out by STL integration (whoops) crtw32\stdcpp\iosptrs.cpp crtw32\stdhpp\xstddef Missing __cdecl in funcptr arg to _Loc_atexit crtw32\stdhpp\cassert, iosfwd Minor cleanup missed in STL integration crtw32\tools\win32\relinc.cmd Add STL header xlocmes to cleansing ----------------------------------------------------------------- Tue 13-Apr-99 (PhilipLu) makefile, makefile.inc, srcrel\pd-b Add new files stdcpp\cerr.cpp, stdcpp\cin.cpp, stdcpp\clog.cpp, stdcpp\cout.cpp, stdcpp\iosptrs.cpp, stdcpp\wcerr.cpp, stdcpp\wcin.cpp, stdcpp\wclog.cpp, stdcpp\wcout.cpp, stdhpp\hash_map, stdhpp\hash_set, stdhpp\xhash, libw32\include\hash_map, libw32\include\hash_set, libw32\include\xhash. doc\copysrc.bat Add new files, plus missing files delaop.cpp, dealop_s.cpp, newaop.cpp, newaop2.cpp, newaop_s.cpp, newaop2_s.cpp, stdthrow.cpp. crtw32\stdcpp\cerr.cpp [NEW], cin.cpp [NEW], clog.cpp [NEW], cout.cpp [NEW], delaop.cpp, delop.cpp, fiopen.cpp, iomanip.cpp, ios.cpp, iosptrs.cpp [NEW], iostream.cpp, locale.cpp, LOCALE0.CPP, newaop.cpp, newaop2.cpp, newop.cpp, newop2.cpp, nomemory.cpp, stdthrow.cpp, string.cpp, strstrea.cpp, uncaught.cpp, wcerr.cpp [NEW], wcin.cpp [NEW], wclog.cpp [NEW], wcout.cpp [NEW], wctrans.c, wctype.c, wiostrea.cpp, wlocale.cpp, xcosh.c, xdnorm.c, xdscale.c, xdtest.c, xexp.c, xfcosh.c, xfdnorm.c, xfdscale.c, xfdtest.c, xfexp.c, xfsinh.c, xfvalues.c, xlcosh.c, xldnorm.c, xldscale.c, xldtest.c, xlexp.c, xlocale.cpp, xlpoly.c, xlsinh.c, xlvalues.c, xmath.h, xmbtowc.c, xpoly.c, xsinh.c, xstod.c, xvalues.c, xwctomb.c Update all files to Plauger's drop of 12/15/98. crtw32\stdhpp\algorithm, bitset, cassert, cctype, cerrno, cfloat, ciso646, climits, clocale, cmath, complex, csetjmp, csignal, cstdarg, cstddef, cstdio, cstdlib, cstring, ctime, cwchar, cwctype, deque, exception, fstream, functional, hash_map [NEW], hash_set [NEW], iomanip, ios, iosfwd, iostream, iso646.h, istream, iterator, limits, list, locale, map, memory, new, numeric, ostream, queue, set, sstream, stack, stdexcept, streambuf, string, strstream, typeinfo, utility, valarray, vector, xcomplex, xhash [NEW], xiosbase, xlocale, xlocinfo, xlocinfo.h, xlocmes, xlocmon, xlocnum, xloctime, xmemory, xstddef, xstring, xtree, xutility, ymath.h, yvals.h Update all files to Plauger's drop of 12/15/98. crtw32\tools\win32\relinc.cmd Cleanse and copy new STL headers hash_map, hash_set, and xhash. libw32\include Update all STL headers to Plauger's drop of 12/15/98. ----------------------------------------------------------------- Fri 09-Apr-99 (v-JohnMo) crtw32\helper\lsources crtw32\helper\sources.nt crtw32\helper\alpha\sfillx.s crtw32\helper\alpha\sfwdcpy.s srcrel\objects.mkf srcrel\pd-b Added a couple of helper functions for Alpha UTC backend support ----------------------------------------------------------------- Thu 08-Apr-99 (GregF) crtw32\convert\mbtowc.c Replaced MT with _MT, oops... ----------------------------------------------------------------- Thu 08-Apr-99 (GregF) crtw32\h\mtdll.h, setlocal.h crtw32\misc\initctyp.c, initmon.c, initnum.c, setlocal.c crtw32\startup\tidtable.c crtw32\time\strftime.c Introduced more reference counters for pieces of the per-thread locale information. ----------------------------------------------------------------- Wed 07-Apr-99 (PhilipLu) log.txt -> log_v60.txt Renamed old LOG.TXT from V6.0 and started a new LOG.TXT (this file). ----------------------------------------------------------------- *************************************************************************** *************************************************************************** *** *** *** This file contains the history for MSVC++ v7.0 (relative to v6.0) *** *** The file should always be edited at the top so that the most *** *** recent changes are at the beginning of the file and the oldest *** *** changes are at the end of the file. This comment marks the end. *** *** *** *************************************************************************** ***************************************************************************