git/list[1] front-page[2] threads[3] people[4] search[5] about
 

progress.c does not compile under Mac OS X

From
Torsten Bögershausen <tboegi@web.de>
Date
Aug 30, 2014, 20:37 UTC
Message-ID
<540235EC.2020303@web.de>
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)
Next: Jonas 'Sortie' Termansen
Message 1 of 2 in “progress.c does not compile under Mac OS X”
  1. Torsten BögershausenAug 30, 2014
  2. Jonas 'Sortie' TermansenAug 30, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.