From d738b24b6f85c687d19c5d6e7a9d5a6b866c568d Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Thu, 18 Nov 2010 21:32:10 +0000 Subject: [PATCH] [CMAKE] - use correct link script file for freeldr and setupldr - use correct definition file for advapi32 - don't specify name to add_bootcd_target if not needed - portcls is not a kernel mode driver - Disable stcall fixup, except for mesa32 which requires it - remove an useless file from minihal, add a forgotten one to freeldr svn path=/branches/cmake-bringup/; revision=49615 --- boot/CMakeLists.txt | 7 ++++--- dll/3rdparty/mesa32/CMakeLists.txt | 4 ++++ dll/win32/advapi32/CMakeLists.txt | 2 +- drivers/input/i8042prt/CMakeLists.txt | 4 +++- drivers/wdm/audio/backpln/portcls/CMakeLists.txt | 5 ++++- gcc.cmake | 3 ++- hal/CMakeLists.txt | 1 - toolchain-mingw32.cmake | 4 ++-- 8 files changed, 20 insertions(+), 10 deletions(-) diff --git a/boot/CMakeLists.txt b/boot/CMakeLists.txt index e0558666490..04be39da485 100644 --- a/boot/CMakeLists.txt +++ b/boot/CMakeLists.txt @@ -60,6 +60,7 @@ list(APPEND FREELDR_BASE_SOURCE freeldr/freeldr/disk/disk.c freeldr/freeldr/disk/partition.c freeldr/freeldr/disk/ramdisk.c + freeldr/freeldr/disk/scsiport.c freeldr/freeldr/fs/ext2.c freeldr/freeldr/fs/fat.c freeldr/freeldr/fs/fs.c @@ -178,7 +179,7 @@ add_library(freeldr SHARED ${FREELDR_SOURCE}) if(NOT MSVC) -set_target_properties(freeldr PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${REACTOS_SOURCE_DIR}/global.lds" SUFFIX ".sys") +set_target_properties(freeldr PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr/freeldr/freeldr_i386.lnk" SUFFIX ".sys") set_image_base(freeldr 0x8000) else() set_target_properties(freeldr PROPERTIES LINK_FLAGS "/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" SUFFIX ".sys") @@ -211,14 +212,14 @@ list(APPEND SETUPLDR_SOURCE add_library(setupldr SHARED ${SETUPLDR_SOURCE}) if(NOT MSVC) -set_target_properties(setupldr PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${REACTOS_SOURCE_DIR}/global.lds" SUFFIX ".sys" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP") +set_target_properties(setupldr PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr/freeldr/freeldr_i386.lnk" SUFFIX ".sys" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP") set_image_base(setupldr 0x8000) else() set_target_properties(setupldr PROPERTIES LINK_FLAGS "/SECTION:.text,ERWP,ALIGN=0x1000" SUFFIX ".sys" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP") endif() set_subsystem(setupldr native) -set_entrypoint(freeldr mainCRTStartup) +set_entrypoint(setupldr mainCRTStartup) if(ARCH MATCHES i386) target_link_libraries(setupldr mini_hal) diff --git a/dll/3rdparty/mesa32/CMakeLists.txt b/dll/3rdparty/mesa32/CMakeLists.txt index 4ba97c73e5a..dda16020bd3 100644 --- a/dll/3rdparty/mesa32/CMakeLists.txt +++ b/dll/3rdparty/mesa32/CMakeLists.txt @@ -15,6 +15,10 @@ else() add_definitions(-DGL_NO_STDCALL) endif(ARCH MATCHES i386) +if(NOT MSVC) + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS_INIT} -Wl,--enable-stdcall-fixup") +endif() + include_directories( BEFORE include src diff --git a/dll/win32/advapi32/CMakeLists.txt b/dll/win32/advapi32/CMakeLists.txt index 98e8baa6f51..cb2aa80605d 100644 --- a/dll/win32/advapi32/CMakeLists.txt +++ b/dll/win32/advapi32/CMakeLists.txt @@ -43,7 +43,7 @@ list(APPEND SOURCE token/token.c advapi32_stubs.c advapi32.rc - advapi32.def) + ${CMAKE_CURRENT_BINARY_DIR}/advapi32.def) if(NOT MSVC) set_source_files_properties(advapi32.def PROPERTIES EXTERNAL_OBJECT TRUE) diff --git a/drivers/input/i8042prt/CMakeLists.txt b/drivers/input/i8042prt/CMakeLists.txt index 331e8ea0f37..2517d614dcd 100644 --- a/drivers/input/i8042prt/CMakeLists.txt +++ b/drivers/input/i8042prt/CMakeLists.txt @@ -1,4 +1,6 @@ +set_rc_compiler() + add_library(i8042prt SHARED createclose.c i8042prt.c @@ -15,5 +17,5 @@ add_library(i8042prt SHARED set_module_type(i8042prt kernelmodedriver) add_importlibs(i8042prt ntoskrnl hal) -add_minicd_target(i8042prt reactos i8042prt.sys) +add_minicd_target(i8042prt reactos) add_livecd_target(i8042prt reactos/system32/drivers) \ No newline at end of file diff --git a/drivers/wdm/audio/backpln/portcls/CMakeLists.txt b/drivers/wdm/audio/backpln/portcls/CMakeLists.txt index ec4ea6b501a..5250a786102 100644 --- a/drivers/wdm/audio/backpln/portcls/CMakeLists.txt +++ b/drivers/wdm/audio/backpln/portcls/CMakeLists.txt @@ -59,7 +59,10 @@ else() set_target_properties(portcls PROPERTIES COMPILE_FLAGS "-fno-exceptions -fno-rtti") endif(MSVC) -set_module_type(portcls kernelmodedriver) +set_entrypoint(portcls 0) +set_image_base(portcls 0x00010000) +set_subsystem(portcls native) +set_target_properties(portcls PROPERTIES SUFFIX ".sys") add_importlibs(portcls ntoskrnl ks drmk hal stdc++ gcc msvcrt) diff --git a/gcc.cmake b/gcc.cmake index aaa6d34e02d..03fd1a42aca 100644 --- a/gcc.cmake +++ b/gcc.cmake @@ -11,6 +11,7 @@ set(CMAKE_C_LINK_EXECUTABLE "
  • -o ") set(CMAKE_EXE_LINKER_FLAGS "-nodefaultlibs -nostdlib -Wl,--enable-auto-image-base -Wl,--kill-at -Wl,--disable-auto-import") # -Wl,-T,${REACTOS_SOURCE_DIR}/global.lds +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS_INIT} -Wl,--disable-stdcall-fixup") # Compiler Core add_definitions(-pipe -fms-extensions) @@ -112,7 +113,7 @@ macro(set_module_type MODULE TYPE) set_target_properties(${MODULE} PROPERTIES SUFFIX ".cpl") endif() if(${TYPE} MATCHES kernelmodedriver) - set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-Wl,--exclude-all-symbols" SUFFIX ".sys") + set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-Wl,--exclude-all-symbols -Wl,-file-alignment=0x1000 -Wl,-section-alignment=0x1000" SUFFIX ".sys") set_entrypoint(${MODULE} DriverEntry@8) set_subsystem(${MODULE} native) set_image_base(${MODULE} 0x00010000) diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index c39baec28c5..252024975b8 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -72,7 +72,6 @@ list(APPEND MINI_HAL_SOURCE halx86/generic/legacy/bus/cmosbus.c halx86/generic/legacy/bus/isabus.c halx86/generic/legacy/bus/pcibus.c - halx86/generic/legacy/bus/pcidata.c halx86/generic/legacy/bus/sysbus.c halx86/generic/legacy/bussupp.c halx86/generic/beep.c diff --git a/toolchain-mingw32.cmake b/toolchain-mingw32.cmake index c608409e3ac..003a1861e58 100644 --- a/toolchain-mingw32.cmake +++ b/toolchain-mingw32.cmake @@ -38,10 +38,10 @@ set(CMAKE_C_STANDARD_LIBRARIES "-lgcc" CACHE STRING "Standard C Libraries") set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "Standard C++ Libraries") if(ARCH MATCHES i386) -set(CMAKE_SHARED_LINKER_FLAGS_INIT "-nodefaultlibs -nostdlib -Wl,--enable-auto-image-base -Wl,--enable-stdcall-fixup -Wl,--kill-at -Wl,--disable-auto-import") +set(CMAKE_SHARED_LINKER_FLAGS_INIT "-nodefaultlibs -nostdlib -Wl,--enable-auto-image-base -Wl,--kill-at -Wl,--disable-auto-import") #-Wl,-T,${REACTOS_SOURCE_DIR}/global.lds elseif(ARCH MATCHES amd64) -set(CMAKE_SHARED_LINKER_FLAGS_INIT "-nodefaultlibs -nostdlib -Wl,--enable-auto-image-base -Wl,--enable-stdcall-fixup -Wl,--kill-at -Wl,--disable-auto-import") +set(CMAKE_SHARED_LINKER_FLAGS_INIT "-nodefaultlibs -nostdlib -Wl,--enable-auto-image-base -Wl,--kill-at -Wl,--disable-auto-import") endif(ARCH MATCHES i386) # adjust the default behaviour of the FIND_XXX() commands: -- 2.17.1