- Add _NT_TIB_KPCR to compensate for a missing NT_TIB (hackfix)
- add KERNEL_STACK_SIZE & co for arm
- Add missing KeGetCurrentThread prototype for arm
- define INTERLOCKED_RESULT for X86 only
- Add _CONTEXT and _EXCEPTION_RECORD forward declarations
svn path=/trunk/; revision=46741
- Undefine Unicode which is defined by default in cegcc.
- Add a missing include in ke.h
- Implement _CountLeadingZeros, _CountTrailingZeros, _BitScanForward for ARM.
svn path=/trunk/; revision=44625
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
THE ARM BUILD STARTS UP AGAIN (all host tools and makefiles are generated correctly).
NEW TARGET TOOLCHAIN IS NOW CEGCC 0.55 (GCC-4.4.0).
svn path=/trunk/; revision=41866
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
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
- 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
- We now correctly mount the boot partition, scan for system drivers (none yet), and attempt loading ntdll.
- This actually works -- meaning the RAMdisk driver is working perfectly with vfatfs.sys and providing a virtual drive.
- We crash during mapping ntdll.dll due to some Mm issues we need to work out.
- Yes, we're almost at user-mode.
svn path=/trunk/; revision=34675
- Load vfatfs instead of CDFS.
- Implement code in the ramdisk driver to handle both ISO and FAT ramdisks. Don't know what the big deal with support ISO ramdisks was supposed to be, when our ramdisk is FAT, and dealing with FAT is a lot easier than CDFS (no TOC emulation and other rubbish that was added).
svn path=/trunk/; revision=34655
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
- Ramdisk does not depend on Class2 or ScsiPort.
- Disable loading any other driver than ramdisk.sys and cdfs.sys. We won't support PCI and the storage stack for a while, so ramdisks are the best and quickest way to test the actual kernel and get to user-mode as soon as possible to continue work on the VM management inisde Mm.
- We get up to RamdiskAddDevice (not yet implemented)!
svn path=/trunk/; revision=34214
- Fix broken .rbuild file -- not sure how this was supposed to build in the first place.
- This gets us further -- more of ARM Mm needs implementing.
svn path=/trunk/; revision=34061
- We do not attemp to build world anymore. We have handwritten a new ARM rbuild file that only builds what we need for our current ARM work.
- HAL and FreeLDR do not seem to have an "installpath"... why not? Added one at least for our ARM stuff, so that "make install" can drop the binaries.
- Fixed some ARM DDK macro inconsistencies, allow more drivers to build.
- It is now possible to use "make install -k" to drop a completely working ARM build onto an image due to all these changes.
svn path=/trunk/; revision=34055
- Make use of the SARCH rbuild parameter to define the target board (default to ARM VersatilePB for now)
- Make official ARM include directory (include/reactos/arm) and move the ARM DDK there
- Start creating header files for different target board components.
- Update halfuncs in NDK with one missing function, and temporarily, one ARM function.
svn path=/trunk/; revision=33979
We now set -lgcc for all builds (to get built-in division helpers), and also -static (not to import libgcc.dll -- it seems -static isn't needed on x86, but it is on ARM).
We hackfix kdcom to use the FeroUart base address -- this driver won't be used for a while, but we need to have it built.
Now binaries are being created properly (previously kernel was 15MB and importing .DLL files...). FreeLDR output:
FreeLoader v3.0 for ARM
Bootargs: rdbase=0x2000000 rdsize=0x1400000
Detecting Hardware...
Loading...
Reading NTOSKRNL.EXE
Reading BOOTVID.DLL
Reading HAL.DLL
Reading HAL.DLL
Reading c_1252.nls
Reading c_437.nls
Reading l_intl.nls
Reading scsiport.sys
svn path=/trunk/; revision=32207
Reactos-arm.rbuild uses the same settings as the x86 version, but defines _ARM_ and __arm__ instead. _M_ARM is already defined by the compiler.
Add ARM system call stub support to ncitool. We are currently using a SWI 0x2E to achieve this.
Add ARM support to winnt.h.
Add a preliminary intrin_arm.h
Add ketypes.h and mmtypes.h for ARM in the NDK. For now these are mostly stubs to allow compiling to work.
Add ARM support to winddk.h.
Fix some broken x86-only assumptions in the NDK.
Add config-arm-template.rbuild. By defauilt we build for armv5te (armv4 and v5 are supported, not v6).
Set ROS_ARCH=arm to switch to ARM. Set ROS_PREFIX to an appropriate MinGW-32 ARM PE crosscompiler.
svn path=/trunk/; revision=32131