Re: [PATCH] Makefile: update the default build options for AIX
- From
Mike Ralphson <mike.ralphson@gmail.com>
- Date
- May 7, 2008, 16:20 UTC
- Message-ID
- <e2b179460805070920i2ff5798dpacb5c55d851d5ede@mail.gmail.com>
- In-Reply-To
- <7vfxsudrt0.fsf@gitster.siamese.dyndns.org>
2008/5/7 Junio C Hamano <gitster@pobox.com>:
Show 44 quoted lines
>
> Brandon Casey <casey@nrlssc.navy.mil> writes:
>
> > Mike Ralphson wrote:
> >> 2008/5/7 Brandon Casey <casey@nrlssc.navy.mil>:
> >>> 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.
>Indeed. Please add ascii-art diagrams and don't use long words. I may then have a chance of understanding how this works, and how I should have spotted 5 potentially non-harmless warnings among 400 noise ones, when all I did was get the testsuite from non-passing to passing! 8-)
In reality, thanks to all for pitching in.
Mike