github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/third_party/hwloc/BUILD.bazel (about)

     1  # hwloc: Portable Hardware Locality Library
     2  
     3  package(
     4      default_visibility = ["//visibility:public"],
     5  )
     6  
     7  licenses(["notice"])
     8  
     9  exports_files(["COPYING"])
    10  
    11  load("@local_config_cuda//cuda:build_defs.bzl", "if_cuda")
    12  load("@org_tensorflow//third_party:common.bzl", "template_rule")
    13  
    14  COMMON_INCLUDE_COPTS = [
    15      "-I.",
    16      "-Ihwloc",
    17      "-Iinclude",
    18  ]
    19  
    20  DISABLE_WARNINGS_COPTS = [
    21      "-Wno-vla",
    22  ]
    23  
    24  VAR_SETTINGS_COPTS = [
    25      "-DHWLOC_DUMPED_HWDATA_DIR=",
    26      "-DRUNSTATEDIR=",
    27  ]
    28  
    29  _INCLUDE_HWLOC_AUTOIGEN_CONFIG_H_COMMON_SUBS = {
    30      "#undef HWLOC_VERSION_MAJOR": "#define HWLOC_VERSION_MAJOR 2",
    31      "#undef HWLOC_VERSION_MINOR": "#define HWLOC_VERSION_MINOR 0",
    32      "#undef HWLOC_VERSION_RELEASE": "#define HWLOC_VERSION_RELEASE 3",
    33      "#undef HWLOC_VERSION_GREEK": "#define HWLOC_VERSION_GREEK \"\"",
    34      "#undef HWLOC_VERSION": "#define HWLOC_VERSION \"2.0.3\"",
    35      "#undef hwloc_pid_t": "#define hwloc_pid_t pid_t",
    36      "#undef hwloc_thread_t": "#define hwloc_thread_t pthread_t",
    37      "#  undef HWLOC_HAVE_STDINT_H": "#  define HWLOC_HAVE_STDINT_H 1 ",
    38      "#undef HWLOC_SYM_TRANSFORM": "#define HWLOC_SYM_TRANSFORM 0",
    39      "#undef HWLOC_SYM_PREFIX": "#define HWLOC_SYM_PREFIX hwloc_",
    40      "#undef HWLOC_SYM_PREFIX_CAPS": "#define HWLOC_SYM_PREFIX_CAPS HWLOC_",
    41  }
    42  
    43  _INCLUDE_HWLOC_AUTOIGEN_CONFIG_H_LINUX_SUBS = dict(_INCLUDE_HWLOC_AUTOIGEN_CONFIG_H_COMMON_SUBS)
    44  
    45  _INCLUDE_HWLOC_AUTOIGEN_CONFIG_H_LINUX_SUBS.update({
    46      "#undef HWLOC_LINUX_SYS": "#define HWLOC_LINUX_SYS 1",
    47  })
    48  
    49  template_rule(
    50      name = "include_hwloc_autogen_config_h",
    51      src = "include/hwloc/autogen/config.h.in",
    52      out = "include/hwloc/autogen/config.h",
    53      substitutions = select({
    54          "@org_tensorflow//tensorflow:linux_x86_64": _INCLUDE_HWLOC_AUTOIGEN_CONFIG_H_LINUX_SUBS,
    55          "//conditions:default": _INCLUDE_HWLOC_AUTOIGEN_CONFIG_H_COMMON_SUBS,
    56      }),
    57  )
    58  
    59  _INCLUDE_PRIVATE_HWLOC_AUTOIGEN_CONFIG_H_COMMON_SUBS = {
    60      "#undef HAVE_CLOCK_GETTIME": "#define HAVE_CLOCK_GETTIME 1",
    61      "#undef HAVE_CTYPE_H": "#define HAVE_CTYPE_H 1",
    62      "#undef HAVE_DECL_CTL_HW": "#define HAVE_DECL_CTL_HW 0",
    63      "#undef HAVE_DECL_FABSF": "#define HAVE_DECL_FABSF 1",
    64      "#undef HAVE_DECL_GETEXECNAME": "#define HAVE_DECL_GETEXECNAME 0",
    65      "#undef HAVE_DECL_GETMODULEFILENAME": "#define HAVE_DECL_GETMODULEFILENAME 0",
    66      "#undef HAVE_DECL_GETPROGNAME": "#define HAVE_DECL_GETPROGNAME 0",
    67      "#undef HAVE_DECL_HW_NCPU": "#define HAVE_DECL_HW_NCPU 0",
    68      "#undef HAVE_DECL_MODFF": "#define HAVE_DECL_MODFF 1",
    69      "#undef HAVE_DECL_PTHREAD_GETAFFINITY_NP": "#define HAVE_DECL_PTHREAD_GETAFFINITY_NP 1",
    70      "#undef HAVE_DECL_PTHREAD_SETAFFINITY_NP": "#define HAVE_DECL_PTHREAD_SETAFFINITY_NP 1",
    71      "#undef HAVE_DECL_RUNNING_ON_VALGRIND": "#define HAVE_DECL_RUNNING_ON_VALGRIND 0",
    72      "#undef HAVE_DECL_SCHED_GETCPU": "#define HAVE_DECL_SCHED_GETCPU 1",
    73      "#undef HAVE_DECL_SNPRINTF": "#define HAVE_DECL_SNPRINTF 1",
    74      "#undef HAVE_DECL_STRTOULL": "#define HAVE_DECL_STRTOULL 1",
    75      "#undef HAVE_DECL__PUTENV": "#define HAVE_DECL__PUTENV 0",
    76      "#undef HAVE_DECL__SC_LARGE_PAGESIZE": "#define HAVE_DECL__SC_LARGE_PAGESIZE 0",
    77      "#undef HAVE_DECL__SC_NPROCESSORS_CONF": "#define HAVE_DECL__SC_NPROCESSORS_CONF 1",
    78      "#undef HAVE_DECL__SC_NPROCESSORS_ONLN": "#define HAVE_DECL__SC_NPROCESSORS_ONLN 1",
    79      "#undef HAVE_DECL__SC_NPROC_CONF": "#define HAVE_DECL__SC_NPROC_CONF 0",
    80      "#undef HAVE_DECL__SC_NPROC_ONLN": "#define HAVE_DECL__SC_NPROC_ONLN 0",
    81      "#undef HAVE_DECL__SC_PAGESIZE": "#define HAVE_DECL__SC_PAGESIZE 1",
    82      "#undef HAVE_DECL__SC_PAGE_SIZE": "#define HAVE_DECL__SC_PAGE_SIZE 1",
    83      "#undef HAVE_DECL__STRDUP": "#define HAVE_DECL__STRDUP 0",
    84      "#undef HAVE_DIRENT_H": "#define HAVE_DIRENT_H 1",
    85      "#undef HAVE_DLFCN_H": "#define HAVE_DLFCN_H 1",
    86      "#undef HAVE_FFS": "#define HAVE_FFS 1",
    87      "#undef HAVE_FFSL": "#define HAVE_FFSL 1",
    88      "#undef HAVE_GETPAGESIZE": "#define HAVE_GETPAGESIZE 1",
    89      "#undef HAVE_INTTYPES_H": "#define HAVE_INTTYPES_H 1",
    90      "#undef HAVE_LANGINFO_H": "#define HAVE_LANGINFO_H 1",
    91      "#undef HAVE_LOCALE_H": "#define HAVE_LOCALE_H 1",
    92      "#undef HAVE_MALLOC_H": "#define HAVE_MALLOC_H 1",
    93      "#undef HAVE_MEMALIGN": "#define HAVE_MEMALIGN 1",
    94      "#undef HAVE_MEMORY_H": "#define HAVE_MEMORY_H 1",
    95      "#undef HAVE_MKSTEMP": "#define HAVE_MKSTEMP 1",
    96      "#undef HAVE_NL_LANGINFO": "#define HAVE_NL_LANGINFO 1",
    97      "#undef HAVE_OPENAT": "#define HAVE_OPENAT 1",
    98      "#undef HAVE_POSIX_MEMALIGN": "#define HAVE_POSIX_MEMALIGN 1",
    99      "#undef HAVE_PTHREAD_T": "#define HAVE_PTHREAD_T 1",
   100      "#undef HAVE_PUTWC": "#define HAVE_PUTWC 1",
   101      "#undef HAVE_SETLOCALE": "#define HAVE_SETLOCALE 1",
   102      "#undef HAVE_SSIZE_T": "#define HAVE_SSIZE_T 1",
   103      "#undef HAVE_STDINT_H": "#define HAVE_STDINT_H 1",
   104      "#undef HAVE_STDLIB_H": "#define HAVE_STDLIB_H 1",
   105      "#undef HAVE_STRCASECMP": "#define HAVE_STRCASECMP 1",
   106      "#undef HAVE_STRFTIME": "#define HAVE_STRFTIME 1",
   107      "#undef HAVE_STRINGS_H": "#define HAVE_STRINGS_H 1",
   108      "#undef HAVE_STRING_H": "#define HAVE_STRING_H 1",
   109      "#undef HAVE_STRNCASECMP": "#define HAVE_STRNCASECMP 1",
   110      "#undef HAVE_SYS_MMAN_H": "#define HAVE_SYS_MMAN_H 1",
   111      "#undef HAVE_SYS_PARAM_H": "#define HAVE_SYS_PARAM_H 1",
   112      "#undef HAVE_SYS_STAT_H": "#define HAVE_SYS_STAT_H 1",
   113      "#undef HAVE_SYS_SYSCTL_H": "#define HAVE_SYS_SYSCTL_H 1",
   114      "#undef HAVE_SYS_TYPES_H": "#define HAVE_SYS_TYPES_H 1",
   115      "#undef HAVE_SYS_UTSNAME_H": "#define HAVE_SYS_UTSNAME_H 1",
   116      "#undef HAVE_TIME_H": "#define HAVE_TIME_H 1",
   117      "#undef HAVE_UNAME": "#define HAVE_UNAME 1",
   118      "#undef HAVE_UNISTD_H": "#define HAVE_UNISTD_H 1",
   119      "#undef HAVE_USELOCALE": "#define HAVE_USELOCALE 1",
   120      "#undef HAVE_WCHAR_T": "#define HAVE_WCHAR_T 1",
   121      "#undef HAVE_X11_KEYSYM_H": "#define HAVE_X11_KEYSYM_H 1",
   122      "#undef HAVE_X11_XLIB_H": "#define HAVE_X11_XLIB_H 1",
   123      "#undef HAVE_X11_XUTIL_H": "#define HAVE_X11_XUTIL_H 1",
   124      "#undef HAVE___PROGNAME": "#define HAVE___PROGNAME 1",
   125      "#undef HWLOC_C_HAVE_VISIBILITY": "#define HWLOC_C_HAVE_VISIBILITY 1",
   126      "#undef HWLOC_HAVE_ATTRIBUTE": "#define HWLOC_HAVE_ATTRIBUTE 1",
   127      "#undef HWLOC_HAVE_ATTRIBUTE_ALIGNED": "#define HWLOC_HAVE_ATTRIBUTE_ALIGNED 1",
   128      "#undef HWLOC_HAVE_ATTRIBUTE_ALWAYS_INLINE": "#define HWLOC_HAVE_ATTRIBUTE_ALWAYS_INLINE 1",
   129      "#undef HWLOC_HAVE_ATTRIBUTE_COLD": "#define HWLOC_HAVE_ATTRIBUTE_COLD 1",
   130      "#undef HWLOC_HAVE_ATTRIBUTE_CONST": "#define HWLOC_HAVE_ATTRIBUTE_CONST 1",
   131      "#undef HWLOC_HAVE_ATTRIBUTE_DEPRECATED": "#define HWLOC_HAVE_ATTRIBUTE_DEPRECATED 1",
   132      "#undef HWLOC_HAVE_ATTRIBUTE_FORMAT": "#define HWLOC_HAVE_ATTRIBUTE_FORMAT 1",
   133      "#undef HWLOC_HAVE_ATTRIBUTE_HOT": "#define HWLOC_HAVE_ATTRIBUTE_HOT 1",
   134      "#undef HWLOC_HAVE_ATTRIBUTE_MALLOC": "#define HWLOC_HAVE_ATTRIBUTE_MALLOC 1",
   135      "#undef HWLOC_HAVE_ATTRIBUTE_MAY_ALIAS": "#define HWLOC_HAVE_ATTRIBUTE_MAY_ALIAS 1",
   136      "#undef HWLOC_HAVE_ATTRIBUTE_NONNULL": "#define HWLOC_HAVE_ATTRIBUTE_NONNULL 1",
   137      "#undef HWLOC_HAVE_ATTRIBUTE_NORETURN": "#define HWLOC_HAVE_ATTRIBUTE_NORETURN 1",
   138      "#undef HWLOC_HAVE_ATTRIBUTE_NO_INSTRUMENT_FUNCTION": "#define HWLOC_HAVE_ATTRIBUTE_NO_INSTRUMENT_FUNCTION 1",
   139      "#undef HWLOC_HAVE_ATTRIBUTE_PACKED": "#define HWLOC_HAVE_ATTRIBUTE_PACKED 1",
   140      "#undef HWLOC_HAVE_ATTRIBUTE_PURE": "#define HWLOC_HAVE_ATTRIBUTE_PURE 1",
   141      "#undef HWLOC_HAVE_ATTRIBUTE_SENTINEL": "#define HWLOC_HAVE_ATTRIBUTE_SENTINEL 1",
   142      "#undef HWLOC_HAVE_ATTRIBUTE_UNUSED": "#define HWLOC_HAVE_ATTRIBUTE_UNUSED 1",
   143      "#undef HWLOC_HAVE_ATTRIBUTE_WARN_UNUSED_RESULT": "#define HWLOC_HAVE_ATTRIBUTE_WARN_UNUSED_RESULT 1",
   144      "#undef HWLOC_HAVE_ATTRIBUTE_WEAK_ALIAS": "#define HWLOC_HAVE_ATTRIBUTE_WEAK_ALIAS 1",
   145      "#undef HWLOC_HAVE_CPU_SET": "#define HWLOC_HAVE_CPU_SET 1",
   146      "#undef HWLOC_HAVE_CPU_SET_S": "#define HWLOC_HAVE_CPU_SET_S 1",
   147      "#undef HWLOC_HAVE_DECL_FFS": "#define HWLOC_HAVE_DECL_FFS 1",
   148      "#undef HWLOC_HAVE_DECL_FFSL": "#define HWLOC_HAVE_DECL_FFSL 1",
   149      "#undef HWLOC_HAVE_DECL_STRCASECMP": "#define HWLOC_HAVE_DECL_STRCASECMP 1",
   150      "#undef HWLOC_HAVE_DECL_STRNCASECMP": "#define HWLOC_HAVE_DECL_STRNCASECMP 1",
   151      "#undef HWLOC_HAVE_FFS": "#define HWLOC_HAVE_FFS 1",
   152      "#undef HWLOC_HAVE_FFSL": "#define HWLOC_HAVE_FFSL 1",
   153      "#undef HWLOC_HAVE_LIBTERMCAP": "#define HWLOC_HAVE_LIBTERMCAP 1",
   154      "#undef HWLOC_HAVE_LINUXIO": "#define HWLOC_HAVE_LINUXIO 1",
   155      "#undef HWLOC_HAVE_PTHREAD_MUTEX": "#define HWLOC_HAVE_PTHREAD_MUTEX 1",
   156      "#undef HWLOC_HAVE_SCHED_SETAFFINITY": "#define HWLOC_HAVE_SCHED_SETAFFINITY 1",
   157      "#undef HWLOC_HAVE_STDINT_H": "#define HWLOC_HAVE_STDINT_H 1",
   158      "#undef HWLOC_HAVE_SYSCALL": "#define HWLOC_HAVE_SYSCALL 1",
   159      "#undef HWLOC_HAVE_X11_KEYSYM": "#define HWLOC_HAVE_X11_KEYSYM 1",
   160      "#undef HWLOC_HAVE_X86_CPUID": "#define HWLOC_HAVE_X86_CPUID 1",
   161      "#undef HWLOC_SIZEOF_UNSIGNED_INT": "#define HWLOC_SIZEOF_UNSIGNED_INT 4",
   162      "#undef HWLOC_SIZEOF_UNSIGNED_LONG": "#define HWLOC_SIZEOF_UNSIGNED_LONG 8",
   163      "#undef HWLOC_SYM_PREFIX": "#define HWLOC_SYM_PREFIX hwloc_",
   164      "#undef HWLOC_SYM_PREFIX_CAPS": "#define HWLOC_SYM_PREFIX_CAPS HWLOC_",
   165      "#undef HWLOC_SYM_TRANSFORM": "#define HWLOC_SYM_TRANSFORM 0",
   166      "#undef HWLOC_USE_NCURSES": "#define HWLOC_USE_NCURSES 1",
   167      "#undef HWLOC_VERSION": "#define HWLOC_VERSION \"2.0.3\"",
   168      "#undef HWLOC_VERSION_GREEK": "#define HWLOC_VERSION_GREEK \"\"",
   169      "#undef HWLOC_VERSION_MAJOR": "#define HWLOC_VERSION_MAJOR 2",
   170      "#undef HWLOC_VERSION_MINOR": "#define HWLOC_VERSION_MINOR 0",
   171      "#undef HWLOC_VERSION_RELEASE": "#define HWLOC_VERSION_RELEASE 3",
   172      "#undef HWLOC_X86_64_ARCH": "#define HWLOC_X86_64_ARCH 1",
   173      "#undef LT_OBJDIR": "#define LT_OBJDIR \".libs/\"",
   174      "#undef PACKAGE": "#define PACKAGE \"hwloc\"",
   175      "#undef PACKAGE_BUGREPORT": "#define PACKAGE_BUGREPORT \"http://github.com/open-mpi/hwloc/i",
   176      "#undef PACKAGE_NAME": "#define PACKAGE_NAME \"hwloc\"",
   177      "#undef PACKAGE_STRING": "#define PACKAGE_STRING \"hwloc 2.0.3\"",
   178      "#undef PACKAGE_TARNAME": "#define PACKAGE_TARNAME \"hwloc\"",
   179      "#undef PACKAGE_URL": "#define PACKAGE_URL \"\"",
   180      "#undef PACKAGE_VERSION": "#define PACKAGE_VERSION \"2.0.3\"",
   181      "#undef SIZEOF_UNSIGNED_INT": "#define SIZEOF_UNSIGNED_INT 4",
   182      "#undef SIZEOF_UNSIGNED_LONG": "#define SIZEOF_UNSIGNED_LONG 8",
   183      "#undef SIZEOF_VOID_P": "#define SIZEOF_VOID_P 8",
   184      "#undef STDC_HEADERS": "#define STDC_HEADERS 1",
   185      "# undef _HPUX_SOURCE": "# define _HPUX_SOURCE 1",
   186      "# undef _ALL_SOURCE": "# define _ALL_SOURCE 1",
   187      "# undef _GNU_SOURCE": "# define _GNU_SOURCE 1",
   188      "# undef _POSIX_PTHREAD_SEMANTICS": "# define _POSIX_PTHREAD_SEMANTICS 1",
   189      "# undef _TANDEM_SOURCE": "# define _TANDEM_SOURCE 1",
   190      "# undef __EXTENSIONS__": "# define __EXTENSIONS__ 1",
   191      "#undef VERSION": "#define VERSION \"2.0.3\"",
   192      "#undef _HPUX_SOURCE": "#define _HPUX_SOURCE 1",
   193      "#undef hwloc_pid_t": "#define hwloc_pid_t pid_t",
   194      "#undef hwloc_thread_t": "#define hwloc_thread_t pthread_t",
   195  }
   196  
   197  _INCLUDE_PRIVATE_HWLOC_AUTOIGEN_CONFIG_H_CUDA_SUBS = {
   198      "#undef HAVE_CUDA": "#undef HAVE_CUDA 1",
   199      "#undef HAVE_CUDA_H": "#undef HAVE_CUDA_H 1",
   200      "#undef HAVE_CUDA_RUNTIME_API_H": "#undef HAVE_CUDA_RUNTIME_API_H 1",
   201  }
   202  
   203  _INCLUDE_PRIVATE_HWLOC_AUTOIGEN_CONFIG_H_LINUX_SUBS = {
   204      "#undef HAVE_PROGRAM_INVOCATION_NAME": "#define HAVE_PROGRAM_INVOCATION_NAME 1",
   205      "#undef HWLOC_LINUX_SYS": "#define HWLOC_LINUX_SYS 1",
   206  }
   207  
   208  _INCLUDE_PRIVATE_HWLOC_AUTOIGEN_CONFIG_H_LINUX_SUBS.update(_INCLUDE_PRIVATE_HWLOC_AUTOIGEN_CONFIG_H_COMMON_SUBS)
   209  
   210  _INCLUDE_PRIVATE_HWLOC_AUTOIGEN_CONFIG_H_CUDA_SUBS.update(_INCLUDE_PRIVATE_HWLOC_AUTOIGEN_CONFIG_H_LINUX_SUBS)
   211  
   212  template_rule(
   213      name = "include_private_hwloc_autogen__config_h",
   214      src = "include/private/autogen/config.h.in",
   215      out = "include/private/autogen/config.h",
   216      substitutions = if_cuda(
   217          _INCLUDE_PRIVATE_HWLOC_AUTOIGEN_CONFIG_H_CUDA_SUBS,
   218          if_false = _INCLUDE_PRIVATE_HWLOC_AUTOIGEN_CONFIG_H_LINUX_SUBS,
   219      ),
   220  )
   221  
   222  template_rule(
   223      name = "move_static_components_h",
   224      src = "@org_tensorflow//third_party/hwloc:static-components.h",
   225      out = "hwloc/static-components.h",
   226      substitutions = {},
   227  )
   228  
   229  cc_library(
   230      name = "hwloc",
   231      srcs = [
   232          "hwloc/base64.c",
   233          "hwloc/bind.c",
   234          "hwloc/bitmap.c",
   235          "hwloc/components.c",
   236          "hwloc/diff.c",
   237          "hwloc/distances.c",
   238          "hwloc/misc.c",
   239          "hwloc/pci-common.c",
   240          "hwloc/shmem.c",
   241          "hwloc/static-components.h",
   242          "hwloc/topology.c",
   243          "hwloc/topology-hardwired.c",
   244          "hwloc/topology-noos.c",
   245          "hwloc/topology-synthetic.c",
   246          "hwloc/topology-xml.c",
   247          "hwloc/topology-xml-nolibxml.c",
   248          "hwloc/traversal.c",
   249          "include/hwloc/plugins.h",
   250          "include/hwloc/shmem.h",
   251          "include/private/autogen/config.h",
   252          "include/private/components.h",
   253          "include/private/debug.h",
   254          "include/private/internal-components.h",
   255          "include/private/misc.h",
   256          "include/private/private.h",
   257          "include/private/xml.h",
   258      ] + select({
   259          "@org_tensorflow//tensorflow:linux_x86_64": [
   260              "hwloc/topology-linux.c",
   261              "include/hwloc/linux.h",
   262              "hwloc/topology-x86.c",
   263              "include/private/cpuid-x86.h",
   264          ],
   265          "@org_tensorflow//tensorflow:freebsd": [
   266              "hwloc/topology-freebsd.c",
   267              "hwloc/topology-x86.c",
   268              "include/private/cpuid-x86.h",
   269          ],
   270          "//conditions:default": [],
   271      }),
   272      hdrs = [
   273          "include/hwloc.h",
   274          "include/hwloc/autogen/config.h",
   275          "include/hwloc/bitmap.h",
   276          "include/hwloc/deprecated.h",
   277          "include/hwloc/diff.h",
   278          "include/hwloc/distances.h",
   279          "include/hwloc/export.h",
   280          "include/hwloc/helper.h",
   281          "include/hwloc/inlines.h",
   282          "include/hwloc/rename.h",
   283      ],
   284      copts = COMMON_INCLUDE_COPTS + DISABLE_WARNINGS_COPTS + VAR_SETTINGS_COPTS,
   285      features = [
   286          "-parse_headers",
   287          "-layering_check",
   288      ],
   289      includes = [
   290          "hwloc",
   291          "include",
   292      ],
   293      deps = [],
   294  )
   295  
   296  cc_binary(
   297      name = "hwloc_print",
   298      srcs = ["hwloc_print.cc"],
   299      copts = COMMON_INCLUDE_COPTS,
   300      deps = [
   301          ":hwloc",
   302      ],
   303  )