]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Compiler Options moved to util.h
authorinikep <inikep@gmail.com>
Thu, 5 May 2016 09:53:42 +0000 (11:53 +0200)
committerinikep <inikep@gmail.com>
Thu, 5 May 2016 09:53:42 +0000 (11:53 +0200)
lib/common/util.h
programs/bench.c
programs/dibio.c
programs/fileio.c
programs/fullbench.c
programs/paramgrill.c
visual/2013/fullbench/fullbench.vcxproj
visual/2013/zstd/zstd.vcxproj

index af3360d65a4bfe3317f22a5fdc9eb4395e1e6eeb..e427fc1a164bee16875becec28a9da04886a9d84 100644 (file)
 extern "C" {
 #endif
 
+/* **************************************
+*  Compiler Options
+****************************************/
+#if defined(_MSC_VER)
+#  define _CRT_SECURE_NO_WARNINGS    /* Disable some Visual warning messages for fopen, strncpy */
+#  define _CRT_SECURE_NO_DEPRECATE   /* VS2005 */
+#  pragma warning(disable : 4127)    /* disable: C4127: conditional expression is constant */
+#  define snprintf sprintf_s         /* snprintf unsupported by Visual <= 2012 */
+//#  define snprintf _snprintf    
+#endif
+
+/* Unix Large Files support (>4GB) */
+#if !defined(__LP64__)              /* No point defining Large file for 64 bit */
+#   define _FILE_OFFSET_BITS 64     /* turn off_t into a 64-bit type for ftello, fseeko */
+#   if defined(__sun__)             /* Sun Solaris 32-bits requires specific definitions */
+#      define _LARGEFILE_SOURCE     /* fseeko, ftello */
+#   else                        
+#      define _LARGEFILE64_SOURCE   /* off64_t, fseeko64, ftello64 */
+#   endif
+#endif
+
+
 /*-****************************************
 *  Dependencies
 ******************************************/
@@ -63,7 +85,9 @@ extern "C" {
 #endif
 
 
-/* Sleep functions: Windows - Posix - others */
+/*-****************************************
+*  Sleep functions: Windows - Posix - others
+******************************************/
 #if defined(_WIN32)
 #  include <windows.h>
 #  define SET_HIGH_PRIORITY SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS)
@@ -75,11 +99,11 @@ extern "C" {
 #  include <time.h>         /* clock_t, nanosleep, clock, CLOCKS_PER_SEC */
 #  define SET_HIGH_PRIORITY setpriority(PRIO_PROCESS, 0, -20)
 #  define UTIL_sleep(s) sleep(s)
-   #if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 199309L)
-   #  define UTIL_sleepMilli(milli) { struct timespec t; t.tv_sec=0; t.tv_nsec=milli*1000000ULL; nanosleep(&t, NULL); }
-   #else
-   #  define UTIL_sleepMilli(milli) /* disabled */
-   #endif
+#  if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 199309L)
+#      define UTIL_sleepMilli(milli) { struct timespec t; t.tv_sec=0; t.tv_nsec=milli*1000000ULL; nanosleep(&t, NULL); }
+#  else
+#      define UTIL_sleepMilli(milli) /* disabled */
+#  endif
 #else
 #  define SET_HIGH_PRIORITY      /* disabled */
 #  define UTIL_sleep(s)          /* disabled */
@@ -191,6 +215,7 @@ UTIL_STATIC U32 UTIL_isDirectory(const char* infilename)
 
 
 #ifdef _WIN32
+#  define UTIL_HAS_CREATEFILELIST
 
 UTIL_STATIC int UTIL_prepareFileList(const char *dirName, char** bufStart, char* bufEnd)
 {
@@ -243,6 +268,7 @@ next:
 }
 
 #elif (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__))) && defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) /* snprintf, opendir */
+#  define UTIL_HAS_CREATEFILELIST
 #  include <dirent.h>       /* opendir, readdir */
 #  include <limits.h>       /* PATH_MAX */
 #  include <errno.h>
@@ -291,25 +317,28 @@ UTIL_STATIC int UTIL_prepareFileList(const char *dirName, char** bufStart, char*
 
 UTIL_STATIC int UTIL_prepareFileList(const char *dirName, char** bufStart, char* bufEnd)
 {
+    (void)bufStart; (void)bufEnd;
     fprintf(stderr, "Directory %s ignored (zstd compiled without _POSIX_C_SOURCE)\n", dirName);
     return 0;
 }
 
-#endif // WIN32
+#endif // #ifdef _WIN32
 
 
-UTIL_STATIC int UTIL_createFileList(const char **inputNames, unsigned nbNames, unsigned maxListSize, char*** filenameTable)
+UTIL_STATIC int UTIL_createFileList(const char **inputNames, unsigned nbNames, unsigned maxListSize, const char*** filenameTable, char** allocatedBuffer)
 {
     unsigned i, nbFiles = 0;
     char *pbuf, *bufend, *buf;
 
     buf = (char*)malloc(maxListSize);
+       if (!buf) { *filenameTable = NULL; return 0; }
     bufend = buf + maxListSize;
-    for (i=0, pbuf = buf; i<nbNames; i++) {
+
+       for (i=0, pbuf = buf; i<nbNames; i++) {
         if (UTIL_doesFileExists(inputNames[i])) {
        // printf ("UTIL_doesFileExists=[%s]\n", inputNames[i]);
-            int len = strlen(inputNames[i]);
-            if (bufend - pbuf <= len) break;
+            size_t len = strlen(inputNames[i]);
+            if (pbuf + len >= bufend) break;
             strncpy(pbuf, inputNames[i], bufend - pbuf);
             pbuf += len + 1;
             nbFiles++;
@@ -318,7 +347,8 @@ UTIL_STATIC int UTIL_createFileList(const char **inputNames, unsigned nbNames, u
             nbFiles += UTIL_prepareFileList(inputNames[i], &pbuf, bufend);
     }
 
-    {   char** fileTable = (char**)malloc((nbFiles+1) * sizeof(const char*));
+    {   const char** fileTable = (const char**)malloc((nbFiles+1) * sizeof(const char*));
+               if (!fileTable) { free(buf); *filenameTable = NULL; return 0; }
 
         if (nbFiles == 0)
             fileTable[0] = buf;
@@ -330,15 +360,16 @@ UTIL_STATIC int UTIL_createFileList(const char **inputNames, unsigned nbNames, u
         }
 
         *filenameTable = fileTable;
+        *allocatedBuffer = buf;
     }
 
     return nbFiles;
 }
 
 
-UTIL_STATIC void UTIL_freeFileList(char** filenameTable)
+UTIL_STATIC void UTIL_freeFileList(const char** filenameTable, char* buf)
 {
-    free(filenameTable[0]); /* free buffer */
+    free(buf);
     free(filenameTable);
 }
 
index 85c28e8c2a8b6ebad51cd5cc19498454ac56279b..0007ef43fbef87f52803b324482d48ac7c0647fc 100644 (file)
     - zstd source repository : https://github.com/Cyan4973/zstd
 */
 
-/* **************************************
-*  Compiler Options
-****************************************/
-/* Disable some Visual warning messages */
-#ifdef _MSC_VER
-#  define _CRT_SECURE_NO_WARNINGS                /* fopen */
-#  pragma warning(disable : 4127)                /* disable: C4127: conditional expression is constant */
-#endif
-
-/* Unix Large Files support (>4GB) */
-#define _FILE_OFFSET_BITS 64
-#if (defined(__sun__) && (!defined(__LP64__)))   /* Sun Solaris 32-bits requires specific definitions */
-#  define _LARGEFILE_SOURCE
-#elif ! defined(__LP64__)                        /* No point defining Large file for 64 bit */
-#  define _LARGEFILE64_SOURCE
-#endif
-
-
 /* *************************************
 *  Includes
 ***************************************/
@@ -59,7 +41,7 @@
 *  Compiler specifics
 ***************************************/
 #if defined(_MSC_VER)
-#  define snprintf sprintf_s
+
 #elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))
   /* part of <stdio.h> */
 #else
@@ -78,6 +60,7 @@
 #define TIMELOOP_MICROSEC     1*1000000ULL /* 1 second */
 #define ACTIVEPERIOD_MICROSEC 70*1000000ULL /* 70 seconds */
 #define COOLPERIOD_SEC        10
+#define MAX_LIST_SIZE         (64*1024)
 
 #define KB *(1 <<10)
 #define MB *(1 <<20)
@@ -535,7 +518,21 @@ int BMK_benchFiles(const char** fileNamesTable, unsigned nbFiles,
     if (nbFiles == 0)
         BMK_syntheticTest(cLevel, cLevelLast, compressibility);
     else
+    {
+#ifdef UTIL_HAS_CREATEFILELIST
+        char* buf;
+        const char** filenameTable;
+        unsigned i;
+        nbFiles = UTIL_createFileList(fileNamesTable, nbFiles, MAX_LIST_SIZE, &filenameTable, &buf);
+        if (filenameTable) {
+            for (i=0; i<nbFiles; i++) printf ("%d %s\n", i, filenameTable[i]);
+            BMK_benchFileTable(filenameTable, nbFiles, dictFileName, cLevel, cLevelLast);
+            UTIL_freeFileList(filenameTable, buf);
+        }
+#else
         BMK_benchFileTable(fileNamesTable, nbFiles, dictFileName, cLevel, cLevelLast);
+#endif
+    }
     return 0;
 }
 
index fe947bd8af2369744ad3b0b44de5863f05352d6c..2fea36493f44e3369e8e121c871a5420f0505752 100644 (file)
     - zstd homepage : http://www.zstd.net/
 */
 
-/*-**************************************
-*  Compiler Options
-****************************************/
-/* Disable some Visual warning messages */
-#ifdef _MSC_VER
-#  define _CRT_SECURE_NO_WARNINGS                /* fopen */
-#  pragma warning(disable : 4127)                /* disable: C4127: conditional expression is constant */
-#endif
-
-/* Unix Large Files support (>4GB) */
-#define _FILE_OFFSET_BITS 64
-#if (defined(__sun__) && (!defined(__LP64__)))   /* Sun Solaris 32-bits requires specific definitions */
-#  define _LARGEFILE_SOURCE
-#elif ! defined(__LP64__)                        /* No point defining Large file for 64 bit */
-#  define _LARGEFILE64_SOURCE
-#endif
-
-
 /*-*************************************
 *  Includes
 ***************************************/
index 3c06d20d3e84d2faf6e24ded58349fcadf2f08d9..0bb751a0df23048fa4106bc97e65c31865582ce7 100644 (file)
 /* *************************************
 *  Compiler Options
 ***************************************/
-/* Disable some Visual warning messages */
-#ifdef _MSC_VER
-#  define _CRT_SECURE_NO_WARNINGS
-#  define _CRT_SECURE_NO_DEPRECATE     /* VS2005 */
-#  pragma warning(disable : 4127)      /* disable: C4127: conditional expression is constant */
-#endif
-
-#define _FILE_OFFSET_BITS 64   /* Large file support on 32-bits unix */
 #define _POSIX_SOURCE 1        /* enable fileno() within <stdio.h> on unix */
 
 
index 3cc9dac77c73eaf22ce772b0ba279af9ee296a37..d9707800bffdddba7c4727cbd1cd34ab8e0ae145 100644 (file)
     - zstd homepage : http://www.zstd.net
 */
 
-/*_************************************
-*  Compiler Options
-**************************************/
-/* Disable some Visual warning messages */
-#define _CRT_SECURE_NO_WARNINGS
-#define _CRT_SECURE_NO_DEPRECATE     /* VS2005 */
-
-/* Unix Large Files support (>4GB) */
-#if (defined(__sun__) && (!defined(__LP64__)))   /* Sun Solaris 32-bits requires specific definitions */
-#  define _LARGEFILE_SOURCE
-#  define _FILE_OFFSET_BITS 64
-#elif ! defined(__LP64__)                        /* No point defining Large file for 64 bit */
-#  define _LARGEFILE64_SOURCE
-#endif
-
-
 /*_************************************
 *  Includes
 **************************************/
index f36a6916f512e7dcc466d54cdf49677607bac345..05400d2f0421b05b0901b2f7df168928a02ce7ac 100644 (file)
 /*-************************************
 *  Compiler Options
 **************************************/
-/* Disable some Visual warning messages */
-#define _CRT_SECURE_NO_WARNINGS
-#define _CRT_SECURE_NO_DEPRECATE     /* VS2005 */
-
-/* Unix Large Files support (>4GB) */
-#if (defined(__sun__) && (!defined(__LP64__)))   /* Sun Solaris 32-bits requires specific definitions */
-#  define _LARGEFILE_SOURCE
-#  define _FILE_OFFSET_BITS 64
-#elif ! defined(__LP64__)                        /* No point defining Large file for 64 bit */
-#  define _LARGEFILE64_SOURCE
-#endif
-
 /* gettimeofday() are not supported by MSVC */
 #if defined(_MSC_VER) || defined(_WIN32)
 #  define BMK_LEGACY_TIMER 1
 #endif
 
-#if defined(_MSC_VER)
-#  define snprintf _snprintf    /* snprintf unsupported by Visual <= 2012 */
-#endif
-
 
 /*-************************************
 *  Dependencies
index e987667139ffba090ca1ea9a51643cf1feb34e61..0c51155f386390b3a45e8c966ad583eb86e095c0 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
@@ -35,7 +35,7 @@
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <PlatformToolset>v110</PlatformToolset>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>MultiByte</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
@@ -49,7 +49,7 @@
     <UseDebugLibraries>false</UseDebugLibraries>
     <PlatformToolset>v110</PlatformToolset>
     <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>MultiByte</CharacterSet>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
index d31994d996ec2a33b3537eb2cae32b0efdf9c54f..cf2d6650919196fdb184f01ed6ebc8c37c8ae292 100755 (executable)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
@@ -87,7 +87,7 @@
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <PlatformToolset>v110</PlatformToolset>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>MultiByte</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <PlatformToolset>v110</PlatformToolset>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>MultiByte</CharacterSet>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">