2007-09-14 17:07:53 +00:00
|
|
|
<?xml version="1.0"?>
|
|
|
|
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
|
|
|
|
<group>
|
2005-09-05 21:19:23 +00:00
|
|
|
<module name="win32k_base" type="objectlibrary">
|
2007-10-06 07:53:20 +00:00
|
|
|
<include base="win32k_base">.</include>
|
|
|
|
<include base="win32k_base">include</include>
|
|
|
|
<include base="win32k_base" root="intermediate">.</include>
|
!!! 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
|
|
|
<include base="ntoskrnl">include</include>
|
2005-07-24 21:42:00 +00:00
|
|
|
<include base="freetype">include</include>
|
2006-02-18 13:19:40 +00:00
|
|
|
<include base="ReactOS">include/reactos/subsys</include>
|
|
|
|
<include base="ReactOS">include/reactos/drivers</include>
|
2007-08-30 20:18:38 +00:00
|
|
|
<define name="LANGPACK" />
|
2005-07-24 21:42:00 +00:00
|
|
|
<define name="_WIN32K_" />
|
|
|
|
<pch>w32k.h</pch>
|
2006-08-26 21:18:33 +00:00
|
|
|
|
2007-08-03 11:54:33 +00:00
|
|
|
<directory name="dib" root="intermediate">
|
|
|
|
<file>dib8gen.c</file>
|
|
|
|
<file>dib16gen.c</file>
|
|
|
|
<file>dib32gen.c</file>
|
|
|
|
</directory>
|
|
|
|
|
2005-07-24 21:42:00 +00:00
|
|
|
<directory name="dib">
|
|
|
|
<file>dib1bpp.c</file>
|
|
|
|
<file>dib4bpp.c</file>
|
|
|
|
<file>dib8bpp.c</file>
|
|
|
|
<file>dib16bpp.c</file>
|
|
|
|
<file>dib24bpp.c</file>
|
|
|
|
<file>dib32bpp.c</file>
|
|
|
|
<file>dib.c</file>
|
2006-08-26 21:18:33 +00:00
|
|
|
|
2007-07-19 12:55:58 +00:00
|
|
|
<if property="ARCH" value="i386">
|
|
|
|
<directory name="i386">
|
|
|
|
<file>dib24bpp_hline.s</file>
|
|
|
|
<file>dib32bpp_hline.s</file>
|
|
|
|
<file>dib32bpp_colorfill.s</file>
|
|
|
|
</directory>
|
|
|
|
</if>
|
|
|
|
<ifnot property="ARCH" value="i386">
|
|
|
|
<file>dib24bppc.c</file>
|
|
|
|
<file>dib32bppc.c</file>
|
|
|
|
</ifnot>
|
2005-07-24 21:42:00 +00:00
|
|
|
</directory>
|
|
|
|
<directory name="eng">
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>bitblt.c</file>
|
|
|
|
<file>engbrush.c</file>
|
|
|
|
<file>clip.c</file>
|
|
|
|
<file>copybits.c</file>
|
|
|
|
<file>debug.c</file>
|
|
|
|
<file>device.c</file>
|
|
|
|
<file>driverobj.c</file>
|
|
|
|
<file>error.c</file>
|
|
|
|
<file>event.c</file>
|
|
|
|
<file>float.c</file>
|
2008-08-30 01:01:52 +00:00
|
|
|
<if property="ARCH" value="i386">
|
|
|
|
<directory name="i386">
|
|
|
|
<file>floatobj.S</file>
|
|
|
|
</directory>
|
|
|
|
</if>
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>gradient.c</file>
|
|
|
|
<file>lineto.c</file>
|
|
|
|
<file>mem.c</file>
|
|
|
|
<file>engmisc.c</file>
|
|
|
|
<file>mouse.c</file>
|
|
|
|
<file>paint.c</file>
|
|
|
|
<file>palette.c</file>
|
|
|
|
<file>perfcnt.c</file>
|
|
|
|
<file>semaphor.c</file>
|
|
|
|
<file>sort.c</file>
|
2007-12-25 19:52:42 +00:00
|
|
|
<file>string.c</file>
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>surface.c</file>
|
|
|
|
<file>transblt.c</file>
|
|
|
|
<file>engwindow.c</file>
|
|
|
|
<file>xlate.c</file>
|
2005-07-24 21:42:00 +00:00
|
|
|
</directory>
|
|
|
|
<directory name="ldr">
|
|
|
|
<file>loader.c</file>
|
|
|
|
</directory>
|
|
|
|
<directory name="main">
|
|
|
|
<file>dllmain.c</file>
|
|
|
|
</directory>
|
|
|
|
<directory name="misc">
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>driver.c</file>
|
|
|
|
<file>err.c</file>
|
|
|
|
<file>math.c</file>
|
|
|
|
<file>copy.c</file>
|
|
|
|
<file>usrheap.c</file>
|
|
|
|
<if property="ARCH" value="i386">
|
2008-08-30 01:01:52 +00:00
|
|
|
<directory name="i386">
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>cos_asm.s</file>
|
|
|
|
<file>sin_asm.s</file>
|
|
|
|
<file>atan2_asm.s</file>
|
|
|
|
<file>floor_asm.s</file>
|
|
|
|
<file>ceil_asm.s</file>
|
|
|
|
</directory>
|
|
|
|
</if>
|
2005-07-24 21:42:00 +00:00
|
|
|
</directory>
|
|
|
|
<directory name="ntddraw">
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>ddraw.c</file>
|
|
|
|
<file>dd.c</file>
|
|
|
|
<file>ddsurf.c</file>
|
2007-10-14 12:07:23 +00:00
|
|
|
<file>d3d.c</file>
|
2007-10-14 15:18:29 +00:00
|
|
|
<file>dvp.c</file>
|
2007-10-14 12:07:23 +00:00
|
|
|
<file>mocomp.c</file>
|
2007-10-15 12:38:50 +00:00
|
|
|
<file>eng.c</file>
|
|
|
|
<file>dxeng.c</file>
|
2005-07-24 21:42:00 +00:00
|
|
|
</directory>
|
|
|
|
<directory name="ntuser">
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>accelerator.c</file>
|
|
|
|
<file>callback.c</file>
|
|
|
|
<file>callproc.c</file>
|
|
|
|
<file>caret.c</file>
|
|
|
|
<file>class.c</file>
|
|
|
|
<file>clipboard.c</file>
|
|
|
|
<file>csr.c</file>
|
|
|
|
<file>cursoricon.c</file>
|
2008-07-13 23:31:00 +00:00
|
|
|
<file>defwnd.c</file>
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>desktop.c</file>
|
2008-05-11 23:51:55 +00:00
|
|
|
<file>display.c</file>
|
2008-04-17 01:48:34 +00:00
|
|
|
<file>event.c</file>
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>focus.c</file>
|
|
|
|
<file>guicheck.c</file>
|
|
|
|
<file>hook.c</file>
|
|
|
|
<file>hotkey.c</file>
|
|
|
|
<file>input.c</file>
|
|
|
|
<file>keyboard.c</file>
|
|
|
|
<file>kbdlayout.c</file>
|
|
|
|
<file>menu.c</file>
|
|
|
|
<file>message.c</file>
|
|
|
|
<file>metric.c</file>
|
|
|
|
<file>misc.c</file>
|
|
|
|
<file>monitor.c</file>
|
|
|
|
<file>msgqueue.c</file>
|
2008-03-21 00:07:06 +00:00
|
|
|
<file>ntstubs.c</file>
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>ntuser.c</file>
|
|
|
|
<file>painting.c</file>
|
|
|
|
<file>prop.c</file>
|
|
|
|
<file>scrollbar.c</file>
|
|
|
|
<file>session.c</file>
|
2008-03-21 00:07:06 +00:00
|
|
|
<file>simplecall.c</file>
|
|
|
|
<file>sysparams.c</file>
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>timer.c</file>
|
|
|
|
<file>useratom.c</file>
|
|
|
|
<file>vis.c</file>
|
|
|
|
<file>windc.c</file>
|
|
|
|
<file>window.c</file>
|
|
|
|
<file>winpos.c</file>
|
|
|
|
<file>winsta.c</file>
|
|
|
|
<file>object.c</file>
|
2005-07-24 21:42:00 +00:00
|
|
|
</directory>
|
|
|
|
<directory name="objects">
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>arc.c</file>
|
|
|
|
<file>bezier.c</file>
|
2007-08-23 16:38:23 +00:00
|
|
|
<file>bitblt.c</file>
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>bitmaps.c</file>
|
|
|
|
<file>brush.c</file>
|
|
|
|
<file>cliprgn.c</file>
|
|
|
|
<file>color.c</file>
|
|
|
|
<file>coord.c</file>
|
|
|
|
<file>dc.c</file>
|
2007-08-21 05:01:00 +00:00
|
|
|
<file>dcutil.c</file>
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>dibobj.c</file>
|
2008-06-29 01:19:46 +00:00
|
|
|
<file>drawing.c</file>
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>fillshap.c</file>
|
2008-10-29 21:57:04 +00:00
|
|
|
<file>font.c</file>
|
|
|
|
<file>freetype.c</file>
|
2007-11-02 04:23:31 +00:00
|
|
|
<file>gdibatch.c</file>
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>gdiobj.c</file>
|
|
|
|
<file>icm.c</file>
|
|
|
|
<file>line.c</file>
|
2008-06-01 05:40:53 +00:00
|
|
|
<file>metafile.c</file>
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>palobj.c</file>
|
|
|
|
<file>path.c</file>
|
|
|
|
<file>pen.c</file>
|
|
|
|
<file>polyfill.c</file>
|
|
|
|
<file>print.c</file>
|
|
|
|
<file>rect.c</file>
|
|
|
|
<file>region.c</file>
|
|
|
|
<file>stockobj.c</file>
|
|
|
|
<file>text.c</file>
|
|
|
|
<file>wingl.c</file>
|
2008-08-30 01:01:52 +00:00
|
|
|
<file>xformobj.c</file>
|
2005-07-24 21:42:00 +00:00
|
|
|
</directory>
|
|
|
|
<directory name="stubs">
|
2007-07-19 12:55:58 +00:00
|
|
|
<file>stubs.c</file>
|
2005-07-24 21:42:00 +00:00
|
|
|
</directory>
|
|
|
|
</module>
|
KJK::Hyperion is proud to present "dllimport purity", another landmark commit that you should really build only after a "clean"
Disclaimer: in an uncharacteristic and daring move, I actually built, installed and booted this revision
modified tools/rbuild/backend/mingw/mingw.cpp
modified tools/rbuild/backend/mingw/modulehandler.cpp
modified tools/rbuild/module.cpp
modified tools/rbuild/project.dtd
modified tools/rbuild/rbuild.h
modified include/crt/_mingw.h
New module attribute iscrt for marking modules that implement a C runtime library
New module attribute crt for compiling and linking modules to a specific C runtime library. Can be "ntdll" (for ntdll.dll) "msvcrt" (msvcrt.dll), "crt" (statically-linked runtime), "libcntpr" (libcntpr.lib), "dll" (one of the <library> entries specifies a CRT DLL) or "static". Defaults to "msvcrt" for Win32 modules, to "static" for CRT modules themselves, and to "dll" for drivers
Define _DLL for code that compiles against a dynamically-linked CRT
Define __MINGW_IMPORT and _CRTIMP according to whether _DLL is defined. We finally use __declspec(dllimport) somewhere, anywhere (SDK headers still don't use it)
Bonus fix: actually use compiler-specific command line flags when compiling files
modified lib/3rdparty/adns/adns.rbuild
modified lib/3rdparty/libxml2/libxml2.rbuild
modified lib/3rdparty/mingw/mingw.rbuild
And for the downside: static libraries that will be linked to a module that links to the CRT dynamically have to be compiled for a dynamically-linked CRT, as well. Say it out aloud.
modified base/applications/wordpad/wordpad.rbuild
modified base/setup/usetup/usetup.rbuild
modified dll/3rdparty/dxtn/dxtn.rbuild
modified dll/3rdparty/freetype/freetype.rbuild
modified dll/3rdparty/mesa32/mesa32.rbuild
modified dll/cpl/desk/desk.rbuild
modified dll/cpl/input/input.rbuild
modified dll/cpl/intl/intl.rbuild
modified dll/cpl/joy/joy.rbuild
modified dll/cpl/main/main.rbuild
modified dll/cpl/mmsys/mmsys.rbuild
modified dll/cpl/odbccp32/odbccp32.rbuild
modified dll/cpl/powercfg/powercfg.rbuild
modified dll/cpl/sysdm/sysdm.rbuild
modified dll/cpl/telephon/telephon.rbuild
modified dll/cpl/timedate/timedate.rbuild
modified dll/cpl/usrmgr/usrmgr.rbuild
modified dll/directx/ddraw/ddraw.rbuild
modified dll/directx/dsound/dsound.rbuild
modified dll/directx/wine/wined3d/wined3d.rbuild
modified dll/nls/idndl_redist/idndl_redist.rbuild
modified dll/nls/normaliz_redist/normaliz_redist.rbuild
modified dll/shellext/deskadp/deskadp.rbuild
modified dll/shellext/deskmon/deskmon.rbuild
modified dll/shellext/fontext/fontext.rbuild
modified dll/win32/dhcpcsvc/dhcpcsvc.rbuild
modified dll/win32/dnsapi/dnsapi.rbuild
modified dll/win32/glu32/glu32.rbuild
modified dll/win32/icmp/icmp.rbuild
modified dll/win32/winmm/midimap/midimap.rbuild
modified drivers/video/displays/framebuf/framebuf.rbuild
modified drivers/video/displays/framebufacc/framebufacc.rbuild
modified drivers/video/displays/vga/vgaddi.rbuild
modified subsystems/win32/csrss/csrss.rbuild
modified subsystems/win32/csrss/win32csr/win32csr.rbuild
modified subsystems/win32/win32k/win32k.rbuild
Don't specify msvcrt explicitely as a <library> if it's going to be linked implicitely as the CRT
<library>libcntpr</library> -> crt="libcntpr"
Remove miscellaneous unused <library> entries
modified dll/win32/crtdll/crtdll.rbuild
modified dll/win32/msvcrt20/msvcrt20.rbuild
modified dll/win32/msvcrt40/msvcrt40.rbuild
modified dll/win32/msvcrt/msvcrt.rbuild
Mark CRT DLLs as CRT modules
modified dll/win32/user32/windows/font.c
modified include/reactos/wine/unicode.h
Don't redefine or redeclare CRT functions
modified dll/win32/ws2_32/include/ws2_32.h
Arch, you idiot, it's defined in <stdlib.h>
modified include/crt/ctype.h
modified include/crt/wctype.h
Don't import ctype routines that were already defined as inlines
modified include/crt/stdio.h
modified include/reactos/wine/config.h
Avoid linking to libmingwex.a if possible
modified base/applications/taskmgr/taskmgr.rbuild
modified tools/nci/nci.mak
modified tools/nci/ncitool.c
modified dll/ntdll/ntdll.rbuild
Mark ntdll module as a CRT
New "ntsys" module to import just Nt/Zw from ntdll.dll. Avoids accidentally linking to ntdll.dll's CRT when importing system calls
modified include/psdk/winternl.h
Nope, it doesn't.
modified base/applications/network/net/help.c
modified base/applications/network/net/main.c
Replace printf with puts, or GCC will do it on its own and link to the dllimport thunk for puts
modified base/applications/network/ping/ping.c
Removed broken, unnecessary workaround
modified base/shell/cmd/cmd.rbuild
Simplify cmd module
This commit dediHAPPY BIRTHDAY STEFAN GINSBERG <3 <3 <3
svn path=/trunk/; revision=37187
2008-11-04 18:16:58 +00:00
|
|
|
<module name="win32k" type="kernelmodedriver" installbase="system32" installname="win32k.sys" allowwarnings="true" crt="libcntpr">
|
2008-10-29 16:42:03 +00:00
|
|
|
<importlibrary definition="win32k.pspec" />
|
2005-07-24 21:42:00 +00:00
|
|
|
<library>win32k_base</library>
|
|
|
|
<library>pseh</library>
|
|
|
|
<library>ntoskrnl</library>
|
|
|
|
<library>hal</library>
|
|
|
|
<library>freetype</library>
|
2008-04-27 12:11:00 +00:00
|
|
|
<library>dxguid</library>
|
2005-07-24 21:42:00 +00:00
|
|
|
<file>win32k.rc</file>
|
|
|
|
</module>
|
2007-09-14 17:07:53 +00:00
|
|
|
</group>
|