Author: hyperion Date: Sat Oct 25 12:32:54 2008 New Revision: 36954
URL: http://svn.reactos.org/svn/reactos?rev=36954&view=rev Log: modified base/applications/screensavers/3dtext/3dtext.rbuild modified lib/sdk/crt/crt.rbuild Split chkstk away from crt Link 3dtext to chkstk for Visual C++ builds (a gcc-built 3dtext would simply crash, I guess?)
modified dll/cpl/access/display.c modified dll/cpl/access/general.c modified dll/cpl/access/keyboard.c modified dll/cpl/access/mouse.c Fixed signedness violations (thank you cl -Wall -W4)
modified dll/win32/acledit/acledit.rbuild modified dll/win32/aclui/aclui.rbuild Removed empty stubs (thank you cl -Wall -W4)
modified dll/win32/aclui/checklist.c Fixed signedness violations wcsnicmp is not a standard C routine BOOL is not a boolean Thank you cl -Wall -W4
modified dll/win32/aclui/sidcache.c Marked possible overflow (thank you cl -Wall -W4)
modified dll/win32/msvcrt/msvcrt.def __iob_func and __p_iob are the same thing Export non-conforming swprintf as _swprintf, too (will fix for real later) Thank you cl -Wall -W4
modified include/ddk/winddk.h Zero-length array field in struct _SCATTER_GATHER_LIST Forward-declare structures out of argument lists Thank you cl -Wall -W4
modified include/reactos/msvctarget.h No need to emulate Visual C++ flags when compiling with Visual C++
modified lib/3rdparty/mingw/cpu_features.c modified lib/3rdparty/mingw/cpu_features.h Useless dependency from stdbool.h removed Now compiles with Visual C++ too
modified lib/3rdparty/mingw/getopt.c Silence harmless warning
modified lib/3rdparty/mingw/isascii.c modified lib/3rdparty/mingw/iscsym.c modified lib/3rdparty/mingw/iscsymf.c modified lib/3rdparty/mingw/toascii.c Undefine conflicting macro names before declaring the functions
modified Makefile Visual C++ support is coming, did you bring your coat?
Modified: trunk/reactos/Makefile trunk/reactos/base/applications/screensavers/3dtext/3dtext.rbuild trunk/reactos/dll/cpl/access/display.c trunk/reactos/dll/cpl/access/general.c trunk/reactos/dll/cpl/access/keyboard.c trunk/reactos/dll/cpl/access/mouse.c trunk/reactos/dll/win32/acledit/acledit.rbuild trunk/reactos/dll/win32/aclui/aclui.rbuild trunk/reactos/dll/win32/aclui/checklist.c trunk/reactos/dll/win32/msvcrt/msvcrt.def trunk/reactos/include/ddk/winddk.h trunk/reactos/include/reactos/msvctarget.h trunk/reactos/lib/3rdparty/mingw/cpu_features.c trunk/reactos/lib/3rdparty/mingw/cpu_features.h trunk/reactos/lib/3rdparty/mingw/getopt.c trunk/reactos/lib/3rdparty/mingw/isascii.c trunk/reactos/lib/3rdparty/mingw/iscsym.c trunk/reactos/lib/3rdparty/mingw/iscsymf.c trunk/reactos/lib/3rdparty/mingw/toascii.c trunk/reactos/lib/sdk/crt/crt.rbuild
Modified: trunk/reactos/Makefile URL: http://svn.reactos.org/svn/reactos/trunk/reactos/Makefile?rev=36954&r1=3... ============================================================================== --- trunk/reactos/Makefile [iso-8859-1] (original) +++ trunk/reactos/Makefile [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -215,6 +215,7 @@ ECHO_INVOKE =@echo $(QUOTE)[INVOKE] $<$(QUOTE) ECHO_PCH =@echo $(QUOTE)[PCH] $@$(QUOTE) ECHO_CC =@echo $(QUOTE)[CC] $<$(QUOTE) + ECHO_CL =@echo $(QUOTE)[CL] $<$(QUOTE) ECHO_GAS =@echo $(QUOTE)[GAS] $<$(QUOTE) ECHO_NASM =@echo $(QUOTE)[NASM] $<$(QUOTE) ECHO_AR =@echo $(QUOTE)[AR] $@$(QUOTE) @@ -224,6 +225,7 @@ ECHO_BIN2RES =@echo $(QUOTE)[BIN2RES] $<$(QUOTE) ECHO_DLLTOOL =@echo $(QUOTE)[DLLTOOL] $@$(QUOTE) ECHO_LD =@echo $(QUOTE)[LD] $@$(QUOTE) + ECHO_LINK =@echo $(QUOTE)[LINK] $@$(QUOTE) ECHO_NM =@echo $(QUOTE)[NM] $@$(QUOTE) ECHO_OBJDUMP =@echo $(QUOTE)[OBJDUMP] $@$(QUOTE) ECHO_RBUILD =@echo $(QUOTE)[RBUILD] $@$(QUOTE) @@ -309,6 +311,8 @@ dlltool = $(Q)$(PREFIX_)dlltool strip = $(Q)$(PREFIX_)strip windres = $(Q)$(PREFIX_)windres +cl = $(Q)cl -nologo +link = $(Q)link -nologo
# Set utilities ifeq ($(OSTYPE),msys)
Modified: trunk/reactos/base/applications/screensavers/3dtext/3dtext.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensav... ============================================================================== --- trunk/reactos/base/applications/screensavers/3dtext/3dtext.rbuild [iso-8859-1] (original) +++ trunk/reactos/base/applications/screensavers/3dtext/3dtext.rbuild [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -2,6 +2,7 @@ <!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd"> <module name="3dtext" type="win32scr" installbase="system32" installname="3dtext.scr" unicode="yes"> <library>scrnsave</library> + <library>chkstk</library> <library>kernel32</library> <library>user32</library> <library>gdi32</library>
Modified: trunk/reactos/dll/cpl/access/display.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/access/display.c?re... ============================================================================== --- trunk/reactos/dll/cpl/access/display.c [iso-8859-1] (original) +++ trunk/reactos/dll/cpl/access/display.c [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -87,7 +87,7 @@ SendDlgItemMessage(hwndDlg, IDC_CONTRAST_COMBO, CB_SELECTSTRING, - -1, + (WPARAM)-1, (LPARAM)pGlobalData->highContrast.lpszDefaultScheme); break;
Modified: trunk/reactos/dll/cpl/access/general.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/access/general.c?re... ============================================================================== --- trunk/reactos/dll/cpl/access/general.c [iso-8859-1] (original) +++ trunk/reactos/dll/cpl/access/general.c [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -19,7 +19,7 @@
#define BAUDTICKS 6 -static INT nBaudArray[BAUDTICKS] = {300, 1200, 2400, 4800, 9600, 19200}; +static UINT nBaudArray[BAUDTICKS] = {300, 1200, 2400, 4800, 9600, 19200};
INT_PTR CALLBACK
Modified: trunk/reactos/dll/cpl/access/keyboard.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/access/keyboard.c?r... ============================================================================== --- trunk/reactos/dll/cpl/access/keyboard.c [iso-8859-1] (original) +++ trunk/reactos/dll/cpl/access/keyboard.c [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -19,16 +19,16 @@
#define BOUNCETICKS 5 -static INT nBounceArray[BOUNCETICKS] = {500, 700, 1000, 1500, 2000}; +static UINT nBounceArray[BOUNCETICKS] = {500, 700, 1000, 1500, 2000};
#define DELAYTICKS 5 -static INT nDelayArray[DELAYTICKS] = {300, 700, 1000, 1500, 2000}; +static UINT nDelayArray[DELAYTICKS] = {300, 700, 1000, 1500, 2000};
#define REPEATTICKS 6 -static INT nRepeatArray[REPEATTICKS] = {300, 500, 700, 1000, 1500, 2000}; +static UINT nRepeatArray[REPEATTICKS] = {300, 500, 700, 1000, 1500, 2000};
#define WAITTICKS 10 -static INT nWaitArray[WAITTICKS] = {0, 300, 500, 700, 1000, 1500, 2000, 5000, 10000, 20000}; +static UINT nWaitArray[WAITTICKS] = {0, 300, 500, 700, 1000, 1500, 2000, 5000, 10000, 20000};
static VOID
Modified: trunk/reactos/dll/cpl/access/mouse.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/access/mouse.c?rev=... ============================================================================== --- trunk/reactos/dll/cpl/access/mouse.c [iso-8859-1] (original) +++ trunk/reactos/dll/cpl/access/mouse.c [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -20,7 +20,7 @@ #define SPEEDTICKS 9 #define ACCELTICKS 9
-static INT nSpeedArray[SPEEDTICKS] = {10, 20, 30, 40, 60, 80, 120, 180, 360}; +static UINT nSpeedArray[SPEEDTICKS] = {10, 20, 30, 40, 60, 80, 120, 180, 360};
INT_PTR CALLBACK
Modified: trunk/reactos/dll/win32/acledit/acledit.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/acledit/acledit.r... ============================================================================== --- trunk/reactos/dll/win32/acledit/acledit.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/win32/acledit/acledit.rbuild [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -11,5 +11,4 @@ <file>acledit.c</file> <file>stubs.c</file> <file>acledit.rc</file> - <file>acledit.spec</file> </module>
Modified: trunk/reactos/dll/win32/aclui/aclui.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/aclui/aclui.rbuil... ============================================================================== --- trunk/reactos/dll/win32/aclui/aclui.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/win32/aclui/aclui.rbuild [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -17,6 +17,5 @@ <file>misc.c</file> <file>sidcache.c</file> <file>aclui.rc</file> - <file>aclui.spec</file> <pch>precomp.h</pch> </module>
Modified: trunk/reactos/dll/win32/aclui/checklist.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/aclui/checklist.c... ============================================================================== --- trunk/reactos/dll/win32/aclui/checklist.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/aclui/checklist.c [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -153,12 +153,12 @@ return Found; }
-static UINT +static INT FindCheckItemIndexByAccessMask(IN PCHECKLISTWND infoPtr, IN ACCESS_MASK AccessMask) { PCHECKITEM Item; - UINT Index = 0, Found = -1; + INT Index = 0, Found = -1;
for (Item = infoPtr->CheckItemListHead; Item != NULL; @@ -208,7 +208,7 @@ CurItem = CurItem->Next) { if ((CurItem->State & CIS_DISABLED) != CIS_DISABLED && - !wcsnicmp(CurItem->Name, + !_wcsnicmp(CurItem->Name, SearchText, Count)) { break; @@ -1569,7 +1569,7 @@ { PCHECKITEM PtItem; UINT PtItemBox; - BOOL OldPushed; + UINT OldPushed;
PtItem = PtToCheckItemBox(infoPtr, &pt, @@ -2137,7 +2137,7 @@ (infoPtr->QuickSearchHitItem == NULL || infoPtr->QuickSearchHitItem == infoPtr->FocusedCheckItem)) { - BOOL OldPushed = infoPtr->FocusedPushed; + UINT OldPushed = infoPtr->FocusedPushed; infoPtr->FocusedPushed = TRUE;
if (infoPtr->FocusedPushed != OldPushed)
Modified: trunk/reactos/dll/win32/msvcrt/msvcrt.def URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msvcrt/msvcrt.def... ============================================================================== --- trunk/reactos/dll/win32/msvcrt/msvcrt.def [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msvcrt/msvcrt.def [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -120,7 +120,7 @@ __fpecode @115 __getmainargs @116 __initenv @117 -; __iob_func @118 + __iob_func=__p__iob @118 __isascii @119 __iscsym @120 __iscsymf @121 @@ -846,3 +846,5 @@ wctomb @840 wprintf @841 wscanf @842 + + _swprintf=swprintf
Modified: trunk/reactos/include/ddk/winddk.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/winddk.h?rev=36... ============================================================================== --- trunk/reactos/include/ddk/winddk.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/winddk.h [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -749,11 +749,11 @@
typedef enum _IO_PAGING_PRIORITY { - IoPagingPriorityInvalid, - IoPagingPriorityNormal, - IoPagingPriorityHigh, - IoPagingPriorityReserved1, - IoPagingPriorityReserved2 + IoPagingPriorityInvalid, + IoPagingPriorityNormal, + IoPagingPriorityHigh, + IoPagingPriorityReserved1, + IoPagingPriorityReserved2 } IO_PAGING_PRIORITY;
typedef enum _IO_ALLOCATION_ACTION { @@ -2362,7 +2362,7 @@ typedef struct _SCATTER_GATHER_LIST { ULONG NumberOfElements; ULONG_PTR Reserved; - SCATTER_GATHER_ELEMENT Elements[0]; + SCATTER_GATHER_ELEMENT Elements[1]; } SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
typedef struct _MDL { @@ -2763,6 +2763,7 @@ } KD_OPTION;
/* Function Type Defintions for Dispatch Functions */ +struct _DEVICE_CONTROL_CONTEXT;
typedef VOID (DDKAPI *PDEVICE_CONTROL_COMPLETION)( @@ -4441,6 +4442,8 @@ ULONG NumberOfBits; } RTL_BITMAP_RUN, *PRTL_BITMAP_RUN;
+struct _RTL_RANGE; + typedef BOOLEAN (NTAPI *PRTL_CONFLICT_RANGE_CALLBACK) ( PVOID Context, @@ -4806,6 +4809,8 @@ KbCallbackDumpIo, } KBUGCHECK_CALLBACK_REASON;
+struct _KBUGCHECK_REASON_CALLBACK_RECORD; + typedef VOID (DDKAPI *PKBUGCHECK_REASON_CALLBACK_ROUTINE)( IN KBUGCHECK_CALLBACK_REASON Reason,
Modified: trunk/reactos/include/reactos/msvctarget.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/msvctarget.... ============================================================================== --- trunk/reactos/include/reactos/msvctarget.h [iso-8859-1] (original) +++ trunk/reactos/include/reactos/msvctarget.h [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -1,3 +1,4 @@ +#ifndef _MSC_VER #ifndef __GNUC__ #error Unsupported compiler #endif @@ -15,3 +16,4 @@ #elif defined(__i386__) && !defined(_M_IX86) #define _M_IX86 300 #endif +#endif
Modified: trunk/reactos/lib/3rdparty/mingw/cpu_features.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/3rdparty/mingw/cpu_feat... ============================================================================== --- trunk/reactos/lib/3rdparty/mingw/cpu_features.c [iso-8859-1] (original) +++ trunk/reactos/lib/3rdparty/mingw/cpu_features.c [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -1,5 +1,8 @@ -#include <stdbool.h> #include "cpu_features.h" + +#if defined(_MSC_VER) +#include <intrin.h> +#endif
/* level 1 edx bits */ #define EDX_CX8 (1 << 8) /* CMPXCHG8B */ @@ -18,28 +21,76 @@ #define EDX_3DNOWP (1 << 30) #define EDX_LM (1 << 29) /*LONG MODE */
+/* Combine the different cpuid flags into a single bitmap. */ + +unsigned int __cpu_features = 0; + +#ifdef __i386__ +#if defined(__GNUC__) #define __cpuid(level,a,b,c,d) \ __asm__ __volatile__ ("cpuid;" \ : "=a" (a), "=b" (b), "=c" (c), "=d" (d)\ : "0" (level)) +#elif defined(_MSC_VER) +void ___cpuid (int level, unsigned int * a, unsigned int * b, unsigned int * c, unsigned int * d) +{ + int info[4];
-/* Combine the different cpuid flags into a single bitmap. */ + __cpuid (info, level);
-unsigned int __cpu_features = 0; + *a = info[0]; + *b = info[1]; + *c = info[2]; + *d = info[3]; +} +#define __cpuid(level,a,b,c,d) \ + ___cpuid(level, &(a), &(b), &(c), &(d)) +#endif
-void __cpu_features_init (void) +static +unsigned int __detect_cpuid (void) { -#ifdef __i386__ - unsigned int eax, ebx, ecx, edx; - /* Try to change the value of CPUID bit (bit 21) in EFLAGS. + /* Try to change the value of CPUID bit (bit 21) in EFLAGS. If the bit can be toggled, CPUID is supported. */ +#if defined(__GNUC__) + unsigned int eax, ebx; asm volatile ("pushfl; pushfl; popl %0;" "movl %0,%1; xorl %2,%0;" "pushl %0; popfl; pushfl; popl %0; popfl" : "=&r" (eax), "=&r" (ebx) : "i" (0x00200000));
- if (((eax ^ ebx) & 0x00200000) == 0) + return ((eax ^ ebx) & 0x00200000; +#elif defined(_MSC_VER) + unsigned int retval; + + __asm + { + pushf + pushf + pop eax + mov ebx, eax + xor eax, 00200000h + push eax + popf + pushf + pop eax + popf + xor eax, ebx + mov [retval], eax + } + + return retval & 0x00200000; +#endif +} +#endif + +void __cpu_features_init (void) +{ +#ifdef __i386__ + unsigned int eax, ebx, ecx, edx; + + if (!__detect_cpuid ()) return;
__cpuid (0, eax, ebx, ecx, edx);
Modified: trunk/reactos/lib/3rdparty/mingw/cpu_features.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/3rdparty/mingw/cpu_feat... ============================================================================== --- trunk/reactos/lib/3rdparty/mingw/cpu_features.h [iso-8859-1] (original) +++ trunk/reactos/lib/3rdparty/mingw/cpu_features.h [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -1,7 +1,5 @@ #ifndef _CPU_FEATURES_H #define _CPU_FEATURES_H - -#include <stdbool.h>
#define _CRT_CMPXCHG8B 0x0001 #define _CRT_CMOV 0x0002
Modified: trunk/reactos/lib/3rdparty/mingw/getopt.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/3rdparty/mingw/getopt.c... ============================================================================== --- trunk/reactos/lib/3rdparty/mingw/getopt.c [iso-8859-1] (original) +++ trunk/reactos/lib/3rdparty/mingw/getopt.c [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -82,7 +82,7 @@ ++ s_nArgChar;
/* unrecognized option */ - if((_toptopt == _T(':')) || ((pcOptChar = _tcschr(optstring, _toptopt)) == NULL)) + if((_toptopt == _T(':')) || ((pcOptChar = _tcschr(optstring, (_TCHAR)_toptopt)) == NULL)) { /* print an error message */ if(_topterr && optstring[0] != _T(':'))
Modified: trunk/reactos/lib/3rdparty/mingw/isascii.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/3rdparty/mingw/isascii.... ============================================================================== --- trunk/reactos/lib/3rdparty/mingw/isascii.c [iso-8859-1] (original) +++ trunk/reactos/lib/3rdparty/mingw/isascii.c [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -13,6 +13,10 @@
#include <ctype.h>
+#ifdef isascii +#undef isascii +#endif + int isascii (int c) {
Modified: trunk/reactos/lib/3rdparty/mingw/iscsym.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/3rdparty/mingw/iscsym.c... ============================================================================== --- trunk/reactos/lib/3rdparty/mingw/iscsym.c [iso-8859-1] (original) +++ trunk/reactos/lib/3rdparty/mingw/iscsym.c [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -13,6 +13,10 @@
#include <ctype.h>
+#ifdef iscsym +#undef iscsym +#endif + int iscsym (int c) {
Modified: trunk/reactos/lib/3rdparty/mingw/iscsymf.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/3rdparty/mingw/iscsymf.... ============================================================================== --- trunk/reactos/lib/3rdparty/mingw/iscsymf.c [iso-8859-1] (original) +++ trunk/reactos/lib/3rdparty/mingw/iscsymf.c [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -13,6 +13,10 @@
#include <ctype.h>
+#ifdef iscsymf +#undef iscsymf +#endif + int iscsymf (int c) {
Modified: trunk/reactos/lib/3rdparty/mingw/toascii.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/3rdparty/mingw/toascii.... ============================================================================== --- trunk/reactos/lib/3rdparty/mingw/toascii.c [iso-8859-1] (original) +++ trunk/reactos/lib/3rdparty/mingw/toascii.c [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -13,6 +13,9 @@
#include <ctype.h>
+#ifdef toascii +#undef toascii +#endif
int toascii (int c)
Modified: trunk/reactos/lib/sdk/crt/crt.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/crt.rbuild?rev=... ============================================================================== --- trunk/reactos/lib/sdk/crt/crt.rbuild [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/crt.rbuild [iso-8859-1] Sat Oct 25 12:32:54 2008 @@ -1,6 +1,22 @@ <?xml version="1.0"?> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> +<module name="chkstk" type="staticlibrary"> + <directory name="except"> + <if property="ARCH" value="i386"> + <directory name="i386"> + <file>chkstk_asm.s</file> + </directory> + </if> + <if property="ARCH" value="powerpc"> + <directory name="powerpc"> + <file>chkstk_asm.s</file> + </directory> + </if> + </directory> +</module> + <module name="crt" type="staticlibrary"> + <library>chkstk</library> <include base="crt">.</include> <include base="crt">include</include> <define name="_DISABLE_TIDENTS" /> @@ -43,7 +59,6 @@ <file>matherr.c</file> <if property="ARCH" value="i386"> <directory name="i386"> - <file>chkstk_asm.s</file> <file>prolog.s</file> <file>seh.s</file> <file>unwind.c</file> @@ -52,7 +67,6 @@ <if property="ARCH" value="powerpc"> <directory name="powerpc"> <file>seh.s</file> - <file>chkstk_asm.s</file> </directory> </if> <file>xcptfil.c</file>