2006-09-06 20:00:41 +00:00
|
|
|
<?xml version="1.0"?>
|
2007-09-14 17:07:53 +00:00
|
|
|
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
|
2006-09-06 20:00:41 +00:00
|
|
|
<group>
|
!!! ATTENTION EVERYONE - do a make clean after getting this revision !!!
!!! ATTENTION PSEH USERS - new features & a change in rules !!!
modified include/reactos/libs/pseh/framebased.h
modified include/reactos/libs/pseh/framebased/internal.h
deleted include/reactos/libs/pseh/setjmp.h
modified lib/pseh/framebased.c
deleted lib/pseh/i386/setjmp.asm
modified lib/pseh/pseh.rbuild
Big PSEH revamp. If God is kind and merciful, this might be the last revision to PSEH ever
!!! RULE CHANGE !!! Obsoleted _SEH_NO_NATIVE_NLG, do NOT use it anymore, it will now cause fatal compile-time errors
!!! RULE CHANGE !!! As a side effect to the fix for a bug where a _SEH_TRY nested in a _SEH_HANDLE would lead to stack corruption, using "return" or "goto" from anywhere inside a PSEH block is now FORBIDDEN; all code that already did has been fixed in this revision
!!! NEW FEATURE !!! To leave a PSEH block from anywhere inside it, use the new _SEH_YIELD(<statement>) macro; examples: _SEH_YIELD(return value), _SEH_YIELD(goto label), _SEH_YIELD(returnvalue = value; goto label); ALWAYS ensure a _SEH_YIELD() leads outside the top-level _SEH_TRY block - do NOT goto into an ancestor _SEH_TRY block!!! Also note that _SEH_YIELD() disables SEH protection for the enclosed statement, so do NOT perform operations that might throw exceptions inside a _SEH_YIELD(); finally, ensure the enclosed statement does NOT allow execution to continue, or _SEH_YIELD() will get in an infinite loop; bear with me, for I have done the impossible, so don't expect miracles
Don't use a fake setjmp/longjmp *ever*, too dangerous; removed _SEHLongJmp & _SEHSetJmp, obsoleted _SEH_NO_NATIVE_NLG
On GCC, use __builtin_setjmp/__builtin_longjmp instead of setjmp/longjmp; they produce efficient code that plays well with optimizations, require no external library and are designed specifically for exception handling; should result in faster code and no hidden bugs
Use inline code to enter/leave trylevels; yields much better binary code
Inline handlers inside _SEH_PortableFrame_t instead of pointing to them; yields better code for the most common usages
Turn all top-level statements generated by macros from bare scopes into for loops, to ensure they are used correctly as stand-alone statements
Removed bitrotten old syntax, because it wasn't being used nor maintained
modified dll/3rdparty/freetype/freetype.rbuild
modified dll/win32/kernel32/kernel32.rbuild
modified drivers/network/tcpip/tcpip.rbuild
modified lib/drivers/ip/ip.rbuild
modified lib/rtl/rtl.rbuild
modified ntoskrnl/ntoskrnl.rbuild
modified subsystems/win32/win32k/win32k.rbuild
Removed obsolete _SEH_NO_NATIVE_NLG define
modified drivers/network/afd/afd/lock.c
modified drivers/network/afd/afd/tdi.c
modified subsystems/csr/csrsrv/api.c
modified subsystems/win32/win32k/ntuser/clipboard.c
modified subsystems/win32/win32k/ntuser/window.c
Use the new _SEH_YIELD macro to return/goto from SEH blocks
modified tools/rbuild/backend/mingw/modulehandler.cpp
modified tools/rbuild/backend/mingw/modulehandler.h
modified tools/rbuild/module.cpp
modified tools/rbuild/project.dtd
modified tools/rbuild/rbuild.h
Don't use the obsolete _SEH_NO_NATIVE_NLG flag anymore
Only add underscores to imported symbols when module is marked underscoresymbols="true"; fixes debugsup and, indirectly, PSEH tracing
modified lib/3rdparty/mingw/mingw.rbuild
Build with underscoresymbols="true"
svn path=/trunk/; revision=26224
2007-04-01 00:07:25 +00:00
|
|
|
<module name="mingw_common" type="staticlibrary" isstartuplib="true" underscoresymbols="true">
|
2006-09-06 20:00:41 +00:00
|
|
|
<importlibrary definition="moldname-msvcrt.def" dllname="msvcrt.dll" />
|
2006-09-06 20:58:02 +00:00
|
|
|
<include base="mingw_common">include</include>
|
2006-09-06 20:00:41 +00:00
|
|
|
<file>cpu_features.c</file>
|
|
|
|
<file>CRTfmode.c</file>
|
|
|
|
<file>CRTglob.c</file>
|
|
|
|
<file>CRTinit.c</file>
|
|
|
|
<file>gccmain.c</file>
|
|
|
|
<file>getopt.c</file>
|
|
|
|
<file>isascii.c</file>
|
|
|
|
<file>iscsym.c</file>
|
|
|
|
<file>iscsymf.c</file>
|
|
|
|
<file>strcasecmp.c</file>
|
|
|
|
<file>strncasecmp.c</file>
|
|
|
|
<file>toascii.c</file>
|
|
|
|
<file>wcscmpi.c</file>
|
|
|
|
<file>_wgetopt.c</file>
|
2007-09-17 05:33:08 +00:00
|
|
|
<if property="ARCH" value="i386">
|
2007-10-19 15:27:44 +00:00
|
|
|
<file>pseudo-reloc.c</file>
|
2007-09-17 05:33:08 +00:00
|
|
|
</if>
|
2006-09-06 20:00:41 +00:00
|
|
|
</module>
|
2007-01-18 17:12:49 +00:00
|
|
|
<module name="mingw_main" type="staticlibrary" isstartuplib="true" allowwarnings="true">
|
2006-09-06 20:58:02 +00:00
|
|
|
<include base="mingw_common">include</include>
|
2006-09-06 20:00:41 +00:00
|
|
|
<file>binmode.c</file>
|
|
|
|
<file>crt1.c</file>
|
|
|
|
<file>main.c</file>
|
|
|
|
</module>
|
2007-01-18 17:12:49 +00:00
|
|
|
<module name="mingw_wmain" type="staticlibrary" isstartuplib="true" allowwarnings="true">
|
2006-09-06 20:58:02 +00:00
|
|
|
<include base="mingw_common">include</include>
|
2006-09-06 20:00:41 +00:00
|
|
|
<file>wbinmode.c</file>
|
|
|
|
<file>wcrt1.c</file>
|
|
|
|
<file>wmain.c</file>
|
|
|
|
</module>
|
|
|
|
<module name="mingw_dllmain" type="staticlibrary" isstartuplib="true">
|
2006-09-06 20:58:02 +00:00
|
|
|
<include base="mingw_common">include</include>
|
2006-09-06 20:00:41 +00:00
|
|
|
<file>dllcrt1.c</file>
|
|
|
|
</module>
|
|
|
|
</group>
|