Assume that _DIRENT_HAVE_D_TYPE is always defined.
authorFlorian Weimer <fweimer@redhat.com>
Mon, 30 Oct 2017 14:48:33 +0000 (15:48 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 30 Oct 2017 14:48:33 +0000 (15:48 +0100)
References remain in io/fts.c, io/ftw.c, posix/glob.c,
sysdeps/posix/getcwd.c.  These files are (potentially) externally
shared.

12 files changed:
ChangeLog
elf/ldconfig.c
io/tst-mkdirat.c
io/tst-mkfifoat.c
io/tst-mknodat.c
locale/programs/charmap-dir.c
locale/programs/locale.c
locale/programs/locarchive.c
posix/bug-glob2.c
posix/tst-dir.c
posix/tst-glob_lstat_compat.c
posix/tst-gnuglob-skeleton.c

index a36b0b4..f0921f8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
 2017-10-30  Florian Weimer  <fweimer@redhat.com>
 
+       * elf/ldconfig.c (search_dir): Assume that _DIRENT_HAVE_D_TYPE is
+       always defined.
+       * io/tst-mkdirat.c (do_test): Likewise.
+       * io/tst-mkfifoat.c (do_test): Likewise.
+       * io/tst-mknodat.c (do_test): Likewise.
+       * locale/programs/charmap-dir.c (charmap_readdir): Likewise.
+       * locale/programs/locale.c (select_dirs): Likewise.
+       * locale/programs/locarchive.c (add_locales_to_archive): Likewise.
+       * posix/bug-glob2.c (my_readdir): Likewise.
+       * posix/tst-dir.c (main): Likewise.
+       * posix/tst-glob_lstat_compat.c (my_readdir): Likewise.
+       * posix/tst-gnuglob-skeleton.c (my_readdir): Likewise.
+
+2017-10-30  Florian Weimer  <fweimer@redhat.com>
+
        * string/strings.h (ffsl, ffsll): Declare under __USE_MISC, not
        just __USE_GNU.
 
index 99caf9e..8904235 100644 (file)
@@ -710,25 +710,20 @@ search_dir (const struct dir_entry *entry)
   while ((direntry = readdir64 (dir)) != NULL)
     {
       int flag;
-#ifdef _DIRENT_HAVE_D_TYPE
       /* We only look at links and regular files.  */
       if (direntry->d_type != DT_UNKNOWN
          && direntry->d_type != DT_LNK
          && direntry->d_type != DT_REG
          && direntry->d_type != DT_DIR)
        continue;
-#endif /* _DIRENT_HAVE_D_TYPE  */
       /* Does this file look like a shared library or is it a hwcap
         subdirectory?  The dynamic linker is also considered as
         shared library.  */
       if (((strncmp (direntry->d_name, "lib", 3) != 0
            && strncmp (direntry->d_name, "ld-", 3) != 0)
           || strstr (direntry->d_name, ".so") == NULL)
-         && (
-#ifdef _DIRENT_HAVE_D_TYPE
-             direntry->d_type == DT_REG ||
-#endif
-             !is_hwcap_platform (direntry->d_name)))
+         && (direntry->d_type == DT_REG
+             || !is_hwcap_platform (direntry->d_name)))
        continue;
 
       size_t len = strlen (direntry->d_name);
@@ -765,12 +760,10 @@ search_dir (const struct dir_entry *entry)
        }
 
       struct stat64 lstat_buf;
-#ifdef _DIRENT_HAVE_D_TYPE
       /* We optimize and try to do the lstat call only if needed.  */
       if (direntry->d_type != DT_UNKNOWN)
        lstat_buf.st_mode = DTTOIF (direntry->d_type);
       else
-#endif
        if (__glibc_unlikely (lstat64 (real_file_name, &lstat_buf)))
          {
            error (0, errno, _("Cannot lstat %s"), file_name);
@@ -825,9 +818,6 @@ search_dir (const struct dir_entry *entry)
          new_entry->path = xstrdup (file_name);
          new_entry->flag = entry->flag;
          new_entry->next = NULL;
-#ifdef _DIRENT_HAVE_D_TYPE
-         /* We have filled in lstat only #ifndef
-            _DIRENT_HAVE_D_TYPE.  Fill it in if needed.  */
          if (!is_link
              && direntry->d_type != DT_UNKNOWN
              && __builtin_expect (lstat64 (real_file_name, &lstat_buf), 0))
@@ -837,7 +827,6 @@ search_dir (const struct dir_entry *entry)
              free (new_entry);
              continue;
            }
-#endif
          new_entry->ino = lstat_buf.st_ino;
          new_entry->dev = lstat_buf.st_dev;
          add_single_dir (new_entry, 0);
@@ -860,7 +849,6 @@ search_dir (const struct dir_entry *entry)
       else
        real_name = real_file_name;
 
-#ifdef _DIRENT_HAVE_D_TYPE
       /* Call lstat64 if not done yet.  */
       if (!is_link
          && direntry->d_type != DT_UNKNOWN
@@ -869,7 +857,6 @@ search_dir (const struct dir_entry *entry)
          error (0, errno, _("Cannot lstat %s"), file_name);
          continue;
        }
-#endif
 
       /* First search whether the auxiliary cache contains this
         library already and it's not changed.  */
index a960c66..605e51e 100644 (file)
@@ -131,13 +131,11 @@ do_test (void)
     if (strcmp (d->d_name, "some-dir") == 0)
       {
        has_some_dir = true;
-#ifdef _DIRENT_HAVE_D_TYPE
        if (d->d_type != DT_UNKNOWN && d->d_type != DT_DIR)
          {
            puts ("d_type for some-dir wrong");
            return 1;
          }
-#endif
       }
     else if (strcmp (d->d_name, ".") != 0 && strcmp (d->d_name, "..") != 0)
       {
index d87b587..c9239dc 100644 (file)
@@ -131,13 +131,11 @@ do_test (void)
     if (strcmp (d->d_name, "some-fifo") == 0)
       {
        has_some_fifo = true;
-#ifdef _DIRENT_HAVE_D_TYPE
        if (d->d_type != DT_UNKNOWN && d->d_type != DT_FIFO)
          {
            puts ("d_type for some-fifo wrong");
            return 1;
          }
-#endif
       }
     else if (strcmp (d->d_name, ".") != 0 && strcmp (d->d_name, "..") != 0)
       {
index 9d58fdb..88a98ca 100644 (file)
@@ -131,13 +131,11 @@ do_test (void)
     if (strcmp (d->d_name, "some-fifo") == 0)
       {
        has_some_fifo = true;
-#ifdef _DIRENT_HAVE_D_TYPE
        if (d->d_type != DT_UNKNOWN && d->d_type != DT_FIFO)
          {
            puts ("d_type for some-fifo wrong");
            return 1;
          }
-#endif
       }
     else if (strcmp (d->d_name, ".") != 0 && strcmp (d->d_name, "..") != 0)
       {
index a9212b7..42639fb 100644 (file)
@@ -115,11 +115,9 @@ charmap_readdir (CHARMAP_DIR *cdir)
       stpcpy (stpcpy (cdir->pathname, cdir->directory), dirent->d_name);
       filename = cdir->pathname + cdir->directory_len;
 
-#ifdef _DIRENT_HAVE_D_TYPE
       if (dirent->d_type != DT_UNKNOWN && dirent->d_type != DT_LNK)
         mode = DTTOIF (dirent->d_type);
       else
-#endif
         {
           struct stat64 statbuf;
 
index 939214d..de2a305 100644 (file)
@@ -316,11 +316,9 @@ select_dirs (const struct dirent *dirent)
     {
       mode_t mode = 0;
 
-#ifdef _DIRENT_HAVE_D_TYPE
       if (dirent->d_type != DT_UNKNOWN && dirent->d_type != DT_LNK)
        mode = DTTOIF (dirent->d_type);
       else
-#endif
        {
          struct stat64 st;
          char buf[sizeof (COMPLOCALEDIR)
index 633c59b..50e975d 100644 (file)
@@ -1385,17 +1385,13 @@ add_locales_to_archive (size_t nlist, char *list[], bool replace)
                     a directory we have to look at a file with the
                     prefix "SYS_".  Otherwise we have found what we
                     are looking for.  */
-#ifdef _DIRENT_HAVE_D_TYPE
                  d_type = d->d_type;
 
                  if (d_type != DT_REG)
-#endif
                    {
                      char fullname[fnamelen + 2 * strlen (d->d_name) + 7];
 
-#ifdef _DIRENT_HAVE_D_TYPE
                      if (d_type == DT_UNKNOWN)
-#endif
                        {
                          strcpy (stpcpy (stpcpy (fullname, fname), "/"),
                                  d->d_name);
index 592d957..c9ed76e 100644 (file)
@@ -207,21 +207,13 @@ my_readdir (void *gdir)
 
   dir->d.d_ino = 1;            /* glob should not skip this entry.  */
 
-#ifdef _DIRENT_HAVE_D_TYPE
   dir->d.d_type = filesystem[dir->idx].type;
-#endif
 
   strcpy (dir->d.d_name, filesystem[dir->idx].name);
 
-#ifdef _DIRENT_HAVE_D_TYPE
   PRINTF ("my_readdir ({ level: %d, idx: %ld }) = { d_ino: %ld, d_type: %d, d_name: \"%s\" }\n",
          dir->level, (long int) dir->idx, dir->d.d_ino, dir->d.d_type,
          dir->d.d_name);
-#else
-  PRINTF ("my_readdir ({ level: %d, idx: %ld }) = { d_ino: %ld, d_name: \"%s\" }\n",
-         dir->level, (long int) dir->idx, dir->d.d_ino,
-         dir->d.d_name);
-#endif
 
   ++dir->idx;
 
index fee79b3..52ff36f 100644 (file)
@@ -149,10 +149,8 @@ main (int argc, char *argv[])
 
   while ((d = readdir64 (dir1)) != NULL)
     {
-#ifdef _DIRENT_HAVE_D_TYPE
       if (d->d_type != DT_UNKNOWN && d->d_type != DT_REG)
        continue;
-#endif
 
       if (d->d_ino == st2.st_ino)
        {
@@ -234,10 +232,8 @@ main (int argc, char *argv[])
 
   while ((d = readdir64 (dir2)) != NULL)
     {
-#ifdef _DIRENT_HAVE_D_TYPE
       if (d->d_type != DT_UNKNOWN && d->d_type != DT_DIR)
        continue;
-#endif
 
       if (d->d_ino == st2.st_ino)
        {
@@ -327,10 +323,8 @@ main (int argc, char *argv[])
   rewinddir (dir1);
   while (readdir64_r (dir1, &direntbuf.d, &d) == 0 && d != NULL)
     {
-#ifdef _DIRENT_HAVE_D_TYPE
       if (d->d_type != DT_UNKNOWN && d->d_type != DT_DIR)
        continue;
-#endif
 
       if (d->d_ino == st1.st_ino)
        {
@@ -457,13 +451,11 @@ main (int argc, char *argv[])
          || strcmp (d->d_name, "..") == 0
          || strcmp (d->d_name, "another-dir") == 0)
        {
-#ifdef _DIRENT_HAVE_D_TYPE
          if (d->d_type != DT_UNKNOWN && d->d_type != DT_DIR)
            {
              printf ("d_type for \"%s\" is wrong\n", d->d_name);
              result = 1;
            }
-#endif
          if (stat64 (d->d_name, &st3) < 0)
            {
              printf ("cannot stat \"%s\" is wrong\n", d->d_name);
@@ -477,13 +469,11 @@ main (int argc, char *argv[])
        }
       else if (strcmp (d->d_name, "and-a-file") == 0)
        {
-#ifdef _DIRENT_HAVE_D_TYPE
          if (d->d_type != DT_UNKNOWN && d->d_type != DT_REG)
            {
              printf ("d_type for \"%s\" is wrong\n", d->d_name);
              result = 1;
            }
-#endif
          if (stat64 (d->d_name, &st3) < 0)
            {
              printf ("cannot stat \"%s\" is wrong\n", d->d_name);
index ccfda4b..6b77909 100644 (file)
@@ -166,9 +166,7 @@ my_readdir (void *gdir)
 
   dir->d.d_ino = 1;            /* glob should not skip this entry.  */
 
-#ifdef _DIRENT_HAVE_D_TYPE
   dir->d.d_type = filesystem[dir->idx].type;
-#endif
 
   strcpy (dir->d.d_name, filesystem[dir->idx].name);
 
index 9276297..ba6812b 100644 (file)
@@ -221,27 +221,16 @@ my_readdir (void *gdir)
 
   dir->d.d_ino = 1;            /* glob should not skip this entry.  */
 
-#ifdef _DIRENT_HAVE_D_TYPE
   dir->d.d_type = filesystem[dir->idx].type;
-#endif
 
   strcpy (dir->d.d_name, filesystem[dir->idx].name);
 
-#ifdef _DIRENT_HAVE_D_TYPE
   if (test_verbose > 0)
     printf ("info: my_readdir ({ level: %d, idx: %ld })"
            " = { d_ino: %lld, d_type: %d, d_name: \"%s\" }\n",
            dir->level, (long int) dir->idx,
            (long long) dir->d.d_ino, dir->d.d_type,
            dir->d.d_name);
-#else
-  if (test_verbose > 0)
-    printf ("info: my_readdir ({ level: %d, idx: %ld })"
-           " = { d_ino: %lld, d_name: \"%s\" }\n",
-           dir->level, (long int) dir->idx,
-           (long long) dir->d.d_ino,
-           dir->d.d_name);
-#endif
 
   ++dir->idx;