On Wed, 2006-08-02 at 8:46, Junio C Hamano wrote: > > "Ramsay Jones" <ramsay@xxxxxxxxxxxxxxxxxxx> writes: > > > convert-objects.c sets _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED before > > including <time.h>, in order to get the declaration of strptime(). > > This leads to breakage in cache.h, due to S_ISLNK and S_IFLNK no longer > > being defined by <sys/stat.h>. These definitions are protected by the > > __USE_BSD symbol, which is not set when _XOPEN_SOURCE is set. Moving > > the #defines and #include <time.h> below all other #includes does not > > fix the problem, however, since now _USE_XOPEN, which protects the > > declaration of strptime(), is now not defined (don't ask!). > > Wouldn't including "cache.h" and friends first and including > <time.h> last solve the problem, then? > Not for me. It may be a glibc 2.1 specific problem, of course, but strptime() remains undeclared. > This kind of change tends to fix one system while potentially > breaking another, and we would need to be careful. Will queue > for post 1.4.2 and have people scream if it breaks somebody, I > guess. > Yes, I had some concern about that myself. Unfortunately, you can't make it conditional on the glibc version macros; in order to get the macros, you have to include (one way or another) <features.h>, at which point it is already too late ... Ramsay - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html