Subject: Re: [PATCH] Makefile: update the default build options for AIX

From: Junio C Hamano <[email-masked]>
Date: Wed, 07 May 2008 09:04:11 -0700

Brandon Casey <[email-masked]> writes:

> Mike Ralphson wrote:
>> 2008/5/7 Brandon Casey <[email-masked]>:
>>> Johannes Sixt wrote:
>>>  > The #define fopen in git-compat-util.h essentially defeats the effect of
>>>  > _LARGE_FILES as far as fopen() calls are concerned: If
>>>  > FREAD_READS_DIRECTORIES is not defined, fopen() would be redirected to
>>>  > fopen64(), but when it is defined, it is redirected to git_fopen(), which
>>>  > in turn uses fopen() instead of fopen64() (due to the #undef in
>>>  > compat/fopen.c).
>>>  >
>>>
>>>  How about something like this?
>>>
>>>  diff --git a/compat/fopen.c b/compat/fopen.c
>>>  index ccb9e89..70b0d4d 100644
>>>  --- a/compat/fopen.c
>>>  +++ b/compat/fopen.c
>>>  @@ -1,5 +1,5 @@
>>>  +#undef FREAD_READS_DIRECTORIES
>>>   #include "../git-compat-util.h"
>>>  -#undef fopen
>>>   FILE *git_fopen(const char *path, const char *mode)
>>>   {
>>>         FILE *fp;
>>>
>>>
>>>  -brandon
>>>
>> 
>> Ta. I still get all the warnings with that, was that what you were
>> trying to solve? The 64 bit specific tests in t5302 do still pass.
>
> Ah, yes. You would still get the warnings for every other file that
> includes git-compat-util.h, except compat/fopen.c. I didn't think
> about all of those. :) In this case those are indeed harmless. And now
> the git provided git_fopen() will use the compiler selected fopen()
> which should avoid any of the gotchas that Hannes brought up.

In any case, that #undef then #include dance needs a big comment on why it
has to be so.