glibc/sysdeps/unix/sysv/linux/alpha
Adhemerval Zanella 298d0e3129 Consolidate Linux getdents{64} implementation
This patch consolidates Linux getdents{64} implementation on just
the default sysdeps/unix/sysv/linux/getdents{64}{_r}.c ones.

Although this symbol is used only internally, the non-LFS version
still need to be build due the non-LFS getdirentries which requires
its semantic.

The non-LFS default implementation now uses the wordsize-32 as base
which uses getdents64 syscall plus adjustment for overflow (it allows
to use the same code for architectures that does not support non-LFS
getdents syscall).  It has two main differences to wordsize-32 one:

  - DIRENT_SET_DP_INO is added to handle alpha requirement to zero
    the padding.

  - alloca is removed by allocating a bounded temporary buffer (it
    increases stack usage by roughly 276 bytes).

The default implementation handle the Linux requirements:

  * getdents is only built for _DIRENT_MATCHES_DIRENT64 being 0.

  * getdents64 is always built and aliased to getdents for ABIs
    that define _DIRENT_MATCHES_DIRENT64 to 1.

  * A compat symbol is added for getdents64 for ABI that used to
    export the old non-LFS version.

Checked on aarch64-linux-gnu, x86_64-linux-gnu, i686-linux-gnu,
sparcv9-linux-gnu, sparc64-linux-gnu, powerpc-linux-gnu, and
powerpc64le-linux-gnu.

	* sysdeps/unix/sysv/linux/alpha/getdents.c: Add comments with alpha
	requirements.
	 (_DIRENT_MATCHES_DIRENT64): Undef
	* sysdeps/unix/sysv/linux/alpha/getdents64.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/getdents64.c: Remove file.
	* sysdeps/unix/sysv/linux/generic/getdents.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/getdents64.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c: Likewise.
	* sysdeps/unix/sysv/linux/getdents.c: Simplify implementation by
	use getdents64 syscalls as base.
	* sysdeps/unix/sysv/linux/getdents64.c: Likewise and add compatibility
	symbol if required.
	* sysdeps/unix/sysv/linux/hppa/getdents64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getdents64.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/getdents64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/getdents64.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getdents64.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/getdents.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/getdents64.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
	(__get_clockfreq_via_proc_openprom): Use __getdents64.
	* sysdeps/unix/sysv/linux/mips/mips64/getdents64.c: New file.
2018-04-19 08:49:52 -03:00
..
alpha Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
alphaev6/fpu Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
alphaev67/fpu Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
bits hurd: Fix includability of <hurd/signal.h> in all standards 2018-03-05 22:50:29 +01:00
fpu Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
sys Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
____longjmp_chk.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
a.out.h Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
adjtime.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
aio_cancel.c alpha: Move remaining files out of sysdeps/unix/sysv/linux/alpha/nptl/ 2014-05-23 11:20:48 -07:00
brk.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
c++-types.data alpha: Move remaining files out of sysdeps/unix/sysv/linux/alpha/nptl/ 2014-05-23 11:20:48 -07:00
clone.S alpha/clone.S: Invoke .set noat/.set at around explicit uses of $at 2018-03-10 15:17:18 -05:00
configure Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
configure.ac Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
dl-auxv.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
dl-brk.S Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
dl-fxstatat64.c Remove __ASSUME_ATFCTS conditionals in sysdeps/unix/sysv/linux/. 2014-06-20 15:41:35 +00:00
dl-support.c Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
dl-sysdep.c Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
fraiseexcpt.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fstatfs64.c Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
fstatvfs64.c Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
fstatvfs.c Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
fxstat.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fxstatat.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getclktck.c Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
getcontext.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getdents64.c Consolidate Linux getdents{64} implementation 2018-04-19 08:49:52 -03:00
getdents.c Consolidate Linux getdents{64} implementation 2018-04-19 08:49:52 -03:00
gethostname.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getrlimit64.c Alpha: Fix the RLIM_INFINITY and RLIM64_INFINITY constants 2018-01-05 20:34:10 +01:00
getsysstats.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
glob-lstat-compat.c posix: Add compat glob symbol to not follow dangling symbols 2017-09-25 18:04:16 -07:00
globfree.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ieee_get_fp_control.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ieee_set_fp_control.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Implies NPTL is no longer an add-on! 2014-07-07 09:29:06 -07:00
internal_statvfs64.c Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
ioperm.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ipc_priv.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
jmp_buf-macros.h Add jmp_buf-macros.h 2017-11-09 05:10:03 -08:00
kernel_sigaction.h linux: Consolidate sigaction implementation 2018-04-05 17:09:50 -03:00
kernel_stat.h Allow [f]statfs64 to alias [f]statfs 2016-11-22 09:59:12 -08:00
kernel_sysinfo.h Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
kernel_termios.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
kernel-features.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ld.abilist ld.so: Remove __libc_memalign 2016-11-30 16:23:58 +01:00
libanl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libBrokenLocale.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libc.abilist Alpha: Fix the RLIM_INFINITY and RLIM64_INFINITY constants 2018-01-05 20:34:10 +01:00
libcrypt.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libdl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libm.abilist Add narrowing subtract functions. 2018-03-20 00:34:52 +00:00
libnsl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libpthread.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libresolv.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
librt.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libthread_db.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libutil.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
localplt.data ld.so: Introduce struct dl_exception 2017-08-10 16:54:57 +02:00
lxstat.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
makecontext.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Makefile posix: Fix compat glob code on s390 and alpha 2017-09-13 09:24:12 -03:00
nldbl-abi.h Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
oldglob.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pipe.S Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
pt-vfork.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
register-dump.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
rt_sigaction.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
select.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
setcontext.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
setfpucw.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
setrlimit64.c Alpha: Fix the RLIM_INFINITY and RLIM64_INFINITY constants 2018-01-05 20:34:10 +01: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. 2018-01-01 00:32:25 +00:00
sigcontextinfo.h Remove unused frame.h header, sigcontextinfo.h macros. 2018-03-22 16:40:51 +00:00
sigprocmask.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sizes.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
statfs64.c Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
statvfs64.c Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
statvfs.c Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
swapcontext.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
syscall.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
syscalls.list Consolidate Linux select implementation 2017-05-03 10:36:36 -03:00
sysconf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sysdep.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
timer_create.c alpha: Move remaining files out of sysdeps/unix/sysv/linux/alpha/nptl/ 2014-05-23 11:20:48 -07:00
timer_delete.c alpha: Move remaining files out of sysdeps/unix/sysv/linux/alpha/nptl/ 2014-05-23 11:20:48 -07:00
timer_getoverr.c alpha: Move remaining files out of sysdeps/unix/sysv/linux/alpha/nptl/ 2014-05-23 11:20:48 -07:00
timer_gettime.c alpha: Move remaining files out of sysdeps/unix/sysv/linux/alpha/nptl/ 2014-05-23 11:20:48 -07:00
timer_settime.c alpha: Move remaining files out of sysdeps/unix/sysv/linux/alpha/nptl/ 2014-05-23 11:20:48 -07:00
ucontext-offsets.sym Fix mcontext_t sigcontext namespace (bug 21457). 2017-08-30 22:02:04 +00:00
Versions Alpha: Fix the RLIM_INFINITY and RLIM64_INFINITY constants 2018-01-05 20:34:10 +01:00
vfork.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
wordexp.c Relocate alpha from ports to libc 2014-02-12 07:00:06 -08:00
xstat.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xstatconv.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xstatconv.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00