mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 08:11:08 +00:00
Update.
2004-03-10 Jakub Jelinek <jakub@redhat.com> * include/libc-symbols.h [__ASSEMBLY__] (compat_text_section, compat_data_section): Define. * sysdeps/unix/sysv/linux/alpha/adjtime.c (ADJTIME): Add attribute_compat_text_section. * sysdeps/unix/sysv/linux/alpha/wordexp.c (__old_wordexp): Likewise. * sysdeps/unix/sysv/linux/alpha/oldglob.c (__old_glob, __old_globfree): Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/chown.c (__chown_is_lchown): Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c (__posix_fadvise64_l32): Likewise. * sysdeps/unix/sysv/linux/msgctl.c (__old_msgctl): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise64.c (__posix_fadvise64_l32): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c (__old_semctl): Likewise. * sysdeps/unix/sysv/linux/semctl.c (__old_semctl): Likewise. * sysdeps/unix/sysv/linux/posix_fadvise64.c (__posix_fadvise64_l32): Likewise. * sysdeps/unix/sysv/linux/shmctl.c (__old_shmctl): Likewise. * hurd/compat-20.c (_hurd_proc_init_compat_20): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S (__swapcontext, __novec_swapcontext): Use END instead of PSEUDO_END. (__novec_swapcontext, __swapcontext_stub): Add compat_text_section. * sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S (__makecontext_stub): Likewise. (__novec_makecontext): Likewise. Fix name in END () to match function name. * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S (__setcontext): Use END instead of PSEUDO_END. (__novec_setcontext): Add compat_text_section. Use END instead of PSEUDO_END, fix the name in END () to match function name. * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S (__getcontext, __novec_getcontext): Use END instead of PSEUDO_END. (__novec_getcontext, __getcontext_stub): Add compat_text_section. 2004-03-10 Kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/sh/dl-machine.h: Don't use GL macro if not appropriate. (COPY_UNALIGNED_WORD): Remove cast used as lvalue. 2004-03-10 Ulrich Drepper <drepper@redhat.com> * sysdeps/i386/dl-procinfo.h (HWCAP_IMPORTANT): Remove mmx, add sse2.
This commit is contained in:
parent
78678039a4
commit
d3a4a571c4
47
ChangeLog
47
ChangeLog
@ -1,3 +1,50 @@
|
|||||||
|
2004-03-10 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* include/libc-symbols.h [__ASSEMBLY__] (compat_text_section,
|
||||||
|
compat_data_section): Define.
|
||||||
|
* sysdeps/unix/sysv/linux/alpha/adjtime.c (ADJTIME): Add
|
||||||
|
attribute_compat_text_section.
|
||||||
|
* sysdeps/unix/sysv/linux/alpha/wordexp.c (__old_wordexp): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/alpha/oldglob.c (__old_glob,
|
||||||
|
__old_globfree): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/s390/s390-32/chown.c (__chown_is_lchown):
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
|
||||||
|
(__posix_fadvise64_l32): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/msgctl.c (__old_msgctl): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise64.c
|
||||||
|
(__posix_fadvise64_l32): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c (__old_semctl):
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/semctl.c (__old_semctl): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/posix_fadvise64.c (__posix_fadvise64_l32):
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/shmctl.c (__old_shmctl): Likewise.
|
||||||
|
* hurd/compat-20.c (_hurd_proc_init_compat_20): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
|
||||||
|
(__swapcontext, __novec_swapcontext): Use END instead of PSEUDO_END.
|
||||||
|
(__novec_swapcontext, __swapcontext_stub): Add compat_text_section.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
|
||||||
|
(__makecontext_stub): Likewise.
|
||||||
|
(__novec_makecontext): Likewise. Fix name in END () to match
|
||||||
|
function name.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
|
||||||
|
(__setcontext): Use END instead of PSEUDO_END.
|
||||||
|
(__novec_setcontext): Add compat_text_section. Use END instead of
|
||||||
|
PSEUDO_END, fix the name in END () to match function name.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
|
||||||
|
(__getcontext, __novec_getcontext): Use END instead of PSEUDO_END.
|
||||||
|
(__novec_getcontext, __getcontext_stub): Add compat_text_section.
|
||||||
|
|
||||||
|
2004-03-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||||
|
|
||||||
|
* sysdeps/sh/dl-machine.h: Don't use GL macro if not appropriate.
|
||||||
|
(COPY_UNALIGNED_WORD): Remove cast used as lvalue.
|
||||||
|
|
||||||
|
2004-03-10 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/i386/dl-procinfo.h (HWCAP_IMPORTANT): Remove mmx, add sse2.
|
||||||
|
|
||||||
2004-03-10 Richard Henderson <rth@redhat.com>
|
2004-03-10 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
* sysdeps/generic/errno.c: Disable versioning for rtld.
|
* sysdeps/generic/errno.c: Disable versioning for rtld.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Old-versioned functions for binary compatibility with glibc-2.0.
|
/* Old-versioned functions for binary compatibility with glibc-2.0.
|
||||||
Copyright (C) 1998, 2000 Free Software Foundation, Inc.
|
Copyright (C) 1998, 2000, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -28,6 +28,7 @@
|
|||||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||||
|
|
||||||
void
|
void
|
||||||
|
attribute_compat_text_section
|
||||||
_hurd_proc_init_compat_20 (char **argv)
|
_hurd_proc_init_compat_20 (char **argv)
|
||||||
{
|
{
|
||||||
_hurd_proc_init (argv, NULL, 0);
|
_hurd_proc_init (argv, NULL, 0);
|
||||||
|
@ -761,9 +761,14 @@ for linking")
|
|||||||
|
|
||||||
/* Move compatibility symbols out of the way by placing them all in a
|
/* Move compatibility symbols out of the way by placing them all in a
|
||||||
special section. */
|
special section. */
|
||||||
#define attribute_compat_text_section \
|
#ifndef __ASSEMBLER__
|
||||||
|
# define attribute_compat_text_section \
|
||||||
__attribute__ ((section (".text.compat")))
|
__attribute__ ((section (".text.compat")))
|
||||||
#define attribute_compat_data_section \
|
# define attribute_compat_data_section \
|
||||||
__attribute__ ((section (".data.compat")))
|
__attribute__ ((section (".data.compat")))
|
||||||
|
#else
|
||||||
|
# define compat_text_section .section ".text.compat", "ax";
|
||||||
|
# define compat_data_section .section ".data.compat", "aw";
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* libc-symbols.h */
|
#endif /* libc-symbols.h */
|
||||||
|
@ -1,3 +1,30 @@
|
|||||||
|
2004-03-10 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
|
||||||
|
tcb-offsets.h.
|
||||||
|
(__vfork): Negate PID if non-zero and set to INT_MIN if zero
|
||||||
|
before syscall, set to the old value in the parent afterwards.
|
||||||
|
* sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
|
||||||
|
* sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
|
||||||
|
tcb-offsets.h.
|
||||||
|
(__vfork): Negate PID if non-zero and set to INT_MIN if zero
|
||||||
|
before syscall, set to the old value in the parent afterwards.
|
||||||
|
* sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
|
||||||
|
* sysdeps/s390/tcb-offsets.sym: Add PID.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
|
||||||
|
* sysdeps/sparc/tcb-offsets.sym: Add PID.
|
||||||
|
|
||||||
|
2004-03-10 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
|
* sysdeps/ia64/tcb-offsets.sym: Add PID.
|
||||||
|
* sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
|
||||||
|
* sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
|
||||||
|
|
||||||
2004-03-09 Jakub Jelinek <jakub@redhat.com>
|
2004-03-09 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* tst-cancel20.c (do_one_test): Clear in_sh_body first.
|
* tst-cancel20.c (do_one_test): Clear in_sh_body first.
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include <tls.h>
|
#include <tls.h>
|
||||||
|
|
||||||
|
PID offsetof (struct pthread, pid) - sizeof (struct pthread)
|
||||||
MULTIPLE_THREADS_OFFSET offsetof (struct pthread, header.multiple_threads) - sizeof (struct pthread)
|
MULTIPLE_THREADS_OFFSET offsetof (struct pthread, header.multiple_threads) - sizeof (struct pthread)
|
||||||
SYSINFO_OFFSET offsetof (tcbhead_t, private)
|
SYSINFO_OFFSET offsetof (tcbhead_t, private)
|
||||||
|
@ -2,3 +2,4 @@
|
|||||||
#include <tls.h>
|
#include <tls.h>
|
||||||
|
|
||||||
MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
|
MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
|
||||||
|
PID offsetof (struct pthread, pid)
|
||||||
|
@ -2,3 +2,4 @@
|
|||||||
#include <tls.h>
|
#include <tls.h>
|
||||||
|
|
||||||
MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
|
MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
|
||||||
|
PID offsetof (struct pthread, pid)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -32,13 +32,22 @@
|
|||||||
ENTRY(__vfork)
|
ENTRY(__vfork)
|
||||||
.prologue // work around a GAS bug which triggers if
|
.prologue // work around a GAS bug which triggers if
|
||||||
.body // first .prologue is not at the beginning of proc.
|
.body // first .prologue is not at the beginning of proc.
|
||||||
alloc r2=ar.pfs,0,0,2,0
|
alloc r2=ar.pfs,0,1,2,0
|
||||||
|
adds r14=PID,r13
|
||||||
|
;;
|
||||||
|
ld4 loc0=[r14]
|
||||||
|
;;
|
||||||
|
sub r15=0,loc0
|
||||||
mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD
|
mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD
|
||||||
mov out1=0 /* Standard sp value. */
|
mov out1=0 /* Standard sp value. */
|
||||||
;;
|
;;
|
||||||
|
st4 [r14]=r15
|
||||||
DO_CALL (SYS_ify (clone))
|
DO_CALL (SYS_ify (clone))
|
||||||
|
cmp.eq p0,p7=0,r8
|
||||||
cmp.eq p6,p0=-1,r10
|
cmp.eq p6,p0=-1,r10
|
||||||
|
adds r14=PID,r13
|
||||||
;;
|
;;
|
||||||
|
(p7) st4 [r14]=loc0
|
||||||
(p6) br.cond.spnt.few __syscall_error
|
(p6) br.cond.spnt.few __syscall_error
|
||||||
ret
|
ret
|
||||||
PSEUDO_END(__vfork)
|
PSEUDO_END(__vfork)
|
||||||
|
68
nptl/sysdeps/unix/sysv/linux/ia64/vfork.S
Normal file
68
nptl/sysdeps/unix/sysv/linux/ia64/vfork.S
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
/* Copyright (C) 2000, 2002, 2004 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, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
|
||||||
|
#include <sysdep.h>
|
||||||
|
#define _SIGNAL_H
|
||||||
|
#include <bits/signum.h>
|
||||||
|
#include <tcb-offsets.h>
|
||||||
|
|
||||||
|
/* The following are defined in linux/sched.h, which unfortunately */
|
||||||
|
/* is not safe for inclusion in an assembly file. */
|
||||||
|
#define CLONE_VM 0x00000100 /* set if VM shared between processes */
|
||||||
|
#define CLONE_VFORK 0x00004000 /* set if the parent wants the child to wake it up on mm_release */
|
||||||
|
|
||||||
|
/* pid_t vfork(void); */
|
||||||
|
/* Implemented as __clone_syscall(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */
|
||||||
|
|
||||||
|
ENTRY(__vfork)
|
||||||
|
alloc r2=ar.pfs,0,0,2,0
|
||||||
|
adds r14=PID,r13
|
||||||
|
;;
|
||||||
|
ld4 r16=[r14]
|
||||||
|
;;
|
||||||
|
sub r15=0,r16
|
||||||
|
cmp.eq p6,p0=0,r16
|
||||||
|
;;
|
||||||
|
(p6) movl r15=0x80000000
|
||||||
|
mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD
|
||||||
|
mov out1=0 /* Standard sp value. */
|
||||||
|
;;
|
||||||
|
st4 [r14]=r15
|
||||||
|
DO_CALL_VIA_BREAK (SYS_ify (clone))
|
||||||
|
cmp.eq p6,p0=0,r8
|
||||||
|
adds r14=PID,r13
|
||||||
|
(p6) br.cond.dptk 1f
|
||||||
|
;;
|
||||||
|
ld4 r15=[r14]
|
||||||
|
;;
|
||||||
|
extr.u r16=r15,0,31
|
||||||
|
;;
|
||||||
|
cmp.eq p0,p6=0,r16
|
||||||
|
;;
|
||||||
|
(p6) sub r16=0,r15
|
||||||
|
;;
|
||||||
|
st4 [r14]=r16
|
||||||
|
1:
|
||||||
|
cmp.eq p6,p0=-1,r10
|
||||||
|
(p6) br.cond.spnt.few __syscall_error
|
||||||
|
ret
|
||||||
|
PSEUDO_END(__vfork)
|
||||||
|
libc_hidden_def (__vfork)
|
||||||
|
|
||||||
|
weak_alias (__vfork, vfork)
|
@ -22,6 +22,7 @@
|
|||||||
#include <bits/errno.h>
|
#include <bits/errno.h>
|
||||||
#include <kernel-features.h>
|
#include <kernel-features.h>
|
||||||
#include <bits/wordsize.h>
|
#include <bits/wordsize.h>
|
||||||
|
#include <tcb-offsets.h>
|
||||||
|
|
||||||
/* Clone the calling process, but without copying the whole address space.
|
/* Clone the calling process, but without copying the whole address space.
|
||||||
The calling process is suspended until the new process exits or is
|
The calling process is suspended until the new process exits or is
|
||||||
@ -29,9 +30,18 @@
|
|||||||
and the process ID of the new process to the old process. */
|
and the process ID of the new process to the old process. */
|
||||||
|
|
||||||
ENTRY (__vfork)
|
ENTRY (__vfork)
|
||||||
|
ear %r4,%a0
|
||||||
|
l %r3,PID(%r4)
|
||||||
|
lcr %r1,%r3
|
||||||
|
st %r1,PID(%r4)
|
||||||
|
|
||||||
/* Do vfork system call. */
|
/* Do vfork system call. */
|
||||||
svc SYS_ify (vfork)
|
svc SYS_ify (vfork)
|
||||||
|
|
||||||
|
ltr %r2,%r2
|
||||||
|
je 1f
|
||||||
|
st %r3,PID(%r4)
|
||||||
|
1:
|
||||||
/* Check for error. */
|
/* Check for error. */
|
||||||
lhi %r4,-4095
|
lhi %r4,-4095
|
||||||
clr %r2,%r4
|
clr %r2,%r4
|
||||||
|
57
nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
Normal file
57
nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
|
||||||
|
|
||||||
|
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, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#include <sysdep.h>
|
||||||
|
#define _ERRNO_H 1
|
||||||
|
#include <bits/errno.h>
|
||||||
|
#include <kernel-features.h>
|
||||||
|
#include <bits/wordsize.h>
|
||||||
|
#include <tcb-offsets.h>
|
||||||
|
|
||||||
|
/* Clone the calling process, but without copying the whole address space.
|
||||||
|
The calling process is suspended until the new process exits or is
|
||||||
|
replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
|
||||||
|
and the process ID of the new process to the old process. */
|
||||||
|
|
||||||
|
ENTRY (__vfork)
|
||||||
|
ear %r4,%a0
|
||||||
|
lhi %r1,1
|
||||||
|
icm %r3,15,PID(%r4)
|
||||||
|
sll %r1,31
|
||||||
|
je 1f
|
||||||
|
lcr %r1,%r3
|
||||||
|
1: st %r1,PID(%r4)
|
||||||
|
|
||||||
|
/* Do vfork system call. */
|
||||||
|
svc SYS_ify (vfork)
|
||||||
|
|
||||||
|
ltr %r2,%r2
|
||||||
|
je 1f
|
||||||
|
st %r3,PID(%r4)
|
||||||
|
1:
|
||||||
|
/* Check for error. */
|
||||||
|
lhi %r4,-4095
|
||||||
|
clr %r2,%r4
|
||||||
|
jnl SYSCALL_ERROR_LABEL
|
||||||
|
|
||||||
|
/* Normal return. */
|
||||||
|
br %r14
|
||||||
|
PSEUDO_END(__vfork)
|
||||||
|
|
||||||
|
weak_alias (__vfork, vfork)
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
|
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
|
||||||
|
|
||||||
@ -22,6 +22,7 @@
|
|||||||
#include <bits/errno.h>
|
#include <bits/errno.h>
|
||||||
#include <kernel-features.h>
|
#include <kernel-features.h>
|
||||||
#include <bits/wordsize.h>
|
#include <bits/wordsize.h>
|
||||||
|
#include <tcb-offsets.h>
|
||||||
|
|
||||||
/* Clone the calling process, but without copying the whole address space.
|
/* Clone the calling process, but without copying the whole address space.
|
||||||
The calling process is suspended until the new process exits or is
|
The calling process is suspended until the new process exits or is
|
||||||
@ -29,9 +30,21 @@
|
|||||||
and the process ID of the new process to the old process. */
|
and the process ID of the new process to the old process. */
|
||||||
|
|
||||||
ENTRY (__vfork)
|
ENTRY (__vfork)
|
||||||
|
|
||||||
|
ear %r4,%a0
|
||||||
|
sllg %r4,%r4,32
|
||||||
|
ear %r4,%a1
|
||||||
|
l %r3,PID(%r4)
|
||||||
|
lcr %r1,%r3
|
||||||
|
st %r1,PID(%r4)
|
||||||
|
|
||||||
/* Do vfork system call. */
|
/* Do vfork system call. */
|
||||||
svc SYS_ify (vfork)
|
svc SYS_ify (vfork)
|
||||||
|
|
||||||
|
ltgr %r2,%r2
|
||||||
|
je 1f
|
||||||
|
st %r3,PID(%r4)
|
||||||
|
1:
|
||||||
/* Check for error. */
|
/* Check for error. */
|
||||||
lghi %r4,-4095
|
lghi %r4,-4095
|
||||||
clgr %r2,%r4
|
clgr %r2,%r4
|
||||||
|
59
nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
Normal file
59
nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
|
||||||
|
|
||||||
|
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, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#include <sysdep.h>
|
||||||
|
#define _ERRNO_H 1
|
||||||
|
#include <bits/errno.h>
|
||||||
|
#include <kernel-features.h>
|
||||||
|
#include <bits/wordsize.h>
|
||||||
|
#include <tcb-offsets.h>
|
||||||
|
|
||||||
|
/* Clone the calling process, but without copying the whole address space.
|
||||||
|
The calling process is suspended until the new process exits or is
|
||||||
|
replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
|
||||||
|
and the process ID of the new process to the old process. */
|
||||||
|
|
||||||
|
ENTRY (__vfork)
|
||||||
|
|
||||||
|
ear %r4,%a0
|
||||||
|
sllg %r4,%r4,32
|
||||||
|
ear %r4,%a1
|
||||||
|
icm %r3,15,PID(%r4)
|
||||||
|
llilh %r1,32768
|
||||||
|
je 1f
|
||||||
|
lcr %r1,%r3
|
||||||
|
1: st %r1,PID(%r4)
|
||||||
|
|
||||||
|
/* Do vfork system call. */
|
||||||
|
svc SYS_ify (vfork)
|
||||||
|
|
||||||
|
ltgr %r2,%r2
|
||||||
|
je 1f
|
||||||
|
st %r3,PID(%r4)
|
||||||
|
1:
|
||||||
|
/* Check for error. */
|
||||||
|
lghi %r4,-4095
|
||||||
|
clgr %r2,%r4
|
||||||
|
jnl SYSCALL_ERROR_LABEL
|
||||||
|
|
||||||
|
/* Normal return. */
|
||||||
|
br %r14
|
||||||
|
PSEUDO_END(__vfork)
|
||||||
|
|
||||||
|
weak_alias (__vfork, vfork)
|
@ -1,6 +1,6 @@
|
|||||||
/* Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU Lesser General Public
|
modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,11 +18,25 @@
|
|||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
#include <tcb-offsets.h>
|
||||||
|
|
||||||
PSEUDO (__vfork, vfork, 0)
|
.text
|
||||||
|
ENTRY(__vfork)
|
||||||
|
ld [%g7 + PID], %o5
|
||||||
|
sub %g0, %o5, %o4
|
||||||
|
st %o4, [%g7 + PID]
|
||||||
|
|
||||||
|
LOADSYSCALL(vfork)
|
||||||
|
ta 0x10
|
||||||
|
bcs,a __syscall_error_handler
|
||||||
|
st %o5, [%g7 + PID]
|
||||||
|
SYSCALL_ERROR_HANDLER
|
||||||
sub %o1, 1, %o1
|
sub %o1, 1, %o1
|
||||||
retl
|
andcc %o0, %o1, %o0
|
||||||
and %o0, %o1, %o0
|
bne,a 1f
|
||||||
|
st %o5, [%g7 + PID]
|
||||||
|
1: retl
|
||||||
|
nop
|
||||||
|
|
||||||
PSEUDO_END (__vfork)
|
PSEUDO_END (__vfork)
|
||||||
weak_alias (__vfork, vfork)
|
weak_alias (__vfork, vfork)
|
45
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
Normal file
45
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
|
||||||
|
|
||||||
|
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, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#include <sysdep.h>
|
||||||
|
#include <tcb-offsets.h>
|
||||||
|
|
||||||
|
.text
|
||||||
|
ENTRY(__vfork)
|
||||||
|
ld [%g7 + PID], %o5
|
||||||
|
cmp %o5, 0
|
||||||
|
bne 1f
|
||||||
|
sub %g0, %o5, %o4
|
||||||
|
sethi %hi(0x80000000), %o4
|
||||||
|
1: st %o4, [%g7 + PID]
|
||||||
|
|
||||||
|
LOADSYSCALL(vfork)
|
||||||
|
ta 0x10
|
||||||
|
bcs,a __syscall_error_handler
|
||||||
|
st %o5, [%g7 + PID]
|
||||||
|
SYSCALL_ERROR_HANDLER
|
||||||
|
sub %o1, 1, %o1
|
||||||
|
andcc %o0, %o1, %o0
|
||||||
|
bne,a 1f
|
||||||
|
st %o5, [%g7 + PID]
|
||||||
|
1: retl
|
||||||
|
nop
|
||||||
|
|
||||||
|
PSEUDO_END (__vfork)
|
||||||
|
weak_alias (__vfork, vfork)
|
42
nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S
Normal file
42
nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
/* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
|
||||||
|
|
||||||
|
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, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#include <sysdep.h>
|
||||||
|
#include <tcb-offsets.h>
|
||||||
|
|
||||||
|
.text
|
||||||
|
ENTRY(__vfork)
|
||||||
|
ld [%g7 + PID], %o5
|
||||||
|
sub %g0, %o5, %o4
|
||||||
|
st %o4, [%g7 + PID]
|
||||||
|
|
||||||
|
LOADSYSCALL(vfork)
|
||||||
|
ta 0x6d
|
||||||
|
bcs,a,pn %xcc, __syscall_error_handler
|
||||||
|
st %o5, [%g7 + PID]
|
||||||
|
SYSCALL_ERROR_HANDLER
|
||||||
|
sub %o1, 1, %o1
|
||||||
|
andcc %o0, %o1, %o0
|
||||||
|
bne,a,pt %icc, 1f
|
||||||
|
st %o5, [%g7 + PID]
|
||||||
|
1: retl
|
||||||
|
nop
|
||||||
|
|
||||||
|
PSEUDO_END (__vfork)
|
||||||
|
weak_alias (__vfork, vfork)
|
45
nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
Normal file
45
nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
|
||||||
|
|
||||||
|
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, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#include <sysdep.h>
|
||||||
|
#include <tcb-offsets.h>
|
||||||
|
|
||||||
|
.text
|
||||||
|
ENTRY(__vfork)
|
||||||
|
ld [%g7 + PID], %o5
|
||||||
|
sethi %hi(0x80000000), %o3
|
||||||
|
cmp %o5, 0
|
||||||
|
sub %g0, %o5, %o4
|
||||||
|
move %icc, %o3, %o4
|
||||||
|
st %o4, [%g7 + PID]
|
||||||
|
|
||||||
|
LOADSYSCALL(vfork)
|
||||||
|
ta 0x6d
|
||||||
|
bcs,a,pn %xcc, __syscall_error_handler
|
||||||
|
st %o5, [%g7 + PID]
|
||||||
|
SYSCALL_ERROR_HANDLER
|
||||||
|
sub %o1, 1, %o1
|
||||||
|
andcc %o0, %o1, %o0
|
||||||
|
bne,a,pt %icc, 1f
|
||||||
|
st %o5, [%g7 + PID]
|
||||||
|
1: retl
|
||||||
|
nop
|
||||||
|
|
||||||
|
PSEUDO_END (__vfork)
|
||||||
|
weak_alias (__vfork, vfork)
|
@ -57,7 +57,7 @@ enum
|
|||||||
HWCAP_I386_AMD3D = 1 << 31,
|
HWCAP_I386_AMD3D = 1 << 31,
|
||||||
|
|
||||||
/* XXX Which others to add here? */
|
/* XXX Which others to add here? */
|
||||||
HWCAP_IMPORTANT = (HWCAP_I386_MMX)
|
HWCAP_IMPORTANT = (HWCAP_I386_XMM2)
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/* Machine-dependent ELF dynamic relocation inline functions. SH version.
|
/* Machine-dependent ELF dynamic relocation inline functions. SH version.
|
||||||
Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -417,9 +418,9 @@ _dl_start_user:\n\
|
|||||||
static inline void __attribute__ ((unused))
|
static inline void __attribute__ ((unused))
|
||||||
dl_platform_init (void)
|
dl_platform_init (void)
|
||||||
{
|
{
|
||||||
if (GL(dl_platform) != NULL && *GL(dl_platform) == '\0')
|
if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0')
|
||||||
/* Avoid an empty string which would disturb us. */
|
/* Avoid an empty string which would disturb us. */
|
||||||
GL(dl_platform) = NULL;
|
GLRO(dl_platform) = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline Elf32_Addr
|
static inline Elf32_Addr
|
||||||
@ -460,20 +461,23 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
|
|||||||
#define COPY_UNALIGNED_WORD(swp, twp, align) \
|
#define COPY_UNALIGNED_WORD(swp, twp, align) \
|
||||||
{ \
|
{ \
|
||||||
void *__s = (swp), *__t = (twp); \
|
void *__s = (swp), *__t = (twp); \
|
||||||
|
unsigned char *__s1 = __s, *__t1 = __t; \
|
||||||
|
unsigned short *__s2 = __s, *__t2 = __t; \
|
||||||
|
unsigned long *__s4 = __s, *__t4 = __t; \
|
||||||
switch ((align)) \
|
switch ((align)) \
|
||||||
{ \
|
{ \
|
||||||
case 0: \
|
case 0: \
|
||||||
*(unsigned long *) __t = *(unsigned long *) __s; \
|
*__t4 = *__s4; \
|
||||||
break; \
|
break; \
|
||||||
case 2: \
|
case 2: \
|
||||||
*((unsigned short *) __t)++ = *((unsigned short *) __s)++; \
|
*__t2++ = *__s2++; \
|
||||||
*((unsigned short *) __t) = *((unsigned short *) __s); \
|
*__t2 = *__s2; \
|
||||||
break; \
|
break; \
|
||||||
default: \
|
default: \
|
||||||
*((unsigned char *) __t)++ = *((unsigned char *) __s)++; \
|
*__t1++ = *__s1++; \
|
||||||
*((unsigned char *) __t)++ = *((unsigned char *) __s)++; \
|
*__t1++ = *__s1++; \
|
||||||
*((unsigned char *) __t)++ = *((unsigned char *) __s)++; \
|
*__t1++ = *__s1++; \
|
||||||
*((unsigned char *) __t) = *((unsigned char *) __s); \
|
*__t1 = *__s1; \
|
||||||
break; \
|
break; \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
@ -525,7 +529,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
|
|||||||
found. */
|
found. */
|
||||||
break;
|
break;
|
||||||
if (sym->st_size > refsym->st_size
|
if (sym->st_size > refsym->st_size
|
||||||
|| (sym->st_size < refsym->st_size && GL(dl_verbose)))
|
|| (sym->st_size < refsym->st_size && GLRO(dl_verbose)))
|
||||||
{
|
{
|
||||||
const char *strtab;
|
const char *strtab;
|
||||||
|
|
||||||
@ -593,7 +597,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
|
|||||||
rtld.c contains the common defn for _dl_rtld_map, which
|
rtld.c contains the common defn for _dl_rtld_map, which
|
||||||
is incompatible with a weak decl in the same file. */
|
is incompatible with a weak decl in the same file. */
|
||||||
# ifndef SHARED
|
# ifndef SHARED
|
||||||
weak_extern (GL(dl_rtld_map));
|
weak_extern (_dl_rtld_map);
|
||||||
# endif
|
# endif
|
||||||
if (map == &GL(dl_rtld_map))
|
if (map == &GL(dl_rtld_map))
|
||||||
/* Undo the relocation done here during bootstrapping.
|
/* Undo the relocation done here during bootstrapping.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1998, 2000, 2002, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 1998, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -58,7 +58,7 @@ struct timex32 {
|
|||||||
|
|
||||||
#define TIMEVAL timeval32
|
#define TIMEVAL timeval32
|
||||||
#define TIMEX timex32
|
#define TIMEX timex32
|
||||||
#define ADJTIME __adjtime_tv32
|
#define ADJTIME attribute_compat_text_section __adjtime_tv32
|
||||||
#define ADJTIMEX(x) INLINE_SYSCALL (old_adjtimex, 1, x)
|
#define ADJTIMEX(x) INLINE_SYSCALL (old_adjtimex, 1, x)
|
||||||
#define ADJTIMEX32(x) INLINE_SYSCALL (old_adjtimex, 1, x)
|
#define ADJTIMEX32(x) INLINE_SYSCALL (old_adjtimex, 1, x)
|
||||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||||
@ -72,7 +72,9 @@ LINKAGE int ADJTIME (const struct TIMEVAL *itv, struct TIMEVAL *otv);
|
|||||||
#include <sysdeps/unix/sysv/linux/adjtime.c>
|
#include <sysdeps/unix/sysv/linux/adjtime.c>
|
||||||
|
|
||||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||||
int __adjtimex_tv32 (struct timex32 *tx) { return ADJTIMEX (tx); }
|
int
|
||||||
|
attribute_compat_text_section
|
||||||
|
__adjtimex_tv32 (struct timex32 *tx) { return ADJTIMEX (tx); }
|
||||||
strong_alias (__adjtimex_tv32, __adjtimex_tv32_1);
|
strong_alias (__adjtimex_tv32, __adjtimex_tv32_1);
|
||||||
strong_alias (__adjtimex_tv32, __adjtimex_tv32_2);
|
strong_alias (__adjtimex_tv32, __adjtimex_tv32_2);
|
||||||
compat_symbol (libc, __adjtimex_tv32_1, __adjtimex, GLIBC_2_0);
|
compat_symbol (libc, __adjtimex_tv32_1, __adjtimex, GLIBC_2_0);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
|
/* Copyright (C) 1998, 2000, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -44,6 +44,7 @@ typedef struct
|
|||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
|
attribute_compat_text_section
|
||||||
__old_glob (const char *pattern, int flags,
|
__old_glob (const char *pattern, int flags,
|
||||||
int (*errfunc) (const char *, int),
|
int (*errfunc) (const char *, int),
|
||||||
old_glob_t *pglob)
|
old_glob_t *pglob)
|
||||||
@ -82,6 +83,7 @@ compat_symbol (libc, __old_glob, glob, GLIBC_2_0);
|
|||||||
|
|
||||||
/* Free storage allocated in PGLOB by a previous `glob' call. */
|
/* Free storage allocated in PGLOB by a previous `glob' call. */
|
||||||
void
|
void
|
||||||
|
attribute_compat_text_section
|
||||||
__old_globfree (old_glob_t *pglob)
|
__old_globfree (old_glob_t *pglob)
|
||||||
{
|
{
|
||||||
glob_t correct;
|
glob_t correct;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
/* Copyright (C) 2001, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -38,6 +38,7 @@ typedef struct
|
|||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
|
attribute_compat_text_section
|
||||||
__old_wordexp (const char *words, old_wordexp_t *pwordexp, int flags)
|
__old_wordexp (const char *words, old_wordexp_t *pwordexp, int flags)
|
||||||
{
|
{
|
||||||
wordexp_t we;
|
wordexp_t we;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
/* Copyright (C) 1995, 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
|
/* Copyright (C) 1995, 1997, 1998, 2000, 2002, 2004
|
||||||
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
|
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
|
||||||
|
|
||||||
@ -55,6 +56,7 @@ int __new_msgctl (int, int, struct msqid_ds *);
|
|||||||
|
|
||||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||||
int
|
int
|
||||||
|
attribute_compat_text_section
|
||||||
__old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
|
__old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
|
||||||
{
|
{
|
||||||
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, CHECK_1 (buf));
|
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, CHECK_1 (buf));
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -69,6 +69,7 @@ __posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise)
|
|||||||
#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
|
#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
|
||||||
|
|
||||||
int
|
int
|
||||||
|
attribute_compat_text_section
|
||||||
__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
|
__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
|
||||||
{
|
{
|
||||||
return __posix_fadvise64_l64 (fd, offset, len, advise);
|
return __posix_fadvise64_l64 (fd, offset, len, advise);
|
||||||
|
@ -244,12 +244,13 @@ L(no_vec):
|
|||||||
addi r1,r1,16
|
addi r1,r1,16
|
||||||
mtlr r0
|
mtlr r0
|
||||||
blr
|
blr
|
||||||
PSEUDO_END(__getcontext)
|
END(__getcontext)
|
||||||
|
|
||||||
versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4)
|
versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4)
|
||||||
|
|
||||||
#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
|
#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
|
||||||
|
|
||||||
|
compat_text_section
|
||||||
ENTRY(__novec_getcontext)
|
ENTRY(__novec_getcontext)
|
||||||
/*
|
/*
|
||||||
* Since we are not attempting to save the altivec registers,
|
* Since we are not attempting to save the altivec registers,
|
||||||
@ -355,7 +356,8 @@ ENTRY(__novec_getcontext)
|
|||||||
addi r1,r1,16
|
addi r1,r1,16
|
||||||
mtlr r0
|
mtlr r0
|
||||||
blr
|
blr
|
||||||
PSEUDO_END(__novec_getcontext)
|
END(__novec_getcontext)
|
||||||
|
.previous
|
||||||
|
|
||||||
compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3_3)
|
compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3_3)
|
||||||
|
|
||||||
@ -366,10 +368,12 @@ compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3_3)
|
|||||||
#define _ERRNO_H 1
|
#define _ERRNO_H 1
|
||||||
#include <bits/errno.h>
|
#include <bits/errno.h>
|
||||||
|
|
||||||
|
compat_text_section
|
||||||
ENTRY (__getcontext_stub)
|
ENTRY (__getcontext_stub)
|
||||||
li r3,ENOSYS
|
li r3,ENOSYS
|
||||||
b JUMPTARGET(__syscall_error)
|
b JUMPTARGET(__syscall_error)
|
||||||
END (__getcontext_stub)
|
END (__getcontext_stub)
|
||||||
|
.previous
|
||||||
|
|
||||||
compat_symbol (libc, __getcontext_stub, getcontext, GLIBC_2_1)
|
compat_symbol (libc, __getcontext_stub, getcontext, GLIBC_2_1)
|
||||||
|
|
||||||
|
@ -111,6 +111,7 @@ versioned_symbol (libc, __makecontext, makecontext, GLIBC_2_3_4)
|
|||||||
|
|
||||||
#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
|
#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
|
||||||
|
|
||||||
|
compat_text_section
|
||||||
ENTRY(__novec_makecontext)
|
ENTRY(__novec_makecontext)
|
||||||
/* Set up the first 7 args to the function in its registers */
|
/* Set up the first 7 args to the function in its registers */
|
||||||
addi r11,r3,_UC_REG_SPACE
|
addi r11,r3,_UC_REG_SPACE
|
||||||
@ -191,7 +192,8 @@ L(novec_exitcode):
|
|||||||
4: bl HIDDEN_JUMPTARGET(exit)
|
4: bl HIDDEN_JUMPTARGET(exit)
|
||||||
b 4b
|
b 4b
|
||||||
|
|
||||||
END(__makecontext)
|
END(__novec_makecontext)
|
||||||
|
.previous
|
||||||
|
|
||||||
compat_symbol (libc, __novec_makecontext, makecontext, GLIBC_2_3_3)
|
compat_symbol (libc, __novec_makecontext, makecontext, GLIBC_2_3_3)
|
||||||
#endif
|
#endif
|
||||||
@ -201,10 +203,12 @@ compat_symbol (libc, __novec_makecontext, makecontext, GLIBC_2_3_3)
|
|||||||
#define _ERRNO_H 1
|
#define _ERRNO_H 1
|
||||||
#include <bits/errno.h>
|
#include <bits/errno.h>
|
||||||
|
|
||||||
|
compat_text_section
|
||||||
ENTRY (__makecontext_stub)
|
ENTRY (__makecontext_stub)
|
||||||
li r3,ENOSYS
|
li r3,ENOSYS
|
||||||
b JUMPTARGET(__syscall_error)
|
b JUMPTARGET(__syscall_error)
|
||||||
END (__makecontext_stub)
|
END (__makecontext_stub)
|
||||||
|
.previous
|
||||||
|
|
||||||
compat_symbol (libc, __makecontext_stub, makecontext, GLIBC_2_1)
|
compat_symbol (libc, __makecontext_stub, makecontext, GLIBC_2_1)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -65,6 +65,7 @@ __posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise)
|
|||||||
#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
|
#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
|
||||||
|
|
||||||
int
|
int
|
||||||
|
attribute_compat_text_section
|
||||||
__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
|
__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
|
||||||
{
|
{
|
||||||
return __posix_fadvise64_l64 (fd, offset, len, advise);
|
return __posix_fadvise64_l64 (fd, offset, len, advise);
|
||||||
|
@ -261,12 +261,13 @@ L(do_sigret):
|
|||||||
sc
|
sc
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
|
|
||||||
PSEUDO_END (__setcontext)
|
END (__setcontext)
|
||||||
|
|
||||||
versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4)
|
versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4)
|
||||||
|
|
||||||
#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
|
#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
|
||||||
|
|
||||||
|
compat_text_section
|
||||||
ENTRY(__novec_setcontext)
|
ENTRY(__novec_setcontext)
|
||||||
mflr r0
|
mflr r0
|
||||||
stwu r1,-16(r1)
|
stwu r1,-16(r1)
|
||||||
@ -388,7 +389,8 @@ L(novec_do_sigret):
|
|||||||
sc
|
sc
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
|
|
||||||
PSEUDO_END (__setcontext)
|
END (__novec_setcontext)
|
||||||
|
.previous
|
||||||
|
|
||||||
compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3_3)
|
compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3_3)
|
||||||
|
|
||||||
@ -399,10 +401,12 @@ compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3_3)
|
|||||||
#define _ERRNO_H 1
|
#define _ERRNO_H 1
|
||||||
#include <bits/errno.h>
|
#include <bits/errno.h>
|
||||||
|
|
||||||
|
compat_text_section
|
||||||
ENTRY (__setcontext_stub)
|
ENTRY (__setcontext_stub)
|
||||||
li r3,ENOSYS
|
li r3,ENOSYS
|
||||||
b JUMPTARGET(__syscall_error)
|
b JUMPTARGET(__syscall_error)
|
||||||
END (__setcontext_stub)
|
END (__setcontext_stub)
|
||||||
|
.previous
|
||||||
|
|
||||||
compat_symbol (libc, __setcontext_stub, setcontext, GLIBC_2_1)
|
compat_symbol (libc, __setcontext_stub, setcontext, GLIBC_2_1)
|
||||||
|
|
||||||
|
@ -467,12 +467,13 @@ L(do_sigret):
|
|||||||
sc
|
sc
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
|
|
||||||
PSEUDO_END(__swapcontext)
|
END(__swapcontext)
|
||||||
|
|
||||||
versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4)
|
versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4)
|
||||||
|
|
||||||
#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
|
#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
|
||||||
|
|
||||||
|
compat_text_section
|
||||||
ENTRY(__novec_swapcontext)
|
ENTRY(__novec_swapcontext)
|
||||||
/* Save the current context */
|
/* Save the current context */
|
||||||
addi r3,r3,_UC_REG_SPACE
|
addi r3,r3,_UC_REG_SPACE
|
||||||
@ -682,7 +683,8 @@ L(novec_do_sigret):
|
|||||||
sc
|
sc
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
|
|
||||||
PSEUDO_END(__novec_swapcontext)
|
END(__novec_swapcontext)
|
||||||
|
.previous
|
||||||
|
|
||||||
compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3_3)
|
compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3_3)
|
||||||
|
|
||||||
@ -693,10 +695,12 @@ compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3_3)
|
|||||||
#define _ERRNO_H 1
|
#define _ERRNO_H 1
|
||||||
#include <bits/errno.h>
|
#include <bits/errno.h>
|
||||||
|
|
||||||
|
compat_text_section
|
||||||
ENTRY (__swapcontext_stub)
|
ENTRY (__swapcontext_stub)
|
||||||
li r3,ENOSYS
|
li r3,ENOSYS
|
||||||
b JUMPTARGET(__syscall_error)
|
b JUMPTARGET(__syscall_error)
|
||||||
END (__swapcontext_stub)
|
END (__swapcontext_stub)
|
||||||
|
.previous
|
||||||
|
|
||||||
compat_symbol (libc, __swapcontext_stub, swapcontext, GLIBC_2_1)
|
compat_symbol (libc, __swapcontext_stub, swapcontext, GLIBC_2_1)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -97,6 +97,7 @@ __real_chown (const char *file, uid_t owner, gid_t group)
|
|||||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||||
/* Compiling for compatibiity. */
|
/* Compiling for compatibiity. */
|
||||||
int
|
int
|
||||||
|
attribute_compat_text_section
|
||||||
__chown_is_lchown (const char *file, uid_t owner, gid_t group)
|
__chown_is_lchown (const char *file, uid_t owner, gid_t group)
|
||||||
{
|
{
|
||||||
return __lchown (file, owner, group);
|
return __lchown (file, owner, group);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -78,6 +78,7 @@ __posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise)
|
|||||||
#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
|
#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
|
||||||
|
|
||||||
int
|
int
|
||||||
|
attribute_compat_text_section
|
||||||
__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
|
__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
|
||||||
{
|
{
|
||||||
return __posix_fadvise64_l64 (fd, offset, len, advise);
|
return __posix_fadvise64_l64 (fd, offset, len, advise);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
/* Copyright (C) 1995, 1997, 1998, 2000, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 1995, 1997, 1998, 2000, 2003, 2004
|
||||||
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
|
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
|
||||||
|
|
||||||
@ -63,6 +64,7 @@ int __new_semctl (int semid, int semnum, int cmd, ...);
|
|||||||
|
|
||||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||||
int
|
int
|
||||||
|
attribute_compat_text_section
|
||||||
__old_semctl (int semid, int semnum, int cmd, ...)
|
__old_semctl (int semid, int semnum, int cmd, ...)
|
||||||
{
|
{
|
||||||
union semun arg;
|
union semun arg;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
/* Copyright (C) 1995, 1997, 1998, 2000, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 1995, 1997, 1998, 2000, 2003, 2004
|
||||||
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
|
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
|
||||||
|
|
||||||
@ -62,6 +63,7 @@ int __new_shmctl (int, int, struct shmid_ds *);
|
|||||||
|
|
||||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||||
int
|
int
|
||||||
|
attribute_compat_text_section
|
||||||
__old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
|
__old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
|
||||||
{
|
{
|
||||||
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid,
|
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid,
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/* Semctl for architectures where word sized unions are passed indirectly
|
/* Semctl for architectures where word sized unions are passed indirectly
|
||||||
Copyright (C) 1995,1997,1998,2000,2002,2003 Free Software Foundation, Inc.
|
Copyright (C) 1995, 1997, 1998, 2000, 2002, 2003, 2004
|
||||||
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
|
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
|
||||||
|
|
||||||
@ -72,6 +73,7 @@ int __new_semctl (int semid, int semnum, int cmd, ...);
|
|||||||
|
|
||||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||||
int
|
int
|
||||||
|
attribute_compat_text_section
|
||||||
__old_semctl (int semid, int semnum, int cmd, ...)
|
__old_semctl (int semid, int semnum, int cmd, ...)
|
||||||
{
|
{
|
||||||
union semun arg;
|
union semun arg;
|
||||||
|
Loading…
Reference in New Issue
Block a user