Commit graph

34 commits

Author SHA1 Message Date
Pierre Schweitzer 90ece09e2c Remove some artifact from ARM build.
Would it fix build?

svn path=/trunk/; revision=50677
2011-02-12 20:32:49 +00:00
Timo Kreuzer c2e13c8c49 Fix arm build a bit.
svn path=/trunk/; revision=48779
2010-09-15 23:48:38 +00:00
Pierre Schweitzer d80d711832 Fix ARM build
svn path=/trunk/; revision=47870
2010-06-27 20:44:47 +00:00
Timo Kreuzer 39c39d457f [ReactOS-arm.rbuild]
- add newinflib to arm builds

svn path=/trunk/; revision=47248
2010-05-16 23:07:44 +00:00
Timo Kreuzer 84f23f68d1 - Add -fms-extensions for arm build
- 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
2010-04-06 00:00:00 +00:00
Sir Richard 02c2d27111 [ARM]: Fix the ARM build, hopefully without breaking the x86 build in the process. Sorry buds!
svn path=/trunk/; revision=45368
2010-02-01 03:51:45 +00:00
Daniel Reimer 702301aa40 Some build fixes for ReactOS ARM. Credits go to Alex Ionescu and Timo Kreuzer while I just tried to keep up. :-P
- 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
2009-12-16 20:59:06 +00:00
KJK::Hyperion 7f4bf6c490 modified Makefile
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
2009-11-11 03:41:14 +00:00
ReactOS Portable Systems Group a3d7cdabd2 Import the generic template and comment out _M_ARM since the toolchain already defines it.
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
2009-07-11 11:52:22 +00:00
ReactOS Portable Systems Group f1ab67f6ce Too many things in -i386 were still "generic" and had to be duplicated accross plat-specific rbuild files, so moved a whole bunch of them into the generic rbuild.
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
2009-07-11 11:47:21 +00:00
KJK::Hyperion 586a1d0fff Move gcc -g and -Wall options out of rbuild and into .rbuild files
Move non-architecture-specific msc options to ReactOS-generic.rbuild

svn path=/trunk/; revision=41520
2009-06-21 22:13:28 +00:00
Stefan Ginsberg 88e9b2a513 - In Win32 DBG is defined to 0 for a non-debug build and to 1 for a debug build. In ReactOS we do this slightly different: DBG is correctly defined to 1 for debug, but not defined at all on non-debug/release build. Because gcc is awesome we can then check for debug compilation with both #ifdef DBG and #if DBG (error free! yay gcc!), and so we have mixed usage all over the tree.
- Fix this by defining DBG on non-debug build too and deprecate all usage of #ifdef DBG.

svn path=/trunk/; revision=41436
2009-06-17 12:44:05 +00:00
KJK::Hyperion 66128d2725 modified dll/win32/srclient/srclient_main.c
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
2009-06-16 00:24:26 +00:00
Colin Finck c00c841bd4 Revert my changes in r37808.
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
2008-12-02 19:05:11 +00:00
Colin Finck 61eedb351a KDBG needs DBG to be set, I can't imagine any useful situation for KDBG without DBG.
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
2008-12-02 11:38:23 +00:00
Colin Finck 4ad62aac38 - Add a "host" attribute to the project's <include> and <define> tags to make it possible to define global includes/defines for host components
- 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
2008-10-26 18:03:06 +00:00
ReactOS Portable Systems Group 7b55de3a28 Don't build with -s, this strips vital information from the output. Use --strip-debug instead, which gets rid of the DWARF debugging information,
but keeps the file and symbols sane, so objdump can still be used on the output.


svn path=/trunk/; revision=35354
2008-08-15 15:02:40 +00:00
ReactOS Portable Systems Group 80f7916a79 - We finally figured out how to build the CRT! It seems on ARM, we have to add __MSVCRT__ to all build targets.
- Thanks to the people who worked on the PPC port for making this obvious in the rbuild file :)


svn path=/trunk/; revision=34884
2008-07-28 02:13:39 +00:00
ReactOS Portable Systems Group 27fab2e256 - Build "smlib", "nt", and "smss" on ARM, since the kernel now tries to load the first user-mode process.
- MmCreateProcessAddressSpace is unimplemented.


svn path=/trunk/; revision=34825
2008-07-27 05:44:56 +00:00
Hervé Poussineau 9ba8702be9 Apply again r34533: rename autogenerated makefile to makefile-$(ARCH).auto,
except for i386, due to a bug in RosBE which cleans only makefile.auto and not makefile*.auto

svn path=/trunk/; revision=34789
2008-07-25 19:07:36 +00:00
ReactOS Portable Systems Group e0f2814f6b - Build and add ntdll for ARM.
- 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
2008-07-22 10:00:04 +00:00
ReactOS Portable Systems Group c6a3ef9f7e - Build vfatfs instead of CDFS.
- 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
2008-07-22 05:31:24 +00:00
Colin Finck a9fabb5fd5 Revert r34533 (except the nice indentation in the Makefile) for unbreaking trunk.
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
2008-07-15 22:04:16 +00:00
Hervé Poussineau d1a689916c Rename makefile.auto to makefile-$(ARCH).auto
svn path=/trunk/; revision=34533
2008-07-15 20:42:08 +00:00
ReactOS Portable Systems Group 2ace5cc90d - Disable building any other driver than ramdisk.sys and cdfs.sys. Only these two are required for ramdisk booting to user-mode for our purposes.
- 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
2008-06-30 09:07:30 +00:00
ReactOS Portable Systems Group 09f0fa3748 - Fix the ARM build after the commit by hpoussin which had broken it (with a good change, nonetheless).
svn path=/trunk/; revision=34206
2008-06-30 02:50:42 +00:00
Hervé Poussineau 112d32b2eb NTOSKRNL_SHARED should not contain linker parameters in compiler form
svn path=/trunk/; revision=34190
2008-06-29 15:11:16 +00:00
ReactOS Portable Systems Group a179aed613 - Fix broken system call handler with shitty but works system call handler.
- 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
2008-06-23 16:08:32 +00:00
ReactOS Portable Systems Group 8df8940a6e - The CRT sync by "fireball" is incorrect and results in a broken ntos kernel. Although it may work on i386 builds, it results in a corrupted kernel anyways. On ARM, we try to hackfix around it by not including some routines that should not be in the kernel but were being imported due to the broken crt changes.
- 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
2008-06-23 03:57:50 +00:00
ReactOS Portable Systems Group b300ac4364 - Start major ARM port cleanup:
- 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
2008-06-15 06:14:02 +00:00
Hervé Poussineau f53e2b67f0 Add WINEBUILD_FLAGS, and set it to --kill-at for ARM
svn path=/trunk/; revision=32228
2008-02-08 19:45:30 +00:00
Aleksey Bragin 82d29cb087 - Formatting fixes.
svn path=/trunk/; revision=32213
2008-02-08 10:52:20 +00:00
ReactOS Portable Systems Group a0309ee531 We now also implement InterlockedExchange (Fixes rtl build).
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
2008-02-08 08:20:06 +00:00
ReactOS Portable Systems Group 57ad1f5f20 Add basic arm target support to the build system.
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
2008-02-05 02:58:28 +00:00