Refresh hwloc to an as-yet unreleased tarball from the hwloc 1.0
release branch in order to fix some Solaris bugs. This commit was SVN r23265.
Этот коммит содержится в:
родитель
bb602694e6
Коммит
2887fe77c5
@ -1,5 +1,5 @@
|
|||||||
Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
|
Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
|
||||||
Copyright © 2009 Cisco Systems, Inc. All rights reserved.
|
Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
|
||||||
|
|
||||||
$COPYRIGHT$
|
$COPYRIGHT$
|
||||||
|
|
||||||
@ -14,6 +14,28 @@ bug fixes (and other actions) for each version of hwloc since version
|
|||||||
0.9 (as initially released as "libtopology", then re-branded to "hwloc"
|
0.9 (as initially released as "libtopology", then re-branded to "hwloc"
|
||||||
in v0.9.1).
|
in v0.9.1).
|
||||||
|
|
||||||
|
Version 1.0.2
|
||||||
|
-------------
|
||||||
|
|
||||||
|
* Solaris fix for non-contiguous cpu numbers. Thanks to Rolf vandeVaart for
|
||||||
|
reporting the issue.
|
||||||
|
* Darwin 10.4 fix. Thanks to Olivier Cessenat for reporting the issue.
|
||||||
|
|
||||||
|
Version 1.0.1
|
||||||
|
-------------
|
||||||
|
|
||||||
|
* Various Solaris fixes. Thanks to Yannick Martin for reporting the issue.
|
||||||
|
* Fix "non-native" builds on x86 platforms (e.g., when building 32
|
||||||
|
bit executables with compilers that natively build 64 bit).
|
||||||
|
* Ignore sockets with unknown ID values (which fixes issues on POWER7
|
||||||
|
machines). Thanks to Greg Bauer for reporting the issue.
|
||||||
|
* Various man page clarifications and minor updates.
|
||||||
|
* Fixed memory leaks in hwloc_setup_group_from_min_distance_clique().
|
||||||
|
* Fix cache type filtering on MS Windows 7. Thanks to Αλέξανδρος
|
||||||
|
Παπαδογιαννάκ for reporting the issue.
|
||||||
|
* Fixed warnings when compiling with -DNDEBUG.
|
||||||
|
|
||||||
|
|
||||||
Version 1.0.0
|
Version 1.0.0
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
@ -407,6 +407,8 @@ does not solve your problem, you may also want to ensure that you are running
|
|||||||
the most recent version of the BIOS for your machine.
|
the most recent version of the BIOS for your machine.
|
||||||
|
|
||||||
If those things fail, contact us on the mailing list for additional help.
|
If those things fail, contact us on the mailing list for additional help.
|
||||||
|
Please attach the output of lstopo after having given the --enable-debug option
|
||||||
|
to ./configure and rebuilt completely, to get debugging output.
|
||||||
|
|
||||||
History / credits
|
History / credits
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
major=1
|
major=1
|
||||||
minor=0
|
minor=0
|
||||||
release=1
|
release=2
|
||||||
|
|
||||||
# greek is used for alpha or beta release tags. If it is non-empty,
|
# greek is used for alpha or beta release tags. If it is non-empty,
|
||||||
# it will be appended to the version number. It does not have to be
|
# it will be appended to the version number. It does not have to be
|
||||||
@ -16,12 +16,12 @@ release=1
|
|||||||
# requirement is that it must be entirely printable ASCII characters
|
# requirement is that it must be entirely printable ASCII characters
|
||||||
# and have no white space.
|
# and have no white space.
|
||||||
|
|
||||||
greek=rc1
|
greek=a1
|
||||||
|
|
||||||
# If want_svn=1, then the SVN r number will be included in the overall
|
# If want_svn=1, then the SVN r number will be included in the overall
|
||||||
# hwloc version number in some form.
|
# hwloc version number in some form.
|
||||||
|
|
||||||
want_svn=0
|
want_svn=1
|
||||||
|
|
||||||
# If svn_r=-1, then the SVN r numbere will be obtained dynamically at
|
# If svn_r=-1, then the SVN r numbere will be obtained dynamically at
|
||||||
# run time, either 1) via the "svnversion" command (if this is a
|
# run time, either 1) via the "svnversion" command (if this is a
|
||||||
@ -33,11 +33,11 @@ want_svn=0
|
|||||||
# distribution tarball is being made from an SVN checkout, the value
|
# distribution tarball is being made from an SVN checkout, the value
|
||||||
# of svn_r in this file is replaced with the output of "svnversion".
|
# of svn_r in this file is replaced with the output of "svnversion".
|
||||||
|
|
||||||
svn_r=r2165
|
svn_r=r2214
|
||||||
|
|
||||||
# The date when this release was created
|
# The date when this release was created
|
||||||
|
|
||||||
date="May 28, 2010"
|
date="Unreleased developer copy"
|
||||||
|
|
||||||
# The shared library version of hwloc's public library. This version
|
# The shared library version of hwloc's public library. This version
|
||||||
# is maintained in accordance with the "Library Interface Versions"
|
# is maintained in accordance with the "Library Interface Versions"
|
||||||
@ -50,4 +50,4 @@ date="May 28, 2010"
|
|||||||
# 2. Version numbers are described in the Libtool current:revision:age
|
# 2. Version numbers are described in the Libtool current:revision:age
|
||||||
# format.
|
# format.
|
||||||
|
|
||||||
libhwloc_so_version=0:0:0
|
libhwloc_so_version=0:1:0
|
||||||
|
@ -320,6 +320,10 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
|
|||||||
])
|
])
|
||||||
AC_DEFINE_UNQUOTED(hwloc_strncasecmp, $hwloc_strncasecmp, [Define this to either strncasecmp or strncmp])
|
AC_DEFINE_UNQUOTED(hwloc_strncasecmp, $hwloc_strncasecmp, [Define this to either strncasecmp or strncmp])
|
||||||
|
|
||||||
|
AC_CHECK_HEADER([stdint.h], [
|
||||||
|
AC_DEFINE([HWLOC_HAVE_STDINT_H], [1], [Define to 1 if you have the <stdint.h> header file.])
|
||||||
|
])
|
||||||
|
|
||||||
AC_CHECK_TYPES([wchar_t], [
|
AC_CHECK_TYPES([wchar_t], [
|
||||||
AC_CHECK_FUNCS([putwc])
|
AC_CHECK_FUNCS([putwc])
|
||||||
], [], [[#include <wchar.h>]])
|
], [], [[#include <wchar.h>]])
|
||||||
@ -330,7 +334,7 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
|
|||||||
AC_CHECK_HEADERS([langinfo.h], [
|
AC_CHECK_HEADERS([langinfo.h], [
|
||||||
AC_CHECK_FUNCS([nl_langinfo])
|
AC_CHECK_FUNCS([nl_langinfo])
|
||||||
])
|
])
|
||||||
old_LIBS="$LIBS"
|
hwloc_old_LIBS="$LIBS"
|
||||||
LIBS=
|
LIBS=
|
||||||
AC_CHECK_HEADERS([curses.h], [
|
AC_CHECK_HEADERS([curses.h], [
|
||||||
AC_CHECK_HEADERS([term.h], [
|
AC_CHECK_HEADERS([term.h], [
|
||||||
@ -341,7 +345,8 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
|
|||||||
])
|
])
|
||||||
], [], [[#include <curses.h>]])
|
], [], [[#include <curses.h>]])
|
||||||
])
|
])
|
||||||
LIBS="$old_LIBS"
|
LIBS="$hwloc_old_LIBS"
|
||||||
|
unset hwloc_old_LIBS
|
||||||
|
|
||||||
AC_CHECK_TYPES([KAFFINITY,
|
AC_CHECK_TYPES([KAFFINITY,
|
||||||
PROCESSOR_CACHE_TYPE,
|
PROCESSOR_CACHE_TYPE,
|
||||||
@ -356,21 +361,29 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
|
|||||||
GROUP_RELATIONSHIP,
|
GROUP_RELATIONSHIP,
|
||||||
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX],
|
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX],
|
||||||
[],[],[[#include <windows.h>]])
|
[],[],[[#include <windows.h>]])
|
||||||
AC_HAVE_LIBRARY(gdi32)
|
AC_CHECK_LIB([gdi32], [main],
|
||||||
|
[HWLOC_LIBS="-lgdi32 $HWLOC_LIBS"
|
||||||
|
AC_DEFINE([HAVE_LIBGDI32], 1, [Define to 1 if we have -lgdi32])])
|
||||||
|
|
||||||
AC_CHECK_HEADER([windows.h], [
|
AC_CHECK_HEADER([windows.h], [
|
||||||
AC_DEFINE([HWLOC_HAVE_WINDOWS_H], [1], [Define to 1 if you have the `windows.h' header.])
|
AC_DEFINE([HWLOC_HAVE_WINDOWS_H], [1], [Define to 1 if you have the `windows.h' header.])
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_CHECK_HEADERS([sys/lgrp_user.h], [
|
AC_CHECK_HEADERS([sys/lgrp_user.h], [
|
||||||
AC_HAVE_LIBRARY([lgrp])
|
AC_CHECK_LIB([lgrp], [lgrp_latency_cookie],
|
||||||
|
[HWLOC_LIBS="-llgrp $HWLOC_LIBS"
|
||||||
|
AC_DEFINE([HAVE_LIBLGRP], 1, [Define to 1 if we have -llgrp])])
|
||||||
])
|
])
|
||||||
AC_CHECK_HEADERS([kstat.h], [
|
AC_CHECK_HEADERS([kstat.h], [
|
||||||
AC_HAVE_LIBRARY([kstat])
|
AC_CHECK_LIB([kstat], [main],
|
||||||
|
[HWLOC_LIBS="-lkstat $HWLOC_LIBS"
|
||||||
|
AC_DEFINE([HAVE_LIBKSTAT], 1, [Define to 1 if we have -lkstat])])
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_CHECK_HEADERS([infiniband/verbs.h], [
|
AC_CHECK_HEADERS([infiniband/verbs.h], [
|
||||||
AC_HAVE_LIBRARY([ibverbs], [hwloc_have_libibverbs=yes])
|
AC_CHECK_LIB([ibverbs], [ibv_open_device],
|
||||||
|
[HWLOC_LIBS="-libverbs $HWLOC_LIBS"
|
||||||
|
AC_DEFINE([HAVE_LIBIBVERBS], 1, [Define to 1 if we have -libverbs])])
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_CHECK_DECLS([_SC_NPROCESSORS_ONLN,
|
AC_CHECK_DECLS([_SC_NPROCESSORS_ONLN,
|
||||||
@ -529,13 +542,14 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
|
|||||||
AC_CHECK_FUNC([sched_setaffinity], [hwloc_have_sched_setaffinity=yes])
|
AC_CHECK_FUNC([sched_setaffinity], [hwloc_have_sched_setaffinity=yes])
|
||||||
AC_CHECK_HEADERS([sys/cpuset.h],,,[[#include <sys/param.h>]])
|
AC_CHECK_HEADERS([sys/cpuset.h],,,[[#include <sys/param.h>]])
|
||||||
|
|
||||||
# Setup HWLOC's C, CPP, and LD flags
|
# Setup HWLOC's C, CPP, and LD flags, and LIBS
|
||||||
HWLOC_CFLAGS="$hwloc_CC_c99_flags $HWLOC_CFLAGS"
|
HWLOC_CFLAGS="$hwloc_CC_c99_flags $HWLOC_CFLAGS"
|
||||||
AC_SUBST(HWLOC_CFLAGS)
|
AC_SUBST(HWLOC_CFLAGS)
|
||||||
HWLOC_CPPFLAGS='-I$(HWLOC_top_srcdir)/include -I$(HWLOC_top_builddir)/include'
|
HWLOC_CPPFLAGS='-I$(HWLOC_top_srcdir)/include -I$(HWLOC_top_builddir)/include'
|
||||||
AC_SUBST(HWLOC_CPPFLAGS)
|
AC_SUBST(HWLOC_CPPFLAGS)
|
||||||
HWLOC_LDFLAGS='-L$(HWLOC_top_builddir)/src'
|
HWLOC_LDFLAGS='-L$(HWLOC_top_builddir)/src'
|
||||||
AC_SUBST(HWLOC_LDFLAGS)
|
AC_SUBST(HWLOC_LDFLAGS)
|
||||||
|
AC_SUBST(HWLOC_LIBS)
|
||||||
|
|
||||||
# Set these values explicitly for embedded builds. Exporting
|
# Set these values explicitly for embedded builds. Exporting
|
||||||
# these values through *_EMBEDDED_* values gives us the freedom to
|
# these values through *_EMBEDDED_* values gives us the freedom to
|
||||||
@ -546,6 +560,8 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
|
|||||||
AC_SUBST(HWLOC_EMBEDDED_CPPFLAGS)
|
AC_SUBST(HWLOC_EMBEDDED_CPPFLAGS)
|
||||||
HWLOC_EMBEDDED_LDADD='$(HWLOC_top_builddir)/src/libhwloc_embedded.la'
|
HWLOC_EMBEDDED_LDADD='$(HWLOC_top_builddir)/src/libhwloc_embedded.la'
|
||||||
AC_SUBST(HWLOC_EMBEDDED_LDADD)
|
AC_SUBST(HWLOC_EMBEDDED_LDADD)
|
||||||
|
HWLOC_EMBEDDED_LIBS=$HWLOC_LIBS
|
||||||
|
AC_SUBST(HWLOC_EMBEDDED_LIBS)
|
||||||
|
|
||||||
# Try to compile the cpuid inlines
|
# Try to compile the cpuid inlines
|
||||||
AC_MSG_CHECKING([for cpuid])
|
AC_MSG_CHECKING([for cpuid])
|
||||||
|
151
opal/mca/paffinity/hwloc/hwloc/configure
поставляемый
151
opal/mca/paffinity/hwloc/hwloc/configure
поставляемый
@ -1,6 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.65 for hwloc 1.0.1rc1.
|
# Generated by GNU Autoconf 2.65 for hwloc 1.0.2a1.
|
||||||
#
|
#
|
||||||
# Report bugs to <http://www.open-mpi.org/community/help/>.
|
# Report bugs to <http://www.open-mpi.org/community/help/>.
|
||||||
#
|
#
|
||||||
@ -701,8 +701,8 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='hwloc'
|
PACKAGE_NAME='hwloc'
|
||||||
PACKAGE_TARNAME='hwloc'
|
PACKAGE_TARNAME='hwloc'
|
||||||
PACKAGE_VERSION='1.0.1rc1'
|
PACKAGE_VERSION='1.0.2a1'
|
||||||
PACKAGE_STRING='hwloc 1.0.1rc1'
|
PACKAGE_STRING='hwloc 1.0.2a1'
|
||||||
PACKAGE_BUGREPORT='http://www.open-mpi.org/community/help/'
|
PACKAGE_BUGREPORT='http://www.open-mpi.org/community/help/'
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
@ -841,9 +841,11 @@ FIG2DEV
|
|||||||
MAKEINDEX
|
MAKEINDEX
|
||||||
PDFLATEX
|
PDFLATEX
|
||||||
DOXYGEN
|
DOXYGEN
|
||||||
|
HWLOC_EMBEDDED_LIBS
|
||||||
HWLOC_EMBEDDED_LDADD
|
HWLOC_EMBEDDED_LDADD
|
||||||
HWLOC_EMBEDDED_CPPFLAGS
|
HWLOC_EMBEDDED_CPPFLAGS
|
||||||
HWLOC_EMBEDDED_CFLAGS
|
HWLOC_EMBEDDED_CFLAGS
|
||||||
|
HWLOC_LIBS
|
||||||
HWLOC_LDFLAGS
|
HWLOC_LDFLAGS
|
||||||
HWLOC_CPPFLAGS
|
HWLOC_CPPFLAGS
|
||||||
HWLOC_CFLAGS
|
HWLOC_CFLAGS
|
||||||
@ -1541,7 +1543,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures hwloc 1.0.1rc1 to adapt to many kinds of systems.
|
\`configure' configures hwloc 1.0.2a1 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@ -1616,7 +1618,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of hwloc 1.0.1rc1:";;
|
short | recursive ) echo "Configuration of hwloc 1.0.2a1:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@ -1770,7 +1772,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
hwloc configure 1.0.1rc1
|
hwloc configure 1.0.2a1
|
||||||
generated by GNU Autoconf 2.65
|
generated by GNU Autoconf 2.65
|
||||||
|
|
||||||
Copyright (C) 2009 Free Software Foundation, Inc.
|
Copyright (C) 2009 Free Software Foundation, Inc.
|
||||||
@ -2412,7 +2414,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by hwloc $as_me 1.0.1rc1, which was
|
It was created by hwloc $as_me 1.0.2a1, which was
|
||||||
generated by GNU Autoconf 2.65. Invocation command line was
|
generated by GNU Autoconf 2.65. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@ -3346,7 +3348,7 @@ fi
|
|||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='hwloc'
|
PACKAGE='hwloc'
|
||||||
VERSION='1.0.1rc1'
|
VERSION='1.0.2a1'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
@ -8574,6 +8576,17 @@ cat >>confdefs.h <<_ACEOF
|
|||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
|
||||||
|
if test "x$ac_cv_header_stdint_h" = x""yes; then :
|
||||||
|
|
||||||
|
|
||||||
|
$as_echo "#define HWLOC_HAVE_STDINT_H 1" >>confdefs.h
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ac_fn_c_check_type "$LINENO" "wchar_t" "ac_cv_type_wchar_t" "#include <wchar.h>
|
ac_fn_c_check_type "$LINENO" "wchar_t" "ac_cv_type_wchar_t" "#include <wchar.h>
|
||||||
"
|
"
|
||||||
if test "x$ac_cv_type_wchar_t" = x""yes; then :
|
if test "x$ac_cv_type_wchar_t" = x""yes; then :
|
||||||
@ -8646,7 +8659,7 @@ fi
|
|||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
old_LIBS="$LIBS"
|
hwloc_old_LIBS="$LIBS"
|
||||||
LIBS=
|
LIBS=
|
||||||
for ac_header in curses.h
|
for ac_header in curses.h
|
||||||
do :
|
do :
|
||||||
@ -8737,7 +8750,8 @@ fi
|
|||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
LIBS="$old_LIBS"
|
LIBS="$hwloc_old_LIBS"
|
||||||
|
unset hwloc_old_LIBS
|
||||||
|
|
||||||
ac_fn_c_check_type "$LINENO" "KAFFINITY" "ac_cv_type_KAFFINITY" "#include <windows.h>
|
ac_fn_c_check_type "$LINENO" "KAFFINITY" "ac_cv_type_KAFFINITY" "#include <windows.h>
|
||||||
"
|
"
|
||||||
@ -8891,14 +8905,11 @@ fi
|
|||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdi32_main" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdi32_main" >&5
|
||||||
$as_echo "$ac_cv_lib_gdi32_main" >&6; }
|
$as_echo "$ac_cv_lib_gdi32_main" >&6; }
|
||||||
if test "x$ac_cv_lib_gdi32_main" = x""yes; then :
|
if test "x$ac_cv_lib_gdi32_main" = x""yes; then :
|
||||||
cat >>confdefs.h <<_ACEOF
|
HWLOC_LIBS="-lgdi32 $HWLOC_LIBS"
|
||||||
#define HAVE_LIBGDI32 1
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
LIBS="-lgdi32 $LIBS"
|
$as_echo "#define HAVE_LIBGDI32 1" >>confdefs.h
|
||||||
|
|
||||||
fi
|
fi
|
||||||
ac_cv_lib_gdi32=ac_cv_lib_gdi32_main
|
|
||||||
|
|
||||||
|
|
||||||
ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default"
|
ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default"
|
||||||
@ -8920,9 +8931,9 @@ if test "x$ac_cv_header_sys_lgrp_user_h" = x""yes; then :
|
|||||||
#define HAVE_SYS_LGRP_USER_H 1
|
#define HAVE_SYS_LGRP_USER_H 1
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -llgrp" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lgrp_latency_cookie in -llgrp" >&5
|
||||||
$as_echo_n "checking for main in -llgrp... " >&6; }
|
$as_echo_n "checking for lgrp_latency_cookie in -llgrp... " >&6; }
|
||||||
if test "${ac_cv_lib_lgrp_main+set}" = set; then :
|
if test "${ac_cv_lib_lgrp_lgrp_latency_cookie+set}" = set; then :
|
||||||
$as_echo_n "(cached) " >&6
|
$as_echo_n "(cached) " >&6
|
||||||
else
|
else
|
||||||
ac_check_lib_save_LIBS=$LIBS
|
ac_check_lib_save_LIBS=$LIBS
|
||||||
@ -8930,35 +8941,38 @@ LIBS="-llgrp $LIBS"
|
|||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
/* end confdefs.h. */
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
/* Override any GCC internal prototype to avoid an error.
|
||||||
|
Use char because int might match the return type of a GCC
|
||||||
|
builtin and then its argument prototype would still apply. */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
#endif
|
||||||
|
char lgrp_latency_cookie ();
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
return main ();
|
return lgrp_latency_cookie ();
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
_ACEOF
|
_ACEOF
|
||||||
if ac_fn_c_try_link "$LINENO"; then :
|
if ac_fn_c_try_link "$LINENO"; then :
|
||||||
ac_cv_lib_lgrp_main=yes
|
ac_cv_lib_lgrp_lgrp_latency_cookie=yes
|
||||||
else
|
else
|
||||||
ac_cv_lib_lgrp_main=no
|
ac_cv_lib_lgrp_lgrp_latency_cookie=no
|
||||||
fi
|
fi
|
||||||
rm -f core conftest.err conftest.$ac_objext \
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
conftest$ac_exeext conftest.$ac_ext
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
LIBS=$ac_check_lib_save_LIBS
|
LIBS=$ac_check_lib_save_LIBS
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lgrp_main" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lgrp_lgrp_latency_cookie" >&5
|
||||||
$as_echo "$ac_cv_lib_lgrp_main" >&6; }
|
$as_echo "$ac_cv_lib_lgrp_lgrp_latency_cookie" >&6; }
|
||||||
if test "x$ac_cv_lib_lgrp_main" = x""yes; then :
|
if test "x$ac_cv_lib_lgrp_lgrp_latency_cookie" = x""yes; then :
|
||||||
cat >>confdefs.h <<_ACEOF
|
HWLOC_LIBS="-llgrp $HWLOC_LIBS"
|
||||||
#define HAVE_LIBLGRP 1
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
LIBS="-llgrp $LIBS"
|
$as_echo "#define HAVE_LIBLGRP 1" >>confdefs.h
|
||||||
|
|
||||||
fi
|
fi
|
||||||
ac_cv_lib_lgrp=ac_cv_lib_lgrp_main
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@ -9004,14 +9018,11 @@ fi
|
|||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kstat_main" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kstat_main" >&5
|
||||||
$as_echo "$ac_cv_lib_kstat_main" >&6; }
|
$as_echo "$ac_cv_lib_kstat_main" >&6; }
|
||||||
if test "x$ac_cv_lib_kstat_main" = x""yes; then :
|
if test "x$ac_cv_lib_kstat_main" = x""yes; then :
|
||||||
cat >>confdefs.h <<_ACEOF
|
HWLOC_LIBS="-lkstat $HWLOC_LIBS"
|
||||||
#define HAVE_LIBKSTAT 1
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
LIBS="-lkstat $LIBS"
|
$as_echo "#define HAVE_LIBKSTAT 1" >>confdefs.h
|
||||||
|
|
||||||
fi
|
fi
|
||||||
ac_cv_lib_kstat=ac_cv_lib_kstat_main
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@ -9027,9 +9038,9 @@ if test "x$ac_cv_header_infiniband_verbs_h" = x""yes; then :
|
|||||||
#define HAVE_INFINIBAND_VERBS_H 1
|
#define HAVE_INFINIBAND_VERBS_H 1
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -libverbs" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ibv_open_device in -libverbs" >&5
|
||||||
$as_echo_n "checking for main in -libverbs... " >&6; }
|
$as_echo_n "checking for ibv_open_device in -libverbs... " >&6; }
|
||||||
if test "${ac_cv_lib_ibverbs_main+set}" = set; then :
|
if test "${ac_cv_lib_ibverbs_ibv_open_device+set}" = set; then :
|
||||||
$as_echo_n "(cached) " >&6
|
$as_echo_n "(cached) " >&6
|
||||||
else
|
else
|
||||||
ac_check_lib_save_LIBS=$LIBS
|
ac_check_lib_save_LIBS=$LIBS
|
||||||
@ -9037,30 +9048,38 @@ LIBS="-libverbs $LIBS"
|
|||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
/* end confdefs.h. */
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
/* Override any GCC internal prototype to avoid an error.
|
||||||
|
Use char because int might match the return type of a GCC
|
||||||
|
builtin and then its argument prototype would still apply. */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
#endif
|
||||||
|
char ibv_open_device ();
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
return main ();
|
return ibv_open_device ();
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
_ACEOF
|
_ACEOF
|
||||||
if ac_fn_c_try_link "$LINENO"; then :
|
if ac_fn_c_try_link "$LINENO"; then :
|
||||||
ac_cv_lib_ibverbs_main=yes
|
ac_cv_lib_ibverbs_ibv_open_device=yes
|
||||||
else
|
else
|
||||||
ac_cv_lib_ibverbs_main=no
|
ac_cv_lib_ibverbs_ibv_open_device=no
|
||||||
fi
|
fi
|
||||||
rm -f core conftest.err conftest.$ac_objext \
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
conftest$ac_exeext conftest.$ac_ext
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
LIBS=$ac_check_lib_save_LIBS
|
LIBS=$ac_check_lib_save_LIBS
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ibverbs_main" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ibverbs_ibv_open_device" >&5
|
||||||
$as_echo "$ac_cv_lib_ibverbs_main" >&6; }
|
$as_echo "$ac_cv_lib_ibverbs_ibv_open_device" >&6; }
|
||||||
if test "x$ac_cv_lib_ibverbs_main" = x""yes; then :
|
if test "x$ac_cv_lib_ibverbs_ibv_open_device" = x""yes; then :
|
||||||
hwloc_have_libibverbs=yes
|
HWLOC_LIBS="-libverbs $HWLOC_LIBS"
|
||||||
|
|
||||||
|
$as_echo "#define HAVE_LIBIBVERBS 1" >>confdefs.h
|
||||||
|
|
||||||
fi
|
fi
|
||||||
ac_cv_lib_ibverbs=ac_cv_lib_ibverbs_main
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@ -9999,7 +10018,7 @@ fi
|
|||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
# Setup HWLOC's C, CPP, and LD flags
|
# Setup HWLOC's C, CPP, and LD flags, and LIBS
|
||||||
HWLOC_CFLAGS="$hwloc_CC_c99_flags $HWLOC_CFLAGS"
|
HWLOC_CFLAGS="$hwloc_CC_c99_flags $HWLOC_CFLAGS"
|
||||||
|
|
||||||
HWLOC_CPPFLAGS='-I$(HWLOC_top_srcdir)/include -I$(HWLOC_top_builddir)/include'
|
HWLOC_CPPFLAGS='-I$(HWLOC_top_srcdir)/include -I$(HWLOC_top_builddir)/include'
|
||||||
@ -10007,6 +10026,7 @@ done
|
|||||||
HWLOC_LDFLAGS='-L$(HWLOC_top_builddir)/src'
|
HWLOC_LDFLAGS='-L$(HWLOC_top_builddir)/src'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Set these values explicitly for embedded builds. Exporting
|
# Set these values explicitly for embedded builds. Exporting
|
||||||
# these values through *_EMBEDDED_* values gives us the freedom to
|
# these values through *_EMBEDDED_* values gives us the freedom to
|
||||||
# do something different someday if we ever need to.
|
# do something different someday if we ever need to.
|
||||||
@ -10016,6 +10036,8 @@ done
|
|||||||
|
|
||||||
HWLOC_EMBEDDED_LDADD='$(HWLOC_top_builddir)/src/libhwloc_embedded.la'
|
HWLOC_EMBEDDED_LDADD='$(HWLOC_top_builddir)/src/libhwloc_embedded.la'
|
||||||
|
|
||||||
|
HWLOC_EMBEDDED_LIBS=$HWLOC_LIBS
|
||||||
|
|
||||||
|
|
||||||
# Try to compile the cpuid inlines
|
# Try to compile the cpuid inlines
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cpuid" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cpuid" >&5
|
||||||
@ -12142,6 +12164,7 @@ fi
|
|||||||
# Set the final flags
|
# Set the final flags
|
||||||
CFLAGS="$HWLOC_EMBEDDED_CFLAGS $CFLAGS"
|
CFLAGS="$HWLOC_EMBEDDED_CFLAGS $CFLAGS"
|
||||||
CPPFLAGS="$HWLOC_EMBEDDED_CPPFLAGS $CPPFLAGS"
|
CPPFLAGS="$HWLOC_EMBEDDED_CPPFLAGS $CPPFLAGS"
|
||||||
|
LIBS="$HWLOC_EMBEDDED_LIBS $LIBS"
|
||||||
|
|
||||||
# Setup libtool, but disable C++, F77, Java and Windows Resource
|
# Setup libtool, but disable C++, F77, Java and Windows Resource
|
||||||
# Compiler support -- we don't need that stuff.
|
# Compiler support -- we don't need that stuff.
|
||||||
@ -12686,13 +12709,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
|
|||||||
else
|
else
|
||||||
lt_cv_nm_interface="BSD nm"
|
lt_cv_nm_interface="BSD nm"
|
||||||
echo "int some_variable = 0;" > conftest.$ac_ext
|
echo "int some_variable = 0;" > conftest.$ac_ext
|
||||||
(eval echo "\"\$as_me:12689: $ac_compile\"" >&5)
|
(eval echo "\"\$as_me:12712: $ac_compile\"" >&5)
|
||||||
(eval "$ac_compile" 2>conftest.err)
|
(eval "$ac_compile" 2>conftest.err)
|
||||||
cat conftest.err >&5
|
cat conftest.err >&5
|
||||||
(eval echo "\"\$as_me:12692: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
|
(eval echo "\"\$as_me:12715: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
|
||||||
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
|
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
|
||||||
cat conftest.err >&5
|
cat conftest.err >&5
|
||||||
(eval echo "\"\$as_me:12695: output\"" >&5)
|
(eval echo "\"\$as_me:12718: output\"" >&5)
|
||||||
cat conftest.out >&5
|
cat conftest.out >&5
|
||||||
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
|
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
|
||||||
lt_cv_nm_interface="MS dumpbin"
|
lt_cv_nm_interface="MS dumpbin"
|
||||||
@ -13894,7 +13917,7 @@ ia64-*-hpux*)
|
|||||||
;;
|
;;
|
||||||
*-*-irix6*)
|
*-*-irix6*)
|
||||||
# Find out which ABI we are using.
|
# Find out which ABI we are using.
|
||||||
echo '#line 13897 "configure"' > conftest.$ac_ext
|
echo '#line 13920 "configure"' > conftest.$ac_ext
|
||||||
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
|
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
|
||||||
(eval $ac_compile) 2>&5
|
(eval $ac_compile) 2>&5
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
@ -15394,11 +15417,11 @@ else
|
|||||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
-e 's:$: $lt_compiler_flag:'`
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
(eval echo "\"\$as_me:15397: $lt_compile\"" >&5)
|
(eval echo "\"\$as_me:15420: $lt_compile\"" >&5)
|
||||||
(eval "$lt_compile" 2>conftest.err)
|
(eval "$lt_compile" 2>conftest.err)
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
cat conftest.err >&5
|
cat conftest.err >&5
|
||||||
echo "$as_me:15401: \$? = $ac_status" >&5
|
echo "$as_me:15424: \$? = $ac_status" >&5
|
||||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||||
# The compiler can only warn and ignore the option if not recognized
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
# So say no if there are warnings other than the usual output.
|
# So say no if there are warnings other than the usual output.
|
||||||
@ -15733,11 +15756,11 @@ else
|
|||||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
-e 's:$: $lt_compiler_flag:'`
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
(eval echo "\"\$as_me:15736: $lt_compile\"" >&5)
|
(eval echo "\"\$as_me:15759: $lt_compile\"" >&5)
|
||||||
(eval "$lt_compile" 2>conftest.err)
|
(eval "$lt_compile" 2>conftest.err)
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
cat conftest.err >&5
|
cat conftest.err >&5
|
||||||
echo "$as_me:15740: \$? = $ac_status" >&5
|
echo "$as_me:15763: \$? = $ac_status" >&5
|
||||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||||
# The compiler can only warn and ignore the option if not recognized
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
# So say no if there are warnings other than the usual output.
|
# So say no if there are warnings other than the usual output.
|
||||||
@ -15838,11 +15861,11 @@ else
|
|||||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
-e 's:$: $lt_compiler_flag:'`
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
(eval echo "\"\$as_me:15841: $lt_compile\"" >&5)
|
(eval echo "\"\$as_me:15864: $lt_compile\"" >&5)
|
||||||
(eval "$lt_compile" 2>out/conftest.err)
|
(eval "$lt_compile" 2>out/conftest.err)
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
cat out/conftest.err >&5
|
cat out/conftest.err >&5
|
||||||
echo "$as_me:15845: \$? = $ac_status" >&5
|
echo "$as_me:15868: \$? = $ac_status" >&5
|
||||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||||
then
|
then
|
||||||
# The compiler can only warn and ignore the option if not recognized
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
@ -15893,11 +15916,11 @@ else
|
|||||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
-e 's:$: $lt_compiler_flag:'`
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
(eval echo "\"\$as_me:15896: $lt_compile\"" >&5)
|
(eval echo "\"\$as_me:15919: $lt_compile\"" >&5)
|
||||||
(eval "$lt_compile" 2>out/conftest.err)
|
(eval "$lt_compile" 2>out/conftest.err)
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
cat out/conftest.err >&5
|
cat out/conftest.err >&5
|
||||||
echo "$as_me:15900: \$? = $ac_status" >&5
|
echo "$as_me:15923: \$? = $ac_status" >&5
|
||||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||||
then
|
then
|
||||||
# The compiler can only warn and ignore the option if not recognized
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
@ -18260,7 +18283,7 @@ else
|
|||||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
lt_status=$lt_dlunknown
|
lt_status=$lt_dlunknown
|
||||||
cat > conftest.$ac_ext <<_LT_EOF
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
#line 18263 "configure"
|
#line 18286 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
@ -18356,7 +18379,7 @@ else
|
|||||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
lt_status=$lt_dlunknown
|
lt_status=$lt_dlunknown
|
||||||
cat > conftest.$ac_ext <<_LT_EOF
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
#line 18359 "configure"
|
#line 18382 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
@ -19219,7 +19242,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by hwloc $as_me 1.0.1rc1, which was
|
This file was extended by hwloc $as_me 1.0.2a1, which was
|
||||||
generated by GNU Autoconf 2.65. Invocation command line was
|
generated by GNU Autoconf 2.65. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@ -19289,7 +19312,7 @@ _ACEOF
|
|||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
hwloc config.status 1.0.1rc1
|
hwloc config.status 1.0.2a1
|
||||||
configured by $0, generated by GNU Autoconf 2.65,
|
configured by $0, generated by GNU Autoconf 2.65,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
@ -138,6 +138,7 @@ HWLOC_DO_AM_CONDITIONALS
|
|||||||
# Set the final flags
|
# Set the final flags
|
||||||
CFLAGS="$HWLOC_EMBEDDED_CFLAGS $CFLAGS"
|
CFLAGS="$HWLOC_EMBEDDED_CFLAGS $CFLAGS"
|
||||||
CPPFLAGS="$HWLOC_EMBEDDED_CPPFLAGS $CPPFLAGS"
|
CPPFLAGS="$HWLOC_EMBEDDED_CPPFLAGS $CPPFLAGS"
|
||||||
|
LIBS="$HWLOC_EMBEDDED_LIBS $LIBS"
|
||||||
|
|
||||||
# Setup libtool, but disable C++, F77, Java and Windows Resource
|
# Setup libtool, but disable C++, F77, Java and Windows Resource
|
||||||
# Compiler support -- we don't need that stuff.
|
# Compiler support -- we don't need that stuff.
|
||||||
|
@ -167,10 +167,12 @@ HWLOC_DIFF_U = @HWLOC_DIFF_U@
|
|||||||
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
||||||
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
||||||
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
||||||
|
HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@
|
||||||
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
||||||
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
||||||
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
||||||
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
||||||
|
HWLOC_LIBS = @HWLOC_LIBS@
|
||||||
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
||||||
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
||||||
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
||||||
|
@ -327,7 +327,9 @@ solve your problem, you may also want to ensure that you are running
|
|||||||
the most recent version of the BIOS for your machine.
|
the most recent version of the BIOS for your machine.
|
||||||
|
|
||||||
If those things fail, contact us on the mailing list for additional
|
If those things fail, contact us on the mailing list for additional
|
||||||
help.
|
help. Please attach the output of lstopo after having given the
|
||||||
|
--enable-debug option to ./configure and rebuilt completely, to get
|
||||||
|
debugging output.
|
||||||
|
|
||||||
\htmlonly
|
\htmlonly
|
||||||
</div><div class="section" id="credits">
|
</div><div class="section" id="credits">
|
||||||
@ -759,7 +761,11 @@ shell$ cp -r /somewhere/else/hwloc-<version> my-embedded-hwloc
|
|||||||
shell$ edit Makefile.am
|
shell$ edit Makefile.am
|
||||||
1. Add "-Imy-embedded-hwloc/config" to ACLOCAL_AMFLAGS
|
1. Add "-Imy-embedded-hwloc/config" to ACLOCAL_AMFLAGS
|
||||||
2. Add "my-embedded-hwloc" to SUBDIRS
|
2. Add "my-embedded-hwloc" to SUBDIRS
|
||||||
3. Add "$(HWLOC_EMBEDDED_LDADD)" to sandbox's executable's LDADD line
|
3. Add "$(HWLOC_EMBEDDED_LDADD)" and "$(HWLOC_EMBEDDED_LIBS)" to
|
||||||
|
sandbox's executable's LDADD line. The former is the name of the
|
||||||
|
Libtool convenience library that hwloc will generate. The latter
|
||||||
|
is any dependent support libraries that may be needed by
|
||||||
|
$(HWLOC_EMBEDDED_LDADD).
|
||||||
4. Add "$(HWLOC_EMBEDDED_CPPFLAGS)" to AM_CPPFLAGS
|
4. Add "$(HWLOC_EMBEDDED_CPPFLAGS)" to AM_CPPFLAGS
|
||||||
shell$ edit configure.ac
|
shell$ edit configure.ac
|
||||||
1. Add "HWLOC_SET_SYMBOL_PREFIX(sandbox_hwloc_)" line
|
1. Add "HWLOC_SET_SYMBOL_PREFIX(sandbox_hwloc_)" line
|
||||||
|
@ -14,10 +14,13 @@
|
|||||||
#ifndef HWLOC_H
|
#ifndef HWLOC_H
|
||||||
#define HWLOC_H
|
#define HWLOC_H
|
||||||
|
|
||||||
|
#include <hwloc/config.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
#ifdef HWLOC_HAVE_STDINT_H
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Symbol transforms
|
* Symbol transforms
|
||||||
|
@ -89,17 +89,23 @@
|
|||||||
# define HWLOC_DECLSPEC
|
# define HWLOC_DECLSPEC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Define to 1 on Linux */
|
/* Defined to 1 on Linux */
|
||||||
#undef HWLOC_LINUX_SYS
|
#undef HWLOC_LINUX_SYS
|
||||||
|
|
||||||
/* Define to 1 if the CPU_SET macro works */
|
/* Defined to 1 if the CPU_SET macro works */
|
||||||
#undef HWLOC_HAVE_CPU_SET
|
#undef HWLOC_HAVE_CPU_SET
|
||||||
|
|
||||||
#define HWLOC_NBMAXCPUS 1024
|
#define HWLOC_NBMAXCPUS 1024
|
||||||
|
|
||||||
|
/* The size of `unsigned long', as computed by sizeof */
|
||||||
#undef HWLOC_SIZEOF_UNSIGNED_LONG
|
#undef HWLOC_SIZEOF_UNSIGNED_LONG
|
||||||
|
|
||||||
|
/* The size of `unsigned int', as computed by sizeof */
|
||||||
#undef HWLOC_SIZEOF_UNSIGNED_INT
|
#undef HWLOC_SIZEOF_UNSIGNED_INT
|
||||||
|
|
||||||
|
/* Defined to 1 if you have the <stdint.h> header file. */
|
||||||
|
#undef HWLOC_HAVE_STDINT_H
|
||||||
|
|
||||||
#define HWLOC_BITS_PER_LONG (HWLOC_SIZEOF_UNSIGNED_LONG * 8)
|
#define HWLOC_BITS_PER_LONG (HWLOC_SIZEOF_UNSIGNED_LONG * 8)
|
||||||
#define HWLOC_BITS_PER_INT (HWLOC_SIZEOF_UNSIGNED_INT * 8)
|
#define HWLOC_BITS_PER_INT (HWLOC_SIZEOF_UNSIGNED_INT * 8)
|
||||||
|
|
||||||
@ -114,6 +120,7 @@
|
|||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
/* Defined to 1 if you have the `windows.h' header. */
|
||||||
#undef HWLOC_HAVE_WINDOWS_H
|
#undef HWLOC_HAVE_WINDOWS_H
|
||||||
#undef hwloc_pid_t
|
#undef hwloc_pid_t
|
||||||
#undef hwloc_thread_t
|
#undef hwloc_thread_t
|
||||||
@ -126,11 +133,13 @@
|
|||||||
# endif /* hwloc_thread_t */
|
# endif /* hwloc_thread_t */
|
||||||
#endif /* HWLOC_HAVE_WINDOWS_H */
|
#endif /* HWLOC_HAVE_WINDOWS_H */
|
||||||
|
|
||||||
/* Do we need to transform all the hwloc public symbol names? */
|
/* Whether we need to re-define all the hwloc public symbols or not */
|
||||||
#undef HWLOC_SYM_TRANSFORM
|
#undef HWLOC_SYM_TRANSFORM
|
||||||
|
|
||||||
/* If we are transforming, what are the prefixes? */
|
/* The hwloc symbol prefix */
|
||||||
#undef HWLOC_SYM_PREFIX
|
#undef HWLOC_SYM_PREFIX
|
||||||
|
|
||||||
|
/* The hwloc symbol prefix in all caps */
|
||||||
#undef HWLOC_SYM_PREFIX_CAPS
|
#undef HWLOC_SYM_PREFIX_CAPS
|
||||||
|
|
||||||
#endif /* HWLOC_CONFIG_H */
|
#endif /* HWLOC_CONFIG_H */
|
||||||
|
@ -108,13 +108,16 @@
|
|||||||
/* Define to 1 if you have the <langinfo.h> header file. */
|
/* Define to 1 if you have the <langinfo.h> header file. */
|
||||||
#undef HAVE_LANGINFO_H
|
#undef HAVE_LANGINFO_H
|
||||||
|
|
||||||
/* Define to 1 if you have the `gdi32' library (-lgdi32). */
|
/* Define to 1 if we have -lgdi32 */
|
||||||
#undef HAVE_LIBGDI32
|
#undef HAVE_LIBGDI32
|
||||||
|
|
||||||
/* Define to 1 if you have the `kstat' library (-lkstat). */
|
/* Define to 1 if we have -libverbs */
|
||||||
|
#undef HAVE_LIBIBVERBS
|
||||||
|
|
||||||
|
/* Define to 1 if we have -lkstat */
|
||||||
#undef HAVE_LIBKSTAT
|
#undef HAVE_LIBKSTAT
|
||||||
|
|
||||||
/* Define to 1 if you have the `lgrp' library (-llgrp). */
|
/* Define to 1 if we have -llgrp */
|
||||||
#undef HAVE_LIBLGRP
|
#undef HAVE_LIBLGRP
|
||||||
|
|
||||||
/* Define to 1 if you have the <locale.h> header file. */
|
/* Define to 1 if you have the <locale.h> header file. */
|
||||||
@ -353,6 +356,9 @@
|
|||||||
/* Define to 1 if glibc provides the old prototype of sched_setaffinity() */
|
/* Define to 1 if glibc provides the old prototype of sched_setaffinity() */
|
||||||
#undef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
|
#undef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#undef HWLOC_HAVE_STDINT_H
|
||||||
|
|
||||||
/* Define to 1 if you have the `windows.h' header. */
|
/* Define to 1 if you have the `windows.h' header. */
|
||||||
#undef HWLOC_HAVE_WINDOWS_H
|
#undef HWLOC_HAVE_WINDOWS_H
|
||||||
|
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
#include <hwloc.h>
|
#include <hwloc.h>
|
||||||
#include <hwloc/cpuset.h>
|
#include <hwloc/cpuset.h>
|
||||||
#include <private/debug.h>
|
#include <private/debug.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#ifdef HAVE_STDINT_H
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -108,7 +112,7 @@ struct hwloc_topology {
|
|||||||
|
|
||||||
extern void hwloc_setup_pu_level(struct hwloc_topology *topology, unsigned nb_pus);
|
extern void hwloc_setup_pu_level(struct hwloc_topology *topology, unsigned nb_pus);
|
||||||
extern void hwloc_setup_misc_level_from_distances(struct hwloc_topology *topology, unsigned nbobjs, struct hwloc_obj **objs, unsigned *_distances/*[nbnobjs][nbobjs]*/);
|
extern void hwloc_setup_misc_level_from_distances(struct hwloc_topology *topology, unsigned nbobjs, struct hwloc_obj **objs, unsigned *_distances/*[nbnobjs][nbobjs]*/);
|
||||||
extern int hwloc_get_sysctlbyname(const char *name, int *n);
|
extern int hwloc_get_sysctlbyname(const char *name, int64_t *n);
|
||||||
extern int hwloc_get_sysctl(int name[], unsigned namelen, int *n);
|
extern int hwloc_get_sysctl(int name[], unsigned namelen, int *n);
|
||||||
extern unsigned hwloc_fallback_nbprocessors(struct hwloc_topology *topology);
|
extern unsigned hwloc_fallback_nbprocessors(struct hwloc_topology *topology);
|
||||||
|
|
||||||
|
@ -23,12 +23,15 @@
|
|||||||
void
|
void
|
||||||
hwloc_look_darwin(struct hwloc_topology *topology)
|
hwloc_look_darwin(struct hwloc_topology *topology)
|
||||||
{
|
{
|
||||||
int _nprocs;
|
int64_t _nprocs;
|
||||||
unsigned nprocs;
|
unsigned nprocs;
|
||||||
int _npackages;
|
int64_t _npackages;
|
||||||
unsigned i, j, cpu;
|
unsigned i, j, cpu;
|
||||||
struct hwloc_obj *obj;
|
struct hwloc_obj *obj;
|
||||||
size_t size;
|
size_t size;
|
||||||
|
int64_t l1cachesize;
|
||||||
|
int64_t l2cachesize;
|
||||||
|
int64_t memsize;
|
||||||
|
|
||||||
if (hwloc_get_sysctlbyname("hw.ncpu", &_nprocs) || _nprocs <= 0)
|
if (hwloc_get_sysctlbyname("hw.ncpu", &_nprocs) || _nprocs <= 0)
|
||||||
return;
|
return;
|
||||||
@ -39,8 +42,8 @@ hwloc_look_darwin(struct hwloc_topology *topology)
|
|||||||
|
|
||||||
if (!hwloc_get_sysctlbyname("hw.packages", &_npackages) && _npackages > 0) {
|
if (!hwloc_get_sysctlbyname("hw.packages", &_npackages) && _npackages > 0) {
|
||||||
unsigned npackages = _npackages;
|
unsigned npackages = _npackages;
|
||||||
int _cores_per_package;
|
int64_t _cores_per_package;
|
||||||
int _logical_per_package;
|
int64_t _logical_per_package;
|
||||||
unsigned logical_per_package;
|
unsigned logical_per_package;
|
||||||
|
|
||||||
hwloc_debug("%u packages\n", npackages);
|
hwloc_debug("%u packages\n", npackages);
|
||||||
@ -86,25 +89,54 @@ hwloc_look_darwin(struct hwloc_topology *topology)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hwloc_get_sysctlbyname("hw.l1dcachesize", &l1cachesize))
|
||||||
|
l1cachesize = 0;
|
||||||
|
|
||||||
|
if (hwloc_get_sysctlbyname("hw.l2cachesize", &l2cachesize))
|
||||||
|
l2cachesize = 0;
|
||||||
|
|
||||||
|
if (hwloc_get_sysctlbyname("hw.memsize", &memsize))
|
||||||
|
memsize = 0;
|
||||||
|
|
||||||
if (!sysctlbyname("hw.cacheconfig", NULL, &size, NULL, 0)) {
|
if (!sysctlbyname("hw.cacheconfig", NULL, &size, NULL, 0)) {
|
||||||
unsigned n = size / sizeof(uint64_t);
|
unsigned n = size / sizeof(uint32_t);
|
||||||
uint64_t cacheconfig[n];
|
uint64_t cacheconfig[n];
|
||||||
|
uint32_t cacheconfig32[n];
|
||||||
uint64_t cachesize[n];
|
uint64_t cachesize[n];
|
||||||
|
|
||||||
if ((!sysctlbyname("hw.cacheconfig", cacheconfig, &size, NULL, 0))) {
|
if ((!sysctlbyname("hw.cacheconfig", cacheconfig, &size, NULL, 0))) {
|
||||||
|
/* Yeech. Darwin seemingly has changed from 32bit to 64bit integers for
|
||||||
|
* cacheconfig, with apparently no way for detection. Assume the machine
|
||||||
|
* won't have more than 4 billion cpus */
|
||||||
|
if (cacheconfig[0] > 0xFFFFFFFFUL) {
|
||||||
|
memcpy(cacheconfig32, cacheconfig, size);
|
||||||
|
for (i = 0 ; i < size / sizeof(uint32_t); i++)
|
||||||
|
cacheconfig[i] = cacheconfig32[i];
|
||||||
|
}
|
||||||
|
|
||||||
memset(cachesize, 0, sizeof(cachesize));
|
memset(cachesize, 0, sizeof(cachesize));
|
||||||
size = sizeof(cachesize);
|
size = sizeof(cachesize);
|
||||||
sysctlbyname("hw.cachesize", cachesize, &size, NULL, 0);
|
if (sysctlbyname("hw.cachesize", cachesize, &size, NULL, 0)) {
|
||||||
|
if (n > 0)
|
||||||
|
cachesize[0] = memsize;
|
||||||
|
if (n > 1)
|
||||||
|
cachesize[1] = l1cachesize;
|
||||||
|
if (n > 2)
|
||||||
|
cachesize[2] = l2cachesize;
|
||||||
|
}
|
||||||
|
|
||||||
hwloc_debug("%s", "caches");
|
hwloc_debug("%s", "caches");
|
||||||
for (i = 0; i < n && cacheconfig[i]; i++)
|
for (i = 0; i < n && cacheconfig[i]; i++)
|
||||||
hwloc_debug(" %"PRIu64"(%"PRIu64"kB)", cacheconfig[i], cachesize[i] / 1024);
|
hwloc_debug(" %"PRIu64"(%"PRIu64"kB)", cacheconfig[i], cachesize[i] / 1024);
|
||||||
|
|
||||||
|
cacheconfig[i] = cacheconfig32[i];
|
||||||
/* Now we know how many caches there are */
|
/* Now we know how many caches there are */
|
||||||
n = i;
|
n = i;
|
||||||
hwloc_debug("\n%u cache levels\n", n - 1);
|
hwloc_debug("\n%u cache levels\n", n - 1);
|
||||||
|
|
||||||
|
/* For each cache level (0 is memory) */
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
|
/* cacheconfig tells us how many cpus share it, let's iterate on each cache */
|
||||||
for (j = 0; j < (nprocs / cacheconfig[i]); j++) {
|
for (j = 0; j < (nprocs / cacheconfig[i]); j++) {
|
||||||
obj = hwloc_alloc_setup_object(i?HWLOC_OBJ_CACHE:HWLOC_OBJ_NODE, j);
|
obj = hwloc_alloc_setup_object(i?HWLOC_OBJ_CACHE:HWLOC_OBJ_NODE, j);
|
||||||
if (!i) {
|
if (!i) {
|
||||||
|
@ -74,7 +74,7 @@ browse(struct hwloc_topology *topology, lgrp_cookie_t cookie, lgrp_id_t lgrp, hw
|
|||||||
hwloc_obj_t obj;
|
hwloc_obj_t obj;
|
||||||
lgrp_mem_size_t mem_size;
|
lgrp_mem_size_t mem_size;
|
||||||
|
|
||||||
n = lgrp_cpus(cookie, lgrp, NULL, 0, LGRP_CONTENT_ALL);
|
n = lgrp_cpus(cookie, lgrp, NULL, 0, LGRP_CONTENT_HIERARCHY);
|
||||||
if (n == -1)
|
if (n == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ browse(struct hwloc_topology *topology, lgrp_cookie_t cookie, lgrp_id_t lgrp, hw
|
|||||||
obj->cpuset = hwloc_cpuset_alloc();
|
obj->cpuset = hwloc_cpuset_alloc();
|
||||||
glob_lgrps[(*curlgrp)++] = obj;
|
glob_lgrps[(*curlgrp)++] = obj;
|
||||||
|
|
||||||
lgrp_cpus(cookie, lgrp, cpuids, n, LGRP_CONTENT_ALL);
|
lgrp_cpus(cookie, lgrp, cpuids, n, LGRP_CONTENT_HIERARCHY);
|
||||||
for (i = 0; i < n ; i++) {
|
for (i = 0; i < n ; i++) {
|
||||||
hwloc_debug("node %ld's cpu %d is %d\n", lgrp, i, cpuids[i]);
|
hwloc_debug("node %ld's cpu %d is %d\n", lgrp, i, cpuids[i]);
|
||||||
hwloc_cpuset_set(obj->cpuset, cpuids[i]);
|
hwloc_cpuset_set(obj->cpuset, cpuids[i]);
|
||||||
@ -147,6 +147,7 @@ hwloc_look_lgrp(struct hwloc_topology *topology)
|
|||||||
{
|
{
|
||||||
hwloc_obj_t glob_lgrps[nlgrps];
|
hwloc_obj_t glob_lgrps[nlgrps];
|
||||||
browse(topology, cookie, root, glob_lgrps, &curlgrp);
|
browse(topology, cookie, root, glob_lgrps, &curlgrp);
|
||||||
|
#ifdef HAVE_LGRP_LATENCY_COOKIE
|
||||||
{
|
{
|
||||||
unsigned distances[curlgrp][curlgrp];
|
unsigned distances[curlgrp][curlgrp];
|
||||||
unsigned i, j;
|
unsigned i, j;
|
||||||
@ -155,6 +156,7 @@ hwloc_look_lgrp(struct hwloc_topology *topology)
|
|||||||
distances[i][j] = lgrp_latency_cookie(cookie, glob_lgrps[i]->os_index, glob_lgrps[j]->os_index, LGRP_LAT_CPU_TO_MEM);
|
distances[i][j] = lgrp_latency_cookie(cookie, glob_lgrps[i]->os_index, glob_lgrps[j]->os_index, LGRP_LAT_CPU_TO_MEM);
|
||||||
hwloc_setup_misc_level_from_distances(topology, curlgrp, glob_lgrps, (unsigned*) distances);
|
hwloc_setup_misc_level_from_distances(topology, curlgrp, glob_lgrps, (unsigned*) distances);
|
||||||
}
|
}
|
||||||
|
#endif /* HAVE_LGRP_LATENCY_COOKIE */
|
||||||
}
|
}
|
||||||
lgrp_fini(cookie);
|
lgrp_fini(cookie);
|
||||||
}
|
}
|
||||||
@ -162,33 +164,45 @@ hwloc_look_lgrp(struct hwloc_topology *topology)
|
|||||||
|
|
||||||
#ifdef HAVE_LIBKSTAT
|
#ifdef HAVE_LIBKSTAT
|
||||||
#include <kstat.h>
|
#include <kstat.h>
|
||||||
static void
|
static int
|
||||||
hwloc_look_kstat(struct hwloc_topology *topology, unsigned *nbprocs)
|
hwloc_look_kstat(struct hwloc_topology *topology)
|
||||||
{
|
{
|
||||||
kstat_ctl_t *kc = kstat_open();
|
kstat_ctl_t *kc = kstat_open();
|
||||||
kstat_t *ksp;
|
kstat_t *ksp;
|
||||||
kstat_named_t *stat;
|
kstat_named_t *stat;
|
||||||
unsigned look_cores = 1, look_chips = 1;
|
unsigned look_cores = 1, look_chips = 1;
|
||||||
|
|
||||||
|
unsigned numsockets = 0;
|
||||||
unsigned proc_physids[HWLOC_NBMAXCPUS];
|
unsigned proc_physids[HWLOC_NBMAXCPUS];
|
||||||
unsigned proc_osphysids[HWLOC_NBMAXCPUS];
|
unsigned proc_osphysids[HWLOC_NBMAXCPUS];
|
||||||
unsigned osphysids[HWLOC_NBMAXCPUS];
|
unsigned osphysids[HWLOC_NBMAXCPUS];
|
||||||
|
|
||||||
|
unsigned numcores = 0;
|
||||||
unsigned proc_coreids[HWLOC_NBMAXCPUS];
|
unsigned proc_coreids[HWLOC_NBMAXCPUS];
|
||||||
unsigned oscoreids[HWLOC_NBMAXCPUS];
|
unsigned oscoreids[HWLOC_NBMAXCPUS];
|
||||||
|
|
||||||
unsigned core_osphysids[HWLOC_NBMAXCPUS];
|
unsigned core_osphysids[HWLOC_NBMAXCPUS];
|
||||||
|
|
||||||
|
unsigned numprocs = 0;
|
||||||
|
unsigned proc_procids[HWLOC_NBMAXCPUS];
|
||||||
|
unsigned osprocids[HWLOC_NBMAXCPUS];
|
||||||
|
|
||||||
unsigned physid, coreid, cpuid;
|
unsigned physid, coreid, cpuid;
|
||||||
unsigned procid_max = 0;
|
unsigned procid_max = 0;
|
||||||
unsigned numsockets = 0;
|
|
||||||
unsigned numcores = 0;
|
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
|
||||||
|
for (cpuid = 0; cpuid < HWLOC_NBMAXCPUS; cpuid++)
|
||||||
|
{
|
||||||
|
proc_procids[cpuid] = -1;
|
||||||
|
proc_physids[cpuid] = -1;
|
||||||
|
proc_osphysids[cpuid] = -1;
|
||||||
|
proc_coreids[cpuid] = -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (!kc)
|
if (!kc)
|
||||||
{
|
{
|
||||||
hwloc_debug("kstat_open failed: %s\n", strerror(errno));
|
hwloc_debug("kstat_open failed: %s\n", strerror(errno));
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ksp = kc->kc_chain; ksp; ksp = ksp->ks_next)
|
for (ksp = kc->kc_chain; ksp; ksp = ksp->ks_next)
|
||||||
@ -203,36 +217,32 @@ hwloc_look_kstat(struct hwloc_topology *topology, unsigned *nbprocs)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
proc_physids[cpuid] = -1;
|
|
||||||
proc_osphysids[cpuid] = -1;
|
|
||||||
proc_coreids[cpuid] = -1;
|
|
||||||
|
|
||||||
if (kstat_read(kc, ksp, NULL) == -1)
|
if (kstat_read(kc, ksp, NULL) == -1)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "kstat_read failed for CPU%u: %s\n", cpuid, strerror(errno));
|
fprintf(stderr, "kstat_read failed for CPU%u: %s\n", cpuid, strerror(errno));
|
||||||
goto out;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hwloc_debug("cpu%u\n", cpuid);
|
||||||
|
proc_procids[cpuid] = numprocs;
|
||||||
|
osprocids[numprocs] = cpuid;
|
||||||
|
numprocs++;
|
||||||
|
|
||||||
|
if (cpuid >= procid_max)
|
||||||
|
procid_max = cpuid + 1;
|
||||||
|
|
||||||
stat = (kstat_named_t *) kstat_data_lookup(ksp, "state");
|
stat = (kstat_named_t *) kstat_data_lookup(ksp, "state");
|
||||||
if (!stat)
|
if (!stat)
|
||||||
{
|
hwloc_debug("could not read state for CPU%u: %s\n", cpuid, strerror(errno));
|
||||||
hwloc_debug("could not read state for CPU%u: %s\n", cpuid, strerror(errno));
|
else if (stat->data_type != KSTAT_DATA_CHAR)
|
||||||
continue;
|
hwloc_debug("unknown kstat type %d for cpu state\n", stat->data_type);
|
||||||
}
|
else
|
||||||
if (stat->data_type != KSTAT_DATA_CHAR)
|
{
|
||||||
{
|
hwloc_debug("cpu%u's state is %s\n", cpuid, stat->value.c);
|
||||||
hwloc_debug("unknown kstat type %d for cpu state\n", stat->data_type);
|
if (strcmp(stat->value.c, "on-line"))
|
||||||
continue;
|
/* not online */
|
||||||
}
|
hwloc_cpuset_clr(topology->levels[0][0]->online_cpuset, cpuid);
|
||||||
|
}
|
||||||
procid_max++;
|
|
||||||
hwloc_debug("cpu%u's state is %s\n", cpuid, stat->value.c);
|
|
||||||
if (strcmp(stat->value.c, "on-line"))
|
|
||||||
/* not online */
|
|
||||||
hwloc_cpuset_clr(topology->levels[0][0]->online_cpuset, cpuid);
|
|
||||||
|
|
||||||
(*nbprocs)++;
|
|
||||||
|
|
||||||
|
|
||||||
if (look_chips) do {
|
if (look_chips) do {
|
||||||
/* Get Chip ID */
|
/* Get Chip ID */
|
||||||
@ -331,8 +341,12 @@ hwloc_look_kstat(struct hwloc_topology *topology, unsigned *nbprocs)
|
|||||||
if (look_cores)
|
if (look_cores)
|
||||||
hwloc_setup_level(procid_max, numcores, oscoreids, proc_coreids, topology, HWLOC_OBJ_CORE);
|
hwloc_setup_level(procid_max, numcores, oscoreids, proc_coreids, topology, HWLOC_OBJ_CORE);
|
||||||
|
|
||||||
out:
|
if (numprocs)
|
||||||
|
hwloc_setup_level(procid_max, numprocs, osprocids, proc_procids, topology, HWLOC_OBJ_PU);
|
||||||
|
|
||||||
kstat_close(kc);
|
kstat_close(kc);
|
||||||
|
|
||||||
|
return numprocs > 0;
|
||||||
}
|
}
|
||||||
#endif /* LIBKSTAT */
|
#endif /* LIBKSTAT */
|
||||||
|
|
||||||
@ -345,7 +359,8 @@ hwloc_look_solaris(struct hwloc_topology *topology)
|
|||||||
#endif /* HAVE_LIBLGRP */
|
#endif /* HAVE_LIBLGRP */
|
||||||
#ifdef HAVE_LIBKSTAT
|
#ifdef HAVE_LIBKSTAT
|
||||||
nbprocs = 0;
|
nbprocs = 0;
|
||||||
hwloc_look_kstat(topology, &nbprocs);
|
if (hwloc_look_kstat(topology))
|
||||||
|
return;
|
||||||
#endif /* HAVE_LIBKSTAT */
|
#endif /* HAVE_LIBKSTAT */
|
||||||
hwloc_setup_pu_level(topology, nbprocs);
|
hwloc_setup_pu_level(topology, nbprocs);
|
||||||
}
|
}
|
||||||
|
@ -45,15 +45,25 @@ static void
|
|||||||
hwloc_topology_clear (struct hwloc_topology *topology);
|
hwloc_topology_clear (struct hwloc_topology *topology);
|
||||||
|
|
||||||
#if defined(HAVE_SYSCTLBYNAME)
|
#if defined(HAVE_SYSCTLBYNAME)
|
||||||
int hwloc_get_sysctlbyname(const char *name, int *ret)
|
int hwloc_get_sysctlbyname(const char *name, int64_t *ret)
|
||||||
{
|
{
|
||||||
int n;
|
union {
|
||||||
|
int32_t i32;
|
||||||
|
int64_t i64;
|
||||||
|
} n;
|
||||||
size_t size = sizeof(n);
|
size_t size = sizeof(n);
|
||||||
if (sysctlbyname(name, &n, &size, NULL, 0))
|
if (sysctlbyname(name, &n, &size, NULL, 0))
|
||||||
return -1;
|
return -1;
|
||||||
if (size != sizeof(n))
|
switch (size) {
|
||||||
return -1;
|
case sizeof(n.i32):
|
||||||
*ret = n;
|
*ret = n.i32;
|
||||||
|
break;
|
||||||
|
case sizeof(n.i64):
|
||||||
|
*ret = n.i64;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -93,7 +103,7 @@ hwloc_fallback_nbprocessors(struct hwloc_topology *topology) {
|
|||||||
host_info(mach_host_self(), HOST_BASIC_INFO, (integer_t*) &info, &count);
|
host_info(mach_host_self(), HOST_BASIC_INFO, (integer_t*) &info, &count);
|
||||||
n = info.avail_cpus;
|
n = info.avail_cpus;
|
||||||
#elif defined(HAVE_SYSCTLBYNAME)
|
#elif defined(HAVE_SYSCTLBYNAME)
|
||||||
int n;
|
int64_t n;
|
||||||
if (hwloc_get_sysctlbyname("hw.ncpu", &n))
|
if (hwloc_get_sysctlbyname("hw.ncpu", &n))
|
||||||
n = -1;
|
n = -1;
|
||||||
#elif defined(HAVE_SYSCTL) && HAVE_DECL_CTL_HW && HAVE_DECL_HW_NCPU
|
#elif defined(HAVE_SYSCTL) && HAVE_DECL_CTL_HW && HAVE_DECL_HW_NCPU
|
||||||
|
@ -302,10 +302,12 @@ HWLOC_DIFF_U = @HWLOC_DIFF_U@
|
|||||||
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
||||||
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
||||||
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
||||||
|
HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@
|
||||||
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
||||||
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
||||||
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
||||||
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
||||||
|
HWLOC_LIBS = @HWLOC_LIBS@
|
||||||
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
||||||
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
||||||
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
||||||
|
@ -108,10 +108,12 @@ HWLOC_DIFF_U = @HWLOC_DIFF_U@
|
|||||||
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
||||||
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
||||||
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
||||||
|
HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@
|
||||||
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
||||||
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
||||||
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
||||||
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
||||||
|
HWLOC_LIBS = @HWLOC_LIBS@
|
||||||
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
||||||
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
||||||
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
||||||
|
@ -149,10 +149,12 @@ HWLOC_DIFF_U = @HWLOC_DIFF_U@
|
|||||||
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
||||||
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
||||||
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
||||||
|
HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@
|
||||||
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
||||||
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
||||||
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
||||||
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
||||||
|
HWLOC_LIBS = @HWLOC_LIBS@
|
||||||
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
||||||
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
||||||
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
||||||
|
@ -108,10 +108,12 @@ HWLOC_DIFF_U = @HWLOC_DIFF_U@
|
|||||||
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
||||||
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
||||||
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
||||||
|
HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@
|
||||||
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
||||||
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
||||||
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
||||||
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
||||||
|
HWLOC_LIBS = @HWLOC_LIBS@
|
||||||
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
||||||
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
||||||
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
||||||
|
@ -199,10 +199,12 @@ HWLOC_DIFF_U = @HWLOC_DIFF_U@
|
|||||||
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
||||||
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
||||||
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
||||||
|
HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@
|
||||||
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
||||||
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
||||||
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
||||||
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
||||||
|
HWLOC_LIBS = @HWLOC_LIBS@
|
||||||
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
||||||
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
||||||
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
||||||
|
@ -215,7 +215,7 @@ output_x11(hwloc_topology_t topology, const char *filename __hwloc_attribute_unu
|
|||||||
|
|
||||||
while (!finish) {
|
while (!finish) {
|
||||||
XEvent e;
|
XEvent e;
|
||||||
if (!XEventsQueued(disp->dpy, QueuedAlready)) {
|
if (!XEventsQueued(disp->dpy, QueuedAfterFlush)) {
|
||||||
/* No pending event, flush moving windows before waiting for next event */
|
/* No pending event, flush moving windows before waiting for next event */
|
||||||
if (disp->x != lastx || disp->y != lasty) {
|
if (disp->x != lastx || disp->y != lasty) {
|
||||||
XMoveWindow(disp->dpy, disp->win, -disp->x, -disp->y);
|
XMoveWindow(disp->dpy, disp->win, -disp->x, -disp->y);
|
||||||
|
@ -217,7 +217,7 @@ RECURSE_BEGIN(obj, border) \
|
|||||||
/* Total area for subobjects */ \
|
/* Total area for subobjects */ \
|
||||||
area = (obj_maxwidth + (separator)) * (obj_maxheight + (separator)) * numsubobjs; \
|
area = (obj_maxwidth + (separator)) * (obj_maxheight + (separator)) * numsubobjs; \
|
||||||
/* Ideal total height for spreading that area with RATIO */ \
|
/* Ideal total height for spreading that area with RATIO */ \
|
||||||
idealtotheight = sqrtf(area/RATIO); \
|
idealtotheight = (float) sqrt(area/RATIO); \
|
||||||
/* Underestimated number of rows */ \
|
/* Underestimated number of rows */ \
|
||||||
rows = idealtotheight / (obj_maxheight + (separator)); \
|
rows = idealtotheight / (obj_maxheight + (separator)); \
|
||||||
columns = rows ? (numsubobjs + rows - 1) / rows : 1; \
|
columns = rows ? (numsubobjs + rows - 1) / rows : 1; \
|
||||||
|
@ -175,6 +175,9 @@ support, lstopo outputs an SVG representation of the map.
|
|||||||
.B <filename>.xml
|
.B <filename>.xml
|
||||||
If the filename ends in ".xml" and lstopo was compiled with the proper
|
If the filename ends in ".xml" and lstopo was compiled with the proper
|
||||||
support, lstopo outputs an XML representation of the map.
|
support, lstopo outputs an XML representation of the map.
|
||||||
|
It may be reused later, even on another machine, with lstopo \-\-xml,
|
||||||
|
the HWLOC_XMLFILE environment variable, or the hwloc_topology_set_xml()
|
||||||
|
function.
|
||||||
.
|
.
|
||||||
.PP
|
.PP
|
||||||
See the output of "lstopo \-\-help" for a specific list of what
|
See the output of "lstopo \-\-help" for a specific list of what
|
||||||
@ -241,6 +244,13 @@ To export the topology to a PNG file:
|
|||||||
|
|
||||||
lstopo file.png
|
lstopo file.png
|
||||||
|
|
||||||
|
To export a XML file on a machine and later display the corresponding
|
||||||
|
graphic output on another machine:
|
||||||
|
|
||||||
|
machine1$ lstopo file.xml
|
||||||
|
<transfer file.xml from machine1 to machine2>
|
||||||
|
machine2$ lstopo --xml file.xml
|
||||||
|
|
||||||
To display a summary of the topology:
|
To display a summary of the topology:
|
||||||
|
|
||||||
lstopo -s
|
lstopo -s
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user