View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0012881CMakeCMakepublic2012-01-18 08:512016-06-10 14:31
ReporterDaniel Lehtovirta 
Assigned ToKitware Robot 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionmoved 
PlatformApple MacOSOS XOS Version10.4.10
Product VersionCMake 2.8.7 
Target VersionFixed in Version 
Summary0012881: \DYNAMICBASE and \NXCOMPAT don't work on Visual Studio 8 2005 builds
DescriptionCreating vcproj file for Visual Studio 8 2005. When adding linker flags \DYNAMICBASE and \NXCOMPAT

For instance by having this in the CMakeLists.txt file:
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NXCOMPAT /DYNAMICBASE")

CMake is translating this to, DataExecutionPrevention="2" and RandomizedBaseAddress="2" something that Visual Studio 8 2005 don't understand and being ignored by the linker.

If I manually add \DYNAMICBASE and \NXCOMPAT to the AdditionalOptions parameter it works fine.
Steps To Reproduce1. Add
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NXCOMPAT /DYNAMICBASE")
to the CMakeLists.txt in your project, make the vcproj file for Visual Studio 8 2005.
2. Check the vcproj file and noticed the DataExecutionPrevention="2" and RandomizedBaseAddress="2".
3. Build the file and see that the dll don't have these options sent to the linker.
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0028355)
Brad King (manager)
2012-01-18 14:14

The mappings for these flags to the IDE project file attributes were added in CMake 2.8.5:

  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=85163fba [^]

but apparently some are not understood by VS older than 2008.
(0028451)
Brad King (manager)
2012-02-02 14:05

Solving this will require the VS flag tables that map flags to IDE options:

http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmLocalVisualStudio7Generator.cxx;hb=v2.8.7#l399 [^]
http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmLocalVisualStudio7Generator.cxx;hb=v2.8.7#l504 [^]

to be refactored such that they are populated based on the target IDE version.
(0041967)
Kitware Robot (administrator)
2016-06-10 14:28

Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.

 Issue History
Date Modified Username Field Change
2012-01-18 08:51 Daniel Lehtovirta New Issue
2012-01-18 14:14 Brad King Note Added: 0028355
2012-02-02 14:05 Brad King Note Added: 0028451
2012-02-02 14:05 Brad King Status new => backlog
2016-06-10 14:28 Kitware Robot Note Added: 0041967
2016-06-10 14:28 Kitware Robot Status backlog => resolved
2016-06-10 14:28 Kitware Robot Resolution open => moved
2016-06-10 14:28 Kitware Robot Assigned To => Kitware Robot
2016-06-10 14:31 Kitware Robot Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team