Build of ddrescue with android toolchain

The build took 00h 01m 11s and was NOT successful.

The program in this build is written in the following languages, according to sloccount:

SLOCLanguage
4,495 cpp
607 sh
139 makefile
5,241 total

The process tree of the build process is here.

Several sub-process invocations were improper; see the process tree for details. Summary:

List of Errors

Log

To avoid scrolling, you may jump to the last line of the invocation of makepkg that was used to build this package.

Removed vanilla repositories from pacman.conf and added:
# [tuscan]
# Server = file:///var/cache/pacman/pkg/

CMD: pacman -Syy --noconfirm
# :: Synchronizing package databases...
# downloading tuscan.db...

Copied permanent toolchain into container-local sysroot
# /toolchain_root/arm-linux-androideabi --> /sysroot/arm-linux-androideabi
# /toolchain_root/COPYING3.LIB --> /sysroot/COPYING3.LIB
# /toolchain_root/sysroot --> /sysroot/sysroot
# /toolchain_root/COPYING.RUNTIME --> /sysroot/COPYING.RUNTIME
# /toolchain_root/lib --> /sysroot/lib
# /toolchain_root/SOURCES --> /sysroot/SOURCES
# /toolchain_root/lib64 --> /sysroot/lib64
# /toolchain_root/share --> /sysroot/share
# /toolchain_root/bin --> /sysroot/bin
# /toolchain_root/COPYING --> /sysroot/COPYING
# /toolchain_root/COPYING3 --> /sysroot/COPYING3
# /toolchain_root/COPYING.LIB --> /sysroot/COPYING.LIB
# /toolchain_root/include --> /sysroot/include
# /toolchain_root/libexec --> /sysroot/libexec

CMD: sudo -u tuscan PATH=/sysroot/bin:/sysroot/libexec/gcc/arm-linux-androideabi/4.8:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ red makepkg --noextract --syncdeps --skipinteg --skippgpcheck --skipchecksums --noconfirm --nocolor --log --noprogressbar --nocheck
# ==> Making package: ddrescue 1.21-1 (Tue Apr 4 21:13:27 UTC 2017)
# ==> Checking runtime dependencies...
# ==> Checking buildtime dependencies...
# ==> WARNING: Using existing $srcdir/ tree
# ==> Starting build()...
# configure: WARNING: unrecognized option: '--build=x86_64-unknown-linux'
# configure: WARNING: unrecognized option: '--host=arm-linux-androideabi'
#
# creating config.status
# creating Makefile
# VPATH = .
# prefix = /usr
# exec_prefix = $(prefix)
# bindir = $(exec_prefix)/bin
# datarootdir = $(prefix)/share
# infodir = $(datarootdir)/info
# mandir = $(datarootdir)/man
# CXX = g++
# CPPFLAGS =
# CXXFLAGS = -Wall -W -O2
# LDFLAGS =
# OK. Now you can run make.
# g++ -Wall -W -O2 -c -o arg_parser.o arg_parser.cc
# g++ -Wall -W -O2 -c -o rational.o rational.cc
# g++ -Wall -W -O2 -c -o non_posix.o non_posix.cc
# g++ -Wall -W -O2 -c -o loggers.o loggers.cc
# cc1plus: error: no include path in which to search for stdc-predef.h
# rational.cc:12:21: error: no include path in which to search for algorithm
# #include
# ^
# rational.cc:13:18: error: no include path in which to search for cctype
# #include
# ^
# rational.cc:14:19: error: no include path in which to search for climits
# #include
# ^
# rational.cc:15:19: error: no include path in which to search for cstdlib
# #include
# ^
# rational.cc:16:18: error: no include path in which to search for string
# #include
# ^
# In file included from rational.cc:18:0:
# rational.h:123:9: error: 'string' in namespace 'std' does not name a type
# const std::string to_decimal( const unsigned iwidth = 1, int prec = -2 ) const;
# ^
# rational.h:124:9: error: 'string' in namespace 'std' does not name a type
# const std::string to_fraction( const unsigned width = 1 ) const;
# ^
# rational.h: In constructor 'Rational::Rational(int)':
# rational.h:34:18: error: 'INT_MAX' was not declared in this scope
# { if( num < -INT_MAX ) { num = -INT_MAX; den = 0; } }
# ^
# rational.h: In member function 'Rational& Rational::operator=(int)':
# rational.h:40:36: error: 'INT_MAX' was not declared in this scope
# { num = n; den = 1; if( num < -INT_MAX ) { num = -INT_MAX; den = 0; }
# ^
# cc1plus: error: no include path in which to search for stdc-predef.h
# loggers.cc:20:18: error: no include path in which to search for cstdio
# #include
# ^
# loggers.cc:21:18: error: no include path in which to search for string
# #include
# ^
# loggers.cc:22:18: error: no include path in which to search for vector
# #include
# ^
# loggers.cc:23:22: error: no include path in which to search for sys/stat.h
# #include
# ^
# rational.cc: At global scope:
# rational.cc:59:7: error: 'string' in namespace 'std' does not name a type
# const std::string overflow_string( const int n )
# ^
# rational.cc: In function 'int {anonymous}::overflow_value(int)':
# rational.cc:63:24: error: 'INT_MAX' was not declared in this scope
# { if( n > 0 ) return INT_MAX; if( n < 0 ) return -INT_MAX; return 0; }
# ^
# rational.cc:63:53: error: 'INT_MAX' was not declared in this scope
# { if( n > 0 ) return INT_MAX; if( n < 0 ) return -INT_MAX; return 0; }
# ^
# In file included from loggers.cc:25:0:
# block.h: In constructor 'Block::Block(long long int, long long int)':
# block.h:38:52: error: 'min' is not a member of 'std'
# { if( p < 0 ) { pos_ = 0; if( s > 0 ) size_ -= std::min( s, -p ); }
# ^
# rational.cc: In function 'int {anonymous}::lloverflow_value(long long int)':
# rational.cc:66:24: error: 'INT_MAX' was not declared in this scope
# { if( n > 0 ) return INT_MAX; if( n < 0 ) return -INT_MAX; return 0; }
# ^
# rational.cc:66:53: error: 'INT_MAX' was not declared in this scope
# { if( n > 0 ) return INT_MAX; if( n < 0 ) return -INT_MAX; return 0; }
# ^
# block.h: In member function 'void Block::pos(long long int)':
# block.h:46:14: error: 'max' is not a member of 'std'
# { pos_ = std::max( p, 0LL );
# ^
# rational.cc: In member function 'void Rational::normalize(long long int, long long int)':
# rational.cc:81:12: error: 'INT_MAX' was not declared in this scope
# if( n <= INT_MAX && n >= -INT_MAX && d <= INT_MAX && d >= -INT_MAX )
# ^
# block.h: In member function 'Block& Block::assign(long long int, long long int)':
# block.h:55:50: error: 'min' is not a member of 'std'
# if( p < 0 ) { pos_ = 0; if( s > 0 ) size_ -= std::min( s, -p ); }
# ^
# rational.cc: In member function 'void Rational::normalize()':
# rational.cc:92:14: error: 'INT_MAX' was not declared in this scope
# if( num < -INT_MAX )
# ^
# rational.cc:99:16: error: 'INT_MAX' was not declared in this scope
# if( den < -INT_MAX ) { num = overflow_value( -num ); den = 0; return; }
# ^
# cc1plus: error: no include path in which to search for stdc-predef.h
# arg_parser.cc:20:19: error: no include path in which to search for cstring
# #include
# ^
# arg_parser.cc:21:18: error: no include path in which to search for string
# #include
# ^
# arg_parser.cc:22:18: error: no include path in which to search for vector
# #include
# ^
# rational.cc: In member function 'int Rational::round() const':
# rational.cc:150:20: error: 'abs' is not a member of 'std'
# const int rest = std::abs( num ) % den;
# ^
# In file included from arg_parser.cc:24:0:
# arg_parser.h:59:5: error: 'string' in namespace 'std' does not name a type
# std::string argument;
# ^
# rational.cc: In member function 'int Rational::parse(const char*)':
# rational.cc:169:10: error: 'isspace' is not a member of 'std'
# while( std::isspace( s[c] ) ) ++c;
# ^
# arg_parser.h:63:3: error: 'string' in namespace 'std' does not name a type
# std::string error_;
# ^
# arg_parser.h:64:3: error: 'vector' in namespace 'std' does not name a type
# std::vector< Record > data;
# ^
# rational.cc:172:8: error: 'isdigit' is not a member of 'std'
# if( !std::isdigit( s[c] ) && s[c] != '.' ) return 0;
# ^
# rational.cc:174:10: error: 'isdigit' is not a member of 'std'
# while( std::isdigit( s[c] ) )
# ^
# arg_parser.h:79:9: error: 'string' in namespace 'std' does not name a type
# const std::string & error() const { return error_; }
# ^
# block.h: At global scope:
# block.h:119:3: error: 'vector' in namespace 'std' does not name a type
# std::vector< Block > block_vector; // blocks are ordered and don't overlap
# ^
# rational.cc:182:15: error: 'isdigit' is not a member of 'std'
# ++c; if( !std::isdigit( s[c] ) ) return 0;
# ^
# arg_parser.h:92:9: error: 'string' in namespace 'std' does not name a type
# const std::string & argument( const int i ) const
# ^
# rational.cc:183:12: error: 'isdigit' is not a member of 'std'
# while( std::isdigit( s[c] ) )
# ^
# rational.cc:193:12: error: 'isdigit' is not a member of 'std'
# while( std::isdigit( s[c] ) )
# ^
# arg_parser.h: In member function 'int Arg_parser::arguments() const':
# arg_parser.h:82:34: error: 'data' was not declared in this scope
# int arguments() const { return data.size(); }
# ^
# block.h: In member function 'long long int Domain::pos() const':
# block.h:127:34: error: 'block_vector' was not declared in this scope
# long long pos() const { return block_vector.front().pos(); }
# ^
# block.h: In member function 'long long int Domain::end() const':
# block.h:128:34: error: 'block_vector' was not declared in this scope
# long long end() const { return block_vector.back().end(); }
# ^
# arg_parser.h: In member function 'int Arg_parser::code(int) const':
# arg_parser.h:88:44: error: 'data' was not declared in this scope
# if( i >= 0 && i < arguments() ) return data[i].code;
# ^
# block.h: In member function 'const Block& Domain::block(long int) const':
# block.h:130:54: error: 'block_vector' was not declared in this scope
# const Block & block( const long i ) const { return block_vector[i]; }
# ^
# block.h: In member function 'long int Domain::blocks() const':
# block.h:131:32: error: 'block_vector' was not declared in this scope
# long blocks() const { return block_vector.size(); }
# ^
# rational.cc: At global scope:
# rational.cc:223:7: error: 'string' in namespace 'std' does not name a type
# const std::string Rational::to_decimal( const unsigned iwidth, int prec ) const
# ^
# rational.cc:251:7: error: 'string' in namespace 'std' does not name a type
# const std::string Rational::to_fraction( const unsigned width ) const
# ^
# cc1plus: error: no include path in which to search for stdc-predef.h
# arg_parser.cc: In member function 'bool Arg_parser::parse_long_option(const char*, const char*, const Arg_parser::Option*, int&)':
# arg_parser.cc:38:28: error: 'strncmp' is not a member of 'std'
# if( options[i].name && std::strncmp( options[i].name, &opt[2], len ) == 0 )
# ^
# block.h: In member function 'long long int Domain::in_size() const':
# block.h:140:37: error: 'block_vector' was not declared in this scope
# for( unsigned long i = 0; i < block_vector.size(); ++i )
# ^
# arg_parser.cc:40:11: error: 'strlen' is not a member of 'std'
# if( std::strlen( options[i].name ) == len ) // Exact match found
# ^
# block.h: In member function 'bool Domain::operator!=(const Domain&) const':
# block.h:148:9: error: 'block_vector' was not declared in this scope
# if( block_vector.size() != d.block_vector.size() ) return true;
# ^
# block.h:148:34: error: 'const class Domain' has no member named 'block_vector'
# if( block_vector.size() != d.block_vector.size() ) return true;
# ^
# block.h:149:35: error: 'block_vector' was not declared in this scope
# for( unsigned long i = 0; i < block_vector.size(); ++i )
# ^
# arg_parser.cc:50:5: error: 'error_' was not declared in this scope
# error_ = "option '"; error_ += opt; error_ += "' is ambiguous";
# ^
# block.h:150:32: error: 'const class Domain' has no member named 'block_vector'
# if( block_vector[i] != d.block_vector[i] ) return true;
# ^
# arg_parser.cc:56:5: error: 'error_' was not declared in this scope
# error_ = "unrecognized option '"; error_ += opt; error_ += '\'';
# ^
# arg_parser.cc:61:3: error: 'data' was not declared in this scope
# data.push_back( Record( options[index].code ) );
# ^
# block.h: In member function 'bool Domain::includes(const Block&) const':
# block.h:159:30: error: 'block_vector' was not declared in this scope
# unsigned long l = 0, r = block_vector.size();
# ^
# arg_parser.cc:67:7: error: 'error_' was not declared in this scope
# error_ = "option '--"; error_ += options[index].name;
# ^
# block.h: In member function 'bool Domain::includes(long long int) const':
# block.h:172:35: error: 'block_vector' was not declared in this scope
# for( unsigned long i = 0; i < block_vector.size(); ++i )
# ^
# arg_parser.cc:73:7: error: 'error_' was not declared in this scope
# error_ = "option '--"; error_ += options[index].name;
# ^
# block.h: In member function 'void Domain::clear()':
# block.h:179:5: error: 'block_vector' was not declared in this scope
# block_vector.clear(); block_vector.push_back( Block( 0, 0 ) );
# ^
# arg_parser.cc:85:7: error: 'error_' was not declared in this scope
# error_ = "option '--"; error_ += options[index].name;
# ^
# block.h: At global scope:
# block.h:198:3: error: 'string' in namespace 'std' does not name a type
# std::string current_msg;
# ^
# block.h:202:3: error: 'vector' in namespace 'std' does not name a type
# std::vector< Sblock > sblock_vector; // note: blocks are consecutive
# ^
# block.h:218:22: error: 'FILE' has not been declared
# int write_mapfile( FILE * f = 0, const bool timestamp = false,
# ^
# arg_parser.cc: In member function 'bool Arg_parser::parse_short_option(const char*, const char*, const Arg_parser::Option*, int&)':
# arg_parser.cc:114:7: error: 'error_' was not declared in this scope
# error_ = "invalid option -- '"; error_ += c; error_ += '\'';
# ^
# arg_parser.cc:118:5: error: 'data' was not declared in this scope
# data.push_back( Record( c ) );
# ^
# block.h: In member function 'void Mapfile::insert_sblock(long int, const Sblock&)':
# block.h:205:7: error: 'sblock_vector' was not declared in this scope
# { sblock_vector.insert( sblock_vector.begin() + i, sb ); }
# ^
# arg_parser.cc:129:9: error: 'error_' was not declared in this scope
# error_ = "option requires an argument -- '"; error_ += c;
# ^
# block.h: In member function 'void Mapfile::set_to_status(Sblock::Status)':
# block.h:216:7: error: 'sblock_vector' was not declared in this scope
# { sblock_vector.assign( 1, Sblock( 0, -1, st ) ); }
# ^
# make: *** [Makefile:55: non_posix.o] Error 1
# make: *** Waiting for unfinished jobs....
# block.h: In member function 'void Mapfile::current_status(Mapfile::Status, const char*)':
# block.h:230:7: error: 'current_msg' was not declared in this scope
# current_msg = ( st == finished ) ? "Finished" : msg; }
# ^
# arg_parser.cc: In constructor 'Arg_parser::Arg_parser(int, const char* const*, const Arg_parser::Option*, bool)':
# arg_parser.cc:145:3: error: 'vector' is not a member of 'std'
# std::vector< std::string > non_options; // skipped non-options
# ^
# arg_parser.cc:145:16: error: 'string' is not a member of 'std'
# std::vector< std::string > non_options; // skipped non-options
# ^
# arg_parser.cc:145:30: error: 'non_options' was not declared in this scope
# std::vector< std::string > non_options; // skipped non-options
# ^
# block.h: In member function 'Block Mapfile::extent() const':
# block.h:233:11: error: 'sblock_vector' was not declared in this scope
# { if( sblock_vector.empty() ) return Block( 0, 0 );
# ^
# block.h:234:21: error: 'sblock_vector' was not declared in this scope
# return Block( sblock_vector.front().pos(),
# ^
# block.h: In member function 'const Sblock& Mapfile::sblock(long int) const':
# block.h:236:56: error: 'sblock_vector' was not declared in this scope
# const Sblock & sblock( const long i ) const { return sblock_vector[i]; }
# ^
# block.h: In member function 'long int Mapfile::sblocks() const':
# block.h:237:33: error: 'sblock_vector' was not declared in this scope
# long sblocks() const { return sblock_vector.size(); }
# ^
# block.h: In member function 'void Mapfile::change_sblock_status(long int, Sblock::Status)':
# block.h:239:7: error: 'sblock_vector' was not declared in this scope
# { sblock_vector[i].status( st ); }
# ^
# arg_parser.cc:167:14: error: 'data' was not declared in this scope
# else { data.push_back( Record() ); data.back().argument = argv[argind++]; }
# ^
# block.h: In member function 'bool Mapfile::try_split_sblock_by(long long int, long int)':
# block.h:245:9: error: 'sblock_vector' was not declared in this scope
# if( sblock_vector[i].strictly_includes( pos ) )
# ^
# make: *** [Makefile:64: rational.o] Error 1
# arg_parser.cc:170:7: error: 'error_' was not declared in this scope
# if( error_.size() ) data.clear();
# ^
# arg_parser.cc:170:23: error: 'data' was not declared in this scope
# if( error_.size() ) data.clear();
# ^
# arg_parser.cc:174:9: error: 'data' was not declared in this scope
# { data.push_back( Record() ); data.back().argument.swap( non_options[i] ); }
# ^
# arg_parser.cc:176:9: error: 'data' was not declared in this scope
# { data.push_back( Record() ); data.back().argument = argv[argind++]; }
# ^
# block.h: At global scope:
# block.h:277:25: error: 'FILE' was not declared in this scope
# bool write_file_header( FILE * const f, const char * const filetype );
# ^
# block.h:277:32: error: expected primary-expression before 'const'
# bool write_file_header( FILE * const f, const char * const filetype );
# ^
# block.h:277:41: error: expected primary-expression before 'const'
# bool write_file_header( FILE * const f, const char * const filetype );
# ^
# block.h:277:69: error: expression list treated as compound expression in initializer [-fpermissive]
# bool write_file_header( FILE * const f, const char * const filetype );
# ^
# block.h:278:23: error: 'FILE' was not declared in this scope
# bool write_timestamp( FILE * const f );
# ^
# block.h:278:30: error: expected primary-expression before 'const'
# bool write_timestamp( FILE * const f );
# ^
# block.h:279:29: error: 'FILE' was not declared in this scope
# bool write_final_timestamp( FILE * const f );
# ^
# block.h:279:36: error: expected primary-expression before 'const'
# bool write_final_timestamp( FILE * const f );
# ^
# In file included from loggers.cc:26:0:
# loggers.h:22:3: error: 'FILE' does not name a type
# FILE * f; // output stream
# ^
# arg_parser.cc: In constructor 'Arg_parser::Arg_parser(const char*, const char*, const Arg_parser::Option*)':
# arg_parser.cc:193:9: error: 'error_' was not declared in this scope
# if( error_.size() ) data.clear();
# ^
# arg_parser.cc:193:25: error: 'data' was not declared in this scope
# if( error_.size() ) data.clear();
# ^
# loggers.h: In constructor 'Logger::Logger()':
# loggers.h:26:30: error: class 'Logger' does not have any field named 'f'
# Logger() : filename_( 0 ), f( 0 ), error( false ) {}
# ^
# arg_parser.cc:195:10: error: 'data' was not declared in this scope
# else { data.push_back( Record() ); data.back().argument = opt; }
# ^
# loggers.cc: In function 'const char* {anonymous}::format_time_dhms(long int)':
# loggers.cc:39:75: error: 'snprintf' was not declared in this scope
# if( d ) snprintf( buf, sizeof buf, "%ldd:%02dh:%02dm:%02ds", d, h, m, s );
# ^
# loggers.cc:40:70: error: 'snprintf' was not declared in this scope
# else if( h ) snprintf( buf, sizeof buf, "%dh:%02dm:%02ds", h, m, s );
# ^
# loggers.cc:41:61: error: 'snprintf' was not declared in this scope
# else if( m ) snprintf( buf, sizeof buf, "%dm:%02ds", m, s );
# ^
# loggers.cc:42:44: error: 'snprintf' was not declared in this scope
# else snprintf( buf, sizeof buf, "%ds", s );
# ^
# loggers.cc: In member function 'bool Logger::set_filename(const char*)':
# loggers.cc:57:17: error: aggregate 'Logger::set_filename(const char*)::stat st' has incomplete type and cannot be defined
# struct stat st;
# ^
# loggers.cc:58:25: error: invalid use of incomplete type 'struct Logger::set_filename(const char*)::stat'
# if( stat( name, &st ) == 0 && !S_ISREG( st.st_mode ) ) return false;
# ^
# loggers.cc:57:12: error: forward declaration of 'struct Logger::set_filename(const char*)::stat'
# struct stat st;
# ^
# loggers.cc:58:56: error: 'S_ISREG' was not declared in this scope
# if( stat( name, &st ) == 0 && !S_ISREG( st.st_mode ) ) return false;
# ^
# loggers.cc: In member function 'bool Logger::close_file()':
# loggers.cc:67:7: error: 'f' was not declared in this scope
# if( f && !error && !write_final_timestamp( f ) ) error = true;
# ^
# loggers.cc:67:48: error: 'write_final_timestamp' cannot be used as a function
# if( f && !error && !write_final_timestamp( f ) ) error = true;
# ^
# loggers.cc:68:7: error: 'f' was not declared in this scope
# if( f && std::fclose( f ) != 0 ) error = true;
# ^
# loggers.cc:68:12: error: 'fclose' is not a member of 'std'
# if( f && std::fclose( f ) != 0 ) error = true;
# ^
# loggers.cc:69:3: error: 'f' was not declared in this scope
# f = 0;
# ^
# loggers.cc: In member function 'bool Rate_logger::open_file()':
# loggers.cc:77:8: error: 'f' was not declared in this scope
# if( !f )
# ^
# loggers.cc:80:9: error: 'fopen' is not a member of 'std'
# f = std::fopen( filename_, "w" );
# ^
# loggers.cc:81:58: error: 'write_file_header' cannot be used as a function
# error = !f || !write_file_header( f, "Rates Logfile" ) ||
# ^
# loggers.cc:82:13: error: 'fputs' is not a member of 'std'
# std::fputs( "#Time Ipos Current_rate Average_rate Errors Errsize\n", f ) == EOF;
# ^
# loggers.cc:82:94: error: 'EOF' was not declared in this scope
# std::fputs( "#Time Ipos Current_rate Average_rate Errors Errsize\n", f ) == EOF;
# ^
# loggers.cc: In member function 'bool Rate_logger::print_line(long int, long long int, long long int, long long int, long int, long long int)':
# loggers.cc:92:7: error: 'f' was not declared in this scope
# if( f && !error && time > last_time )
# ^
# loggers.cc:95:9: error: 'fprintf' is not a member of 'std'
# if( std::fprintf( f, "%2ld 0x%08llX %8lld %8lld %7ld %8lld\n",
# ^
# loggers.cc: In member function 'bool Read_logger::open_file()':
# loggers.cc:106:8: error: 'f' was not declared in this scope
# if( !f )
# ^
# loggers.cc:109:9: error: 'fopen' is not a member of 'std'
# f = std::fopen( filename_, "w" );
# ^
# loggers.cc:110:58: error: 'write_file_header' cannot be used as a function
# error = !f || !write_file_header( f, "Reads Logfile" ) ||
# ^
# loggers.cc:111:13: error: 'fputs' is not a member of 'std'
# std::fputs( "# Ipos Size Copied_size Error_size\n", f ) == EOF;
# ^
# loggers.cc:111:81: error: 'EOF' was not declared in this scope
# std::fputs( "# Ipos Size Copied_size Error_size\n", f ) == EOF;
# ^
# loggers.cc: In member function 'bool Read_logger::print_line(long long int, long long int, int, int)':
# loggers.cc:120:7: error: 'f' was not declared in this scope
# if( f && !error &&
# ^
# loggers.cc:121:7: error: 'fprintf' is not a member of 'std'
# std::fprintf( f, "0x%08llX %lld %d %d\n",
# ^
# loggers.cc: In member function 'bool Read_logger::print_msg(long int, const char*)':
# loggers.cc:131:7: error: 'f' was not declared in this scope
# if( f && !error &&
# ^
# loggers.cc:132:7: error: 'fprintf' is not a member of 'std'
# std::fprintf( f, "%s# %s %s\n", prev_is_msg ? "" : "\n\n",
# ^
# make: *** [Makefile:64: arg_parser.o] Error 1
# loggers.cc: In member function 'bool Read_logger::print_time(long int)':
# loggers.cc:142:7: error: 'f' was not declared in this scope
# if( f && !error && time > 0 &&
# ^
# loggers.cc:143:7: error: 'fprintf' is not a member of 'std'
# std::fprintf( f, "# %s\n", format_time_dhms( time ) ) < 0 )
# ^
# make: *** [Makefile:64: loggers.o] Error 1
# ==> ERROR: A failure occurred in build().
# Aborting...