Commit Graph

7 Commits

Author SHA1 Message Date
Paul Eggert
2b778ceb40 Update copyright dates with scripts/update-copyrights
I used these shell commands:

../glibc/scripts/update-copyrights $PWD/../gnulib/build-aux/update-copyright
(cd ../glibc && git commit -am"[this commit message]")

and then ignored the output, which consisted lines saying "FOO: warning:
copyright statement not found" for each of 6694 files FOO.
I then removed trailing white space from benchtests/bench-pthread-locks.c
and iconvdata/tst-iconv-big5-hkscs-to-2ucs4.c, to work around this
diagnostic from Savannah:
remote: *** pre-commit check failed ...
remote: *** error: lines with trailing whitespace found
remote: error: hook declined to update refs/heads/master
2021-01-02 12:17:34 -08:00
Adhemerval Zanella
22edf4d4b2 Revert "linux: Move {f}xstat{at} to compat symbols"
This reverts commit 20b39d5946 to move
{f}xstat{at} back to default symbols.  ABIs with default symbol version
of 2.33 or newer (such as riscv32) continue to just provide the stat
symbols.

The idea is to not force static libraries built against old glibc
to update against new glibcs (since they reference the old
{f}xstat{at} symbols).

Checked on x86_64-linux-gnu and i686-linux-gnu.
2020-12-02 14:45:22 -03:00
Adhemerval Zanella
20b39d5946 linux: Move {f}xstat{at} to compat symbols
They are no interna uses anymore.  The riscv32 ABI was added on 2.33,
so it is safe to remove the old __{f,l}stat{at} symbols and just
provide the newer {f,l}stat{at} ones.

Checked with a build for all affected ABIs. I also checked on x86_64,
i686, powerpc, powerpc64le, sparcv9, sparc64, s390, and s390x.

Reviewed-by: Lukasz Majewski <lukma@denx.de>
2020-10-09 17:02:07 -03:00
Adhemerval Zanella
6073bae64c linux: Disentangle fstatat from fxstatat
It implements all the required syscall for the all Linux kABIS on
fstatat{64} instead of calling fxstatat{64}.

On non-LFS implementation, it handles 3 cases:

  1. New kABIs which uses generic pre 64-bit time Linux ABI (csky and
     nios): it issues __NR_fstat64 plus handle the overflow on st_ino,
     st_size, or st_blocks.

  2. Old KABIs with old non-LFS support (arm, i386, hppa, m68k,
     microblaze, mips32, s390, sh, powerpc, and sparc32): it issues
     __NR_fstatat64 and convert the result to struct stat.

  3. 64-bit kABI outliers (mips64 and mips64-n32): it issues
     __NR_newfstatat and convert the result to struct stat.

The generic LFS implementation handles multiple cases:

  1. XSTAT_IS_XSTAT64 being 1:

    1.1. 64-bit kABI (aarch64, ia64, powerpc64*, s390x, riscv64, and
         x86_64): it issues __NR_newfstatat.

    1.2. 64-bit kABI outlier (alpha): it issues __NR_fstatat64.

    1.3. 64-bit kABI outlier where struct stat64 does not match kernel
         one (sparc64): it issues __NR_fstatat64 and convert the result
         to struct stat64.

    1.4. 32-bit kABI with default 64-bit time_t (arc, riscv32): it
         issues __NR_statx and convert the result to struct stat64.

  2. Old ABIs with XSTAT_IS_XSTAT64 being 0:

    2.1. All kABIs with non-LFS support (arm, csky, i386, hppa, m68k,
         microblaze, nios2, sh, powerpc32, and sparc32): it issues
         __NR_fstatat64.

    2.2. 64-bit kABI outliers (mips64 and mips64-n32): it issues
         __NR_newfstatat and convert the result to struct stat64.

It allows to remove all the hidden definitions from the {f,l}xstat{64}
(some are still kept because Hurd requires it).

Checked with a build for all affected ABIs. I also checked on x86_64,
i686, powerpc, powerpc64le, sparcv9, sparc64, s390, and s390x.

Reviewed-by: Lukasz Majewski <lukma@denx.de>
2020-10-09 17:02:06 -03:00
Adhemerval Zanella
4f40e6adc4 linux: Consolidate lxstat{64}
The LFS support is implemented on lxstat64.c, instead of lxstat.c for
64-bit architectures.  The xstat.c implements the non-LFS and it is
a no-op for !XSTAT_IS_XSTAT64.

The generic non-LFS implementation handles two cases:

  1. New kABIs which uses generic pre 64-bit time Linux ABI (csky and
     nios): it issues __NR_fstat64 with AT_SYMLINK_NOFOLLOW plus handles
     the possible overflow off st_ino, st_size, or st_blocks.  It only
     handles _STAT_VER_KERNEL.

  2. Old KABIs with old non-LFS support (arm, i386, hppa, m68k,
     microblaze, s390, sh, powerpc, and sparc32).  For _STAT_VER_KERNEL
     it issues __NR_lstat, otherwise it isseus __NR_lstat64 and convert
     to non-LFS stat struct and handle possible overflows on st_ino,
     st_size, or st_blocks.

Also non-LFS mips is an outlier and it has its own implementation since
_STAT_VER_LINUX requires a different conversion function (it uses the
kernel_stat as the syscall argument since its exported ABI is different
than the kernel one for both non-LFS and LFS implementation).

The generic LFS implementation handles multiple cases:

  1. XSTAT_IS_XSTAT64 being 1:

    1.1. Old 64-bit kABI (ia64, powerpc64*, s390x, sparc64, x86_64): it
         issues __NR_lstat for _STAT_VER_KERNEL or _STAT_VER_LINUX.

    1.2. Old 64-bit kABI with defines __NR_lstat64 instead of __NR_lstat
         (sparc64): it issues __NR_lstat for _STAT_VER_KERNEL or
         __NR_lstat64 and convert to struct stat64.

    1.3. New kABIs which uses generic 64-bit Linux ABI (aarch64 and
         riscv64): it issues __NR_newfstatat with AT_SYMLINK_NOFOLLOW
	 and only for _STAT_VER_KERNEL.

    1.4. New 32-bit kABIs with only 64-bit time_t support (arc and
         riscv32): it issues __NR_statx and covert to struct stat64.

  2. Old ABIs with XSTAT_IS_XSTAT64 being 0:

    2.1. New kABIs which uses generic pre 64-bit time Linux ABI (csky
	 and nios2): it issues __NR_fstatat64 for _STAT_VER_KERNEL.

    2.2. Old kABIs with old non-LFS support (arm, i386, hppa, m68k,
	 microblaze, s390, sh, mips32, powerpc32, and sparc32): it
	 issues __NR_lstat64.

Also, two special cases requires specific LFS implementations:

  1. alpha: it requires to handle _STAT_VER_KERNEL64 to issue
     __NR_lstat64 and use the kernel_stat with __NR_lstat otherwise.

  2. mips64: as for non-LFS implementation its ABIs differ from
     glibc exported one, which requires a specific conversion
     function to handle the kernel_stat.

Checked with a build for all affected ABIs. I also checked on x86_64,
i686, powerpc, powerpc64le, sparcv9, sparc64, s390, and s390x.

Reviewed-by: Lukasz Majewski <lukma@denx.de>
2020-09-11 14:35:15 -03:00
Andreas Jaeger
399fe9416b Update.
* sysdeps/unix/sysv/linux/mips/lxstat.c: Removed, we can use the
	generic function.
	* sysdeps/unix/sysv/linux/mips/fxstat.c: Likewise.
2000-02-01 13:40:47 +00:00
Ulrich Drepper
60c966358e Update.
1997-07-22 01:35  Ulrich Drepper  <drepper@cygnus.com>

	* Makerules (+make-deps): Use $(CFLAGS) in run of $(+mkdep) so
	that optimizing is also selected for dependency generation.

	* configure.in: Add machine description for TI c[34]x.

	* inet/Makefile (routines): Remove ntohl and ntohs.
	* inet/netinet/in.h: Use optimized version of hton? and ntoh?
	for little endian machines.
	* sysdeps/alpha/ntohl.s: Removed.
	* sysdeps/alpha/ntohs.s: Removed.
	* sysdeps/generic/ntohl.c: Removed.
	* sysdeps/generic/ntohs.c: Removed.
	* sysdeps/generic/htonl.c: Add aliases for ntohl.
	* sysdeps/vax/htonl.s: Likewise.
	* sysdeps/generic/htons.c: Add aliases for ntohs.
	* sysdeps/vax/htons.s: Likewise.
	* sysdeps/vax/ntohl.s: Removed.
	* sysdeps/vax/ntohs.s: Removed.
	* sysdeps/generic/bits/htontoh.h: New file.
	* sysdeps/i386/htonl.S: New file.
	* sysdeps/i386/htons.S: New file.
	* sysdeps/i386/i486/htonl.S: New file.

	* sysdeps/i386/fpu/bits/mathinline.h: Correct and optimized compare
	macros.

	* sysdeps/mips/dl-machine.h: Remove mips64 dependent parts.
	* sysdeps/mips/mips64/dl-machine.h: New file.

	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Don't install
	syscall-list.h.

1997-07-12  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* libc.map: Add missing symbol _obstack.

1997-07-14 08:22  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sysdeps/mips/rtld-parms: New.

	* sysdeps/unix/sysv/linux/mips/lxstat.h: Moved to
	* sysdeps/unix/sysv/linux/mips/lxstat.c: ...this.

	* sysdeps/unix/sysv/linux/mips/sgidef.h: Moved to
	* sysdeps/unix/sysv/linux/mips/sgidefs.h: ...this.

	* sysdeps/generic/dl-sysdep.c (_start): Change to ENTRY_POINT.

1997-07-17 08:39  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sysdeps/mips/dl-machine.h: Remove extra stuff.

1997-07-06 07:18  Geoff Keating  <geoffk@ozemail.com.au>

	* sysdeps/powerpc/bits/endian.h: Handle multiple endianess.

	* stdlib/grouping.h: Suppress gcc warning about testing
	unsigned char for less-than-zero.
	* stdio-common/printf_fp.c: Likewise.
	* stdio-common/vfprintf.c: Likewise.

	* sysdeps/powerpc/add_n.s: New file.
	* sysdeps/powerpc/sub_n.s: New file.
	* sysdeps/powerpc/lshift.s: Ported XCOFF->ELF (from GMP).
	* sysdeps/powerpc/mul_1.s: Ported XCOFF->ELF (from GMP).
	* sysdeps/powerpc/addmul_1.s: Ported XCOFF->ELF (from GMP).
	* sysdeps/powerpc/submul_1.s: Ported XCOFF->ELF (from GMP).
	* sysdeps/powerpc/rshift.s: Ported XCOFF->ELF (from GMP).

	* math/libm-test.c (cos_test, sin_test, sincos_test): Use
	precomputed pi/6 rather than having gcc calculate it, otherwise
	tests give inaccurate result due to inaccurate input.
	* math/libm.map: Add __fe_*_env constants to list of exported
	symbols.

	* sysdeps/libm-ieee754/s_isinf.c: Simplify, make faster.
	* sysdeps/libm-ieee754/s_isinff.c: Simplify, make faster.
	* sysdeps/libm-ieee754/s_atan2f.c: Correct value of pi to be correct
	round-to-nearest value.

	* sysdeps/libm-ieee754/e_log.c: Make sure exceptions are raised.
	* sysdeps/libm-ieee754/e_log10.c: Likewise.
	* sysdeps/libm-ieee754/e_log10f.c: Likewise.
	* sysdeps/libm-ieee754/e_logf.c: Likewise.
	* sysdeps/libm-ieee754/s_log1p.c: Likewise. Also use correct -Inf.
	* sysdeps/libm-ieee754/s_log1pf.c: Likewise. Also use correct -Inf.
	* sysdeps/libm-ieee754/s_log2.c: Likewise.
	* sysdeps/libm-ieee754/s_log2f.c: Likewise.

1997-07-15 21:54  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* nis/nss_compat/compat-grp.c: Fix "buffer to small" problems
	and memory leaks.
	* nis/nss_compat/compat-pwd.c: Likewise.
	* nis/nss_compat/compat-spwd.c: Likewise.
	* nis/nss_nis/nis-alias.c: Likewise.
	* nis/nss_nis/nis-ethers.c: Likewise.
	* nis/nss_nis/nis-grp.c: Likewise.
	* nis/nss_nis/nis-hosts.c: Likewise.
	* nis/nss_nis/nis-network.c: Likewise.
	* nis/nss_nis/nis-proto.c: Likewise.
	* nis/nss_nis/nis-pwd.c: Likewise.
	* nis/nss_nis/nis-rpc.c: Likewise.
	* nis/nss_nis/nis-service.c: Likewise.
	* nis/nss_nis/nis-spwd.c: Likewise.
	* nis/nss_nisplus-alias.c: Likewise.
	* nis/nss_nisplus-ethers.c: Likewise.
	* nis/nss_nisplus-grp.c: Likewise.
	* nis/nss_nisplus-hosts.c: Likewise.
	* nis/nss_nisplus-netgrp.c: Likewise.
	* nis/nss_nisplus-network.c: Likewise.
	* nis/nss_nisplus-proto.c: Likewise.
	* nis/nss_nisplus-pwd.c: Likewise.
	* nis/nss_nisplus-rpc.c: Likewise.
	* nis/nss_nisplus-service.c: Likewise.
	* nis/nss_nisplus-spwd.c: Likewise.

	* nis/nss_nisplus-parse.c: If buffer to small, give -1 back.

1997-07-20  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/dl-machine.h (elf_machine_rela): Mention program
	name in warning message.
	* sysdeps/powerpc/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/sparc/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/sparc64/dl-machine.h (elf_machine_rela): Likewise.

	* sysdeps/i386/dl-machine.h (elf_machine_rel): Print program name
	first.

1997-07-20 19:33  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* libc.map: Add _null_auth and _seterr_reply.

	* sunrpc/clnt_udp.c (clntudp_call): If xargs is NULL, don't encode it.
1997-07-22 00:10:33 +00:00