Reintegrate header-work branch. Thanks to hours of boring work on the ddk headers (Most of it done by Amine Khaldi), we have now a decent set, which is still incomplete but already relatively close to latest WDK. A clean rebuild is recommended.
svn path=/trunk/; revision=46155
- Set the minimum GCC version to 4.4.0 and minimum Binutils version to 20091016.
- Remove the -fno-unit-at-a-time hacks.
- Remove dgorbachev's temporary hacks for user-mode C++ applications.
- Merge ntoskrnl's "precomp.h" and "ntoskrnl.h" again, the PCH issues have been fixed.
- Use our "ofmt_stub.a" to be compatible with newer MinGW Runtime versions.
- Use LD's new -exclude-all-symbols option to not auto-export all symbols in case no DEF file or __declspec(dllexport) was specified.
We used to patch our LD version to work around this problem.
- Use LD's --start-group and --end-group parameters to allow a more flexible linking order.
- Use GCC's -fno-set-stack-executable for amd64 and i386 targets to disable adding the __enable_execute_stack code.
- Change the makefile's name to "makefile-$(ARCH).auto" for all architectures.
- Remove some -Wno-error flags.
See issue #4810 for more details.
svn path=/trunk/; revision=45535
- ddraw, imm32, msxml3, oleaut32, riched20: Include typeof.h for typeof emulation when compiling under MSVC and remove from ReactOS-generic.rbuild (this can't go to port.h as the modules do not include it).
- TCPIP: Fix a check for MSVC.
- NDIS: Don't use floating point arithmetics in kernel mode -- spotted by MSVC trying to link to ftol (gcc inlined the operation).
- SAMLIB: Use __VA_ARGS__ instead of gcc-specific macro manipulation.
- WIN32CSR: Don't use gcc-specific \% if you want % in the string -- this is incorrect and will pass a broken string to swprintf (the code seems to be uncalled though, so this shouldn't change anything). Use %% instead.
- Error out on MSVC implementation of logb -- it doesn't produce the same code as the gcc version.
- Rename gcc's float.h to gcc_float.h and use #include instead of #include_next for consistency.
- Remove leftover header guard from types.h
- Remove superfluous brackets from PSEH2->MSVC defines -- this isn't necessary anymore after 41597
- Correction to 42216: MSVC *does* let you define types in a function, but only at the top of scope. Move back the C_ASSERT into KiAcquireGuardedMutex.
- Simplify definition of alloca
- scripts.cpp: Silence unavoidable warning.
- Remove compile time warning from Uniata -- the code has been unused for 1 1/2 years and will probably remain so.
svn path=/trunk/; revision=42829
Simulate typeof operator for the Wine code that requires it
modified ReactOS-generic.rbuild
Force-include typeof.h when compiling with Visual C++
svn path=/trunk/; revision=42469
- ReactOS-generic.rbuild: Define __STDC__ for MSVC to fix some code depending on it (not using /Za as it breaks other code)
svn path=/trunk/; revision=42369
Ironically, the one thing that isn't generic -- which files get built -- was in the generic file, blocking the arm rbuild from ever being able to use it, so I split this out now.
Cleaned up the i386 and arm rbuild files to use the new generic rbuild.
Brought the arm rbuild file up to spec to use the new compilerset/linkerset and msvc-compliant options.
svn path=/trunk/; revision=41864
modified include/crt/mingw32/intrin_x86.h
modified include/crt/msc/intrin.h
Fixed declarations of _InterlockedDecrement16 and _InterlockedIncrement16
Fixed declarations of __readcr0, __readcr2, __readcr3 and __readcr4 for x86
Implement __readdr and __writedr for x86 too
Added missing semicolon
modified include/crt/stdlib.h
modified lib/3rdparty/mingw/crtexe.c
Use Visual C++-compatible attribute placement
modified lib/3rdparty/mingw/crtexe.c
Get rid of useless assembly, replace with __writefsdword (it's still useless)
modified lib/3rdparty/mingw/mingw.rbuild
Disable Visual C++ warning C4733 ("Inline asm assigning to 'FS:0' : handler not registered as safe handler") for mingw_wmain
modified lib/sdk/scrnsave/scrnsave.c
Silence a warning
modified ReactOS-generic.rbuild
Disable Visual C++ warning C4711 ("function 'function' selected for inline expansion") globally
modified tools/rbuild/backend/mingw/compilers/msc.mak
Fix Visual C++ compiler rules to emit an uniquely named PDB for each object file
svn path=/trunk/; revision=41442
What the hell, Arch Blackmann? <windef.h>, <winbase.h> and <winnls.h> are not meant to be included directly. Include <windows.h> instead
modified drivers/video/font/ftfd/rosglue.c
Move standard C includes before Windows includes, so the required types are defined beforehand
modified include/crt/_mingw.h
Re-add Visual C++ support
va_list is not a built-in type, it does not belong in _mingw.h
Do not include intrin.h (screw you, Arch)
Removed definition of _USE_32BIT_TIME_T ("ROS HACK!")
modified include/crt/conio.h
modified include/crt/stdio.h
modified include/crt/wchar.h
Pull in va_list from stdarg.h
modified include/crt/mingw32/intrin.h
modified include/crt/mingw32/intrin_arm.h
modified include/crt/mingw32/intrin_x86.h
intrin.h defines size_t and uintptr_t
The _real_, ultimate magic incantation for inline functions is extern __inline__ __attribute__((__always_inline__,__gnu_inline__))
Fix __addfsbyte, __addfsword
added include/crt/msc
added include/crt/msc/intrin.h
Ported our intrin.h to Visual C++
modified ReactOS-arm.rbuild
modified ReactOS-i386.rbuild
ROS HACK!s belong in the project definition
modified ReactOS-generic.rbuild
Compiler-specific include directories
svn path=/trunk/; revision=41421
modified ReactOS-i386.rbuild
modified tools/rbuild/backend/mingw/mingw.cpp
Don't feed GCC options in MSC
Minor detection fixes
Support for the Microsoft compiler is now fully functional: now get off your grotesquely fat asses and start fixing code so that it compiles with it
TODO: make it fully functional for real (PCH, full dependencies); Microsoft linker support
svn path=/trunk/; revision=41374
Reenable testing on undefined properties, they are treated as being empty now. This feature got lost when moving the <if> block parsing entirely to rbuild in r34852.
Should fix the Release build properly _with_ touching rbuild :-)
svn path=/trunk/; revision=37811
Change the <if> logic in ReactOS-general.rbuild (and ReactOS-arm.rbuild for the ARM guys) accordingly. This also supersedes DBG_OR_KDBG, which never worked properly for Release builds anyway.
Should fix the Release build without touching rbuild itself :-)
svn path=/trunk/; revision=37808
modified base/shell/explorer/explorer.rbuild
modified dll/win32/glu32/glu32.rbuild
modified dll/win32/kernel32/kernel32.rbuild
modified drivers/wdm/audio/backpln/portcls/portcls.rbuild
modified ReactOS-generic.rbuild
Set -Wno-non-virtual-dtor globally because we have no use for this warning and it only messes with COM interface definitions
This alone disables a ton of spurious warnings
modified tools/rbuild/backend/mingw/mingw.cpp
modified tools/rbuild/backend/mingw/modulehandler.cpp
modified tools/rbuild/backend/mingw/modulehandler.h
Project-global compiler flags now actually work as intended
Removed some dead code
modified dll/directx/dxdiagn/container.c
modified dll/directx/wine/d3d8/device.c
modified dll/directx/wine/d3d9/device.c
modified dll/win32/comdlg32/printdlg.c
modified dll/win32/crypt32/chain.c
modified dll/win32/crypt32/main.c
modified dll/win32/crypt32/oid.c
modified dll/win32/crypt32/protectdata.c
modified dll/win32/crypt32/rootstore.c
modified dll/win32/dbghelp/pe_module.c
modified dll/win32/fusion/assembly.c
modified dll/win32/gdiplus/font.c
modified dll/win32/gdiplus/image.c
modified dll/win32/icmp/icmp_main.c
Get rid of warnings.
Patch by Robin Geuze <r.geuze@chello.nl>
svn path=/trunk/; revision=37629
modified dll/win32/glu32/glu32.rbuild
modified dll/win32/kernel32/kernel32.rbuild
modified drivers/wdm/audio/backpln/portcls/portcls.rbuild
modified ReactOS-generic.rbuild
Set -Wno-non-virtual-dtor globally because we have no use for this warning and it only messes with COM interface definitions
This alone disables a ton of spurious warnings
modified tools/rbuild/backend/mingw/mingw.cpp
modified tools/rbuild/backend/mingw/modulehandler.cpp
modified tools/rbuild/backend/mingw/modulehandler.h
Project-global compiler flags now actually work as intended
Removed some dead code
modified dll/directx/dxdiagn/container.c
modified dll/directx/wine/d3d8/device.c
modified dll/directx/wine/d3d9/device.c
modified dll/win32/comdlg32/printdlg.c
modified dll/win32/crypt32/chain.c
modified dll/win32/crypt32/main.c
modified dll/win32/crypt32/oid.c
modified dll/win32/crypt32/protectdata.c
modified dll/win32/crypt32/rootstore.c
modified dll/win32/dbghelp/pe_module.c
modified dll/win32/fusion/assembly.c
modified dll/win32/gdiplus/font.c
modified dll/win32/gdiplus/image.c
modified dll/win32/icmp/icmp_main.c
Get rid of warnings.
Patch by Robin Geuze <r.geuze@chello.nl>
svn path=/trunk/; revision=37623
- SMP kernel now compiles. It doesn't boot and it won't run as we lack ACPI, SMT, a (proper) MP HAL, IPI and more.
- Dedicated to Aleksey, Alex and KJK <3 <3 <3
svn path=/trunk/; revision=37134
- Define TARGET_arm/TARGET_i386 in the ReactOS-arm.rbuild/ReactOS-i386.rbuild files for the host tools to make it possible for them to know about the target to build
- Make use of this define in winebuild to fix the issue of r36927 properly
- Define global includes for host tools to simplify all host tool/library rbuild files
- Remove dead rbuild code
- Remove the include/reactos/config.h file, none of its defines are still used
- Fix components accidentally using that file
svn path=/trunk/; revision=36995
*** .rbuild files MUST NOT contain version definitions now, please pay attention to this when doing Wine-syncs, adding new modules, or applying old patches! ***
Same applies to source code files, header files, and other includables. Thanks to Marc Piulachs for doing the base work, which I continued, and which resulted in this commit.
See issue #2745 for more details.
svn path=/trunk/; revision=36939
modified dll/win32/kernel32/kernel32.def
Stubbed out GetLocaleInfoEx
modified include/psdk/winnls.h
Added some Vista and later NLS defines to the SDK
modified dll/nls/idndl/idndl.rbuild
Correctly set a NULL entry point for idndl.dll
modified dll/nls/idndl_redist/idndl_redist.rbuild
modified dll/nls/normaliz_redist/normaliz_redist.rbuild
Give unique names to the redistributable versions of idndl.dll and normaliz.dll
Everything else
Scattered NLS modules in the appropriate locations, as per standard source tree layout
svn path=/trunk/; revision=34463
Added definitions for NormalizeString and IsNormalizedString (Vista and later)
Correct an embarassing bug (some macros were terminated with ";", shame shame)
added nls
added nls/3rdparty
added nls/3rdparty/icu
We officially welcome IBM's excellent ICU4C library for Unicode support to our humble source tree. May our marriage be long, happy and fertile.
added nls/3rdparty/icu4ros.rbuild
added nls/dll
added nls/dll/normaliz_redist
added nls/dll/normaliz_redist/normaliz.cpp
added nls/dll/normaliz_redist/normaliz.def
added nls/dll/normaliz_redist/normaliz_redist.rbuild
added nls/lib
added nls/lib/normalize
added nls/lib/normalize/normalize.cpp
added nls/lib/normalize/normalize.rbuild
added nls/nls.rbuild
modified ReactOS-generic.rbuild
Incomplete implementation of the redistributable normaliz.dll DLL for Unicode normalization, as a technical preview of what's to come from the use of ICU4C - namely, straightforward, painless implementation of complex algorithms and several megabytes worth of data, with a Win32-compatible interface on top. Currently disabled in the build until basic testing is over.
Watch this space for more of the same.
svn path=/trunk/; revision=33703
Simplifies building the kernel as the same stuff is also needed in "ntkrnlmp.rbuild", which now defines CONFIG_SMP and then just includes "ntoskrnl-generic.rbuild".
Also added a disabled "ntkrnlmp.rbuild" entry to "ReactOS-generic.rbuild" (disabled, because building the SMP kernel is broken atm)
svn path=/trunk/; revision=32546
The added '<include base="ntoskrnl" root="intermediate">include</include>' line in "ntoskrnl.rbuild" was left out, as this include path is already added through the "ntoskrnl.h" precompiled header. (thanks to Hervé for figuring this out)
I applied patches 1904 and 1905 of the Bugzilla bug entry.
See issue #2649 for more details.
svn path=/trunk/; revision=29056