glibc/sysdeps/unix/sysv/linux/mips
Adhemerval Zanella c66c908230 posix: Sync glob with gnulib [BZ #1062]
This patch syncs posix/glob.c implementation with gnulib version
b5ec983 (glob: simplify symlink detection).  The only difference
to gnulib code is

  * DT_UNKNOWN, DT_DIR, and DT_LNK definition in the case there
    were not already defined.  Gnulib code which uses
    HAVE_STRUCT_DIRENT_D_TYPE will redefine them wrongly because
    GLIBC does not define HAVE_STRUCT_DIRENT_D_TYPE.  Instead
    the patch check for each definition instead.

Also, the patch requires additional globfree and globfree64 files
for compatibility version on some architectures.  Also the code
simplification leads to not macro simplification (not need for
NO_GLOB_PATTERN_P anymore).

Checked on x86_64-linux-gnu and on a build using build-many-glibcs.py
for all major architectures.

	[BZ #1062]
	* posix/Makefile (routines): Add globfree, globfree64, and
	glob_pattern_p.
	* posix/flexmember.h: New file.
	* posix/glob_internal.h: Likewise.
	* posix/glob_pattern_p.c: Likewise.
	* posix/globfree.c: Likewise.
	* posix/globfree64.c: Likewise.
	* sysdeps/gnu/globfree64.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/globfree.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/globfree64.c: Likewise.
	* sysdeps/unix/sysv/linux/oldglob.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/globfree64.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/globfree.c: Likewise.
	* sysdeps/wordsize-64/globfree.c: Likewise.
	* sysdeps/wordsize-64/globfree64.c: Likewise.
	* posix/glob.c (HAVE_CONFIG_H): Use !_LIBC instead.
	[NDEBUG): Remove comments.
	(GLOB_ONLY_P, _AMIGA, VMS): Remove define.
	(dirent_type): New type.  Use uint_fast8_t not
	uint8_t, as C99 does not require uint8_t.
	(DT_UNKNOWN, DT_DIR, DT_LNK): New macros.
	(struct readdir_result): Use dirent_type.  Do not define skip_entry
	unless it is needed; this saves a byte on platforms lacking d_ino.
	(readdir_result_type, readdir_result_skip_entry):
	New functions, replacing ...
	(readdir_result_might_be_symlink, readdir_result_might_be_dir):
	 these functions, which were removed.  This makes the callers
	easier to read.  All callers changed.
	(D_INO_TO_RESULT): Now empty if there is no d_ino.
	(size_add_wrapv, glob_use_alloca): New static functions.
	(glob, glob_in_dir): Check for size_t overflow in several places,
	and fix some size_t checks that were not quite right.
	Remove old code using SHELL since Bash no longer
	uses this.
	(glob, prefix_array): Separate MS code better.
	(glob_in_dir): Remove old Amiga and VMS code.
	(globfree, __glob_pattern_type, __glob_pattern_p): Move to
	separate files.
	(glob_in_dir): Do not rely on undefined behavior in accessing
	struct members beyond their bounds.  Use a flexible array member
	instead
	(link_stat): Rename from link_exists2_p and return -1/0 instead of
	0/1.  Caller changed.
	(glob): Fix memory leaks.
	* posix/glob64 (globfree64): Move to separate file.
	* sysdeps/gnu/glob64.c (NO_GLOB_PATTERN_P): Remove define.
	(globfree64): Remove hidden alias.
	* sysdeps/unix/sysv/linux/Makefile (sysdeps_routines): Add
	oldglob.
	* sysdeps/unix/sysv/linux/alpha/glob.c (__new_globfree): Move to
	separate file.
	* sysdeps/unix/sysv/linux/i386/glob64.c (NO_GLOB_PATTERN_P): Remove
	define.
	Move compat code to separate file.
	* sysdeps/wordsize-64/glob.c (globfree): Move definitions to
	separate file.
2017-09-08 09:39:13 +02:00
..
bits Fix XPG4.2 bits/sigaction.h namespace (bug 21899). 2017-08-07 23:41:32 +00:00
mips32 MIPS/o32: Fix internal_syscall5/6/7 2017-08-29 18:31:08 +01:00
mips64 posix: Sync glob with gnulib [BZ #1062] 2017-09-08 09:39:13 +02:00
sys Fix mcontext_t sigcontext namespace (bug 21457). 2017-08-30 22:02:04 +00:00
____longjmp_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
_test_and_set.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
arch-fork.h Split arch-fork.h from fork.h 2014-05-16 11:17:41 -07:00
brk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
clone.S Call exit directly in clone (BZ #21512) 2017-06-26 17:52:20 -03:00
configure MIPS: Set the required Linux kernel version to 4.5.0 for 2008 NaN 2016-01-25 00:19:27 +00:00
configure.ac MIPS: Set the required Linux kernel version to 4.5.0 for 2008 NaN 2016-01-25 00:19:27 +00:00
dl-cache.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-static.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getcontext.S mips: Fix store/load gp registers to/from ucontext_t 2017-06-13 21:34:45 +00:00
getmsg.c Move mips from ports to libc. 2014-02-10 23:30:21 +00:00
getrlimit64.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getsysstats.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Implies NPTL is no longer an add-on! 2014-07-07 09:29:06 -07:00
init-first.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
kernel_rt_sigframe.h Rename struct ucontext tag (bug 21457). 2017-06-26 22:03:58 +00:00
kernel_sigaction.h Move mips from ports to libc. 2014-02-10 23:30:21 +00:00
kernel_stat.h Allow [f]statfs64 to alias [f]statfs 2016-11-22 09:59:12 -08:00
kernel_termios.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
kernel-features.h Remove __ASSUME_REQUEUE_PI 2017-04-04 18:02:02 -03:00
ldsodefs.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libc-abis Add support for MIPS O32 FPXX and .MIPS.abiflags 2014-12-31 21:09:21 +00:00
libc-vdso.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
makecontext.S mips: Fix store/load gp registers to/from ucontext_t 2017-06-13 21:34:45 +00:00
Makefile Remove abi-*-options compiler flags 2017-08-28 17:16:53 +02:00
pipe.S Move mips from ports to libc. 2014-02-10 23:30:21 +00:00
profil-counter.h Move mips from ports to libc. 2014-02-10 23:30:21 +00:00
pt-vfork.S MIPS: Consolidate NPTL/non versions of vfork 2014-06-27 11:18:10 -07:00
putmsg.c Move mips from ports to libc. 2014-02-10 23:30:21 +00:00
readelflib.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
register-dump.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
setcontext.S mips: Fix store/load gp registers to/from ucontext_t 2017-06-13 21:34:45 +00:00
setrlimit64.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
shlib-versions Remove configuration name patterns from shlib-versions. 2014-09-12 12:28:47 +00:00
sigaction.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sigcontextinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
swapcontext.S mips: Fix store/load gp registers to/from ucontext_t 2017-06-13 21:34:45 +00:00
syscalls.list Consolidate Linux send implementation 2017-03-09 15:22:06 +01:00
sysdep-cancel.h Remove NO_CANCELLATION macro 2017-08-31 16:10:34 -03:00
ucontext_i.sym Move mips from ports to libc. 2014-02-10 23:30:21 +00:00
ustat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Versions VDSO support for MIPS 2016-04-12 11:05:13 +01:00
vfork.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
xstatconv.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00