1
1
- patch libtool.m4 to fix detection of PGI 10 C++ compiler
- patch configure to fix detection of PGI 10 Fortran compiler (pgfortran)
- checks for MPI:
   - do only check Fortran interoperability if F77 compiler given
   - do not enable MPI-2 I/O support for LAM/MPI
   - added configure checks for PMPI_Win_<lock|unlock|test>, because in LAM-MPI these functions are missing
- checks for LIBC-I/O tracing:
   - pass ldd's stderr output to /dev/null
VT source fixes:
- fixed detection of unique node id on MacOS platforms (use sysctl instead of gethostid)
- fixed yet another Coverity warning
- fixed compiler warnings on MacOS

This commit was SVN r22508.
Этот коммит содержится в:
Matthias Jurenz 2010-01-28 15:36:51 +00:00
родитель 86dd1d41af
Коммит f7822df9b8
14 изменённых файлов: 121 добавлений и 104 удалений

Просмотреть файл

@ -2,14 +2,17 @@
- updated version of internal OTF to 1.6.5openmpi
(see extlib/otf/ChangeLog)
- added functions 'MPI_Group_range_<incl|excl>' to Fortran MPI wrappers
- added environment variable VT_METRICS_SEP to specify a string which separate
the counter names in VT_METRICS
- added environment variable VT_METRICS_SEP to specify a string which
separate the counter names in VT_METRICS
- fixed detection of unique node id on MacOS platforms
- fixed support for LAM/MPI
- fixed build error: do not add objects from the static version of the
BFD library to the shared VT libraries, because the BFD objects might
be built without position independent code (PIC)
- patched libtool to avoid a bug in detection of the PGI 10 compilers
5.8openmpi
- updated version of internal OTF to 1.6.4stingray
- updated version of internal OTF to 1.6.4openmpi
(see extlib/otf/ChangeLog)
- added support for tracing calls to arbitrary third party libraries
The new tool 'vtlibwrapgen' can be used to generate a wrapper library.

Просмотреть файл

@ -22,11 +22,11 @@ AC_DEFUN([ACVT_LIBC],
[
AS_IF([test -r "conftest"],
[
libc_pathname=`ldd conftest | grep "libc\." | \
sed -e "s/.*=>//" \
-e "s/[[\(].*[\)]]//" \
-e "s/[[ ]]//g" \
-e "s%^[[^/]].*%%" | \
libc_pathname=`ldd conftest 2>/dev/null | grep "libc\." | \
sed -e "s/.*=>//" \
-e "s/[[\(].*[\)]]//" \
-e "s/[[ ]]//g" \
-e "s%^[[^/]].*%%" | \
head -n1`
],
[

Просмотреть файл

@ -152,6 +152,7 @@ AC_DEFUN([ACVT_MPI],
MPILIB="-lmpi -llam"
PMPILIB="$MPILIB"
FMPILIB="-llamf77mpi"
check_mpi2_io="no"; have_mpi2_io="no"
])
])
@ -652,7 +653,8 @@ dnl check for MPI-2 One-Sided Communications
AS_IF([test x"$check_mpi2_1sided" = "xyes"],
[
AC_CHECK_FUNC([MPI_Get],
[AC_CHECK_FUNC([MPI_Put], [have_mpi2_1sided="yes"])])
[AC_CHECK_FUNC([MPI_Put], [have_mpi2_1sided="yes"
AC_CHECK_FUNCS([PMPI_Win_test PMPI_Win_lock PMPI_Win_unlock])])])
AS_IF([test x"$force_mpi2_1sided" = "xyes" -a x"$have_mpi2_1sided" = "xno"], [exit 1])
],
[
@ -687,8 +689,14 @@ dnl check for MPI-2 I/O
ACVT_CONF_SUBTITLE([MPI-2 I/O])
AS_IF([test x"$check_mpi2_io" = "xyes"],
[
AC_CHECK_FUNC([MPI_File_open],
[AC_CHECK_FUNC([MPI_File_close], [have_mpi2_io="yes"])])
AC_CHECK_DECL([LAM_MPI],
[
AC_MSG_NOTICE([error: MPI-2 I/O isn't supported for LAM/MPI])
],
[
AC_CHECK_FUNC([MPI_File_open],
[AC_CHECK_FUNC([MPI_File_close], [have_mpi2_io="yes"])])
], [#include "mpi.h"])
AS_IF([test x"$force_mpi2_io" = "xyes" -a x"$have_mpi2_io" = "xno"], [exit 1])
],
[
@ -711,22 +719,22 @@ dnl check for Fortran interoperability
[
ACVT_CONF_SUBTITLE([Fortran interoperability])
AC_CHECK_PROGS(MPIF77, mpif77 hf77 mpxlf_r mpxlf mpf77 cmpifc mpif90 mpxlf95_r mpxlf90_r mpxlf95 mpxlf90 mpf90 cmpif90c)
AS_IF([test x"$MPIF77" != x],
AS_IF([test x"$F77" != x],
[
mpif77=`echo $MPIF77 | cut -d ' ' -f 1`
which_mpif77=`which $mpif77 2>/dev/null`
AS_IF([test x"$which_mpif77" = x], [AC_MSG_ERROR([$mpif77 not found])])
mpi_bin_dir=`dirname $which_mpif77`
AS_IF([test "$mpi_bin_dir" != "/usr/bin"],
AC_CHECK_PROGS(MPIF77, mpif77 hf77 mpxlf_r mpxlf mpf77 cmpifc mpif90 mpxlf95_r mpxlf90_r mpxlf95 mpxlf90 mpf90 cmpif90c)
AS_IF([test x"$MPIF77" != x],
[
AS_IF([test x"$FMPIINCDIR" = x],
[FMPIINCDIR=-I`echo $mpi_bin_dir | sed -e 's/bin/include/'`])
])
],
[
AS_IF([test x"$F77" != x],
mpif77=`echo $MPIF77 | cut -d ' ' -f 1`
which_mpif77=`which $mpif77 2>/dev/null`
AS_IF([test x"$which_mpif77" = x], [AC_MSG_ERROR([$mpif77 not found])])
mpi_bin_dir=`dirname $which_mpif77`
AS_IF([test "$mpi_bin_dir" != "/usr/bin"],
[
AS_IF([test x"$FMPIINCDIR" = x],
[FMPIINCDIR=-I`echo $mpi_bin_dir | sed -e 's/bin/include/'`])
])
],
[
MPIF77="$F77"
AC_MSG_CHECKING([for mpif.h])
@ -745,11 +753,11 @@ EOF
fmpiwraplib_error="yes"
])
rm -f conftest.f conftest.o
],
[
AC_MSG_NOTICE([error: no Fortran 77 compiler command given!])
fmpiwraplib_error="yes"
])
],
[
AC_MSG_NOTICE([error: no Fortran 77 compiler command given!])
fmpiwraplib_error="yes"
])
AS_IF([test x"$check_fc_conv" = "xyes" -a x"$fmpiwraplib_error" = "xno"],

Просмотреть файл

@ -2,6 +2,7 @@
- enforce building position independent code (PIC) for the static
version of the OTF library
(so it's possible to add these objects to 3rd-party shared libraries)
- patched libtool to avoid a bug in detection of the PGI 10 C++ compiler
1.6.4openmpi
- enhanced reading of process group definition records

Просмотреть файл

@ -68,12 +68,12 @@ int main( int argc, char** argv ) {
} else if ( 0 == strcmp( argv[i], "--libs" ) ) {
snprintf( tmp, sizeof(tmp) -1, "-L%s -lotf %s\n",
OTFCONFIG_LIBDIR,
#ifdef HAVE_ZLIB
"-lz" );
snprintf( tmp, sizeof(tmp) -1, "-L%s -lotf -lz\n",
OTFCONFIG_LIBDIR );
#else /* HAVE_ZLIB */
"" );
snprintf( tmp, sizeof(tmp) -1, "-L%s -lotf\n",
OTFCONFIG_LIBDIR );
#endif /* HAVE_ZLIB */
printf( "%s", tmp );

Просмотреть файл

@ -898,7 +898,7 @@ cleanUp()
bool error = false;
uint32_t i;
uint32_t i, j;
char filename1[STRBUFSIZE];
char filename2[STRBUFSIZE];
OTF_FileType filetype;
@ -929,7 +929,7 @@ cleanUp()
//
for( i = 0; i < g_vecUnifyCtls.size(); i++ )
{
for( uint32_t j = 0; j < 4; j++ )
for( j = 0; j < 4; j++ )
{
bool removed = false;
@ -1038,34 +1038,38 @@ cleanUp()
//
for( i = 0; i < g_vecUnifyCtls.size(); i++ )
{
for( uint32_t j = 0; j < 2; j++ )
for( j = 0; j < 2; j++ )
{
OTF_FileType filetype;
bool renamed = false;
if( j == 0 ) filetype = OTF_FILETYPE_EVENT;
else filetype = OTF_FILETYPE_STATS;
if( j == 0 ) filetype = OTF_FILETYPE_EVENT;
else filetype = OTF_FILETYPE_STATS;
OTF_getFilename( tmp_out_file_prefix.c_str(),
g_vecUnifyCtls[i]->streamid,
filetype,
STRBUFSIZE, filename1 );
OTF_getFilename( Params.out_file_prefix.c_str(),
g_vecUnifyCtls[i]->streamid,
filetype,
STRBUFSIZE, filename2 );
OTF_getFilename( tmp_out_file_prefix.c_str(),
g_vecUnifyCtls[i]->streamid, filetype,
STRBUFSIZE, filename1 );
OTF_getFilename( Params.out_file_prefix.c_str(),
g_vecUnifyCtls[i]->streamid, filetype,
STRBUFSIZE, filename2 );
if( access( filename1, F_OK ) != 0 )
{
assert( strlen( filename1 ) + 2 + 1 < sizeof( filename1 ) - 1 );
assert( strlen( filename2 ) + 2 + 1 < sizeof( filename2 ) - 1 );
if( !(renamed = ( rename( filename1, filename2 ) == 0 ) ) )
{
OTF_getFilename( tmp_out_file_prefix.c_str(),
g_vecUnifyCtls[i]->streamid,
filetype | OTF_FILECOMPRESSION_COMPRESSED,
STRBUFSIZE, filename1 );
OTF_getFilename( Params.out_file_prefix.c_str(),
g_vecUnifyCtls[i]->streamid,
filetype | OTF_FILECOMPRESSION_COMPRESSED,
STRBUFSIZE, filename2 );
// file not found, try '.z' suffix
strncat( filename1, ".z", 2 );
strncat( filename2, ".z", 2 );
}
renamed = ( rename( filename1, filename2 ) == 0 );
}
if( rename( filename1, filename2 ) == 0 )
VPrint( 2, " Renamed %s to %s\n", filename1, filename2 );
if( renamed )
{
VPrint( 2, " Renamed %s to %s\n", filename1, filename2 );
}
}
}

Просмотреть файл

@ -37,12 +37,8 @@
#if SIZEOF_LONG == 4
# define ATOL8 atoll
# define S64STR "lli"
# define U64STR "llu"
#else
# define ATOL8 atol
# define S64STR "li"
# define U64STR "lu"
#endif
#ifdef VT_MPI

Просмотреть файл

@ -496,9 +496,9 @@ Definitions::createGlobal( const std::vector<DefRec_Base_struct*> *
// start-time
//
tt = (time_t)(g_uMinStartTimeEpoch / 1e6);
snprintf( comment, sizeof( comment ) - 1, " Start: %s (%"U64STR")",
snprintf( comment, sizeof( comment ) - 1, " Start: %s (%llu)",
asctime(localtime(&tt)),
g_uMinStartTimeEpoch );
(unsigned long long)g_uMinStartTimeEpoch );
p_vecGlobDefs->push_back( new DefRec_DefinitionComment_struct(
1,
comment ) );
@ -506,9 +506,9 @@ Definitions::createGlobal( const std::vector<DefRec_Base_struct*> *
// stop-time
//
tt = (time_t)(g_uMaxStopTimeEpoch / 1e6);
snprintf( comment, sizeof( comment ) - 1, " Stop: %s (%"U64STR")",
snprintf( comment, sizeof( comment ) - 1, " Stop: %s (%llu)",
asctime(localtime(&tt)),
g_uMaxStopTimeEpoch );
(unsigned long long)g_uMaxStopTimeEpoch );
p_vecGlobDefs->push_back( new DefRec_DefinitionComment_struct(
2,
comment ) );
@ -518,11 +518,11 @@ Definitions::createGlobal( const std::vector<DefRec_Base_struct*> *
tt = (time_t)((g_uMaxStopTimeEpoch - g_uMinStartTimeEpoch) / 1e6);
gmtime_r(&tt, &elapsed_tm);
snprintf( comment, sizeof( comment ) - 1,
" Elapsed: %s%d:%s%d:%s%d (%"U64STR")",
elapsed_tm.tm_hour < 10 ? "0" : "", elapsed_tm.tm_hour,
elapsed_tm.tm_min < 10 ? "0" : "", elapsed_tm.tm_min,
elapsed_tm.tm_sec < 10 ? "0" : "", elapsed_tm.tm_sec,
(g_uMaxStopTimeEpoch - g_uMinStartTimeEpoch) );
" Elapsed: %s%d:%s%d:%s%d (%llu)",
elapsed_tm.tm_hour < 10 ? "0" : "", elapsed_tm.tm_hour,
elapsed_tm.tm_min < 10 ? "0" : "", elapsed_tm.tm_min,
elapsed_tm.tm_sec < 10 ? "0" : "", elapsed_tm.tm_sec,
(unsigned long long)(g_uMaxStopTimeEpoch - g_uMinStartTimeEpoch) );
p_vecGlobDefs->push_back( new DefRec_DefinitionComment_struct(
3,
comment ) );

Просмотреть файл

@ -53,12 +53,4 @@
# endif /* _SX && _W8 */
#endif /* VT_MPI || VT_HYB */
#if SIZEOF_LONG == 8
# define S64STR "li"
# define U64STR "lu"
#else /* SIZEOF_LONG */
# define S64STR "lli"
# define U64STR "llu"
#endif /* SIZEOF_LONG */
#endif /* _VT_INTTYPES_H */

Просмотреть файл

@ -569,7 +569,7 @@ off64_t lseek64(int fd, off64_t offset, int whence)
VT_IOWRAP_CHECK_TRACING3(fd, offset, whence);
vt_debug_msg(DBG_IO, stringify(VT_IOWRAP_THISFUNCNAME) ": %i, %" S64STR ", %i", fd, offset, whence);
vt_debug_msg(DBG_IO, stringify(VT_IOWRAP_THISFUNCNAME) ": %i, %lli, %i", fd, (long long)offset, whence);
VT_IOWRAP_ENTER_IOFUNC();
@ -745,7 +745,7 @@ ssize_t pread64(int fd, void *buf, size_t count, off64_t offset)
VT_IOWRAP_CHECK_TRACING4(fd, buf, count, offset);
vt_debug_msg(DBG_IO, stringify(VT_IOWRAP_THISFUNCNAME) ": %i, %zu, %" S64STR, fd, count, offset);
vt_debug_msg(DBG_IO, stringify(VT_IOWRAP_THISFUNCNAME) ": %i, %zu, %lli", fd, count, (long long)offset);
VT_IOWRAP_ENTER_IOFUNC();
@ -772,7 +772,7 @@ ssize_t pwrite64(int fd, const void *buf, size_t count, off64_t offset)
VT_IOWRAP_CHECK_TRACING4(fd, buf, count, offset);
vt_debug_msg(DBG_IO, stringify(VT_IOWRAP_THISFUNCNAME) ": %i, %zu, %" S64STR, fd, count, offset);
vt_debug_msg(DBG_IO, stringify(VT_IOWRAP_THISFUNCNAME) ": %i, %zu, %lli", fd, count, (long long)offset);
VT_IOWRAP_ENTER_IOFUNC();
@ -963,9 +963,9 @@ int fseeko64(FILE *stream, off64_t offset, int whence)
VT_IOWRAP_CHECK_TRACING3(stream, offset, whence);
vt_debug_msg(DBG_IO, stringify(VT_IOWRAP_THISFUNCNAME) ": %i, %" S64STR ", %i",
vt_debug_msg(DBG_IO, stringify(VT_IOWRAP_THISFUNCNAME) ": %i, %lli, %i",
stream != NULL ? fileno(stream) : -1,
offset, whence);
(long long)offset, whence);
VT_IOWRAP_ENTER_IOFUNC();
@ -1049,9 +1049,9 @@ int fsetpos64(FILE *stream, const fpos64_t *pos) {
VT_IOWRAP_CHECK_TRACING2(stream, pos);
/*
vt_debug_msg(DBG_IO, stringify(VT_IOWRAP_THISFUNCNAME) ": %i, %" S64STR,
vt_debug_msg(DBG_IO, stringify(VT_IOWRAP_THISFUNCNAME) ": %i, %lli",
stream != NULL ? fileno(stream) : -1,
pos->__pos);
(long long)pos->__pos);
*/
/* pos->__pos does not exist on every platform */
vt_debug_msg(DBG_IO, stringify(VT_IOWRAP_THISFUNCNAME) ": %i",
@ -1595,7 +1595,7 @@ int lockf(int fd, int function, off_t size)
uint32_t fid = file->vampir_file_id;
if( fid ) {
if( ret != 0 ) {
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %" U64STR, time);
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %llu", time);
vt_ioend( &time, fid, handleid, ioop | VT_IOFLAG_IOFAILED, (uint64_t)num_bytes );
}
else {
@ -1677,7 +1677,7 @@ int fcntl(int fd, int cmd, ...)
uint32_t fid = file->vampir_file_id;
if( fid ) {
if( ret == -1 ) {
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %" U64STR, time);
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %llu", (unsigned long long)time);
vt_ioend( &time, fid, handleid, ioop | VT_IOFLAG_IOFAILED, (uint64_t)num_bytes );
}
else {

Просмотреть файл

@ -442,7 +442,7 @@ EXTERN int(*libc_fprintf)(FILE *, const char *, ...);
#define VT_IOWRAP_ENTER_IOFUNC() \
{ \
enter_time = vt_pform_wtime(); \
vt_debug_msg(DBG_VT_CALL, "vt_enter(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %" U64STR, enter_time); \
vt_debug_msg(DBG_VT_CALL, "vt_enter(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %llu", (unsigned long long)enter_time); \
was_recorded = vt_enter( &enter_time, iofunctions[FUNC_IDX(VT_IOWRAP_THISFUNCNAME)].vt_func_id ); \
if( was_recorded ) { \
handleid = VTTHRD_IO_NEXT_HANDLEID(VTTHRD_MY_VTTHRD); \
@ -471,7 +471,7 @@ EXTERN int(*libc_fprintf)(FILE *, const char *, ...);
} \
if( fid ) { \
if( ERROR_CONDITION ) { \
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %" U64STR, time); \
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %llu", (unsigned long long)time); \
vt_ioend( &time, fid, handleid, ioop | VT_IOFLAG_IOFAILED, (uint64_t)num_bytes ); \
} \
else { \
@ -491,7 +491,7 @@ EXTERN int(*libc_fprintf)(FILE *, const char *, ...);
uint32_t ioop = VT_IOWRAP_FUNCTYPE(VT_IOWRAP_THISFUNCNAME); \
if( ERROR_CONDITION ) { \
uint32_t fid = vt_iofile_id( path ); \
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %" U64STR, time); \
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %llu", (unsigned long long)time); \
vt_ioend( &time, fid, handleid, ioop | VT_IOFLAG_IOFAILED, 0 ); \
} \
else { \
@ -520,7 +520,7 @@ EXTERN int(*libc_fprintf)(FILE *, const char *, ...);
fid = file->vampir_file_id; \
if( fid ) { \
if( ERROR_CONDITION ) { \
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %" U64STR, time); \
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %llu", (unsigned long long)time); \
vt_ioend( &time, fid, handleid, ioop | VT_IOFLAG_IOFAILED, (uint64_t)num_bytes ); \
} \
else { \
@ -544,7 +544,7 @@ EXTERN int(*libc_fprintf)(FILE *, const char *, ...);
uint32_t fid = vt_iofile_id(PATH); \
if( fid ) { \
if( ERROR_CONDITION ) { \
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %" U64STR, time); \
vt_debug_msg(DBG_VT_CALL, "vt_ioend(" stringify(VT_IOWRAP_THISFUNCNAME) "), stamp %llu", (unsigned long long)time); \
vt_ioend( &time, fid, handleid, ioop | VT_IOFLAG_IOFAILED, 0 ); \
} \
else { \

Просмотреть файл

@ -3693,6 +3693,8 @@ VT_MPI_INT MPI_Win_wait( MPI_Win win )
return result;
}
#if defined(HAVE_PMPI_WIN_TEST) && HAVE_PMPI_WIN_TEST
/* -- MPI_Win_test -- */
VT_MPI_INT MPI_Win_test( MPI_Win win, VT_MPI_INT* flag )
@ -3738,6 +3740,10 @@ VT_MPI_INT MPI_Win_test( MPI_Win win, VT_MPI_INT* flag )
return result;
}
#endif /* HAVE_PMPI_WIN_TEST */
#if defined(HAVE_PMPI_WIN_LOCK) && HAVE_PMPI_WIN_LOCK
/* -- MPI_Win_lock -- */
VT_MPI_INT MPI_Win_lock( VT_MPI_INT lock_type,
@ -3775,6 +3781,10 @@ VT_MPI_INT MPI_Win_lock( VT_MPI_INT lock_type,
return result;
}
#endif /* HAVE_PMPI_WIN_LOCK */
#if defined(HAVE_PMPI_WIN_UNLOCK) && HAVE_PMPI_WIN_UNLOCK
/* -- MPI_Win_unlock -- */
VT_MPI_INT MPI_Win_unlock( VT_MPI_INT rank,
@ -3818,6 +3828,8 @@ VT_MPI_INT MPI_Win_unlock( VT_MPI_INT rank,
return result;
}
#endif /* HAVE_PMPI_WIN_UNLOCK */
#endif /* HAVE_MPI2_1SIDED */
/*

Просмотреть файл

@ -306,7 +306,7 @@ void vt_open()
start_time_epoch = ((uint64_t)tv1.tv_sec * (uint64_t)1000000) +
(uint64_t)tv1.tv_usec;
vt_def_comment("__STARTTIME__ %"U64STR, start_time_epoch);
vt_def_comment("__STARTTIME__ %llu", (unsigned long long)start_time_epoch);
}
#if !(defined(VT_MPI) || defined(VT_HYB))
@ -747,7 +747,7 @@ void vt_close()
stop_time_epoch = ((uint64_t)tv0.tv_sec * (uint64_t)1000000) +
(uint64_t)tv0.tv_usec;
vt_def_comment("__STOPTIME__ %"U64STR, stop_time_epoch);
vt_def_comment("__STOPTIME__ %llu", (unsigned long long)stop_time_epoch);
}
/* close trace files */
@ -1369,16 +1369,19 @@ static void vt_write_def_header()
if( tmp_uint64 >= (1024*1024*1024) )
{
tmp_uint64 /= (1024*1024*1024);
snprintf(tmp_char, sizeof(tmp_char)-1, "%"U64STR"G", tmp_uint64);
snprintf(tmp_char, sizeof(tmp_char)-1, "%lluG",
(unsigned long long)tmp_uint64);
}
else if( tmp_uint64 >= (1024*1024) )
{
tmp_uint64 /= (1024*1024);
snprintf(tmp_char, sizeof(tmp_char)-1, "%"U64STR"M", tmp_uint64);
snprintf(tmp_char, sizeof(tmp_char)-1, "%lluM",
(unsigned long long)tmp_uint64);
}
else
{
snprintf(tmp_char, sizeof(tmp_char)-1, "%"U64STR, tmp_uint64);
snprintf(tmp_char, sizeof(tmp_char)-1, "%llu",
(unsigned long long)tmp_uint64);
}
vt_def_comment("__VT_COMMENT__ VT_BUFFER_SIZE: %s", tmp_char);

Просмотреть файл

@ -121,13 +121,11 @@ void vt_pform_init()
free(procargs);
/* get unique numeric SMP-node identifier */
hostid_retries = 0;
while( !vt_node_id && (hostid_retries++ < VT_MAX_GETHOSTID_RETRIES) ) {
vt_node_id = gethostid();
}
if (!vt_node_id)
vt_error_msg("Maximum retries (%i) for gethostid exceeded!",
VT_MAX_GETHOSTID_RETRIES);
mib[0] = CTL_KERN;
mib[1] = KERN_HOSTID;
len = sizeof(vt_node_id);
if (sysctl(mib, 2, &vt_node_id, &len, NULL, 0) == -1)
vt_error_msg("sysctl[KERN_HOSTID] failed: %s", strerror(errno));
}
/* directory of global file system */