2010-05-29 11:10:13 -04:00
|
|
|
#include "pch.h"
|
|
|
|
|
|
2010-05-28 12:08:36 -04:00
|
|
|
#include <cstdlib>
|
|
|
|
|
#include <iostream>
|
|
|
|
|
#include <iomanip>
|
|
|
|
|
#include <sstream>
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
|
|
#include "version.h"
|
|
|
|
|
|
|
|
|
|
namespace mongo {
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// mongo processes version support
|
|
|
|
|
//
|
|
|
|
|
|
2010-11-17 02:06:48 -05:00
|
|
|
const char versionString[] = "1.7.4-pre-";
|
2010-05-28 12:08:36 -04:00
|
|
|
|
|
|
|
|
string mongodVersion() {
|
|
|
|
|
stringstream ss;
|
|
|
|
|
ss << "db version v" << versionString << ", pdfile version " << VERSION << "." << VERSION_MINOR;
|
|
|
|
|
return ss.str();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// git version support
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#ifndef _SCONS
|
|
|
|
|
// only works in scons
|
|
|
|
|
const char * gitVersion(){ return "not-scons"; }
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
void printGitVersion() { log() << "git version: " << gitVersion() << endl; }
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// sys info support
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#ifndef _SCONS
|
|
|
|
|
#if defined(_WIN32)
|
|
|
|
|
string sysInfo(){
|
|
|
|
|
stringstream ss;
|
|
|
|
|
ss << "not-scons win";
|
|
|
|
|
ss << " mscver:" << _MSC_FULL_VER << " built:" << __DATE__;
|
|
|
|
|
ss << " boostver:" << BOOST_VERSION;
|
|
|
|
|
#if( !defined(_MT) )
|
|
|
|
|
#error _MT is not defined
|
|
|
|
|
#endif
|
|
|
|
|
ss << (sizeof(char *) == 8) ? " 64bit" : " 32bit";
|
|
|
|
|
return ss.str();
|
|
|
|
|
}
|
|
|
|
|
#else
|
|
|
|
|
string sysInfo(){ return ""; }
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
|
2010-10-04 16:46:17 -04:00
|
|
|
void printSysInfo() {
|
|
|
|
|
log() << "sys info: " << sysInfo() << endl;
|
|
|
|
|
#if defined(_DURABLE)
|
|
|
|
|
log() << "_DURABLE defined, but durable is not finished" << endl;
|
|
|
|
|
#endif
|
|
|
|
|
}
|
2010-05-28 12:08:36 -04:00
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// 32 bit systems warning
|
|
|
|
|
//
|
|
|
|
|
|
2010-09-02 21:34:41 -04:00
|
|
|
void show_warnings(){
|
|
|
|
|
// each message adds a leading but not a trailing newline
|
|
|
|
|
|
2010-06-17 14:08:00 -04:00
|
|
|
bool warned = false;
|
2010-05-28 12:08:36 -04:00
|
|
|
{
|
|
|
|
|
const char * foo = strchr( versionString , '.' ) + 1;
|
|
|
|
|
int bar = atoi( foo );
|
2010-06-17 14:08:00 -04:00
|
|
|
if ( ( 2 * ( bar / 2 ) ) != bar ) {
|
|
|
|
|
cout << "\n** NOTE: This is a development version (" << versionString << ") of MongoDB.";
|
2010-09-02 21:34:41 -04:00
|
|
|
cout << "\n** Not recommended for production." << endl;
|
2010-06-17 14:08:00 -04:00
|
|
|
warned = true;
|
|
|
|
|
}
|
2010-05-28 12:08:36 -04:00
|
|
|
}
|
|
|
|
|
|
2010-09-02 21:34:41 -04:00
|
|
|
if ( sizeof(int*) == 4 ) {
|
|
|
|
|
cout << endl;
|
|
|
|
|
cout << "** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data" << endl;
|
|
|
|
|
cout << "** see http://blog.mongodb.org/post/137788967/32-bit-limitations" << endl;
|
|
|
|
|
warned = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef __linux__
|
|
|
|
|
if (boost::filesystem::exists("/proc/vz") && !boost::filesystem::exists("/proc/bc")){
|
|
|
|
|
cout << endl;
|
|
|
|
|
cout << "** WARNING: You are running in OpenVZ. This is known to be broken!!!" << endl;
|
|
|
|
|
warned = true;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
2010-06-17 14:08:00 -04:00
|
|
|
|
2010-09-02 21:34:41 -04:00
|
|
|
if (warned)
|
2010-06-17 14:08:00 -04:00
|
|
|
cout << endl;
|
2010-05-28 12:08:36 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|