git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] Brown paper bag fix for MinGW 64-bit stat
       [not found] <cover.1236436185u.git.johannes.schindelin@gmx.de>
@ 2009-03-07 14:37 ` Johannes Schindelin
  2009-03-07 19:46   ` Johannes Sixt
  2009-03-07 20:00   ` Junio C Hamano
  0 siblings, 2 replies; 4+ messages in thread
From: Johannes Schindelin @ 2009-03-07 14:37 UTC (permalink / raw
  To: git, gitster; +Cc: Johannes Sixt

When overriding the identifier "stat" so that "struct stat" will be
substituted with "struct _stati64" everywhere, I tried to fix the calls
to the _function_ stat(), too, but I forgot to change the earlier
attempt "stat64" to "_stati64" there.

So, the stat() calls were overridden by calls to _stati64() instead.

Unfortunately, there is a function _stati64() so that I missed that
calls to stat() were not actually overridden by calls to mingw_lstat(),
but t4200-rerere.sh showed the error.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---

	Aaargh.

	I am very, very sorry.

	Actually, it was quite funny that t4200 displayed the bug; I 
	_guess_ it was due to a time zone issue, as the times were exactly 
	one hour off (and the machine I tested on is at UTC+0100 right now).

	And due to that bug, "rerere gc" would not collect the garbage.

	So even if the C runtime provides a _stati64() function that 
	pretends to work, it does not, and this patch is absolutely necessary.

	Now, if only the tests would not take ages to run on Windows...  
	then I would not be tempted to skip them when sending the next patches.

 compat/mingw.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/compat/mingw.h b/compat/mingw.h
index 92fb310..a0b74fb 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -169,7 +169,7 @@ int mingw_lstat(const char *file_name, struct stat *buf);
 int mingw_fstat(int fd, struct stat *buf);
 #define fstat mingw_fstat
 #define lstat mingw_lstat
-#define stat64(x,y) mingw_lstat(x,y)
+#define _stati64(x,y) mingw_lstat(x,y)
 
 int mingw_utime(const char *file_name, const struct utimbuf *times);
 #define utime mingw_utime
-- 
1.6.2.327.g0fa6c

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] Brown paper bag fix for MinGW 64-bit stat
  2009-03-07 14:37 ` [PATCH] Brown paper bag fix for MinGW 64-bit stat Johannes Schindelin
@ 2009-03-07 19:46   ` Johannes Sixt
  2009-03-07 20:00   ` Junio C Hamano
  1 sibling, 0 replies; 4+ messages in thread
From: Johannes Sixt @ 2009-03-07 19:46 UTC (permalink / raw
  To: Johannes Schindelin; +Cc: git, gitster

On Samstag, 7. März 2009, Johannes Schindelin wrote:
> 	Actually, it was quite funny that t4200 displayed the bug; I
> 	_guess_ it was due to a time zone issue, as the times were exactly
> 	one hour off (and the machine I tested on is at UTC+0100 right now).
>
> 	And due to that bug, "rerere gc" would not collect the garbage.

U-oh, you are right! I was 100% sure that I ran the test-suite suite with your 
earlier patch and it was all OK before I gave my ACK. But appearently I did 
something wrong because today I see the failure in t4200, too, and this fixes 
it, and it is the right thing to do.

> -#define stat64(x,y) mingw_lstat(x,y)
> +#define _stati64(x,y) mingw_lstat(x,y)

Acked-by: Johannes Sixt <j6t@kdbg.org>

-- Hannes

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Brown paper bag fix for MinGW 64-bit stat
  2009-03-07 14:37 ` [PATCH] Brown paper bag fix for MinGW 64-bit stat Johannes Schindelin
  2009-03-07 19:46   ` Johannes Sixt
@ 2009-03-07 20:00   ` Junio C Hamano
  2009-03-07 21:02     ` Johannes Schindelin
  1 sibling, 1 reply; 4+ messages in thread
From: Junio C Hamano @ 2009-03-07 20:00 UTC (permalink / raw
  To: Johannes Sixt; +Cc: git, gitster, Johannes Schindelin

Johannes Schindelin <johannes.schindelin@gmx.de> writes:

> When overriding the identifier "stat" so that "struct stat" will be
> substituted with "struct _stati64" everywhere, I tried to fix the calls
> to the _function_ stat(), too, but I forgot to change the earlier
> attempt "stat64" to "_stati64" there.
>
> So, the stat() calls were overridden by calls to _stati64() instead.
>
> Unfortunately, there is a function _stati64() so that I missed that
> calls to stat() were not actually overridden by calls to mingw_lstat(),
> but t4200-rerere.sh showed the error.
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

Since this is a fix-up to a new on 'master', I've applied the patch
myself, but how would we want to handle MinGW related patches in general?

My preference is to have somebody I can rely on receiving Acked forwards
from (or pulling from).

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Brown paper bag fix for MinGW 64-bit stat
  2009-03-07 20:00   ` Junio C Hamano
@ 2009-03-07 21:02     ` Johannes Schindelin
  0 siblings, 0 replies; 4+ messages in thread
From: Johannes Schindelin @ 2009-03-07 21:02 UTC (permalink / raw
  To: Junio C Hamano; +Cc: Johannes Sixt, git

Hi,

On Sat, 7 Mar 2009, Junio C Hamano wrote:

> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
> 
> > When overriding the identifier "stat" so that "struct stat" will be
> > substituted with "struct _stati64" everywhere, I tried to fix the calls
> > to the _function_ stat(), too, but I forgot to change the earlier
> > attempt "stat64" to "_stati64" there.
> >
> > So, the stat() calls were overridden by calls to _stati64() instead.
> >
> > Unfortunately, there is a function _stati64() so that I missed that
> > calls to stat() were not actually overridden by calls to mingw_lstat(),
> > but t4200-rerere.sh showed the error.
> >
> > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> 
> Since this is a fix-up to a new on 'master', I've applied the patch
> myself, but how would we want to handle MinGW related patches in general?
> 
> My preference is to have somebody I can rely on receiving Acked forwards
> from (or pulling from).

My preference is to keep the tried and tested mingw.git maintainer... ;-)

Note: IMHO Windows support is really at most beta quality; I would prefer 
only those using it who can fix bugs themselves, or have the means to make 
others fix the bugs.

So technically, we do not need such a strict and rigid process as for 
git.git itself, which is blessed with hundreds of contributors, due to 
which is really is ready for the end-user.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-03-07 21:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <cover.1236436185u.git.johannes.schindelin@gmx.de>
2009-03-07 14:37 ` [PATCH] Brown paper bag fix for MinGW 64-bit stat Johannes Schindelin
2009-03-07 19:46   ` Johannes Sixt
2009-03-07 20:00   ` Junio C Hamano
2009-03-07 21:02     ` Johannes Schindelin

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).