[CMake] /STACK:10000000 being added to linker in Visual Studio?

Robert Dailey rcdailey.lists at gmail.com
Wed Jun 27 15:38:54 EDT 2012


Yeah certainly, especially since multicore is pretty much everywhere now
and most applications are designed with parallelization in mind.

Like every other compiler and linker flag out there, have the user manually
set that up if they want it. CMake doesn't automatically add any other
compiler flags for me, so /STACK shouldn't be any different IMHO.

Thanks for your help, I will try using those new global variables.

On Wed, Jun 27, 2012 at 2:35 PM, David Cole <david.cole at kitware.com> wrote:

> Ah. I just read through Windows-cl.cmake again to refresh my memory....
>
> Also do the same thing with these two variables:
> CMAKE_SHARED_LINKER_FLAGS for SHARED dll targets, and
> CMAKE_MODULE_LINKER_FLAGS for MODULE dll targets. That should take
> care of it.
>
> Whew. Maybe we should just remove it from CMake one of these days.
> Seems like a bit of an excessive stack size to have by default,
> doesn't it? :-)
>
>
> David
>
>
> On Wed, Jun 27, 2012 at 3:27 PM, Robert Dailey <rcdailey.lists at gmail.com>
> wrote:
> > I just tried your code and unfortunately /STACK still shows up for DLL
> > targets, although for EXE targets it seems to be gone.
> >
> >
> > On Wed, Jun 27, 2012 at 2:24 PM, David Cole <david.cole at kitware.com>
> wrote:
> >>
> >> Try my code, and tell us if it removes the generated /STACK from all
> >> your linker calls or not...
> >>
> >> Thx,
> >> David
> >>
> >> On Wed, Jun 27, 2012 at 3:22 PM, Robert Dailey <
> rcdailey.lists at gmail.com>
> >> wrote:
> >> > Apparently this won't work... /STACK doesn't show up in any of the
> >> > compile
> >> > flags retrieved this way. However, CMAKE_EXE_COMPILER_FLAGS doesn't
> >> > apply to
> >> > library targets, right?
> >> >
> >> >
> >> > On Wed, Jun 27, 2012 at 2:19 PM, Robert Dailey
> >> > <rcdailey.lists at gmail.com>
> >> > wrote:
> >> >>
> >> >> This flag is appended to DLL targets too, so I created this (i
> haven't
> >> >> tested it yet though):
> >> >>
> >> >> function( _remove_stack_flag target_name )
> >> >> get_property( flags TARGET ${target_name} PROPERTY COMPILE_FLAGS )
> >> >> string( REGEX REPLACE "/STACK:[0-9]+" "" flags ${flags} )
> >> >> set_property( TARGET ${target_name} PROPERTY COMPILE_FLAGS ${flags} )
> >> >> endfunction()
> >> >>
> >> >> I call this once for each target I define.
> >> >>
> >> >>
> >> >> On Wed, Jun 27, 2012 at 2:17 PM, David Cole <david.cole at kitware.com>
> >> >> wrote:
> >> >>>
> >> >>> You could do:
> >> >>>
> >> >>>  string(REPLACE "/STACK:10000000 " "" CMAKE_EXE_LINKER_FLAGS
> >> >>> "${CMAKE_EXE_LINKER_FLAGS}")
> >> >>>
> >> >>> after the first project command in the top level CMakeLists file.
> (Or
> >> >>> "/STACK:some other number" to change it, instead of the empty string
> >> >>> to just remove it...)
> >> >>>
> >> >>> The /STACK string only appears in the two files:
> >> >>>
> >> >>>  Modules/Platform/Windows-Intel.cmake
> >> >>>  Modules/Platform/Windows-cl.cmake
> >> >>>
> >> >>>
> >> >>> HTH,
> >> >>> David
> >> >>>
> >> >>>
> >> >>> On Wed, Jun 27, 2012 at 3:11 PM, Robert Dailey
> >> >>> <rcdailey.lists at gmail.com>
> >> >>> wrote:
> >> >>> > This is added to every generated visual studio project from
> version
> >> >>> > 7.1
> >> >>> > to
> >> >>> > 9. How can I tell CMake not to modify the stack size?
> >> >>> > --
> >> >>> >
> >> >>> > Powered by www.kitware.com
> >> >>> >
> >> >>> > Visit other Kitware open-source projects at
> >> >>> > http://www.kitware.com/opensource/opensource.html
> >> >>> >
> >> >>> > Please keep messages on-topic and check the CMake FAQ at:
> >> >>> > http://www.cmake.org/Wiki/CMake_FAQ
> >> >>> >
> >> >>> > Follow this link to subscribe/unsubscribe:
> >> >>> > http://www.cmake.org/mailman/listinfo/cmake
> >> >>
> >> >>
> >> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20120627/cbc24fa5/attachment-0001.htm>


More information about the CMake mailing list