git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* progress.c does not compile under Mac OS X
@ 2014-08-30 20:37 Torsten Bögershausen
  2014-08-30 23:12 ` Jonas 'Sortie' Termansen
  0 siblings, 1 reply; 2+ messages in thread
From: Torsten Bögershausen @ 2014-08-30 20:37 UTC (permalink / raw)
  To: sortie, Git Mailing List

progress.c:66: error: ‘CLOCK_MONOTONIC’ undeclared (first use in this function)

You can not cast a undeclared into void in git-compat-uitl.h:
#define timer_create(clockid, sevp, timerp) ((void) (clockid), (void) (sevp), (void) (timerp), errno 


Removing the cast of a define into (void) makes the compilation error in line 66 go away:
 #ifdef NO_TIMER_SETTIME
-#define timer_create(clockid, sevp, timerp) ((void) (clockid), (void) (sevp), (void) (timerp), errno = ENOSYS, -1)
+#define timer_create(clockid, sevp, timerp) ((void) (sevp), (void) (timerp), errno = ENOSYS, -1)
 
But now we have a bunch of other problems:

progress.c:71: warning: assignment makes integer from pointer without a cast
progress.c:71: error: invalid operands to binary / (have ‘long int *’ and ‘long int’)
progress.c:71: warning: statement with no effect
progress.c:71: error: ‘_ivalue_it_value’ undeclared (first use in this function)
progress.c:71: error: (Each undeclared identifier is reported only once
progress.c:71: error: for each function it appears in.)
progress.c:71: error: invalid operands to binary / (have ‘long int *’ and ‘long int’)
progress.c:74: error: expected ‘while’ before ‘static’
progress.c:82: error: nested functions are disabled, use -fnested-functions to re-enable
progress.c:82: error: invalid storage class for function ‘display’
progress.c: In function ‘display’:
progress.c:92: warning: implicit declaration of function ‘clear_progress_signal’
progress.c: In function ‘set_progress_signal’:
progress.c:126: error: nested functions are disabled, use -fnested-functions to re-enable
progress.c:126: error: invalid storage class for function ‘throughput_string’
progress.c:135: error: nested functions are disabled, use -fnested-functions to re-enable
progress.c:199: error: nested functions are disabled, use -fnested-functions to re-enable
progress.c:205: error: nested functions are disabled, use -fnested-functions to re-enable
progress.c:225: error: nested functions are disabled, use -fnested-functions to re-enable
progress.c:230: error: nested functions are disabled, use -fnested-functions to re-enable
progress.c:235: error: nested functions are disabled, use -fnested-functions to re-enable
progress.c:264: error: expected declaration or statement at end of input


----------------
And then we have the question why we do not check the return value of timer_create() in progress.c#66:

timer_create(CLOCK_MONOTONIC, &sev, &progress_timer);

value.it_interval.tv_sec = 1;
value.it_interval.tv_nsec = 0;
value.it_value = value.it_interval;
timer_settime(progress_timer, 0, &value, NULL);
--------------
Should it be something like this ?
if (!timer_create(CLOCK_MONOTONIC, &sev, &progress_timer)) {
  value.it_interval.tv_sec = 1;
  value.it_interval.tv_nsec = 0;
  value.it_value = value.it_interval;
  timer_settime(progress_timer, 0, &value, NULL);
}

(And possibly more changes to handle errors when calling
timer_delete(progress_timer)


(Sorry, no, I don't have a patch at hand.
 It feels as if the macros in git-compat-util.h could be converted into real functions,
 in compat/timer_settime.c (or so) so that we can test-compile under Linux)

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-08-30 23:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-30 20:37 progress.c does not compile under Mac OS X Torsten Bögershausen
2014-08-30 23:12 ` Jonas 'Sortie' Termansen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).