Skip to content

Commit 001b9a7

Browse files
authored
Merge pull request #1876 from thetic/super-secure
Deduce windows secure stdlib availability
2 parents 4700e91 + 64de9f9 commit 001b9a7

File tree

6 files changed

+10
-21
lines changed

6 files changed

+10
-21
lines changed

CMakeLists.txt

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,6 @@ set_property(
8181
armcc Borland C2000 Dos Gcc Iar Keil Symbian VisualCpp OFF
8282
)
8383

84-
include(CheckCXXSymbolExists)
85-
check_cxx_symbol_exists(fopen_s "stdio.h" CPPUTEST_HAVE_SECURE_STDLIB)
86-
cmake_dependent_option(CPPUTEST_USE_SECURE_STDLIB "Use MSVC safe functions"
87-
ON "WIN32;CPPUTEST_HAVE_SECURE_STDLIB" OFF)
88-
8984
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
9085
if(NOT PROJECT_IS_TOP_LEVEL)
9186
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" PARENT_SCOPE)
@@ -108,8 +103,7 @@ endif()
108103
include(GNUInstallDirs)
109104

110105
# Check for symbols before setting a lot of stuff
111-
include(CheckTypeSize)
112-
include(CheckStructHasMember)
106+
include(CheckCXXSymbolExists)
113107
set(CMAKE_REQUIRED_FLAGS ${CMAKE_CXX_FLAGS})
114108
check_cxx_symbol_exists(kill "signal.h" CPPUTEST_HAVE_KILL)
115109
check_cxx_symbol_exists(fork "unistd.h" CPPUTEST_HAVE_FORK)
@@ -120,10 +114,6 @@ check_cxx_symbol_exists(pthread_mutex_lock "pthread.h" CPPUTEST_HAVE_PTHREAD_MUT
120114
if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "IAR")
121115
check_cxx_symbol_exists(strdup "string.h" CPPUTEST_HAVE_STRDUP)
122116
endif()
123-
check_type_size("long long" SIZEOF_LONGLONG LANGUAGE CXX)
124-
if(HAVE_SIZEOF_LONGLONG)
125-
set(CPPUTEST_HAVE_LONG_LONG_INT ON)
126-
endif()
127117

128118
add_subdirectory(src)
129119

CppUTest.vcproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
Name="VCCLCompilerTool"
4343
Optimization="0"
4444
AdditionalIncludeDirectories=".\include"
45-
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;STDC_WANT_SECURE_LIB;CPPUTEST_USE_LONG_LONG"
45+
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;CPPUTEST_USE_LONG_LONG"
4646
BasicRuntimeChecks="3"
4747
RuntimeLibrary="3"
4848
PrecompiledHeaderFile=".\Debug/CppUTest.pch"
@@ -113,7 +113,7 @@
113113
Optimization="0"
114114
InlineFunctionExpansion="1"
115115
AdditionalIncludeDirectories=".\include"
116-
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;STDC_WANT_SECURE_LIB;CPPUTEST_USE_LONG_LONG"
116+
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;CPPUTEST_USE_LONG_LONG"
117117
StringPooling="true"
118118
RuntimeLibrary="0"
119119
EnableFunctionLevelLinking="true"

CppUTest.vcxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
<ClCompile>
7676
<Optimization>Disabled</Optimization>
7777
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
78-
<PreprocessorDefinitions>_LIB;WIN32;_DEBUG;STDC_WANT_SECURE_LIB;CPPUTEST_USE_LONG_LONG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
78+
<PreprocessorDefinitions>_LIB;WIN32;_DEBUG;CPPUTEST_USE_LONG_LONG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
7979
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
8080
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
8181
<WarningLevel>Level3</WarningLevel>
@@ -107,7 +107,7 @@
107107
<ClCompile>
108108
<Optimization>Disabled</Optimization>
109109
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
110-
<PreprocessorDefinitions>_LIB;WIN32;_DEBUG;STDC_WANT_SECURE_LIB;CPPUTEST_USE_LONG_LONG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
110+
<PreprocessorDefinitions>_LIB;WIN32;_DEBUG;CPPUTEST_USE_LONG_LONG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
111111
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
112112
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
113113
<WarningLevel>Level3</WarningLevel>
@@ -140,7 +140,7 @@
140140
<Optimization>Disabled</Optimization>
141141
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
142142
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
143-
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;STDC_WANT_SECURE_LIB;CPPUTEST_USE_LONG_LONG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
143+
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;CPPUTEST_USE_LONG_LONG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
144144
<StringPooling>true</StringPooling>
145145
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
146146
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -175,7 +175,7 @@
175175
<Optimization>Disabled</Optimization>
176176
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
177177
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
178-
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;STDC_WANT_SECURE_LIB;CPPUTEST_USE_LONG_LONG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
178+
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;CPPUTEST_USE_LONG_LONG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
179179
<StringPooling>true</StringPooling>
180180
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
181181
<FunctionLevelLinking>true</FunctionLevelLinking>

src/CppUTest/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ target_compile_definitions(CppUTest
8888
$<$<BOOL:${CPPUTEST_HAVE_PTHREAD_MUTEX_LOCK}>:CPPUTEST_HAVE_PTHREAD_MUTEX_LOCK>
8989
PRIVATE
9090
$<$<BOOL:${CPPUTEST_HAVE_GETTIMEOFDAY}>:CPPUTEST_HAVE_GETTIMEOFDAY>
91-
$<$<BOOL:${CPPUTEST_USE_SECURE_STDLIB}>:STDC_WANT_SECURE_LIB>
9291
# Apply workaround for MinGW timespec redefinition (pthread.h / time.h).
9392
$<$<BOOL:${HAVE_STRUCT_TIMESPEC}>:_TIMESPEC_DEFINED>
9493
)

src/Platforms/Gcc/UtestPlatform.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ static const char* TimeStringImplementation()
213213
{
214214
time_t theTime = time(NULLPTR);
215215
static char dateTime[80];
216-
#ifdef STDC_WANT_SECURE_LIB
216+
#if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__)
217217
static struct tm lastlocaltime;
218218
localtime_s(&lastlocaltime, &theTime);
219219
struct tm *tmp = &lastlocaltime;
@@ -239,7 +239,7 @@ int (*PlatformSpecificVSNprintf)(char *str, size_t size, const char* format, va_
239239

240240
static PlatformSpecificFile PlatformSpecificFOpenImplementation(const char* filename, const char* flag)
241241
{
242-
#ifdef STDC_WANT_SECURE_LIB
242+
#if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__)
243243
FILE* file;
244244
fopen_s(&file, filename, flag);
245245
return file;

src/Platforms/VisualCpp/UtestPlatform.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
#include <setjmp.h>
2323

24-
#ifdef STDC_WANT_SECURE_LIB
24+
#if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__)
2525
#define MAYBE_SECURE_FOPEN(fp, filename, flag) fopen_s((fp), (filename), (flag))
2626
#define MAYBE_SECURE_VSNPRINTF(str, size, trunc, format, args) _vsnprintf_s((str), (size), (trunc), (format), (args))
2727
#define MAYBE_SECURE_LOCALTIME(_tm, timer) localtime_s((_tm), (timer))

0 commit comments

Comments
 (0)