reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
import("//compiler-rt/target.gni")

static_library("profile") {
  output_dir = crt_current_out_dir
  if (current_os == "mac") {
    output_name = "clang_rt.profile_osx"
  } else {
    output_name = "clang_rt.profile$crt_current_target_suffix"
  }

  complete_static_lib = true
  configs -= [ "//llvm/utils/gn/build:thin_archive" ]

  cflags = []
  if (target_os != "win") {
    cflags = [
      "-fPIC",
      "-Wno-pedantic",
    ]
  } else {
    # This appears to be a C-only warning banning the use of locals in
    # aggregate initializers. All other compilers accept this, though.
    #     nonstandard extension used : 'identifier' :
    #     cannot be initialized using address of automatic variable
    cflags += [ "/wd4221" ]
  }

  sources = [
    "GCDAProfiling.c",
    "InstrProfiling.c",
    "InstrProfiling.h",
    "InstrProfilingBuffer.c",
    "InstrProfilingFile.c",
    "InstrProfilingInternal.h",
    "InstrProfilingMerge.c",
    "InstrProfilingMergeFile.c",
    "InstrProfilingNameVar.c",
    "InstrProfilingPlatformDarwin.c",
    "InstrProfilingPlatformFuchsia.c",
    "InstrProfilingPlatformLinux.c",
    "InstrProfilingPlatformOther.c",
    "InstrProfilingPlatformWindows.c",
    "InstrProfilingPort.h",
    "InstrProfilingRuntime.cpp",
    "InstrProfilingUtil.c",
    "InstrProfilingUtil.h",
    "InstrProfilingValue.c",
    "InstrProfilingWriter.c",
  ]
  if (target_os == "win") {
    sources += [
      "WindowsMMap.c",
      "WindowsMMap.h",
    ]
  }

  if (target_os != "win") {
    defines = [
      "COMPILER_RT_TARGET_HAS_ATOMICS",
      "COMPILER_RT_TARGET_HAS_FCNTL_LCK",
      "COMPILER_RT_TARGET_HAS_UNAME",
    ]
  }
}