Commit a49795d8 authored by Vedant Kumar's avatar Vedant Kumar
Browse files

[profile] Third speculative fix for Windows after D68351

_putenv on Windows takes 1 argument, whereas setenv elsewhere takes 3.
Just treat the two platforms differently.

http://lab.llvm.org:8011/builders/sanitizer-windows/builds/53547
parent 6dfe8e59
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -337,6 +337,8 @@ static int writeOrderFile(const char *OutputName) {
  return RetVal;
}

#define LPROF_INIT_ONCE_ENV "__LLVM_PROFILE_RT_INIT_ONCE"

static void truncateCurrentFile(void) {
  const char *Filename;
  char *FilenameBuf;
@@ -357,11 +359,14 @@ static void truncateCurrentFile(void) {
  /* Only create the profile directory and truncate an existing profile once.
   * In continuous mode, this is necessary, as the profile is written-to by the
   * runtime initializer. */
  const char *lprofInitOnceEnv = "__LLVM_PROFILE_RT_INIT_ONCE";
  int initialized = getenv(lprofInitOnceEnv) != NULL;
  int initialized = getenv(LPROF_INIT_ONCE_ENV) != NULL;
  if (initialized)
    return;
  setenv(lprofInitOnceEnv, lprofInitOnceEnv, 1);
#if defined(_WIN32)
  _putenv(LPROF_INIT_ONCE_ENV "=" LPROF_INIT_ONCE_ENV);
#else
  setenv(LPROF_INIT_ONCE_ENV, LPROF_INIT_ONCE_ENV, 1);
#endif

  createProfileDir(Filename);

+0 −1
Original line number Diff line number Diff line
@@ -105,7 +105,6 @@ static inline size_t getpagesize() {
  GetNativeSystemInfo(&S);
  return S.dwPageSize;
}
#define setenv _putenv
#else /* defined(_WIN32) */
#include <unistd.h>
#endif /* defined(_WIN32) */