+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.
/* 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
#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);
/* 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 */
+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.
#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)
#include <tls.h>
MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
+PID offsetof (struct pthread, pid)
#include <tls.h>
MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
+PID offsetof (struct pthread, pid)
-/* 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)
--- /dev/null
+/* 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)
#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
--- /dev/null
+/* 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)
-/* 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.
#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
--- /dev/null
+/* 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)
-/* 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)
--- /dev/null
+/* 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)
--- /dev/null
+/* 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)
--- /dev/null
+/* 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)
HWCAP_I386_AMD3D = 1 << 31,
/* XXX Which others to add here? */
- HWCAP_IMPORTANT = (HWCAP_I386_MMX)
+ HWCAP_IMPORTANT = (HWCAP_I386_XMM2)
};
/* 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
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
#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; \
} \
}
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;
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.
-/* 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
#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)
#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);
-/* 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
int
+attribute_compat_text_section
__old_glob (const char *pattern, int flags,
int (*errfunc) (const char *, int),
old_glob_t *pglob)
/* Free storage allocated in PGLOB by a previous `glob' call. */
void
+attribute_compat_text_section
__old_globfree (old_glob_t *pglob)
{
glob_t correct;
-/* 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
int
+attribute_compat_text_section
__old_wordexp (const char *words, old_wordexp_t *pwordexp, int flags)
{
wordexp_t we;
-/* 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.
#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));
-/* 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
#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);
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,
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)
#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)
#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
4: bl HIDDEN_JUMPTARGET(exit)
b 4b
-END(__makecontext)
+END(__novec_makecontext)
+ .previous
compat_symbol (libc, __novec_makecontext, makecontext, GLIBC_2_3_3)
#endif
#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)
-/* 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
#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);
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)
sc
/* NOTREACHED */
-PSEUDO_END (__setcontext)
+END (__novec_setcontext)
+ .previous
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)
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
sc
/* NOTREACHED */
-PSEUDO_END(__novec_swapcontext)
+END(__novec_swapcontext)
+ .previous
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)
-/* 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
#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);
-/* 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
#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);
-/* 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.
#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;
-/* 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.
#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,
/* 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.
#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;