glibc/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
Paul Eggert 581c785bf3 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 7061 files FOO.

I then removed trailing white space from math/tgmath.h,
support/tst-support-open-dev-null-range.c, and
sysdeps/x86_64/multiarch/strlen-vec.S, to work around the following
obscure pre-commit check failure diagnostics from Savannah.  I don't
know why I run into these diagnostics whereas others evidently do not.

remote: *** 912-#endif
remote: *** 913:
remote: *** 914-
remote: *** error: lines with trailing whitespace found
...
remote: *** error: sysdeps/unix/sysv/linux/statx_cp.c: trailing lines
2022-01-01 11:40:24 -08:00

54 lines
2.0 KiB
C

/* Copyright (C) 2018-2022 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
#define USE_VERSIONED_RLIMIT
#include <sysdeps/unix/sysv/linux/setrlimit64.c>
versioned_symbol (libc, __setrlimit, setrlimit, GLIBC_2_27);
versioned_symbol (libc, __setrlimit64, setrlimit64, GLIBC_2_27);
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_27)
/* RLIM64_INFINITY was supposed to be a glibc convention rather than
anything seen by the kernel, but it ended being passed to the kernel
through the prlimit64 syscall. Given that a lot of binaries with
the wrong constant value are in the wild, provide a wrapper function
fixing the value before the syscall. */
# define OLD_RLIM64_INFINITY 0x7fffffffffffffffULL
int
attribute_compat_text_section
__old_setrlimit64 (enum __rlimit_resource resource,
const struct rlimit64 *rlimits)
{
struct rlimit64 krlimits;
if (rlimits->rlim_cur == OLD_RLIM64_INFINITY)
krlimits.rlim_cur = RLIM64_INFINITY;
else
krlimits.rlim_cur = rlimits->rlim_cur;
if (rlimits->rlim_max == OLD_RLIM64_INFINITY)
krlimits.rlim_max = RLIM64_INFINITY;
else
krlimits.rlim_max = rlimits->rlim_max;
return __setrlimit64 (resource, &krlimits);
}
strong_alias (__old_setrlimit64, __old_setrlimit)
compat_symbol (libc, __old_setrlimit, setrlimit, GLIBC_2_0);
compat_symbol (libc, __old_setrlimit64, setrlimit64, GLIBC_2_1);
#endif