Author: tkreuzer Date: Sun Jun 19 10:03:45 2011 New Revision: 52360
URL: http://svn.reactos.org/svn/reactos?rev=52360&view=rev Log: [FREELDR] - Fix MSVC linkerflags for setupldr - Move stack from 78000 to 98000 to fix conflicts with freeldr code, which is larger when built with MSVC - MSVC compiled setupldr works now!
Modified: trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt trunk/reactos/boot/freeldr/freeldr/bootmgr.c trunk/reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h
Modified: trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/CMakeL... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt [iso-8859-1] Sun Jun 19 10:03:45 2011 @@ -117,9 +117,6 @@ list(APPEND FREELDR_COMMON_SOURCE arch/i386/drvmap.S arch/i386/multiboot.S) - else() - list(APPEND FREELDR_COMMON_SOURCE - arch/i386/realmode.S) endif() elseif(ARCH MATCHES amd64) list(APPEND FREELDR_COMMON_SOURCE @@ -217,7 +214,7 @@ if(NOT MSVC) set_target_properties(setupldr_pe PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lnk" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP") else() - set_target_properties(setupldr_pe PROPERTIES LINK_FLAGS "/DRIVER /SECTION:.text,ERWP,ALIGN=0x1000" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP") + set_target_properties(setupldr_pe PROPERTIES LINK_FLAGS "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP") endif()
set_image_base(setupldr_pe 0x10000)
Modified: trunk/reactos/boot/freeldr/freeldr/bootmgr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/bootmg... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/bootmgr.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/bootmgr.c [iso-8859-1] Sun Jun 19 10:03:45 2011 @@ -140,7 +140,7 @@ } TimeOut = GetTimeOut();
- if (!UiInitialize(TimeOut)) + if (!UiInitialize(TimeOut != 0)) { UiMessageBoxCritical("Unable to initialize UI."); return;
Modified: trunk/reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h [iso-8859-1] Sun Jun 19 10:03:45 2011 @@ -8,13 +8,14 @@ #define BSS_START HEX(6F00) #define FREELDR_BASE HEX(F800) #define FREELDR_PE_BASE HEX(10000) -#define STACK32ADDR HEX(78000) /* The 32-bit stack top will be at 7000:8000, or 0x78000 */ -#define BIOSCALLBUFFER HEX(78000) /* Buffer to store temporary data for any Int386() call */ -#define BIOSCALLBUFSEGMENT HEX(7800) /* Buffer to store temporary data for any Int386() call */ -#define BIOSCALLBUFOFFSET HEX(0000) /* Buffer to store temporary data for any Int386() call */ +#define STACK32ADDR HEX(98000) /* The 32-bit stack top will be at 9000:8000, or 0xA8000 */ +#define BIOSCALLBUFFER HEX(98000) /* Buffer to store temporary data for any Int386() call */ #define FILESYSBUFFER HEX(80000) /* Buffer to store file system data (e.g. cluster buffer for FAT) */ #define DISKREADBUFFER HEX(90000) /* Buffer to store data read in from the disk via the BIOS */ #define DISKREADBUFFER_SIZE 512 + +#define BIOSCALLBUFSEGMENT (BIOSCALLBUFFER/16) /* Buffer to store temporary data for any Int386() call */ +#define BIOSCALLBUFOFFSET HEX(0000) /* Buffer to store temporary data for any Int386() call */
/* These addresses specify the realmode "BSS section" layout */ #define BSS_RealModeEntry (BSS_START + 0)