1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ 2 /* 3 * Copyright (c) 2011-2017 Cisco Systems, Inc. All rights reserved 4 * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. 5 * Copyright (c) 2016 Los Alamos National Security, LLC. All rights 6 * reserved. 7 * Copyright (c) 2017 Research Organization for Information Science 8 * and Technology (RIST). All rights reserved. 9 * 10 * $COPYRIGHT$ 11 * 12 * Additional copyrights may follow 13 * 14 * $HEADER$ 15 * 16 * When this component is used, this file is included in the rest of 17 * the OPAL/ORTE/OMPI code base via opal/mca/hwloc/hwloc-internal.h. As such, 18 * this header represents the public interface to this static component. 19 */ 20 21 #ifndef MCA_OPAL_HWLOC_HWLOC201_H 22 #define MCA_OPAL_HWLOC_HWLOC201_H 23 24 BEGIN_C_DECLS 25 26 #include "hwloc/include/hwloc.h" 27 #include "hwloc/include/hwloc/shmem.h" 28 29 /* If the including file requested it, also include the hwloc verbs 30 helper file. We can't just always include this file (even if we 31 know we have <infiniband/verbs.h>) because there are some inline 32 functions in that file that invoke ibv_* functions. Some linkers 33 (e.g., Solaris Studio Compilers) will instantiate those static 34 inline functions even if we don't use them, and therefore we need 35 to be able to resolve the ibv_* symbols at link time. 36 37 Since -libverbs is only specified in places where we use other 38 ibv_* functions (e.g., the OpenFabrics-based BTLs), that means that 39 linking random executables can/will fail (e.g., orterun). 40 */ 41 #if defined(OPAL_HWLOC_WANT_VERBS_HELPER) && OPAL_HWLOC_WANT_VERBS_HELPER 42 # if defined(HAVE_INFINIBAND_VERBS_H) 43 # include "hwloc/include/hwloc/openfabrics-verbs.h" 44 # else 45 # error Tried to include hwloc verbs helper file, but hwloc was compiled with no OpenFabrics support 46 # endif 47 #endif 48 49 END_C_DECLS 50 51 #endif /* MCA_OPAL_HWLOC_HWLOC201_H */