]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
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 a36b0b4a1e0a0e44bd2d08c96b786f993d8d11b9..f0921f8340e19813b7951e3b6b63f796a7d4f475 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+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
index 99caf9e9bb9ff20eac07fc45b28c16d1958aec38..89042351f88a27ea68a3dff2aa9afea87c30bbdf 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 a960c6651d1a458584998d0254b29dca1b71c3fd..605e51ef1e966b421d64458d50d23ca1f59613f0 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 d87b587384a466ac0db2258c75aa48d6ec860147..c9239dcde8d8a7b341a1f20652dfa7ce31a22e59 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 9d58fdbe3a19327c73919f7620a93c8838d18126..88a98cab79a4ad791af1402087ad2bfee201a349 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 a9212b72fb183acad59792f402d23b9c61e7e706..42639fbc1b820f19a54227aaa608ad7353778899 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 939214dbd0f9201a155a5e327d6a6ea7f3824828..de2a30551c7b77a53cd6f8a61940b12fa9af8ef7 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 633c59b5bef39f37ab1bbcd70cf760cba242264b..50e975df2024ed3784101c4c47eba5fe3f5ac870 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 592d957a75dab49eb12c487436af2d82ed73301f..c9ed76e134e55c314085c3bfae896b7015048ab2 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 fee79b32a0433a2a80d137abd6ac14802ebd4b46..52ff36fb6e7097d3bb6126c7ed5e1fcfe6d9e361 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 ccfda4bb742fe5df70d6e26ad86af3ae7510bb0f..6b779091043aed929e20df3bb1872988a36ea138 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 9276297c7cb7b18311ab39b08fbb7163b98167db..ba6812bf5988174e712fae5c5eccd47c5d5fd969 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;