I missed this too. Since the IMC2 layer in these codebases is all the same, the problem comes from here:
/* Generic log function which will route the log messages to the appropriate system logging function */
void imclog( const char *format, ... )
char buf[LGST], buf2[LGST];
va_start( ap, format );
vsnprintf( buf, LGST, format, ap );
va_end( ap );
snprintf( buf2, LGST, "IMC: %s", buf );
strtime = ctime( &imc_time );
log_string( buf2 );
monitor_chan( buf2, MONITOR_IMC );
strtime[strlen( strtime ) - 1] = '\0';
fprintf( stderr, "%s :: %s\n", strtime, buf2 );
It's because the strtime variable isn't actually needed for Smaug. The simple solution would be to just remove the lines that include it from the two functions the compiler complained about.
The long term solution would be for us to go over the IMC2 code and remove all the optional parts since there's about zero chance the generic snippet will ever get updated again. That's the only reason the compile-time options weren't removed to begin with.