Home | History | Annotate | Download | only in profile
      1 /*===- InstrProfilingUtil.c - Support library for PGO instrumentation -----===*\
      2 |*
      3 |*                     The LLVM Compiler Infrastructure
      4 |*
      5 |* This file is distributed under the University of Illinois Open Source
      6 |* License. See LICENSE.TXT for details.
      7 |*
      8 \*===----------------------------------------------------------------------===*/
      9 
     10 #include "InstrProfilingUtil.h"
     11 #include "InstrProfiling.h"
     12 
     13 #ifdef _WIN32
     14 #include <direct.h>
     15 #elif I386_FREEBSD
     16 int mkdir(const char*, unsigned short);
     17 #else
     18 #include <sys/stat.h>
     19 #include <sys/types.h>
     20 #endif
     21 
     22 COMPILER_RT_VISIBILITY
     23 void __llvm_profile_recursive_mkdir(char *path) {
     24   int i;
     25 
     26   for (i = 1; path[i] != '\0'; ++i) {
     27     if (path[i] != '/') continue;
     28     path[i] = '\0';
     29 #ifdef _WIN32
     30     _mkdir(path);
     31 #else
     32     mkdir(path, 0755);  /* Some of these will fail, ignore it. */
     33 #endif
     34     path[i] = '/';
     35   }
     36 }
     37