instead of defining -fno-set-stack-executable and -fno-optimize-sibling-calls in gcc.mak file, do it in ReactOS-i386.rbuild
svn path=/trunk/; revision=46449
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
Give poor pefixup its own echo line
modified ReactOS-amd64.rbuild
modified ReactOS-arm.rbuild
modified ReactOS-i386.rbuild
Set global linker flags globally
Goodbye NTOSKRNL_SHARED
modified tools/rbuild/backend/codeblocks/codeblocks.cpp
modified tools/rbuild/backend/msvc/vcprojmaker.cpp
Build fixes. I really want to delete these dead backends
modified tools/rbuild/backend/mingw/linkers/ld.mak
Makefile rule for the linker. Also generates the .lib and .exp for DLLs, and obsoletes a whole lot of shitty rbuild code
modified tools/rbuild/backend/mingw/mingw.cpp
modified tools/rbuild/backend/mingw/mingw.h
Specify module type-specific linker flags... in the specification of flags for module types, instead of wherever
Fix generation of project-global linker and NASM flags
Give better names to the variables that contain names of BE-provided libraries
Don't put quotes around the names of BE-provided libraries, GNU make doesn't support quoting in any way, shape or form and quotes around filenames actually break shit on Windows (see <http://reactos-blog.blogspot.com/2009/11/gnu-make-fails-on-windows-with-multiple.html>). Just install the BE in a path without spaces in it
Typo: LFLAGS is the flags for lex, flags for linker come from LDFLAGS
modified tools/rbuild/backend/mingw/modulehandler.cpp
modified tools/rbuild/backend/mingw/modulehandler.h
modified tools/rbuild/module.cpp
modified tools/rbuild/rbuild.h
Moved generation of linker and import library generation rules out of rbuild and into sub-makefiles. A lot of code deleted, nothing of value was lost
More LFLAGS -> LDFLAGS
Goodbye mangledsymbols and underscoresymbols attributes, they don't do shit other than complicating my life
If we have to add an underscore in front of the entry point name for some architectures, how about we do it in a single place?
modified tools/rbuild/backend/mingw/rules.mak
Minor cosmetic change
svn path=/trunk/; revision=44091
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
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
modified ReactOS-i386.rbuild
Define USE_COMPILER_EXCEPTIONS because we don't need SEH hacks in RPC stubs (neener neener)
modified include/psdk/wtypes.idl
modified include/psdk/xmldom.idl
Include guard format will change in widl: pre-emptively work around it
svn path=/trunk/; revision=38670
- 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
This change is also not compatible with current cleaning scripts in RosBE and on the Buildslaves (which only delete "makefile.auto"), leading to possibly unclean builds if the generated makefile wouldn't be deleted.
The ultimate goal would be putting the generated makefiles into the intermediate directories, so we also save one cleaning step.
svn path=/trunk/; revision=34536
- Remove assumption that GDB=1 automatically means -O0. This is wrong, optimization and debugger should be controlled independently.
- Cleanup blah-blah from config.template.rbuild.
svn path=/trunk/; revision=31435
are indeed still stubs or WIP code.
Some people have been interested in helping out from some time and I'm sorry
I haven't been able to do this merge finally for a while.
svn path=/trunk/; revision=29407