RE: [PATCH 6/10] Fix header breakage with _XOPEN_SOURCE.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]