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

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

From
Johannes Sixt <j.sixt@viscovery.net>
Date
May 7, 2008, 13:14 UTC
Message-ID
<4821AB32.8090700@viscovery.net>
In-Reply-To
<e2b179460805070551x7a0072e0w4d406ef4112849ce@mail.gmail.com>
Mike Ralphson schrieb:
Show 32 quoted lines
> 2008/5/7 Johannes Sixt <j.sixt@viscovery.net>:
>>  I'm trying this patch on AIX 4.3.3 (sigh!) with gcc3. I get this:
>>
>>  git-compat-util.h:209:1: warning: "fopen" redefined
>>  In file included from git-compat-util.h:51,
>>                  from builtin.h:4,
>>                  from git.c:1:
>>  /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1/include/stdio.h:110:1:
>>  warning: this is the location of the previous definition
>>
>>  Line 110 in ...include/stdio.h is inside a #ifdef _LARGE_FILES section and
>>  says:
>>
>>  #define fopen fopen64
>>
>>  Did you also get this warning? Is _LARGE_FILES support solved in a
>>  different way on 5.3?
> 
> The warning (I get rather a lot of them) is caused by the
> compat/fopen.c included when FREAD_READS_DIRECTORIES is defined. I
> tried moving the #undef fopen to git-compat-util.h but that resulted
> in a broken build and me reaching the end of my limited ability with
> c.
> 
> In file included from cache.h:4,
>                  from daemon.c:1:
> git-compat-util.h:209:1: warning: "fopen" redefined
> In file included from git-compat-util.h:51,
>                  from cache.h:4,
>                  from daemon.c:1:
> /opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.3.0.0/3.3.2/include/stdio.h:110:1:
> warning: this is the location of the previous definition
So you we in the same boat.
> The warnings are harmless, though untidy.
> I don't believe it's anything to do with _LARGE_FILES. Could you try
> building first with one commented out, then the other? I don't think I
> have access to a 4.3.3 box any more.
Untidy, yes; harmless: not necessarily. It has a lot to do with _LARGE_FILES.

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).

This might be dangerous if some other function of the f*64() family uses the FILE* that the fopen() call returned. I don't know if there is such a usage pattern somewhere in git.

Why did you need _LARGE_FILES in the first place?
-- Hannes
Previous: Mike RalphsonNext: Mike Ralphson
Message 5 of 20 in “Makefile: update the default build options for AIX”
  1. Makefile: update the default build options for AIXMike Ralphson, May 7, 2008
  2. Johannes SixtMay 7, 2008
  3. Mike RalphsonMay 7, 2008
  4. Mike RalphsonMay 7, 2008
  5. Johannes SixtMay 7, 2008
  6. Mike RalphsonMay 7, 2008
  7. Brandon CaseyMay 7, 2008
  8. Mike RalphsonMay 7, 2008
  9. Johannes SixtMay 7, 2008
  10. Brandon CaseyMay 7, 2008
  11. Junio C HamanoMay 7, 2008
  12. Mike RalphsonMay 7, 2008
  13. Brandon CaseyMay 7, 2008
  14. compat/fopen.c: avoid clobbering the system defined fopen macroBrandon Casey, May 7, 2008
  15. Mike RalphsonMay 8, 2008
  16. Johannes SixtMay 8, 2008
  17. Mike RalphsonMay 8, 2008
  18. H.Merijn BrandMay 8, 2008
  19. Mike RalphsonMay 16, 2008
  20. Johannes SixtMay 16, 2008

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.