| Age | Commit message (Collapse) | Author | Files | Lines |
|
If some shared library loaded with dlopen/dlmopen requires an executable
stack, either implicitly because of a missing GNU_STACK ELF header
(where the ABI default flags implies in the executable bit) or explicitly
because of the executable bit from GNU_STACK; the loader will try to set
the both the main thread and all thread stacks (from the pthread cache)
as executable.
Besides the issue where any __nptl_change_stack_perm failure does not
undo the previous executable transition (meaning that if the library
fails to load, there can be thread stacks with executable stacks), this
behavior was used on a CVE [1] as a vector for RCE.
This patch changes that if a shared library requires an executable
stack, and the current stack is not executable, dlopen fails. The
change is done only for dynamically loaded modules, if the program
or any dependency requires an executable stack, the loader will still
change the main thread before program execution and any thread created
with default stack configuration.
[1] https://www.qualys.com/2023/07/19/cve-2023-38408/rce-openssh-forwarded-ssh-agent.txt
Checked on x86_64-linux-gnu and i686-linux-gnu.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
|
|
The generic __rtld_static_init code handles GLRO (dl_pagesize).
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
|
This patch moves the vDSO setup from libc to loader code, just after
the vDSO link_map setup. For static case the initialization
is moved to _dl_non_dynamic_init instead.
Instead of using the mangled pointer, the vDSO data is set as
attribute_relro (on _rtld_global_ro for shared or _dl_vdso_* for
static). It is read-only even with partial relro.
It fixes BZ#24967 now that the vDSO pointer is setup earlier than
malloc interposition is called.
Also, vDSO calls should not be a problem for static dlopen as
indicated by BZ#20802. The vDSO pointer would be zero-initialized
and the syscall will be issued instead.
Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu,
arm-linux-gnueabihf, powerpc64le-linux-gnu, powerpc64-linux-gnu,
powerpc-linux-gnu, s390x-linux-gnu, sparc64-linux-gnu, and
sparcv9-linux-gnu. I also run some tests on mips.
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
|
|
Linux/Mips kernels prior to 4.8 could potentially crash the user
process when doing FPU emulation while running on non-executable
user stack.
Currently, gcc doesn't emit .note.GNU-stack for mips, but that will
change in the future. To ensure that glibc can be used with such
future gcc, without silently resulting in binaries that might crash
in runtime, this patch forces RWX stack for all built objects if
configured to run against minimum kernel version less than 4.8.
* sysdeps/unix/sysv/linux/mips/Makefile
(test-xfail-check-execstack):
Move under mips-has-gnustack != yes.
(CFLAGS-.o*, ASFLAGS-.o*): New rules.
Apply -Wa,-execstack if mips-force-execstack == yes.
* sysdeps/unix/sysv/linux/mips/configure: Regenerated.
* sysdeps/unix/sysv/linux/mips/configure.ac
(mips-force-execstack): New var.
Set to yes for hard-float builds with minimum_kernel < 4.8.0
or minimum_kernel not set at all.
(mips-has-gnustack): New var.
Use value of libc_cv_as_noexecstack
if mips-force-execstack != yes, otherwise set to no.
|
|
These options are no longer needed since commit
2dba5ce7b8115d6a2789bf279892263621088e74 (<bits/syscall.h>: Use an
arch-independent system call list on Linux).
|
|
This patch marks the check-execstack test as expected to fail for
MIPS, with a comment referencing previous RFC discussion of the
changes that would be needed to support non-executable stacks on MIPS.
Tested for MIPS (all 24 ABIs).
* sysdeps/unix/sysv/linux/mips/Makefile [$(subdir) = elf]
(test-xfail-check-execstack): New variable.
|
|
This patch adds support for using the implementations of gettimeofday()
and clock_gettime() provided by the kernel in the VDSO. The VDSO will
always provide clock_gettime() as CLOCK_{REALTIME,MONOTONIC}_COARSE can
be implemented regardless of platform. CLOCK_{REALTIME,MONOTONIC}, along
with gettimeofday(), are only implemented on platforms which make use of
either the CP0 count or GIC as their clocksource. On other platforms,
the VDSO does not provide the __vdso_gettimeofday symbol, as it is
never useful.
The VDSO functions return ENOSYS when they encounter an unsupported
request, in which case glibc should fall back to the standard syscall.
Tested with upstream kernel 4.5 and QEMU emulating Malta.
./vdsotest gettimeofday bench
gettimeofday: syscall: 1021 nsec/call
gettimeofday: libc: 262 nsec/call
gettimeofday: vdso: 174 nsec/call
* sysdeps/unix/sysv/linux/mips/Makefile (sysdep_routines):
Include dl-vdso.
* sysdeps/unix/sysv/linux/mips/Versions: Add
__vdso_clock_gettime.
* sysdeps/unix/sysv/linux/mips/init-first.c: New file.
* sysdeps/unix/sysv/linux/mips/libc-vdso.h: New file.
* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h:
(INTERNAL_VSYSCALL_CALL): Define to be compatible with MIPS
definitions of INTERNAL_SYSCALL_{ERROR_P,ERRNO}.
(HAVE_CLOCK_GETTIME_VSYSCALL): Define.
(HAVE_GETTIMEOFDAY_VSYSCALL): Define.
* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h: Likewise.
|
|
|
|
This patch eliminates the mixture of SONAME information in
shlib-versions files and SONAME information used to generate
gnu/lib-names.h in makefiles, with the information in the makefiles
being removed so all this information comes from the shlib-versions
files.
So that gnu/lib-names.h supports multiple ABIs, it is changed to be
generated on the same basis as gnu/stubs.h: when there are multiple
ABIs, gnu/lib-names.h is a wrapper header (the same header installed
whatever ABI is being built) and separate headers such as
gnu/lib-names-64.h contain the substantive contents (only one such
header being installed by any glibc build).
The rules for building gnu/lib-names.h were moved from Makeconfig to
Makerules because they need to come after sysdeps makefiles are
included (now that "ifndef abi-variants" is a toplevel conditional on
the rules rather than $(abi-variants) being evaluated later inside the
commands for a rule).
Tested for x86_64 and x86 that the installed shared libraries are
unchanged by this patch, and examined the installed gnu/lib-names*.h
headers by hand. Also tested the case of a single ABI (where there is
just a single header installed, again like stubs.h) by hacking
abi-variants to empty for x86_64.
[BZ #14171]
* Makeconfig [$(build-shared) = yes]
($(common-objpfx)soversions.mk): Don't handle SONAMEs specified in
makefiles.
[$(build-shared) = yes && $(soversions.mk-done) = t]
($(common-objpfx)gnu/lib-names.h): Remove rule.
[$(build-shared) = yes && $(soversions.mk-done) = t]
($(common-objpfx)gnu/lib-names.stmp): Likewise. Split and moved
to Makerules.
[$(build-shared) = yes && $(soversions.mk-done) = t]
(before-compile): Don't append $(common-objpfx)gnu/lib-names.h
here.
[$(build-shared) = yes && $(soversions.mk-done) = t]
(common-generated): Don't append gnu/lib-names.h and
gnu/lib-names.stmp here.
* Makerules [$(build-shared) = yes && $(soversions.mk-done) = t]
(lib-names-h-abi): New variable.
[$(build-shared) = yes && $(soversions.mk-done) = t]
(lib-names-stmp-abi): Likewise.
[$(build-shared) = yes && $(soversions.mk-done) = t &&
abi-variants] (before-compile): Append
$(common-objpfx)$(lib-names-h-abi).
[$(build-shared) = yes && $(soversions.mk-done) = t &&
abi-variants] (common-generated): Append gnu/lib-names.h.
[$(build-shared) = yes && $(soversions.mk-done) = t &&
abi-variants] (install-others-nosubdir): Depend on
$(inst_includedir)/$(lib-names-h-abi).
[$(build-shared) = yes && $(soversions.mk-done) = t &&
abi-variants] ($(common-objpfx)gnu/lib-names.h): New rule.
[$(build-shared) = yes && $(soversions.mk-done) = t]
($(common-objpfx)$(lib-names-h-abi)): New rule.
[$(build-shared) = yes && $(soversions.mk-done) = t]
($(common-objpfx)$(lib-names-stmp-abi)): Likewise.
[$(build-shared) = yes && $(soversions.mk-done) = t]
(common-generated): Append $(lib-names-h-abi) and
$(lib-names-stmp-abi).
* scripts/lib-names.awk: Do not handle multi being set.
* sysdeps/unix/sysv/linux/aarch64/Makefile (abi-lp64-ld-soname):
Remove variable.
(abi-lp64_be-ld-soname): Likewise.
* sysdeps/unix/sysv/linux/arm/Makefile (abi-soft-ld-soname):
Likewise.
(abi-hard-ld-soname): Likewise.
* sysdeps/unix/sysv/linux/i386/shlib-versions: New file.
* sysdeps/unix/sysv/linux/mips/Makefile (abi-o32_soft-ld-soname):
Remove variable.
(abi-o32_hard-ld-soname): Likewise.
(abi-o32_soft_2008-ld-soname): Likewise.
(abi-o32_hard_2008-ld-soname): Likewise.
(abi-n32_soft-ld-soname): Likewise.
(abi-n32_hard-ld-soname): Likewise.
(abi-n32_soft_2008-ld-soname): Likewise.
(abi-n32_hard_2008-ld-soname): Likewise.
(abi-n64_soft-ld-soname): Likewise.
(abi-n64_hard-ld-soname): Likewise.
(abi-n64_soft_2008-ld-soname): Likewise.
(abi-n64_hard_2008-ld-soname): Likewise.
* sysdeps/unix/sysv/linux/powerpc/Makefile (abi-64-v1-ld-soname):
Likewise.
(abi-64-v2-ld-soname): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: Add
ld.so entries.
* sysdeps/unix/sysv/linux/s390/Makefile (abi-64-ld-soname): Remove
variable.
* sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Add ld.so
entry.
* sysdeps/unix/sysv/linux/x86/Makefile (abi-32-ld-soname): Remove
variable.
(abi-64-ld-soname): Likewise.
(abi-x32-ld-soname): Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Add ld.so
entry.
* sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Likewise.
|
|
I've moved the MIPS port from ports to the main sysdeps hierarchy.
Beyond the README update, the move of the files was simply
git mv ports/sysdeps/mips sysdeps/mips
git mv ports/sysdeps/unix/mips sysdeps/unix/mips
git mv ports/sysdeps/unix/sysv/linux/mips sysdeps/unix/sysv/linux/mips
and in addition to the ChangeLog entries here, I put a note at the top
of ports/ChangeLog.mips similar to those in other files.
Tested that disassembly of installed shared libraries for mips is the
same before and after this patch (except for ld.so where paths in
assertions are involved, as for arm).
* sysdeps/mips: Move directory from ports/sysdeps/mips.
* sysdeps/unix/mips: Move directory from ports/sysdeps/unix/mips.
* sysdeps/unix/sysv/linux/mips: Move directory from
ports/sysdeps/unix/sysv/linux/mips.
* README: Update listing for mips-*-linux-gnu and
mips64-*-linux-gnu.
* sysdeps/mips: Move directory to ../sysdeps/mips.
* sysdeps/unix/mips: Move directory to ../sysdeps/unix/mips.
* sysdeps/unix/sysv/linux/mips: Move directory to
../sysdeps/unix/sysv/linux/mips.
|
|
2006-02-20 Roland McGrath <roland@redhat.com>
* sysdeps/mips: Directory removed, saved in ports repository.
* sysdeps/unix/mips: Likewise.
* sysdeps/unix/sysv/linux/mips: Likewise.
* sysdeps/mach/mips: Likewise.
* sysdeps/mach/hurd/mips: Likewise.
* shlib-versions: Remove mips matches, now in ports fragment.
* sysdeps/unix/sysv/linux/kernel-features.h: Likewise.
* configure.in (machine): Likewise.
* configure: Regenerated.
2006-02-15 Thomas Schwinge <tschwinge@gnu.org>
[BZ #2329]
* include/unistd.h (__getresuid, __getresgid, __setresuid)
(__setresgid): Fix argument name order in prototypes.
* posix/unistd.h (getresuid, getresgid, setresuid, setresgid):
Likewise.
* posix/getresuid.c (__getresuid): Fix argument order in definition.
* posix/getresgid.c (__getresgid): Likewise.
* posix/setresuid.c (__setresuid): Likewise.
* posix/setresgid.c (__setresgid): Likewise.
* sysdeps/mach/hurd/getresuid.c (__getresuid): Likewise.
* sysdeps/mach/hurd/getresgid.c (__getresgid): Likewise.
* sysdeps/mach/hurd/setresuid.c (__setresuid): Likewise.
* sysdeps/mach/hurd/setresgid.c (__setresgid): Likewise.
Reported by Samuel Thibault <samuel.thibault@ens-lyon.org>.
|
|
2004-11-11 Richard Sandiford <rsandifo@redhat.com>
[BZ #758]
* sysdeps/unix/sysv/linux/mips/configure.in (asm-unistd.h): Only
preprocess <asm/unistd.h> if it defines ABI-prefixed syscall names
like __NR_N32_open. Just include <asm/unistd.h> otherwise.
* sysdeps/unix/sysv/linux/mips/configure: Regenerate.
* sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h: Delete
* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h (SYS_ify): Use the
standard __NR prefix.
* sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h (SYS_ify): Likewise.
* sysdeps/unix/sysv/linux/mips/Makefile (syscall-%.h): Rework so that
the output file is compatible with both pre-2.6 and 2.6 kernel headers.
Extract separate syscall lists for each ABI.
|
|
|
|
|
|
2004-11-05 Maciej W. Rozycki <macro@mips.com>
* sysdeps/mips/dl-machine.h: Include <sgidefs.h>. Use _ABIO32,
_ABIN32 and _ABI64 for ABI selection throughout.
* sysdeps/mips/elf/start.S: Likewise.
* sysdeps/mips/mips64/__longjmp.c: Likewise.
* sysdeps/mips/mips64/bsd-_setjmp.S: Likewise.
* sysdeps/mips/mips64/bsd-setjmp.S: Likewise.
* sysdeps/mips/mips64/setjmp.S: Likewise.
* sysdeps/mips/mips64/setjmp_aux.c: Likewise.
* sysdeps/mips/sys/regdef.h: Likewise.
* sysdeps/mips/sys/ucontext.h: Likewise.
* sysdeps/unix/mips/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/kernel-features.h: Likewise.
* sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/mips/ptrace.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/mips/sys/procfs.h: Likewise.
* sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Likewise.
* sysdeps/mips/atomicity.h: Use _ABIO32, _ABIN32 and _ABI64 for
ABI selection throughout.
* sysdeps/mips/bits/setjmp.h: Likewise.
* sysdeps/mips/fpu/bits/mathdef.h: Likewise.
* sysdeps/mips/machine-gmon.h: Likewise.
* sysdeps/mips/sys/asm.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/sigcontext.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/mips/kernel_stat.h: Likewise.
* sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/mips/sys/ptrace.h: Likewise.
* sysdeps/unix/sysv/linux/mips/sys/tas.h: Likewise.
* sysdeps/unix/sysv/linux/mips/sys/user.h: Likewise.
* sysdeps/mips/sgidefs.h: Prevent <asm/sgidefs.h> from being
included by kernel headers and undo its settings if already
included. Define _ABIO32, _ABIN32 and _ABI64 if missing and use
them to define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32 and
_MIPS_SIM_ABI64 for compatibility.
* sysdeps/unix/sysv/linux/mips/Makefile: Use _ABIO32, _ABIN32 and
_ABI64 for ABI selection in generated syscall-list.h
* sysdeps/unix/sysv/linux/mips/configure.in: Use _ABIO32, _ABIN32
and _ABI64 for ABI selection in generated asm-unistd.h.
* sysdeps/unix/sysv/linux/mips/configure: Regenerate.
* sysdeps/unix/sysv/linux/mips/pwrite.c (__libc_pwrite): Correct
an inverted _MIPS_SIM conditional.
|
|
* sysdeps/unix/sysv/linux/mips/Makefile ($(objpfx)syscall-%.h):
Sort by syscalls. Make sure we get headers such as sgidefs.h from
the build tree before just-installed ones.
* sysdeps/mips/atomicity.h, sysdeps/mips/dl-machine.h,
sysdeps/mips/machine-gmon.h, sysdeps/mips/bits/setjmp.h,
sysdeps/mips/fpu/bits/mathdef.h,
sysdeps/mips/mips64/__longjmp.c,
sysdeps/mips/mips64/setjmp_aux.c,
sysdeps/unix/sysv/linux/mips/kernel_stat.h,
sysdeps/unix/sysv/linux/mips/pread.c,
sysdeps/unix/sysv/linux/mips/pread64.c,
sysdeps/unix/sysv/linux/mips/ptrace.c,
sysdeps/unix/sysv/linux/mips/pwrite.c,
sysdeps/unix/sysv/linux/mips/pwrite64.c,
sysdeps/unix/sysv/linux/mips/sigaction.c,
sysdeps/unix/sysv/linux/mips/sigcontextinfo.h,
sysdeps/unix/sysv/linux/mips/bits/fcntl.h,
sysdeps/unix/sysv/linux/mips/bits/sigcontext.h,
sysdeps/unix/sysv/linux/mips/bits/stat.h,
sysdeps/unix/sysv/linux/mips/sys/procfs.h,
sysdeps/unix/sysv/linux/mips/sys/ptrace.h,
sysdeps/unix/sysv/linux/mips/sys/tas.h,
sysdeps/unix/sysv/linux/mips/sys/ucontext.h,
sysdeps/unix/sysv/linux/mips/sys/user.h: Use standard names
for ABI macros, include sgidefs.h where appropriate.
sysdeps/unix/sysv/linux/mips/Makefile ($(objpfx)syscall-%.h):
Likewise.
sysdeps/unix/sysv/linux/mips/configure.in (asm-unistd.h):
Likewise.
sysdeps/unix/sysv/linux/mips/configure: Rebuilt.
|
|
2003-09-02 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Remove
rt_sigsuspend, rt_sigprocmask, rt_sigtimedwait, rt_sigqueueinfo and
rt_sigpending.
* sysdeps/unix/sysv/linux/alpha/sigaction.c (__syscall_rt_sigaction):
New prototype.
* sysdeps/unix/sysv/linux/arm/syscalls.list (__syscall_*): Remove
unused __syscall_ stubs.
* sysdeps/unix/sysv/linux/arm/Makefile (sysdep_routines): Remove
rt_*.
* sysdeps/unix/sysv/linux/cris/Makefile: Removed.
* sysdeps/unix/sysv/linux/mips/mips64/syscalls.list
(__syscall_recvfrom, __syscall_sendto): Remove unused aliases.
* sysdeps/unix/sysv/linux/mips/syscalls.list (__syscall_*): Remove
unused __syscall_ stubs.
* sysdeps/unix/sysv/linux/mips/Makefile (sysdep_routines): Remove rt_*.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list
(__syscall_*): Remove unused __syscall_ stubs.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
(__syscall_*): Likewise.
* sysdeps/unix/sysv/linux/powerpc/Makefile (sysdep_routines): Remove
rt_*.
* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (__syscall_*):
Remove unused __syscall_ stubs.
* sysdeps/unix/sysv/linux/sh/Makefile (sysdep_routines): Remove rt_*.
* sysdeps/unix/sysv/linux/rt_sigaction.c: Removed.
* sysdeps/unix/sysv/linux/rt_sigpending.c: Removed.
* sysdeps/unix/sysv/linux/rt_sigprocmask.c: Removed.
* sysdeps/unix/sysv/linux/rt_sigqueueinfo.c: Removed.
* sysdeps/unix/sysv/linux/rt_sigreturn.c: Removed.
* sysdeps/unix/sysv/linux/rt_sigsuspend.c: Removed.
* sysdeps/unix/sysv/linux/rt_sigtimedwait.c: Removed.
* sysdeps/unix/sysv/linux/s_pread64.c: Removed.
* sysdeps/unix/sysv/linux/s_pwrite64.c: Removed.
* sysdeps/unix/sysv/linux/alpha/gethostname.c: Remove unused
__syscall_* prototypes.
* sysdeps/unix/sysv/linux/alpha/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/msgctl.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/semctl.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/shmctl.c: Likewise.
* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
* sysdeps/unix/sysv/linux/i386/fchown.c: Likewise.
* sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.
* sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise.
* sysdeps/unix/sysv/linux/i386/getegid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/geteuid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/setuid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/getgid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/getgroups.c: Likewise.
* sysdeps/unix/sysv/linux/i386/getmsg.c: Likewise.
* sysdeps/unix/sysv/linux/i386/xstat.c: Likewise.
* sysdeps/unix/sysv/linux/i386/getresgid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/getresuid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/getrlimit.c: Likewise.
* sysdeps/unix/sysv/linux/i386/getuid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/lchown.c: Likewise.
* sysdeps/unix/sysv/linux/i386/lockf64.c: Likewise.
* sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise.
* sysdeps/unix/sysv/linux/i386/putmsg.c: Likewise.
* sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/setfsuid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/setgid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/setgroups.c: Likewise.
* sysdeps/unix/sysv/linux/i386/setregid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/setrlimit.c: Likewise.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/fxstat.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/lxstat.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/sigsuspend.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/xstat.c: Likewise.
* sysdeps/unix/sysv/linux/m68k/chown.c: Likewise.
* sysdeps/unix/sysv/linux/mips/ftruncate64.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/mips/ptrace.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/mips/truncate64.c: Likewise.
* sysdeps/unix/sysv/linux/mips/ustat.c: Likewise.
* sysdeps/unix/sysv/linux/mips/xmknod.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/ioctl.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/chown.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/lchown.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/xstat.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/fxstat.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/execve.c: Likewise.
* sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise.
* sysdeps/unix/sysv/linux/reboot.c: Likewise.
* sysdeps/unix/sysv/linux/_exit.c: Likewise.
* sysdeps/unix/sysv/linux/ftruncate64.c: Likewise.
* sysdeps/unix/sysv/linux/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
* sysdeps/unix/sysv/linux/gai_sigqueue.c: Likewise.
* sysdeps/unix/sysv/linux/readahead.c: Likewise.
* sysdeps/unix/sysv/linux/getcwd.c: Likewise.
* sysdeps/unix/sysv/linux/sigwait.c: Likewise.
* sysdeps/unix/sysv/linux/getdents.c: Likewise.
* sysdeps/unix/sysv/linux/readv.c: Likewise.
* sysdeps/unix/sysv/linux/getpriority.c: Likewise.
* sysdeps/unix/sysv/linux/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/llseek.c: Likewise.
* sysdeps/unix/sysv/linux/sysctl.c: Likewise.
* sysdeps/unix/sysv/linux/lxstat64.c: Likewise.
* sysdeps/unix/sysv/linux/mmap64.c: Likewise.
* sysdeps/unix/sysv/linux/ustat.c: Likewise.
* sysdeps/unix/sysv/linux/poll.c: Likewise.
* sysdeps/unix/sysv/linux/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/writev.c: Likewise.
* sysdeps/unix/sysv/linux/pread.c: Likewise.
* sysdeps/unix/sysv/linux/ptrace.c: Likewise.
* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/sigqueue.c: Likewise.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
* sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
* sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
* sysdeps/unix/sysv/linux/truncate64.c: Likewise.
* sysdeps/unix/sysv/linux/xmknod.c: Likewise.
* sysdeps/unix/sysv/linux/xstat64.c: Likewise.
2003-09-02 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysdep.h (PSEUDO): Revert last change.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: New file.
* sysdeps/unix/sysv/linux/sparc/syscalls.list: New file.
* stdio-common/Makefile (CFLAGS-vprintf.c): Add -fexceptions.
* intl/loadmsgcat.c: For _LIBC, call not cancelable versions of
open, close, and read.
|
|
* sysdeps/unix/sysv/linux/mips/Makefile: Add missing endif and
create $(objpfx).
|
|
* Makerules: Always use -MP together with -MD.
(sed-remove-dotot): Substitute $(..) also at start of line.
($(stdio_lim:h=st)): Use -MD instead of SUNPRO_DEPENDENCIES.
Generated defines with a single compiler call.
Use $(sed-remove-dotdot).
* mach/Makefile ($(objpfx)mach-syscalls.mk): Use -MD instead
of DEPENDENCIES_OUTPUT, and use $(sed-remove-objpfx).
* sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h):
Use -MD instead of SUNPRO_DEPENDENCIES, and use $(sed-remove-objpfx).
* sysdeps/unix/sysv/linux/mips/Makefile
($(objpfx)syscall-%.h): Likewise.
|
|
into asm-unistd.h. * sysdeps/unix/sysv/linux/mips/configure: Generated. * sysdeps/unix/sysv/linux/mips/Makefile: Do custom processing of syscall list. * sysdeps/unix/sysv/linux/mips/sys/syscall.h: New file. * sysdeps/unix/sysv/linux/mips/clone.S: Don't include asm/unistd.h.
* sysdeps/unix/sysv/linux/mips/configure.in: New. Pre-process
asm/unistd.h into asm-unistd.h.
* sysdeps/unix/sysv/linux/mips/configure: Generated.
* sysdeps/unix/sysv/linux/mips/Makefile: Do custom processing
of syscall list.
* sysdeps/unix/sysv/linux/mips/sys/syscall.h: New file.
* sysdeps/unix/sysv/linux/mips/clone.S: Don't include
asm/unistd.h.
2003-03-17 Alexandre Oliva <aoliva@redhat.com>
|
|
* sysdeps/mach/hurd/i386/Makefile
(sysdep_routines, shared-only-routines): Don't add framestate,
reverting 2001-10-02 change.
* sysdeps/unix/sysv/linux/arm/Makefile: Likewise.
* sysdeps/unix/sysv/linux/alpha/Makefile: Likewise.
* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
* sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.
* sysdeps/unix/sysv/linux/mips/Makefile: Likewise.
* sysdeps/unix/sysv/linux/powerpc/Makefile: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise.
* sysdeps/unix/sysv/linux/sparc/Makefile: Likewise.
* sysdeps/generic/Makefile (sysdep_routines, shared-only-routines):
Do it here instead, only if [$(unwind-find-fde) = yes].
|
|
2001-10-02 Jakub Jelinek <jakub@redhat.com>
H.J. Lu <hjl@gnu.org>
* configure.in (libc_cv_gcc_static_libgcc): Set to -static-libgcc
if gcc supports this flag.
(EXPORT_UNWIND_FIND_FDE): Define unless target configure disables it.
(gcc3): Allow glibc to be compiled with gcc 3.x.
* config.h.in (EXPORT_UNWIND_FIND_FDE): Add.
* config.make.in (static-libgcc, unwind-find-fde): Add.
* Makerules (build-shlib-helper, build-module-helper): Use it.
* scripts/versions.awk: Make sure GLIBC_ versions come first.
* elf/soinit.c (__libc_global_ctors): Set tbases and dbases if
necessary.
(_fini): Call __deregister_frame_info_bases if
__register_frame_info_bases was used to register.
* elf/Versions (__register_frame_info, __deregister_frame_info): Add
for GLIBC_2.0.
(__register_frame_info_bases, __register_frame_info_table_bases,
__deregister_frame_info_bases, _Unwind_Find_FDE): Add for GLIBC_2.2.5.
* elf/Makefile (routines): Add unwind-dw2-fde.
(shared-only-routines): Add unwind-dw2-fde.
* sysdeps/alpha/gccframe.h: New file.
* sysdeps/arm/gccframe.h: New file.
* sysdeps/generic/framestate.c: New file.
* sysdeps/generic/dwarf2.h: New file.
* sysdeps/generic/gccframe.h (struct object): Update from gcc 3.0.
* sysdeps/generic/unwind-dw2-fde.c: New file.
* sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c: New file.
* sysdeps/generic/unwind-dw2-fde.h: New file.
* sysdeps/generic/unwind-dw2.c: New file.
* sysdeps/generic/unwind-pe.h: New file.
* sysdeps/generic/unwind.h: New file.
* sysdeps/hppa/gccframe.h: New file.
* sysdeps/i386/gccframe.h: New file.
* sysdeps/m68k/gccframe.h: New file.
* sysdeps/mips/gccframe.h: New file.
* sysdeps/powerpc/gccframe.h: New file.
* sysdeps/s390/gccframe.h: New file.
* sysdeps/sh/gccframe.h: New file.
* sysdeps/sparc/gccframe.h: New file.
* sysdeps/vax/gccframe.h: New file.
* sysdeps/unix/sysv/linux/configure.in (libc_cv_gcc_unwind_find_fde):
Set on all architectures except ia64.
* sysdeps/mach/hurd/configure.in (libc_cv_gcc_unwind_find_fde): Set
for i386.
* sysdeps/mach/hurd/i386/Versions (__register_frame_info,
__deregister_frame_info): Move to elf/Versions.
* sysdeps/unix/sysv/linux/m68k/Versions: Likewise.
* sysdeps/unix/sysv/linux/arm/Versions: Likewise.
* sysdeps/unix/sysv/linux/alpha/Versions: Likewise.
* sysdeps/unix/sysv/linux/i386/Versions: Likewise.
* sysdeps/unix/sysv/linux/mips/Versions: Likewise.
* sysdeps/unix/sysv/linux/powerpc/Versions: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: Likewise.
* sysdeps/mach/hurd/i386/Makefile (sysdep-routines): Add framestate.
* sysdeps/unix/sysv/linux/arm/Makefile: Likewise.
* sysdeps/unix/sysv/linux/alpha/Makefile: Likewise.
* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
* sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.
* sysdeps/unix/sysv/linux/mips/Makefile: Likewise.
* sysdeps/unix/sysv/linux/powerpc/Makefile: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise.
* sysdeps/unix/sysv/linux/sparc/Makefile: Likewise.
* sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: New file.
* sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed: New file.
* sysdeps/generic/strnlen.c: New file.
|
|
|
|
2000-07-12 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
* sysdeps/unix/sysv/linux/mips/Dist: Add sys/tas.h.
* sysdeps/unix/sysv/linux/mips/Makefile (sysdep_routines): Add
_test_and_set.
(headers): Add sys/tas.h.
* sysdeps/unix/sysv/linux/mips/Versions: Export _test_and_set for
GLIBC_2.2 from libc.
* sysdeps/unix/sysv/linux/mips/_test_and_set.c: New file.
* sysdeps/unix/sysv/linux/mips/sys/tas.h: New file for
_test_and_set.
|
|
1998-12-31 Ulrich Drepper <drepper@cygnus.com>
* iconvdata/Makefile: Use rpath $ORIGIN for modules which use any of
the conversion libraries.
* include/features.h: Mention latest extensions in _POSIX_C_SOURCE
description.
* libio/genops.c (list_all_lock): New variable.
(_IO_un_link, _IO_link_in): Acquire lock before modifying _IO_list_all.
[PR libc/911].
* sysdeps/i386/i686/strtok.s: Add missing cld.
* sysdeps/i386/i686/mempcpy.S: New file.
1998-12-30 Geoff Keating <geoffk@ozemail.com.au>
Suppress parentheses warnings:
* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
(DL_FIND_ARG_COMPONENTS): here,
* sysdeps/powerpc/dl-machine.c: here,
* sysdeps/powerpc/fclrexcpt.c (feclearexcept): here,
* sysdeps/powerpc/fesetround.c (fesetround): here,
* sysdeps/powerpc/feupdateenv.c (feupdateenv): here,
* sysdeps/powerpc/fraiseexcpt.c (feraiseexcept): here,
* sysdeps/powerpc/ |