]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 10 Mar 2004 19:28:58 +0000 (19:28 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 10 Mar 2004 19:28:58 +0000 (19:28 +0000)
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.

34 files changed:
ChangeLog
hurd/compat-20.c
include/libc-symbols.h
nptl/ChangeLog
nptl/sysdeps/ia64/tcb-offsets.sym
nptl/sysdeps/s390/tcb-offsets.sym
nptl/sysdeps/sparc/tcb-offsets.sym
nptl/sysdeps/unix/sysv/linux/ia64/pt-vfork.S
nptl/sysdeps/unix/sysv/linux/ia64/vfork.S [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S
nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S
nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S [moved from nptl/sysdeps/unix/sysv/linux/sparc/pt-vfork.S with 69% similarity]
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S [new file with mode: 0644]
sysdeps/i386/dl-procinfo.h
sysdeps/sh/dl-machine.h
sysdeps/unix/sysv/linux/alpha/adjtime.c
sysdeps/unix/sysv/linux/alpha/oldglob.c
sysdeps/unix/sysv/linux/alpha/wordexp.c
sysdeps/unix/sysv/linux/msgctl.c
sysdeps/unix/sysv/linux/posix_fadvise64.c
sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise64.c
sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
sysdeps/unix/sysv/linux/s390/s390-32/chown.c
sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
sysdeps/unix/sysv/linux/semctl.c
sysdeps/unix/sysv/linux/shmctl.c
sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c

index 489d79de119cde5b9bdadd05060de8d3183043e4..e07376681d0098267fc16575c9e76843c662ebff 100644 (file)
--- a/ChangeLog
+++ b/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>
 
        * sysdeps/generic/errno.c: Disable versioning for rtld.
index 8c075c9eb0eda99c9917ff2426608a3503406451..c55e3e266a2ae2b3356a26d031fd9c2b53b7afc6 100644 (file)
@@ -1,5 +1,5 @@
 /* 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.
 
    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)
 
 void
+attribute_compat_text_section
 _hurd_proc_init_compat_20 (char **argv)
 {
   _hurd_proc_init (argv, NULL, 0);
index 4d87b2d4dc6b3fbb4e87f2d1be9c83985d065074..e7074a6064f4e90586e0de390e590ba275605b57 100644 (file)
@@ -761,9 +761,14 @@ for linking")
 
 /* Move compatibility symbols out of the way by placing them all in a
    special section.  */
-#define attribute_compat_text_section \
+#ifndef __ASSEMBLER__
+# define attribute_compat_text_section \
     __attribute__ ((section (".text.compat")))
-#define attribute_compat_data_section \
+# define attribute_compat_data_section \
     __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 */
index 2ca0c7c6d4327c77f2f94c958ddb5b5572d8c0e9..94d2273f926c3df27222f5b5cda93b9443d3a519 100644 (file)
@@ -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>
 
        * tst-cancel20.c (do_one_test): Clear in_sh_body first.
index 24dc3e9683a8e3e8458490b5d4ccc081b9de37bf..09ea70ddc75b38132c3dbb8286e3076d36f35da4 100644 (file)
@@ -1,5 +1,6 @@
 #include <sysdep.h>
 #include <tls.h>
 
+PID                    offsetof (struct pthread, pid) - sizeof (struct pthread)
 MULTIPLE_THREADS_OFFSET offsetof (struct pthread, header.multiple_threads) - sizeof (struct pthread)
 SYSINFO_OFFSET         offsetof (tcbhead_t, private)
index aee6be2570a0e5228c69a1b3fdaf6c4ff75c8359..c6e230a31501f54545d10dd1a4069dae75ea5485 100644 (file)
@@ -2,3 +2,4 @@
 #include <tls.h>
 
 MULTIPLE_THREADS_OFFSET                offsetof (tcbhead_t, multiple_threads)
+PID                            offsetof (struct pthread, pid)
index aee6be2570a0e5228c69a1b3fdaf6c4ff75c8359..c6e230a31501f54545d10dd1a4069dae75ea5485 100644 (file)
@@ -2,3 +2,4 @@
 #include <tls.h>
 
 MULTIPLE_THREADS_OFFSET                offsetof (tcbhead_t, multiple_threads)
+PID                            offsetof (struct pthread, pid)
index a8e2e492d32f812b9c9bc1514132355b8012d089..f59227c695fc68b127ad86770ac39d5da6e129cb 100644 (file)
@@ -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.
 
    The GNU C Library is free software; you can redistribute it and/or
 ENTRY(__vfork)
        .prologue       // work around a GAS bug which triggers if
        .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 out1=0              /* Standard sp value.                   */
        ;;
+       st4 [r14]=r15
        DO_CALL (SYS_ify (clone))
+       cmp.eq p0,p7=0,r8
        cmp.eq p6,p0=-1,r10
+       adds r14=PID,r13
        ;;
+(p7)   st4 [r14]=loc0
 (p6)   br.cond.spnt.few __syscall_error
        ret
 PSEUDO_END(__vfork)
diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/vfork.S b/nptl/sysdeps/unix/sysv/linux/ia64/vfork.S
new file mode 100644 (file)
index 0000000..bbb34d9
--- /dev/null
@@ -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)
index 67a5bc66134344ccfa40bbf7712090c05e00354b..60d6dbdef6b8dd272c03c44a0c5e89c9bea0d2b1 100644 (file)
@@ -22,6 +22,7 @@
 #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
    and the process ID of the new process to the old process.  */
 
 ENTRY (__vfork)
+       ear     %r4,%a0
+       l       %r3,PID(%r4)
+       lcr     %r1,%r3
+       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
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S b/nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
new file mode 100644 (file)
index 0000000..2dca28f
--- /dev/null
@@ -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)
index e45165e37b1d6caad437e647c7c7885ed48aba79..fcc7ee0804c4c79dc5abfef872c740810ea68867 100644 (file)
@@ -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.
    Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
 
@@ -22,6 +22,7 @@
 #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
    and the process ID of the new process to the old process.  */
 
 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.  */
        svc     SYS_ify (vfork)
 
+       ltgr    %r2,%r2
+       je      1f
+       st      %r3,PID(%r4)
+1:
        /* Check for error.  */
        lghi    %r4,-4095
        clgr    %r2,%r4
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
new file mode 100644 (file)
index 0000000..c73d849
--- /dev/null
@@ -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)
similarity index 69%
rename from nptl/sysdeps/unix/sysv/linux/sparc/pt-vfork.S
rename to nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S
index 006bc96bd6e4b80a5b4ee6e63f2b1675be3eace7..55229c9e665c4582c5b7f256ea23816f1a492e34 100644 (file)
@@ -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.
-   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
    modify it under the terms of the GNU Lesser General Public
    02111-1307 USA.  */
 
 #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
-       retl
-        and    %o0, %o1, %o0
+       andcc   %o0, %o1, %o0
+       bne,a   1f
+        st     %o5, [%g7 + PID]
+1:     retl
+        nop
 
 PSEUDO_END (__vfork)
 weak_alias (__vfork, vfork)
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
new file mode 100644 (file)
index 0000000..6a65a88
--- /dev/null
@@ -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)
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S
new file mode 100644 (file)
index 0000000..e9018b2
--- /dev/null
@@ -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)
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
new file mode 100644 (file)
index 0000000..c9ccd0f
--- /dev/null
@@ -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)
index e6b7faf812228740ce22113b1d76f6c9f54696aa..d114fec79e7a6ae8135cdca41d103ac2e56c1a46 100644 (file)
@@ -57,7 +57,7 @@ enum
   HWCAP_I386_AMD3D = 1 << 31,
 
   /* XXX Which others to add here?  */
-  HWCAP_IMPORTANT = (HWCAP_I386_MMX)
+  HWCAP_IMPORTANT = (HWCAP_I386_XMM2)
 
 };
 
index 304fbf98f72723b77aa9bcfd38d3075e3928e915..a0852a4e71cad3c5d72c77e913caf3a76e6e6fee 100644 (file)
@@ -1,5 +1,6 @@
 /* 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.
 
    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))
 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.  */
-    GL(dl_platform) = NULL;
+    GLRO(dl_platform) = NULL;
 }
 
 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) \
   { \
     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)) \
     { \
     case 0: \
-      *(unsigned long *) __t = *(unsigned long *) __s; \
+      *__t4 = *__s4; \
       break; \
     case 2: \
-      *((unsigned short *) __t)++ = *((unsigned short *) __s)++; \
-      *((unsigned short *) __t) = *((unsigned short *) __s); \
+      *__t2++ = *__s2++; \
+      *__t2 = *__s2; \
       break; \
     default: \
-      *((unsigned char *) __t)++ = *((unsigned char *) __s)++; \
-      *((unsigned char *) __t)++ = *((unsigned char *) __s)++; \
-      *((unsigned char *) __t)++ = *((unsigned char *) __s)++; \
-      *((unsigned char *) __t) = *((unsigned char *) __s); \
+      *__t1++ = *__s1++; \
+      *__t1++ = *__s1++; \
+      *__t1++ = *__s1++; \
+      *__t1 = *__s1; \
       break; \
     } \
   }
@@ -525,7 +529,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
               found.  */
            break;
          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;
 
@@ -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
              is incompatible with a weak decl in the same file.  */
 # ifndef SHARED
-           weak_extern (GL(dl_rtld_map));
+           weak_extern (_dl_rtld_map);
 # endif
            if (map == &GL(dl_rtld_map))
              /* Undo the relocation done here during bootstrapping.
index e036896216b5588fe1a9fd22c21896d2e3947f83..f8b272e9ce0417f8ef14f999a9f8d460f7363f04 100644 (file)
@@ -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.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -58,7 +58,7 @@ struct timex32 {
 
 #define TIMEVAL                timeval32
 #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 ADJTIMEX32(x)  INLINE_SYSCALL (old_adjtimex, 1, x)
 #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>
 
 #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_2);
 compat_symbol (libc, __adjtimex_tv32_1, __adjtimex, GLIBC_2_0);
index 68cda76c97fd4bf7df868e461fe3415c2ad74349..9d39176f6bbae72b1ed4808d9fbd6c8de8589be7 100644 (file)
@@ -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.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -44,6 +44,7 @@ typedef struct
 
 
 int
+attribute_compat_text_section
 __old_glob (const char *pattern, int flags,
            int (*errfunc) (const char *, int),
            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.  */
 void
+attribute_compat_text_section
 __old_globfree (old_glob_t *pglob)
 {
   glob_t correct;
index 102720407112768ea3eab64d569eb4b49bc491e8..1921a03388a70f3508b8f6461f991e169e07c75b 100644 (file)
@@ -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.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -38,6 +38,7 @@ typedef struct
 
 
 int
+attribute_compat_text_section
 __old_wordexp (const char *words, old_wordexp_t *pwordexp, int flags)
 {
   wordexp_t we;
index 24c87d3ad95ec0b7248c3dec0c128b126c364a28..700591b2d3374e5c2a72e4a997c70e2507de4c96 100644 (file)
@@ -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.
    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)
 int
+attribute_compat_text_section
 __old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
 {
   return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, CHECK_1 (buf));
index 350a0268f555808dfcd765d5b38e2f42e1fdc607..3555ae8352234a7d66447aa891d9e78b12a1c0e2 100644 (file)
@@ -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.
 
    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)
 
 int
+attribute_compat_text_section
 __posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
 {
   return __posix_fadvise64_l64 (fd, offset, len, advise);
index 0c04df511977e18a10c3f10da6143c02c74a2f55..baade0bfc1fbe564a04fb68ab7f73c5103300bed 100644 (file)
@@ -244,12 +244,13 @@ L(no_vec):
        addi    r1,r1,16
        mtlr    r0
        blr
-PSEUDO_END(__getcontext)
+END(__getcontext)
 
 versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4)
 
 #if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
 
+       compat_text_section
 ENTRY(__novec_getcontext)
        /*
         * Since we are not attempting to save the altivec registers,
@@ -355,7 +356,8 @@ ENTRY(__novec_getcontext)
        addi    r1,r1,16
        mtlr    r0
        blr
-PSEUDO_END(__novec_getcontext)
+END(__novec_getcontext)
+       .previous
 
 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
 #include <bits/errno.h>
 
+       compat_text_section
 ENTRY (__getcontext_stub)
        li      r3,ENOSYS
        b       JUMPTARGET(__syscall_error)
-       END (__getcontext_stub)
+END (__getcontext_stub)
+       .previous
 
 compat_symbol (libc, __getcontext_stub, getcontext, GLIBC_2_1)
 
index 9f34357deb0bdcae17470223172580d14501d3a8..5615718e11c063fee4ab3f512350d19eb0c95478 100644 (file)
@@ -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)
 
+       compat_text_section
 ENTRY(__novec_makecontext)
        /* Set up the first 7 args to the function in its registers */
        addi    r11,r3,_UC_REG_SPACE
@@ -191,7 +192,8 @@ L(novec_exitcode):
 4:     bl      HIDDEN_JUMPTARGET(exit)
        b       4b
 
-END(__makecontext)
+END(__novec_makecontext)
+       .previous
 
 compat_symbol (libc, __novec_makecontext, makecontext, GLIBC_2_3_3)
 #endif
@@ -201,10 +203,12 @@ compat_symbol (libc, __novec_makecontext, makecontext, GLIBC_2_3_3)
 #define _ERRNO_H       1
 #include <bits/errno.h>
 
+       compat_text_section
 ENTRY (__makecontext_stub)
        li      r3,ENOSYS
        b       JUMPTARGET(__syscall_error)
-       END (__makecontext_stub)
+END (__makecontext_stub)
+       .previous
 
 compat_symbol (libc, __makecontext_stub, makecontext, GLIBC_2_1)
 
index edc21f69cdbcffd9cbcd396ed2f8dacd558b64d3..c97bbbe87965d7b2bafbc09b77859f1a35143059 100644 (file)
@@ -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.
 
    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)
 
 int
+attribute_compat_text_section
 __posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
 {
   return __posix_fadvise64_l64 (fd, offset, len, advise);
index 16d5a3b7459512675259f1119a8bdd97603f46b5..ea0669d24b8b229fbfa09f9a2ed00af8a60805f5 100644 (file)
@@ -261,12 +261,13 @@ L(do_sigret):
        sc
        /* NOTREACHED */
 
-PSEUDO_END (__setcontext)
+END (__setcontext)
 
 versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4)
 
 #if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
 
+       compat_text_section
 ENTRY(__novec_setcontext)
        mflr    r0
        stwu    r1,-16(r1)
@@ -388,7 +389,8 @@ L(novec_do_sigret):
        sc
        /* NOTREACHED */
 
-PSEUDO_END (__setcontext)
+END (__novec_setcontext)
+       .previous
 
 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
 #include <bits/errno.h>
 
+       compat_text_section
 ENTRY (__setcontext_stub)
        li      r3,ENOSYS
        b       JUMPTARGET(__syscall_error)
-       END (__setcontext_stub)
+END (__setcontext_stub)
+       .previous
 
 compat_symbol (libc, __setcontext_stub, setcontext, GLIBC_2_1)
 
index 607f282a9a2d07a1f65449e86be2c3ae7d6c7379..1bf3f516b1b7d03df7671f75735689c94e78a809 100644 (file)
@@ -467,12 +467,13 @@ L(do_sigret):
        sc
        /* NOTREACHED */
 
-PSEUDO_END(__swapcontext)
+END(__swapcontext)
 
 versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4)
 
 #if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
 
+       compat_text_section
 ENTRY(__novec_swapcontext)
        /* Save the current context */
        addi    r3,r3,_UC_REG_SPACE
@@ -682,7 +683,8 @@ L(novec_do_sigret):
        sc
        /* NOTREACHED */
 
-PSEUDO_END(__novec_swapcontext)
+END(__novec_swapcontext)
+       .previous
 
 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
 #include <bits/errno.h>
 
+       compat_text_section
 ENTRY (__swapcontext_stub)
        li      r3,ENOSYS
        b       JUMPTARGET(__syscall_error)
-       END (__swapcontext_stub)
+END (__swapcontext_stub)
+       .previous
 
 compat_symbol (libc, __swapcontext_stub, swapcontext, GLIBC_2_1)
 
index 1c7b7abc50d3248c5c078eb023fb01b2d172dc1c..0656b396f8d7a7f953b33f4f35e5138e17feac9d 100644 (file)
@@ -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.
 
    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)
 /* Compiling for compatibiity.  */
 int
+attribute_compat_text_section
 __chown_is_lchown (const char *file, uid_t owner, gid_t group)
 {
   return __lchown (file, owner, group);
index 6c539cd700feb0171599b6fca003f656ede17266..e0fed24af3ae9443172e5fc7953e2af0a88a03ef 100644 (file)
@@ -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.
 
    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)
 
 int
+attribute_compat_text_section
 __posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
 {
   return __posix_fadvise64_l64 (fd, offset, len, advise);
index 07b1e6b4fab222c803cb74982529cdd4a1033013..ecd23ce53e0e1841191e75be3a9d4a080231841d 100644 (file)
@@ -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.
    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)
 int
+attribute_compat_text_section
 __old_semctl (int semid, int semnum, int cmd, ...)
 {
   union semun arg;
index 2bd92469c19f7ace3a4d08898ccaffafdb5d39c6..5561cca36f1a7f1e970e509692a016c382e1b9d4 100644 (file)
@@ -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.
    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)
 int
+attribute_compat_text_section
 __old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
 {
   return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid,
index ebf9f52e93e615528e7f055ce173e74270c30a78..b28f009b06c32f0a1819f4ef89b4097277ca1bd0 100644 (file)
@@ -1,5 +1,6 @@
 /* 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.
    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)
 int
+attribute_compat_text_section
 __old_semctl (int semid, int semnum, int cmd, ...)
 {
   union semun arg;