Re: Building Diffutils with MinGW

Jim Meyering <[email protected]>
Newsgroups gmane.comp.gnu.utils.bugs
Message-ID <[email protected]>
Eli Zaretskii wrote:
> Yet another issue is with this part of src/system.h:
>
>   #ifndef same_special_file
>   # if HAVE_ST_RDEV && defined S_ISBLK && defined S_ISCHR
>   #  define same_special_file(s, t) \
>        (((S_ISBLK ((s)->st_mode) && S_ISBLK ((t)->st_mode)) \
> 	 || (S_ISCHR ((s)->st_mode) && S_ISCHR ((t)->st_mode))) \
> 	&& (s)->st_rdev == (t)->st_rdev)
>   # else
>   #  define same_special_file(s, t) 0
>   # endif
>   #endif
>
> Since the configure script doesn't test for HAVE_ST_RDEV, the upshot
> of this seems to be that same_special_file will always yield zero on
> all platforms, which doesn't seem to be the intent.  Apologies if I
> missed something important.

Thanks for the report.  configure.ac does test for the stat.st_rdev member.

    AC_CHECK_MEMBERS([struct stat.st_rdev])

The cpp expression should test HAVE_STRUCT_STAT_ST_RDEV, not HAVE_ST_RDEV.
That was due to an 11-year-old typo.
I've fixed it with this:

From 3c19ca08b1cf7aaaae72393073affaa082928ae4 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[email protected]>
Date: Sat, 5 May 2012 15:51:25 +0200
Subject: [PATCH] diff: fix a typo that was always disabling the
 same_special_file macro

* src/system.h (same_special_file): Correct cpp guard expression:
s/HAVE_ST_RDEV/HAVE_STRUCT_STAT_ST_RDEV/.  Reported by Eli Zaretskii.
---
 src/system.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/system.h b/src/system.h
index 2767b57..eb9ed53 100644
--- a/src/system.h
+++ b/src/system.h
@@ -151,7 +151,7 @@ verify (sizeof (lin) <= sizeof (long int));

 /* Do struct stat *S, *T describe the same special file?  */
 #ifndef same_special_file
-# if HAVE_ST_RDEV && defined S_ISBLK && defined S_ISCHR
+# if HAVE_STRUCT_STAT_ST_RDEV && defined S_ISBLK && defined S_ISCHR
 #  define same_special_file(s, t) \
      (((S_ISBLK ((s)->st_mode) && S_ISBLK ((t)->st_mode)) \
        || (S_ISCHR ((s)->st_mode) && S_ISCHR ((t)->st_mode))) \
--
1.7.10.1.457.g8275905
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.