[ros-diffs] [akhaldi] 49258: [CMAKE] - Add set_image_base macro. - Fix ks linking.

akhaldi at svn.reactos.org akhaldi at svn.reactos.org
Sun Oct 24 12:44:37 UTC 2010


Author: akhaldi
Date: Sun Oct 24 12:44:36 2010
New Revision: 49258

URL: http://svn.reactos.org/svn/reactos?rev=49258&view=rev
Log:
[CMAKE]
- Add set_image_base macro.
- Fix ks linking.

Modified:
    branches/cmake-bringup/drivers/ksfilter/ks/CMakeLists.txt
    branches/cmake-bringup/gcc.cmake

Modified: branches/cmake-bringup/drivers/ksfilter/ks/CMakeLists.txt
URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/drivers/ksfilter/ks/CMakeLists.txt?rev=49258&r1=49257&r2=49258&view=diff
==============================================================================
--- branches/cmake-bringup/drivers/ksfilter/ks/CMakeLists.txt [iso-8859-1] (original)
+++ branches/cmake-bringup/drivers/ksfilter/ks/CMakeLists.txt [iso-8859-1] Sun Oct 24 12:44:36 2010
@@ -26,9 +26,10 @@
     kcom.c
     ks.rc)
 
-set_target_properties(ks PROPERTIES LINK_FLAGS "-Wl,-entry,0 -Wl,--image-base,0x00010000 -Wl,--subsystem,native" SUFFIX ".sys")
-
-set_module_type(ks kernelmodedriver)
+set_target_properties(ks PROPERTIES SUFFIX ".sys")
+set_entrypoint(ks 0)
+set_subsystem(ks native)
+set_image_base(ks 0x00010000)
 
 target_link_libraries(ks
     ${CMAKE_CURRENT_SOURCE_DIR}/ks.def

Modified: branches/cmake-bringup/gcc.cmake
URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/gcc.cmake?rev=49258&r1=49257&r2=49258&view=diff
==============================================================================
--- branches/cmake-bringup/gcc.cmake [iso-8859-1] (original)
+++ branches/cmake-bringup/gcc.cmake [iso-8859-1] Sun Oct 24 12:44:36 2010
@@ -56,6 +56,15 @@
     set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})
 endmacro()
 
+macro(set_image_base MODULE IMAGE_BASE)
+    set(NEW_LINKER_FLAGS "-Wl,--image-base,${IMAGE_BASE}")
+    get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS)
+    if(LINKER_FLAGS)
+        set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}")
+    endif()
+    set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})
+endmacro()
+
 macro(add_importlibs MODULE)
   foreach(LIB ${ARGN})
     target_link_libraries(${MODULE} ${LIB}.dll.a)
@@ -106,9 +115,10 @@
         set_target_properties(${MODULE} PROPERTIES SUFFIX ".cpl")
     endif()
 	if(${TYPE} MATCHES kernelmodedriver)
-	    set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-Wl,--image-base,0x00010000 -Wl,--exclude-all-symbols" SUFFIX ".sys")
+	    set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-Wl,--exclude-all-symbols" SUFFIX ".sys")
 	    set_entrypoint(${MODULE} DriverEntry at 8)
 		set_subsystem(${MODULE} native)
+        set_image_base(${MODULE} 0x00010000)
 		add_dependencies(${MODULE} bugcodes)
 	endif()
 endmacro()




More information about the Ros-diffs mailing list