1/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
2 Linux version which handles LFS when required.
3 Copyright (C) 2017-2019 Free Software Foundation, Inc.
4 This file is part of the GNU C Library.
5
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
10
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, see
18 <http://www.gnu.org/licenses/>. */
19
20#include <sys/stat.h>
21#include <kernel_stat.h>
22
23#if !XSTAT_IS_XSTAT64
24# include <glob.h>
25# include <dirent.h>
26# include <sys/stat.h>
27# include <shlib-compat.h>
28
29# define dirent dirent64
30# define __readdir(dirp) __readdir64 (dirp)
31
32# define glob_t glob64_t
33# define __glob __glob64_lstat_compat
34# define globfree globfree64
35
36# undef stat
37# define stat stat64
38
39# define COMPILE_GLOB64 1
40
41# define GLOB_ATTRIBUTE attribute_compat_text_section
42
43/* Avoid calling gl_lstat with GLOB_ALTDIRFUNC. */
44# define GLOB_NO_LSTAT
45
46# include <posix/glob.c>
47
48# if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_27)
49# ifndef GLOB_NO_OLD_VERSION
50# define GLOB_LSTAT_START_VER GLIBC_2_2
51# else
52# define GLOB_LSTAT_START_VER GLIBC_2_1
53# endif
54compat_symbol (libc, __glob64_lstat_compat, glob64, GLOB_LSTAT_START_VER);
55# endif
56#endif /* XSTAT_IS_XSTAT64 */
57