On 2015-09-03 21:04+0100 Phil Rosenberg wrote:

> Hi  Alan
> Yes I have it installed, but haven't really tried it much yet (I was
> lured into playing with its new ability to us it to debug on a Linux
> machine using GDB via ssh) I will try a PLPlot build now and see what
> happens.
>
> I have just read the link you provided. It is a useful mov they are
> making. I personally always use static linking to the runtime so that
> if I give an exe to someone else it will "just work" and there is no
> need for them to install a visual studio runtime (which must be the
> correct VS version). The move to including the runtime as part of the
> OS is more like the way I think Linux works, and there everyone builds
> using dynamic linking to the runtime with generally good result.
>
> I don't really understand what the implication is for snprintf or
> check_function_exists(). Why would having the CRT as part of the OS,
> rather than as an installed component make any difference? Is this a
> CMAke bug rather than a PLPlot bug?

Hi Phil:

I don't think we need to be concerned about bugs in
check_function_exists() since it is really simple; it creates source
code with a call to the required function, and checks that source code
can be built and linked using the CMAKE_REQUIRED_* variables set by
our build system.

Normally, we don't set those CMAKE_REQUIRED_* variables at all, and
check_function_exists(snprintf PL_HAVE_SNPRINTF) (or the alternative
check_function_exists(_snprintf _PL_HAVE_SNPRINTF) just works without
issues.  However, from the bug report it appears that is not the case
for VC14 and above.  So the first step is to verify the problem on
that platform, i.e., with

cmake_minimum_required(VERSION 2.8.9)
project(test_check C)
message(STATUS "CMake version = ${CMAKE_VERSION}")
message(STATUS "CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}")
include(CheckFunctionExists)
check_function_exists(snprintf PL_HAVE_SNPRINTF)
message(STATUS "PL_HAVE_SNPRINTF = ${PL_HAVE_SNPRINTF}")
check_function_exists(_snprintf _PL_HAVE_SNPRINTF)
message(STATUS "_PL_HAVE_SNPRINTF = ${_PL_HAVE_SNPRINTF}")

Note the extra message commands for figuring out details of your test
platform and the extra two commands for testing the function _snprintf
compared to what I recommended before.  If both PL_HAVE_SNPRINTF and
_PL_HAVE_SNPRINTF are false you will have verified the problem, and we
can take it from there by figuring out what CMAKE_REQUIRED_* variables
need to be set so that one or both of PL_HAVE_SNPRINTF and
_PL_HAVE_SNPRINTF are true.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to