glibc/include/glob.h
Stefan Liebler ba436665b1 Fix extra PLT reference in libc.so due to __glob64_time64 if build with gcc 7.5 on 32bit.
Starting with recent commit 84f7ce8447
"posix: Add glob64 with 64-bit time_t support", elf/check-localplt
fails due to extra PLT reference __glob64_time64 in __glob64_time64
itself.

This is observable with gcc 7.5 on x86_64 with -m32 or s390x with
-m31.  E.g. if build with gcc 10, gcc is generating a call to
__glob64_time64.localalias.

This patch is adding a hidden version of __glob64_time64 in the
same way as for __globfree64_time64.
2021-07-01 16:46:59 +02:00

48 lines
1.2 KiB
C

#ifndef _GLOB_H
#include <posix/glob.h>
#ifndef _ISOMAC
# include <sys/types.h>
libc_hidden_proto (glob)
libc_hidden_proto (glob64)
libc_hidden_proto (globfree)
libc_hidden_proto (globfree64)
# if __TIMESIZE == 64
# define glob64_time64_t glob64_t
# else
# include <sys/stat.h>
typedef struct
{
size_t gl_pathc;
char **gl_pathv;
size_t gl_offs;
int gl_flags;
void (*gl_closedir) (void *);
struct dirent64 *(*gl_readdir) (void *);
void *(*gl_opendir) (const char *);
int (*gl_lstat) (const char *__restrict, struct __stat64_t64 *__restrict);
int (*gl_stat) (const char *__restrict, struct __stat64_t64 *__restrict);
} glob64_time64_t;
extern int __glob64_time64 (const char *pattern, int flags,
int (*errfunc) (const char *, int),
glob64_time64_t *pglob);
libc_hidden_proto (__glob64_time64)
void __globfree64_time64 (glob64_time64_t *pglob);
libc_hidden_proto (__globfree64_time64)
# endif
/* Now define the internal interfaces. */
extern int __glob_pattern_p (const char *__pattern, int __quote);
extern int __glob64 (const char *__pattern, int __flags,
int (*__errfunc) (const char *, int),
glob64_t *__pglob);
libc_hidden_proto (__glob64)
#endif
#endif