Description: make the build more reproducible
--- a/c++/src/build-system/configure.ac
+++ b/c++/src/build-system/configure.ac
-@@ -2866,13 +2866,13 @@
+@@ -2914,13 +2914,13 @@ case "$host_os" in
linux*)
kver=`uname -r | sed -e 's/-.*//'`
libcver=`ldd --version | awk 'NR == 1 { print $NF }'`
-signature_hostname=`(hostname || uname -n) 2>/dev/null \
+signature_hostname=`echo debian_build 2>/dev/null \
| sed 's/\..*//; s/-/_/g; 1q'`
- signature="${signature_compiler}_${signature_compiler_version}-${release_debug}${mt_sfx}${dll_sfx}${bit64_sfx}${prof_sfx}--${verbose_host}-${signature_hostname}"
+ signature="${signature_compiler}_${compiler_version}-${release_debug}${mt_sfx}${dll_sfx}${bit64_sfx}${prof_sfx}--${verbose_host}-${signature_hostname}"
AC_DEFINE_UNQUOTED(NCBI_SIGNATURE, "$signature",
--- a/c++/include/algo/blast/core/blast_message.h
+++ b/c++/include/algo/blast/core/blast_message.h
-@@ -117,7 +117,7 @@
+@@ -117,7 +117,7 @@ void Blast_Perror(Blast_Message* *msg, I
/** Convenient define to call the function Blast_PerrorEx. */
#define Blast_PerrorWithLocation(msg, error_code, context) \
* name and line number where the error/warning occurred. This function should
--- a/c++/include/connect/ncbi_util.h
+++ b/c++/include/connect/ncbi_util.h
-@@ -135,7 +135,7 @@
+@@ -135,7 +135,7 @@ extern NCBI_XCONNECT_EXPORT MT_LOCK CORE
*/
#define LOG_WRITE(lg, code, subcode, level, message) \
LOG_Write(lg, code, subcode, level, THIS_MODULE, CORE_CURRENT_FUNCTION, \
#ifdef LOG_DATA
/* AIX's <pthread.h> defines LOG_DATA to be an integer constant;
-@@ -144,7 +144,7 @@
+@@ -144,7 +144,7 @@ extern NCBI_XCONNECT_EXPORT MT_LOCK CORE
#endif
#define LOG_DATA(lg, code, subcode, level, data, size, message) \
LOG_Write(lg, code, subcode, level, THIS_MODULE, CORE_CURRENT_FUNCTION, \
--- a/c++/include/corelib/ncbidiag.hpp
+++ b/c++/include/corelib/ncbidiag.hpp
-@@ -168,7 +168,7 @@
+@@ -168,7 +168,7 @@ NCBI_XNCBI_EXPORT const char* g_DiagUnkn
/// @sa
/// CDiagCompileInfo
#define DIAG_COMPILE_INFO \
NCBI_MAKE_MODULE(NCBI_MODULE))
--- a/c++/include/corelib/test_boost.hpp
+++ b/c++/include/corelib/test_boost.hpp
-@@ -275,7 +275,7 @@
+@@ -273,7 +273,7 @@ static ::NCBI_NS_NCBI::SNcbiTestRegistra
BOOST_JOIN( BOOST_JOIN( test_name, _registrar ), __LINE__ ) ( \
boost::unit_test::make_test_case( \
&BOOST_AUTO_TC_INVOKER( test_name ), #test_name, \
decorators ); \
--- a/c++/include/objtools/blast/seqdb_reader/impl/seqdbgeneral.hpp
+++ b/c++/include/objtools/blast/seqdb_reader/impl/seqdbgeneral.hpp
-@@ -1124,7 +1124,7 @@
+@@ -1124,7 +1124,7 @@ void SeqDB_FileIntegrityAssert(const str
#define SEQDB_FILE_ASSERT(YESNO) \
do { \
if (! (YESNO)) { \
--- a/c++/include/util/ddump_viewer.hpp
+++ b/c++/include/util/ddump_viewer.hpp
-@@ -49,7 +49,7 @@
+@@ -49,7 +49,7 @@ BEGIN_NCBI_SCOPE
//
#define DEBUGDUMP_BPT(name,obj) \
//---------------------------------------------------------------------------
--- a/c++/include/util/static_set.hpp
+++ b/c++/include/util/static_set.hpp
-@@ -886,17 +886,17 @@
+@@ -886,17 +886,17 @@ public:
static const Type Var
#define DEFINE_STATIC_ARRAY_MAP(Type, Var, Array) \
#else /* MBEDTLS_DEBUG_C */
--- a/c++/src/connect/ncbi_lbos_cxx.cpp
+++ b/c++/src/connect/ncbi_lbos_cxx.cpp
-@@ -145,7 +145,7 @@
+@@ -146,7 +146,7 @@ std::string CLBOSIpCache::HostnameResolv
{
/* Hostname should not be empty in any case */
if (hostname.empty()) {
CLBOSException::eUnknown,
"Internal error in LBOS Client IP Cache. Please contact developer",
eLBOS_BadRequest);
-@@ -217,7 +217,7 @@
+@@ -218,7 +218,7 @@ static void s_ProcessResult(unsigned sho
if (lbos_answer != NULL) {
message << " " << lbos_answer;
}
CLBOSException::s_HTTPCodeToEnum(result),
message.str(), result);
}
-@@ -248,7 +248,7 @@
+@@ -249,7 +249,7 @@ void LBOS::Announce(const string& servi
/* If we could not parse healthcheck URL, throw "Invalid Arguments" */
if (cur_host.empty()) {
ConnNetInfo_Destroy(healthcheck_info);
CLBOSException::eInvalidArgs,
NStr::IntToString(eLBOS_InvalidArgs),
eLBOS_InvalidArgs);
-@@ -307,7 +307,7 @@
+@@ -308,7 +308,7 @@ void LBOS::AnnounceFromRegistry(const st
port_int = NStr::StringToInt(port_str);
}
catch (...) {
CLBOSException::eInvalidArgs,
"Could not parse port \"" + port_str +
"\" in section \"" + reg_section + "\"",
-@@ -315,7 +315,7 @@
+@@ -316,7 +316,7 @@ void LBOS::AnnounceFromRegistry(const st
}
if (port_int < 1 || port_int > 65535)
{
CLBOSException::eInvalidArgs,
"Invalid server port \"" + port_str +
"\" in section \"" + reg_section + "\"",
-@@ -623,7 +623,7 @@
+@@ -624,7 +624,7 @@ void LBOS::CMetaData::Set(const CTempStr
/* Forbidden names for meta parameters */
if (name == "version" || name == "ip" || name == "port" || name == "check"
|| name == "format" || name == "name") {
CLBOSException::eInvalidArgs,
"This name cannot be used for metadata",
eLBOS_InvalidArgs);
-@@ -679,7 +679,7 @@
+@@ -680,7 +680,7 @@ void LBOS::CMetaData::SetRate(const stri
SetRate(NStr::StringToInt(rate));
}
catch (const CStringException&) {
CLBOSException::eInvalidArgs,
"Could not parse string value for SetRate",
eLBOS_InvalidArgs);
-@@ -706,7 +706,7 @@
+@@ -707,7 +707,7 @@ double LBOS::CMetaData::GetRate() const
return NStr::StringToDouble(rate);
}
catch (const CStringException&) {
CLBOSException::eInvalidArgs,
"Value in \"rate\" meta parameter cannot "
"be represented as an integer",
-@@ -718,7 +718,7 @@
+@@ -719,7 +719,7 @@ double LBOS::CMetaData::GetRate() const
void LBOS::CMetaData::SetType(const string& host_type)
{
if (host_type.find_first_of(" \t\n\v\f\r") != string::npos) {
CLBOSException::eInvalidArgs,
"This convenience function throws on whitespace characters "
"in \"type\" meta parameter. If you know what you are doing, "
-@@ -759,7 +759,7 @@
+@@ -760,7 +760,7 @@ void LBOS::CMetaData::SetType(EHostType
SetType("");
break;
default:
CLBOSException::eInvalidArgs, "Unknown EHostType "
"value. If you are sure that a correct value is "
"used, please tell the developer about this issue",
-@@ -793,7 +793,7 @@
+@@ -794,7 +794,7 @@ void LBOS::CMetaData::SetType(ESERV_Type
SetType("FIREWALL");
break;
default:
CLBOSException::eInvalidArgs, "Unknown ESERV_Type "
"value. If you are sure that a correct value is "
"used, please tell the developer about this issue",
-@@ -824,7 +824,7 @@
+@@ -825,7 +825,7 @@ void LBOS::CMetaData::SetType(int host_t
SetType("");
break;
default:
CLBOSException::eInvalidArgs, "Unknown EHostType "
"value. If you are sure that a correct value is "
"used, please tell the developer about this issue",
-@@ -870,7 +870,7 @@
+@@ -871,7 +871,7 @@ LBOS::CMetaData::EHostType LBOS::CMetaDa
void LBOS::CMetaData::SetExtra(const string& extra)
{
if (extra.find_first_of(" \t\n\v\f\r") != string::npos) {
"in \"extra\" meta parameter. If you know what you are doing, "
--- a/c++/src/connect/ncbi_monkey.cpp
+++ b/c++/src/connect/ncbi_monkey.cpp
-@@ -83,7 +83,7 @@
+@@ -83,7 +83,7 @@ const string kEnablField
const string kSeedField = "seed";
#define PARAM_TWICE_EXCEPTION(param) \
NULL, CMonkeyException::e_MonkeyInvalidArgs, \
string("Parameter \"" param "\" is set " \
"twice in [") + GetSection() + "]" + \
-@@ -371,7 +371,7 @@
+@@ -371,7 +371,7 @@ static string s_RuleTypeString(EMonkeyAc
case eMonkey_Send:
return "write";
default:
NULL, CMonkeyException::e_MonkeyInvalidArgs,
string("Unknown EMonkeyActionType value"));
}
-@@ -390,7 +390,7 @@
+@@ -390,7 +390,7 @@ static string s_SocketCallString(EMonkey
case eMonkey_Connect:
return "connect()";
default:
NULL, CMonkeyException::e_MonkeyInvalidArgs,
string("Unknown EMonkeyActionType value"));
}
-@@ -467,7 +467,7 @@
+@@ -467,7 +467,7 @@ unsigned short CMonkeyRuleBase::GetProba
{
if (m_RunPos.find(sock) == m_RunPos.end()) {
throw CMonkeyException(
NULL, CMonkeyException::e_MonkeyInvalidArgs,
"The socket provided has not been registered with current rule");
}
-@@ -511,7 +511,7 @@
+@@ -511,7 +511,7 @@ void CMonkeyRuleBase::x_ReadEIOStatus(co
m_ReturnStatus = eIO_Closed;
} else if (eIOStatus == "eio_invalidarg") {
throw CMonkeyException(
NULL, CMonkeyException::e_MonkeyInvalidArgs,
string("Unsupported 'return_status': ") + eIOStatus_in);
} else if (eIOStatus == "eio_interrupt") {
-@@ -526,7 +526,7 @@
+@@ -526,7 +526,7 @@ void CMonkeyRuleBase::x_ReadEIOStatus(co
m_ReturnStatus = eIO_NotSupported;
} else {
throw CMonkeyException(
NULL, CMonkeyException::e_MonkeyInvalidArgs,
string("Could not parse 'return_status': ") + eIOStatus_in);
}
-@@ -543,7 +543,7 @@
+@@ -543,7 +543,7 @@ void CMonkeyRuleBase::x_ReadRuns(const s
split it on commas*/
vector<string> runs_list = s_Monkey_Split(runs, ',');
if (runs_list.size() == 0)
NULL, CMonkeyException::e_MonkeyInvalidArgs,
string("Parameter \"runs\" is empty in [")
+ m_Section + "]" +
-@@ -573,7 +573,7 @@
+@@ -573,7 +573,7 @@ void CMonkeyRuleBase::x_ReadRuns(const s
if (m_RunMode == eMonkey_RunProbability) {
if (*run.rbegin() != '%') {
throw CMonkeyException(
NULL, CMonkeyException::e_MonkeyInvalidArgs,
"Value is not percentage: " + run +
", values have to be either only percentages or "
-@@ -593,7 +593,7 @@
+@@ -593,7 +593,7 @@ void CMonkeyRuleBase::x_ReadRuns(const s
size_t last_step = m_Runs.size();
if (last_step == 0 && step != 1) {
throw CMonkeyException(
NULL, CMonkeyException::e_MonkeyInvalidArgs,
"In the string of runs: " + runs + " the first "
"element MUST set value for the first run");
-@@ -610,7 +610,7 @@
+@@ -610,7 +610,7 @@ void CMonkeyRuleBase::x_ReadRuns(const s
assert(run_format == eMonkey_RunSequence);
if (*run.rbegin() == '%') {
throw CMonkeyException(
NULL, CMonkeyException::e_MonkeyInvalidArgs,
string("Value is percentage: ") + run +
string(", values have to be either only percentages or "
-@@ -619,7 +619,7 @@
+@@ -619,7 +619,7 @@ void CMonkeyRuleBase::x_ReadRuns(const s
int val = NStr::StringToInt(run);
if (m_Runs.size() > 0 && val <= *m_Runs.rbegin()) {
throw CMonkeyException(
NULL, CMonkeyException::e_MonkeyInvalidArgs,
string("\"runs\" should contain values in "
"increasing order"));
-@@ -815,7 +815,7 @@
+@@ -815,7 +815,7 @@ CMonkeyConnectRule::CMonkeyConnectRule(s
string value = name_value[1];
if (name == "allow") {
if (allow_set) {
NULL,
CMonkeyException::e_MonkeyInvalidArgs,
string("Parameter \"allow\" is set "
-@@ -827,7 +827,7 @@
+@@ -827,7 +827,7 @@ CMonkeyConnectRule::CMonkeyConnectRule(s
}
}
if (!allow_set)
NULL, CMonkeyException::e_MonkeyInvalidArgs,
string("Parameter \"allow\" not set in [")
+ GetSection() + "]" +
-@@ -902,7 +902,7 @@
+@@ -902,7 +902,7 @@ CMonkeyPollRule::CMonkeyPollRule(string
string value = name_value[1];
if (name == "ignore") {
if (ignore_set) {
NULL,
CMonkeyException::e_MonkeyInvalidArgs,
string("Parameter \"ignore\" is set "
-@@ -914,7 +914,7 @@
+@@ -914,7 +914,7 @@ CMonkeyPollRule::CMonkeyPollRule(string
}
}
if (!ignore_set) {
NULL, CMonkeyException::e_MonkeyInvalidArgs,
string("Parameter \"ignore\" not set in [")
+ GetSection() + "]" +
-@@ -1032,7 +1032,7 @@
+@@ -1032,7 +1032,7 @@ static bool s_MatchRegex(const string& t
".*" , "");
if (filtered.find_first_of("[]()+^?{}$.*\\") != string::npos) {
throw CMonkeyException(
NULL,
CMonkeyException::e_MonkeyInvalidArgs,
exception_message);
-@@ -1051,7 +1051,7 @@
+@@ -1051,7 +1051,7 @@ static bool s_MatchRegex(const string& t
}
else {
throw CMonkeyException(
NULL,
CMonkeyException::e_MonkeyInvalidArgs,
exception_message);
-@@ -1179,7 +1179,7 @@
+@@ -1179,7 +1179,7 @@ bool CMonkeyPlan::WriteRule(MONKEY_SOCKT
ss << "Probability below zero for write rule in plan " << m_Name
<< ". Check config!";
throw CMonkeyException(
NULL, CMonkeyException::e_MonkeyInvalidArgs,
ss.str());
}
-@@ -1221,7 +1221,7 @@
+@@ -1221,7 +1221,7 @@ bool CMonkeyPlan::ReadRule(MONKEY_SOCKTY
stringstream ss;
ss << "Probability below zero for write rule in plan " << m_Name
<< ". Check config!";
NULL, CMonkeyException::e_MonkeyInvalidArgs,
ss.str());
}
-@@ -1270,7 +1270,7 @@
+@@ -1270,7 +1270,7 @@ bool CMonkeyPlan::ConnectRule(MONKEY_SOC
stringstream ss;
ss << "Probability below zero for write rule in plan " << m_Name
<< ". Check config!";
NULL, CMonkeyException::e_MonkeyInvalidArgs,
ss.str());
}
-@@ -1313,7 +1313,7 @@
+@@ -1313,7 +1313,7 @@ bool CMonkeyPlan::PollRule(size_t* n
ss << "Probability below zero for write rule in plan " << m_Name
<< ". Check config!";
throw CMonkeyException(
NULL, CMonkeyException::e_MonkeyInvalidArgs,
ss.str());
}
-@@ -1372,7 +1372,7 @@
+@@ -1372,7 +1372,7 @@ CMonkey::CMonkey() : m_Probability(100),
{
if (sm_HookSwitch == NULL) {
throw CMonkeyException(
NULL, CMonkeyException::e_MonkeyInvalidArgs,
"Launch CONNECT_Init() before initializing CMonkey instance");
}
-@@ -1458,7 +1458,7 @@
+@@ -1458,7 +1458,7 @@ void CMonkey::ReloadConfig(const string&
prob = (int)(NStr::StringToDouble(prob_str) * 100);
}
if (prob < 0 || prob > 100) {
NULL,
CMonkeyException::e_MonkeyInvalidArgs,
"Parameter \"probability\"=" + prob_str
-@@ -1469,7 +1469,7 @@
+@@ -1469,7 +1469,7 @@ void CMonkey::ReloadConfig(const string&
m_Probability = (unsigned short)prob;
}
catch (const CStringException&) {
NULL, CMonkeyException::e_MonkeyInvalidArgs,
"Parameter \"probability\"=" + prob_str
+ " for section [" + monkey_section
-@@ -1757,7 +1757,7 @@
+@@ -1757,7 +1757,7 @@ bool CMonkey::RegisterThread(int token)
<< " has been already registered in CMonkey and cannot be used again";
if (m_RegisteredTokens.find(token) != m_RegisteredTokens.end()) {
throw CMonkeyException(
}
--- a/c++/src/connect/ncbi_priv.h
+++ b/c++/src/connect/ncbi_priv.h
-@@ -222,7 +222,7 @@
+@@ -222,7 +222,7 @@ extern NCBI_XCONNECT_EXPORT LOG g_CORE_L
_mess.level = _xx_level; \
_mess.module = THIS_MODULE; \
_mess.func = CORE_CURRENT_FUNCTION; \
_mess.raw_size = (_raw_size); \
--- a/c++/src/objects/seqfeat/BioSource.cpp
+++ b/c++/src/objects/seqfeat/BioSource.cpp
-@@ -941,7 +941,7 @@
+@@ -941,7 +941,7 @@ static const char* const s_IgnoreCaseQua
};
typedef CStaticArraySet<const char*, PNocase_CStr> TCIgnoreCaseQualsSet;
bool s_MayIgnoreCase(const string& value)
{
-@@ -963,7 +963,7 @@
+@@ -963,7 +963,7 @@ static const char* const s_TaxNameElemen
};
typedef CStaticArraySet<const char*, PNocase_CStr> TCTaxNameElementQualsSet;
bool s_IsTaxNameElement(const string& value)
{
-@@ -1367,7 +1367,7 @@
+@@ -1367,7 +1367,7 @@ static const char* const s_StopWords[] =
};
typedef CStaticArraySet<const char*, PNocase_CStr> TCStopWordStrSet;
bool CBioSource::IsStopWord(const string& value)
--- a/c++/src/objects/seqfeat/SubSource.cpp
+++ b/c++/src/objects/seqfeat/SubSource.cpp
-@@ -3080,7 +3080,7 @@
+@@ -3120,7 +3120,7 @@ static const char* const s_Countries[] =
"Zimbabwe"
};
typedef CStaticArraySet<const char*, PCase_CStr> TCStrSet;
// former legal country names, must be in alphabetical order (case sensitive)
static const char* const s_Former_Countries[] = {
-@@ -3098,7 +3098,7 @@
+@@ -3140,7 +3140,7 @@ static const char* const s_Former_Countr
"Yugoslavia",
"Zaire"
};
{
--- a/c++/src/serial/datatool/classstr.cpp
+++ b/c++/src/serial/datatool/classstr.cpp
-@@ -850,7 +850,7 @@
+@@ -850,7 +850,7 @@ mem_simple = false;
" if (!CanGet"<< mem_cName<<"()) {\n"
" ThrowUnassigned("<<member_index;
#if 0
" }\n";
--- a/c++/src/serial/serialobject.cpp
+++ b/c++/src/serial/serialobject.cpp
-@@ -295,7 +295,7 @@
+@@ -295,7 +295,7 @@ void CSerialObject::ThrowUnassigned(TMem
// set temporary diag compile info to use argument file name and line
#undef DIAG_COMPILE_INFO
#define DIAG_COMPILE_INFO \
file_line? file_line: __LINE__, \
NCBI_CURRENT_FUNCTION, \
NCBI_MAKE_MODULE(NCBI_MODULE))
-@@ -303,7 +303,7 @@
+@@ -303,7 +303,7 @@ void CSerialObject::ThrowUnassigned(TMem
// restore original diag compile info definition
#undef DIAG_COMPILE_INFO
#define DIAG_COMPILE_INFO \
NCBI_MAKE_MODULE(NCBI_MODULE))
--- a/c++/src/util/lmdb/mdb.c
+++ b/c++/src/util/lmdb/mdb.c
-@@ -1523,7 +1523,7 @@
+@@ -1533,7 +1533,7 @@ mdb_strerror(int err)
#ifndef NDEBUG
# define mdb_assert0(env, expr, expr_txt) ((expr) ? (void)0 : \
} while (0)
--- a/c++/src/util/static_set.cpp
+++ b/c++/src/util/static_set.cpp
-@@ -87,7 +87,7 @@
+@@ -87,7 +87,7 @@ void CArrayHolder::Convert(const void* s
TParamStaticArrayCopyWarning::GetDefault()) ) {
// report incorrect usage
CDiagCompileInfo diag_compile_info
file? line: __LINE__,
NCBI_CURRENT_FUNCTION,
NCBI_MAKE_MODULE(NCBI_MODULE));
-@@ -122,7 +122,7 @@
+@@ -122,7 +122,7 @@ void ReportUnsafeStaticType(const char*
if ( TParamStaticArrayUnsafeTypeWarning::GetDefault() ) {
// report incorrect usage
CDiagCompileInfo diag_compile_info
file? line: __LINE__,
NCBI_CURRENT_FUNCTION,
NCBI_MAKE_MODULE(NCBI_MODULE));
-@@ -145,7 +145,7 @@
+@@ -145,7 +145,7 @@ void ReportIncorrectOrder(size_t curr_in
{
{ // report incorrect usage
CDiagCompileInfo diag_compile_info
Description: Support GCC 10+.
Debian-Bug: 957581.
-* build system: Formally recognize GCC 10 and up, even if (as in
- Debian) -dumpversion reports only one or two components of the
- version number. These patches correspond to merges of
-
- https://www.ncbi.nlm.nih.gov/viewvc/v1?view=revision&revision=88985
- https://www.ncbi.nlm.nih.gov/viewvc/v1?view=revision&revision=88988
- https://www.ncbi.nlm.nih.gov/viewvc/v1?view=revision&revision=88989
- https://www.ncbi.nlm.nih.gov/viewvc/v1?view=revision&revision=89711
-
- though the last of those doesn't apply cleanly without some
- intervening changes for better Clang support.
-
* ncbifile.cpp (s_GetFileSystemInfo): Formally cast st.f_type to avoid
narrowing errors for cases with the high bit set when that field is
a 32-bit signed integer (as on i386).
-Index: b/c++/src/build-system/config.h.in
-===================================================================
---- a/c++/src/build-system/config.h.in
-+++ b/c++/src/build-system/config.h.in
-@@ -966,7 +966,7 @@
- /* Compiler name */
- #undef NCBI_COMPILER_UNKNOWN
-
--/* Compiler version as three-digit integer */
-+/* Compiler version as three- or four-digit integer */
- #undef NCBI_COMPILER_VERSION
-
- /* Compiler name */
-Index: b/c++/src/build-system/configure
-===================================================================
---- a/c++/src/build-system/configure
-+++ b/c++/src/build-system/configure
-@@ -8233,9 +8233,10 @@ fi
- case "$compiler:$ncbi_compiler_ver" in
- WorkShop*:?.?? ) ncbi_compiler_sed='s/\([0-9]\)\.\([0-9][0-9]\)/\1\20/' ;;
- WorkShop*:[6-9].?) ncbi_compiler_sed='s/\([0-9]\)\.\([0-9\)/\10\20/' ;;
-- ICC:??.? ) ncbi_compiler_sed='s/\([0-9][0-9]\)\.\([0-9]\)/\1\20/' ;;
-- ICC:??.?.? | \
-- ICC:??.?.?.* ) ncbi_compiler_sed='s/\([0-9][0-9]\)\.\([0-9]\)\.\([0-9]\).*/\1\2\3/' ;;
-+ [GI]CC:??.? ) ncbi_compiler_sed='s/\([0-9][0-9]\)\.\([0-9]\)/\1\20/' ;;
-+ GCC:??.?.? | ICC:??.?.? | ICC:??.?.?.* )
-+ ncbi_compiler_sed='s/\([0-9][0-9]\)\.\([0-9]\)\.\([0-9]\).*/\1\2\3/' ;;
-+ GCC:?? ) ncbi_compiler_sed='s/\([0-9][0-9]\)/\100/' ;;
- *:?.?.?) ncbi_compiler_sed='s/\([0-9]\)\.\([0-9]\)\.\([0-9]\)/\1\2\3/' ;;
- *:?.??*) ncbi_compiler_sed='s/\([0-9]\)\.\([0-9][0-9]\).*/\1\2/' ;;
- *:?.?) ncbi_compiler_sed='s/\([0-9]\).\([0-9]\)/\1\20/' ;;
-@@ -8455,10 +8456,7 @@ if test "$with_mt" != "no" ; then
- # Will allegedly support -openmp at some point, but as of 3.4,
- # just parses it as specifying an output filename: -o penmp.
- else
-- case "$compiler_version" in
-- [123]?? | 4[01]? ) ;;
-- * ) : ${OPENMP_FLAGS=-fopenmp} ;;
-- esac
-+ : ${OPENMP_FLAGS=-fopenmp}
- fi
- ;;
- ICC )
-@@ -8510,16 +8508,14 @@ case "$host_os:$compiler" in
- # "incomplete type is not allowed" should be an error, not a warning!
- CFLAGS="-we70 $CFLAGS"
- CXXFLAGS="-we70 $CXXFLAGS"
-- case "$compiler_version" in
-- 1[1-9]?? ) MATH_LIBS=-Wl,-lm ;; # avoid static libimf in shared libs
-- esac
-+ MATH_LIBS=-Wl,-lm # avoid static libimf in shared libs
- ;;
-
- linux*:GCC )
- if test -r $srcdir/src/build-system/config.site.ncbi && test -d "$NCBI"
- then
- case "$compiler_version" in
-- 5* ) CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0 $CPPFLAGS" ;;
-+ 5?? ) CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0 $CPPFLAGS" ;;
- esac
- fi
- ;;
-@@ -9888,7 +9884,7 @@ esac
- ### large file support (switch to AC_SYS_LARGEFILE?)
- case "$host_os:$compiler:$compiler_version" in
- cygwin* ) with_lfs=no ;;
-- *:GCC:3[4-9]* | *:GCC:[4-9]* | *:ICC:[91]* ) : ${with_lfs=yes} ;;
-+ *:GCC:* | *:ICC:* ) : ${with_lfs=yes} ;;
- esac
-
- if test "$with_lfs" = "yes" ; then
-@@ -9910,17 +9906,9 @@ wsrx="[$wschars]"
- #### Flags to enable (potentially unsafe) extra optimization.
- if test "$skip_fast_flags" = no -a -z "$DEF_FAST_FLAGS" ; then
- case "$compiler:$compiler_version" in
-- GCC:2* | GCC:344 )
-- # GCC 2.9x sometimes experiences internal errors at high optimization;
-- # GCC 3.4.4 (at least on FreeBSD) meanwhile generates crashprone code.
-- DEF_FAST_FLAGS="-O2"
-- ;;
- GCC:* )
- DEF_FAST_FLAGS="-O3 -finline-functions -fstrict-aliasing"
-- case "$host_os:$host_cpu:$compiler_version" in
-- freebsd* | solaris*:*86*:* | *:4[5-9]? | *:[5-9]?? ) ;;
-- * ) DEF_FAST_FLAGS="$DEF_FAST_FLAGS -ffast-math" ;;
-- esac
-+ # DEF_FAST_FLAGS="$DEF_FAST_FLAGS -ffast-math" ;;
- if test "$with_profiling" != "yes"; then
- # incompatible with -pg
- DEF_FAST_FLAGS="$DEF_FAST_FLAGS -fomit-frame-pointer"
-@@ -9958,15 +9946,6 @@ if test "$skip_fast_flags" = no -a -z "$
- solaris* ) DEF_FAST_FLAGS="$DEF_FAST_FLAGS -fast $ARCH_CFLAGS" ;;
- esac
- ;;
-- ICC:[1-8]?? )
-- DEF_FAST_FLAGS="-O2"
-- ;;
-- ICC:9?? )
-- DEF_FAST_FLAGS="-O3 -axP -ip" # optimized for Core or P4 w/SSE3 (max)
-- ;;
-- ICC:10?? )
-- DEF_FAST_FLAGS="-O3 -axT -ip" # Core 2 w/SSSE3; axS would cover SSE 4.1
-- ;;
- ICC:* )
- # Core 2; ICC 11 goes up to SSE4.2 (i7), ICC 12 up to CORE-AVX-I
- DEF_FAST_FLAGS="-O3 -axSSSE3 -ip"
-@@ -10108,12 +10087,7 @@ echo "$as_me: error: Unable to find stat
- ;;
- GCC:* )
- # Need to specify runpath for compiler-provided libraries
-- case $compiler_version in
-- 30* ) major=3 ;;
-- 31* ) major=4 ;;
-- 3[23]*) major=5 ;;
-- * ) major=6 ;;
-- esac
-+ major=6 # true for all supported versions at present
- found=false
- for f in libstdc++.so.$major libgcc_s.so.1 libstdc++.a; do
- path=`$CXX $LDFLAGS -print-file-name=$f`
-@@ -10294,9 +10268,6 @@ esac
- if test "$compiler" = "GCC" ; then
- CFLAGS="-Wall -Wno-format-y2k $CFLAGS"
- CXXFLAGS="-Wall -Wno-format-y2k $CXXFLAGS"
-- case "$compiler_version" in
-- 2* ) CXXFLAGS="-ftemplate-depth-32 $CXXFLAGS" ;;
-- esac
- case "$host_os" in
- solaris* ) CPPFLAGS="-D__EXTENSIONS__ $CPPFLAGS" ;;
- irix* ) CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS" ;;
-@@ -13214,13 +13185,11 @@ _ACEOF
- ;;
- linux* | *gnu* ) # | *bsd*
- case "$compiler:$compiler_version" in
-- ICC:9* | ICC:1??? )
-+ ICC:* )
- ncbi_cv_prog_cc_wl_no_asu=no
- LIBS="$LIBS -lc"
- C_LIBS="$C_LIBS -lc"
- ;;
-- ICC:* )
-- ;;
- * )
- FORBID_UNDEF='-Wl,--no-undefined'
- ;;
-@@ -13963,7 +13932,7 @@ echo "$as_me: error: --with-max-debug=$w
- echo " $LDFLAGS " | $EGREP_Q "$dbgrx1|$dbgrx2" || LDFLAGS="$LDFLAGS -g"
- STRIP="@:"
- case "$compiler:$compiler_version" in
-- GCC:4[89]? | GCC:[5-9]? | GCC:???? )
-+ GCC:* )
- # GCC 4.8 defaults to DWARF 4, which Totalview for one
- # can't handle; roll back to version 3 by default.
- echo " $USER_CFLAGS " | $EGREP_Q "$dbgrx1|$dbgrx2" || \
-@@ -25344,10 +25313,6 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
- # Avoid using unsupported (and noisily ignored) attributes.
- case "$compiler:$compiler_version" in
-- GCC:2* | GCC:3[01]* )
-- ncbi_cv_c_deprecation_syntax=none
-- ncbi_cv_c_forceinline=inline
-- ;;
- VisualAge:* )
- ncbi_cv_c_forceinline=inline
- ;;
-@@ -25585,7 +25550,7 @@ _ACEOF
- fi
-
- case "$compiler:$compiler_version $CFLAGS $CXXFLAGS" in
-- GCC:[4-9]??\ *\ -fvisibility*|ICC:*\ -fvisibility* ) ;;
-+ GCC:*\ *\ -fvisibility* | ICC:*\ -fvisibility* ) ;;
- * ) ncbi_cv_c_attribute_visibility_default=unnecessary ;;
- esac
-
-@@ -37178,7 +37143,7 @@ _ACEOF
- # when using Boost at all.
- BOOST_INCLUDE="$BOOST_INCLUDE -erroff=reftotemp"
- ;;
-- GCC*:4[7-9]* | GCC*:5*)
-+ GCC*)
- # Some portions of Boost also have a lot of "unused" typedefs
- # from concept checking.
- BOOST_INCLUDE="$BOOST_INCLUDE -Wno-unused-local-typedefs"
-@@ -37221,6 +37186,7 @@ echo $ECHO_N "checking for Boost library
- *:MSVC) BOOST_TAG="-vc" ;;
- esac
- case "$BOOST_TAG" in
-+ # Still valid for version 10.x and up?
- -*gcc|-il ) boost_comp_vers=`echo $compiler_version | cut -c1-2` ;;
- * ) boost_comp_vers='' ;;
- esac
-Index: b/c++/src/build-system/configure.ac
-===================================================================
---- a/c++/src/build-system/configure.ac
-+++ b/c++/src/build-system/configure.ac
-@@ -1257,9 +1257,10 @@ changequote(, )dnl
- case "$compiler:$ncbi_compiler_ver" in
- WorkShop*:?.?? ) ncbi_compiler_sed='s/\([0-9]\)\.\([0-9][0-9]\)/\1\20/' ;;
- WorkShop*:[6-9].?) ncbi_compiler_sed='s/\([0-9]\)\.\([0-9\)/\10\20/' ;;
-- ICC:??.? ) ncbi_compiler_sed='s/\([0-9][0-9]\)\.\([0-9]\)/\1\20/' ;;
-- ICC:??.?.? | \
-- ICC:??.?.?.* ) ncbi_compiler_sed='s/\([0-9][0-9]\)\.\([0-9]\)\.\([0-9]\).*/\1\2\3/' ;;
-+ [GI]CC:??.? ) ncbi_compiler_sed='s/\([0-9][0-9]\)\.\([0-9]\)/\1\20/' ;;
-+ GCC:??.?.? | ICC:??.?.? | ICC:??.?.?.* )
-+ ncbi_compiler_sed='s/\([0-9][0-9]\)\.\([0-9]\)\.\([0-9]\).*/\1\2\3/' ;;
-+ GCC:?? ) ncbi_compiler_sed='s/\([0-9][0-9]\)/\100/' ;;
- *:?.?.?) ncbi_compiler_sed='s/\([0-9]\)\.\([0-9]\)\.\([0-9]\)/\1\2\3/' ;;
- *:?.??*) ncbi_compiler_sed='s/\([0-9]\)\.\([0-9][0-9]\).*/\1\2/' ;;
- *:?.?) ncbi_compiler_sed='s/\([0-9]\).\([0-9]\)/\1\20/' ;;
-@@ -1287,7 +1288,7 @@ fi
- AC_DEFINE_UNQUOTED(NCBI_COMPILER, "$ncbi_compiler", [Compiler name])
- AC_DEFINE_UNQUOTED(NCBI_COMPILER_$ncbi_compiler, 1, [Compiler name])
- AC_DEFINE_UNQUOTED(NCBI_COMPILER_VERSION, $ncbi_compiler_ver,
-- [Compiler version as three-digit integer])
-+ [Compiler version as three- or four-digit integer])
-
-
- #### Additional check for pre-defined compilers
-@@ -1407,10 +1408,7 @@ if test "$with_mt" != "no" ; then
- # Will allegedly support -openmp at some point, but as of 3.4,
- # just parses it as specifying an output filename: -o penmp.
- else
-- case "$compiler_version" in
-- [[123]]?? | 4[[01]]? ) ;;
-- * ) : ${OPENMP_FLAGS=-fopenmp} ;;
-- esac
-+ : ${OPENMP_FLAGS=-fopenmp}
- fi
- ;;
- ICC )
-@@ -1462,16 +1460,14 @@ case "$host_os:$compiler" in
- # "incomplete type is not allowed" should be an error, not a warning!
- CFLAGS="-we70 $CFLAGS"
- CXXFLAGS="-we70 $CXXFLAGS"
-- case "$compiler_version" in
-- 1[[1-9]]?? ) MATH_LIBS=-Wl,-lm ;; # avoid static libimf in shared libs
-- esac
-+ MATH_LIBS=-Wl,-lm # avoid static libimf in shared libs
- ;;
-
- linux*:GCC )
- if test -r $srcdir/src/build-system/config.site.ncbi && test -d "$NCBI"
- then
- case "$compiler_version" in
-- 5* ) CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0 $CPPFLAGS" ;;
-+ 5?? ) CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0 $CPPFLAGS" ;;
- esac
- fi
- ;;
-@@ -2046,7 +2042,7 @@ esac
- ### large file support (switch to AC_SYS_LARGEFILE?)
- case "$host_os:$compiler:$compiler_version" in
- cygwin* ) with_lfs=no ;;
-- *:GCC:3[[4-9]]* | *:GCC:[[4-9]]* | *:ICC:[[91]]* ) : ${with_lfs=yes} ;;
-+ *:GCC:* | *:ICC:* ) : ${with_lfs=yes} ;;
- esac
-
- if test "$with_lfs" = "yes" ; then
-@@ -2068,17 +2064,9 @@ wsrx="[[$wschars]]"
- #### Flags to enable (potentially unsafe) extra optimization.
- if test "$skip_fast_flags" = no -a -z "$DEF_FAST_FLAGS" ; then
- case "$compiler:$compiler_version" in
-- GCC:2* | GCC:344 )
-- # GCC 2.9x sometimes experiences internal errors at high optimization;
-- # GCC 3.4.4 (at least on FreeBSD) meanwhile generates crashprone code.
-- DEF_FAST_FLAGS="-O2"
-- ;;
- GCC:* )
- DEF_FAST_FLAGS="-O3 -finline-functions -fstrict-aliasing"
-- case "$host_os:$host_cpu:$compiler_version" in
-- freebsd* | solaris*:*86*:* | *:4[[5-9]]? | *:[[5-9]]?? ) ;;
-- * ) DEF_FAST_FLAGS="$DEF_FAST_FLAGS -ffast-math" ;;
-- esac
-+ # DEF_FAST_FLAGS="$DEF_FAST_FLAGS -ffast-math" ;;
- if test "$with_profiling" != "yes"; then
- # incompatible with -pg
- DEF_FAST_FLAGS="$DEF_FAST_FLAGS -fomit-frame-pointer"
-@@ -2116,15 +2104,6 @@ if test "$skip_fast_flags" = no -a -z "$
- solaris* ) DEF_FAST_FLAGS="$DEF_FAST_FLAGS -fast $ARCH_CFLAGS" ;;
- esac
- ;;
-- ICC:[[1-8]]?? )
-- DEF_FAST_FLAGS="-O2"
-- ;;
-- ICC:9?? )
-- DEF_FAST_FLAGS="-O3 -axP -ip" # optimized for Core or P4 w/SSE3 (max)
-- ;;
-- ICC:10?? )
-- DEF_FAST_FLAGS="-O3 -axT -ip" # Core 2 w/SSSE3; axS would cover SSE 4.1
-- ;;
- ICC:* )
- # Core 2; ICC 11 goes up to SSE4.2 (i7), ICC 12 up to CORE-AVX-I
- DEF_FAST_FLAGS="-O3 -axSSSE3 -ip"
-@@ -2225,12 +2204,7 @@ case "$compiler:$compiler_version:$with_
- ;;
- GCC:* )
- # Need to specify runpath for compiler-provided libraries
-- case $compiler_version in
-- 30* ) major=3 ;;
-- 31* ) major=4 ;;
-- 3[[23]]*) major=5 ;;
-- * ) major=6 ;;
-- esac
-+ major=6 # true for all supported versions at present
- found=false
- for f in libstdc++.so.$major libgcc_s.so.1 libstdc++.a; do
- path=`$CXX $LDFLAGS -print-file-name=$f`
-@@ -2388,9 +2362,6 @@ AC_SUBST(USUAL_AND_LIB)
- if test "$compiler" = "GCC" ; then
- CFLAGS="-Wall -Wno-format-y2k $CFLAGS"
- CXXFLAGS="-Wall -Wno-format-y2k $CXXFLAGS"
-- case "$compiler_version" in
-- 2* ) CXXFLAGS="-ftemplate-depth-32 $CXXFLAGS" ;;
-- esac
- case "$host_os" in
- solaris* ) CPPFLAGS="-D__EXTENSIONS__ $CPPFLAGS" ;;
- irix* ) CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS" ;;
-@@ -3029,13 +3000,11 @@ case "$compiler" in
- ;;
- linux* | *gnu* ) # | *bsd*
- case "$compiler:$compiler_version" in
-- ICC:9* | ICC:1??? )
-+ ICC:* )
- ncbi_cv_prog_cc_wl_no_asu=no
- LIBS="$LIBS -lc"
- C_LIBS="$C_LIBS -lc"
- ;;
-- ICC:* )
-- ;;
- * )
- FORBID_UNDEF='-Wl,--no-undefined'
- ;;
-@@ -3319,7 +3288,7 @@ changequote(, )dnl
- echo " $LDFLAGS " | $EGREP_Q "$dbgrx1|$dbgrx2" || LDFLAGS="$LDFLAGS -g"
- STRIP="@:"
- case "$compiler:$compiler_version" in
-- GCC:4[89]? | GCC:[5-9]? | GCC:???? )
-+ GCC:* )
- # GCC 4.8 defaults to DWARF 4, which Totalview for one
- # can't handle; roll back to version 3 by default.
- echo " $USER_CFLAGS " | $EGREP_Q "$dbgrx1|$dbgrx2" || \
-@@ -3929,10 +3898,6 @@ AC_LANG_POP(C)
-
- # Avoid using unsupported (and noisily ignored) attributes.
- case "$compiler:$compiler_version" in
-- GCC:2* | GCC:3[[01]]* )
-- ncbi_cv_c_deprecation_syntax=none
-- ncbi_cv_c_forceinline=inline
-- ;;
- VisualAge:* )
- ncbi_cv_c_forceinline=inline
- ;;
-@@ -3985,7 +3950,7 @@ if test $ncbi_cv_c_attribute_destructor
- fi
-
- case "$compiler:$compiler_version $CFLAGS $CXXFLAGS" in
-- GCC:[[4-9]]??\ *\ -fvisibility*|ICC:*\ -fvisibility* ) ;;
-+ GCC:*\ *\ -fvisibility* | ICC:*\ -fvisibility* ) ;;
- * ) ncbi_cv_c_attribute_visibility_default=unnecessary ;;
- esac
-
-@@ -5632,7 +5597,7 @@ ncbi_cv_lib_boost_version=\`get_BOOST_LI
- # when using Boost at all.
- BOOST_INCLUDE="$BOOST_INCLUDE -erroff=reftotemp"
- ;;
-- GCC*:4[[7-9]]* | GCC*:5*)
-+ GCC*)
- # Some portions of Boost also have a lot of "unused" typedefs
- # from concept checking.
- BOOST_INCLUDE="$BOOST_INCLUDE -Wno-unused-local-typedefs"
-@@ -5672,6 +5637,7 @@ ncbi_cv_lib_boost_version=\`get_BOOST_LI
- *:MSVC) BOOST_TAG="-vc" ;;
- esac
- case "$BOOST_TAG" in
-+ # Still valid for version 10.x and up?
- -*gcc|-il ) boost_comp_vers=`echo $compiler_version | cut -c1-2` ;;
- * ) boost_comp_vers='' ;;
- esac
Index: b/c++/src/corelib/ncbifile.cpp
===================================================================
--- a/c++/src/corelib/ncbifile.cpp