about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-03-10 09:29:17 +0000
committerUlrich Drepper <drepper@redhat.com>2004-03-10 09:29:17 +0000
commit4a381a81fee9ee4569d0cee0807cef7e998fc59a (patch)
tree9e1adabe79c38f47a0940d850304d9f69065b22e /sysdeps
parent3f2fb22342acc2f14e9662fd157955fd6a9814e5 (diff)
downloadglibc-4a381a81fee9ee4569d0cee0807cef7e998fc59a.tar.gz
glibc-4a381a81fee9ee4569d0cee0807cef7e998fc59a.tar.xz
glibc-4a381a81fee9ee4569d0cee0807cef7e998fc59a.zip
Update.
2004-03-10  Ulrich Drepper  <drepper@redhat.com>

	* include/libc-symbols.h: Define attribute_compat_text_section and
	attribute_compat_data_section.
	* io/ftw.c: Mark compat code with attribute_compat_text_section.
	* libio/iofopncook.c: Likewise.
	* libio/oldfileops.c: Likewise.
	* libio/oldiofclose.c: Likewise.
	* libio/oldiofdopen.c: Likewise.
	* libio/oldiofgetpos.c: Likewise.
	* libio/oldiofgetpos64.c: Likewise.
	* libio/oldiofopen.c: Likewise.
	* libio/oldiofsetpos.c: Likewise.
	* libio/oldiofsetpos64.c: Likewise.
	* libio/oldiopopen.c: Likewise.
	* libio/oldpclose.c: Likewise.
	* libio/oldtmpfile.c: Likewise.
	* nptl/forward.c: Likewise.
	* nss/getXXbyYY_r.c: Likewise.
	* nss/getXXent_r.c: Likewise.
	* posix/tst-vfork1.c: Likewise.
	* stdlib/canonicalize.c: Likewise.
	* stdlib/old_atexit.c: Likewise.
	* sysdeps/generic/glob.c: Likewise.
	* sysdeps/posix/posix_fallocate64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/alphasort64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/glob64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/msgctl.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/posix_fadvise64.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/readdir64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/scandir64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/semctl.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/shmctl.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/versionsort64.c: Likewise.

	* sysdeps/unix/sysv/linux/i386/syscalls.list: vm86@@GLIBC_2.3.4
	should be the default symbol. Having none misses the point.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/glob.c5
-rw-r--r--sysdeps/posix/posix_fallocate64.c3
-rw-r--r--sysdeps/unix/sysv/linux/i386/alphasort64.c3
-rw-r--r--sysdeps/unix/sysv/linux/i386/chown.c3
-rw-r--r--sysdeps/unix/sysv/linux/i386/glob64.c1
-rw-r--r--sysdeps/unix/sysv/linux/i386/msgctl.c3
-rw-r--r--sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c3
-rw-r--r--sysdeps/unix/sysv/linux/i386/posix_fadvise64.S5
-rw-r--r--sysdeps/unix/sysv/linux/i386/readdir64.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/readdir64_r.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/scandir64.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/semctl.c3
-rw-r--r--sysdeps/unix/sysv/linux/i386/shmctl.c3
-rw-r--r--sysdeps/unix/sysv/linux/i386/syscalls.list2
-rw-r--r--sysdeps/unix/sysv/linux/i386/versionsort64.c5
15 files changed, 33 insertions, 18 deletions
diff --git a/sysdeps/generic/glob.c b/sysdeps/generic/glob.c
index 11d275496b..2a7ca558e8 100644
--- a/sysdeps/generic/glob.c
+++ b/sysdeps/generic/glob.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -390,6 +390,9 @@ next_brace_sub (cp, flags)
    If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
    Otherwise, `glob' returns zero.  */
 int
+#ifdef GLOB_ATTRIBUTE
+GLOB_ATTRIBUTE
+#endif
 glob (pattern, flags, errfunc, pglob)
      const char *pattern;
      int flags;
diff --git a/sysdeps/posix/posix_fallocate64.c b/sysdeps/posix/posix_fallocate64.c
index e5fb18d549..0eba4161a5 100644
--- a/sysdeps/posix/posix_fallocate64.c
+++ b/sysdeps/posix/posix_fallocate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 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
@@ -76,6 +76,7 @@ __posix_fallocate64_l64 (int fd, __off64_t offset, __off64_t len)
 #if __WORDSIZE == 32 && SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
 
 int
+attribute_compat_text_section
 __posix_fallocate64_l32 (int fd, off64_t offset, size_t len)
 {
   return __posix_fallocate64_l64 (fd, offset, len);
diff --git a/sysdeps/unix/sysv/linux/i386/alphasort64.c b/sysdeps/unix/sysv/linux/i386/alphasort64.c
index a52d018072..221aedc16b 100644
--- a/sysdeps/unix/sysv/linux/i386/alphasort64.c
+++ b/sysdeps/unix/sysv/linux/i386/alphasort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1997, 1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1997, 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
@@ -38,6 +38,7 @@ int
 __old_alphasort64 (const void *a, const void *b);
 
 int
+attribute_compat_text_section
 __old_alphasort64 (const void *a, const void *b)
 {
   return strcoll ((*(const struct __old_dirent64 **) a)->d_name,
diff --git a/sysdeps/unix/sysv/linux/i386/chown.c b/sysdeps/unix/sysv/linux/i386/chown.c
index a838181136..31a6e0f08a 100644
--- a/sysdeps/unix/sysv/linux/i386/chown.c
+++ b/sysdeps/unix/sysv/linux/i386/chown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,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
@@ -136,6 +136,7 @@ __chown_is_lchown (const char *file, uid_t owner, gid_t group)
 #elif 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);
diff --git a/sysdeps/unix/sysv/linux/i386/glob64.c b/sysdeps/unix/sysv/linux/i386/glob64.c
index 3d2eb4bfe5..b83f82b51d 100644
--- a/sysdeps/unix/sysv/linux/i386/glob64.c
+++ b/sysdeps/unix/sysv/linux/i386/glob64.c
@@ -43,6 +43,7 @@ int __old_glob64 (__const char *__pattern, int __flags,
 #define glob(pattern, flags, errfunc, pglob) \
   __old_glob64 (pattern, flags, errfunc, pglob)
 #define glob_in_dir __old_glob_in_dir
+#define GLOB_ATTRIBUTE attribute_compat_text_section
 
 #define GLOB_ONLY_P 1
 
diff --git a/sysdeps/unix/sysv/linux/i386/msgctl.c b/sysdeps/unix/sysv/linux/i386/msgctl.c
index 3e95d85b3a..108da8a987 100644
--- a/sysdeps/unix/sysv/linux/i386/msgctl.c
+++ b/sysdeps/unix/sysv/linux/i386/msgctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1997, 1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1997, 1998, 2000, 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 +63,7 @@ extern int __libc_missing_32bit_uids;
 
 #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,
diff --git a/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c b/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c
index 2fd2aceac9..3947e5988f 100644
--- a/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c
+++ b/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995-1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995-1999, 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
@@ -33,6 +33,7 @@ extern int __old_getrlimit64 (enum __rlimit_resource resource,
 /* Put the soft and hard limits for RESOURCE in *RLIMITS.
    Returns 0 if successful, -1 if not (and sets errno).  */
 int
+attribute_compat_text_section
 __old_getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits)
 {
   struct rlimit rlimits32;
diff --git a/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S b/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S
index b577f2284e..99a3ea536d 100644
--- a/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S
+++ b/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S
@@ -116,7 +116,10 @@ L(overflow):
 END (BP_SYM (__posix_fadvise64_l64))
 
 #ifdef __NR_fadvise64
-PSEUDO_ERRVAL (__posix_fadvise64_l32, fadvise64, 5)
+	.section	.text.compat, "ax"
+ENTRY (__posix_fadvise64_l32)
+	DO_CALL (fadvise64, 5)
+	negl %eax
 	ret
 PSEUDO_END_ERRVAL (__posix_fadvise64_l32)
 #else
diff --git a/sysdeps/unix/sysv/linux/i386/readdir64.c b/sysdeps/unix/sysv/linux/i386/readdir64.c
index a0d858bc85..8d39088691 100644
--- a/sysdeps/unix/sysv/linux/i386/readdir64.c
+++ b/sysdeps/unix/sysv/linux/i386/readdir64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 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
@@ -34,7 +34,7 @@ versioned_symbol (libc, __readdir64, readdir64, GLIBC_2_2);
 
 #include <sysdeps/unix/sysv/linux/i386/olddirent.h>
 
-#define __READDIR __old_readdir64
+#define __READDIR attribute_compat_text_section __old_readdir64
 #define __GETDENTS __old_getdents64
 #define DIRENT_TYPE struct __old_dirent64
 
diff --git a/sysdeps/unix/sysv/linux/i386/readdir64_r.c b/sysdeps/unix/sysv/linux/i386/readdir64_r.c
index a6f9d44d42..c6da57b75e 100644
--- a/sysdeps/unix/sysv/linux/i386/readdir64_r.c
+++ b/sysdeps/unix/sysv/linux/i386/readdir64_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 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
@@ -34,7 +34,7 @@ versioned_symbol (libc, __readdir64_r, readdir64_r, GLIBC_2_2);
 
 #include <sysdeps/unix/sysv/linux/i386/olddirent.h>
 
-#define __READDIR_R __old_readdir64_r
+#define __READDIR_R attribute_compat_text_section __old_readdir64_r
 #define __GETDENTS __old_getdents64
 #define DIRENT_TYPE struct __old_dirent64
 
diff --git a/sysdeps/unix/sysv/linux/i386/scandir64.c b/sysdeps/unix/sysv/linux/i386/scandir64.c
index 285909f0dc..690be813b7 100644
--- a/sysdeps/unix/sysv/linux/i386/scandir64.c
+++ b/sysdeps/unix/sysv/linux/i386/scandir64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 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
@@ -36,7 +36,7 @@ versioned_symbol (libc, __scandir64, scandir64, GLIBC_2_2);
 
 #include <sysdeps/unix/sysv/linux/i386/olddirent.h>
 
-#define SCANDIR __old_scandir64
+#define SCANDIR attribute_compat_text_section __old_scandir64
 #define READDIR __old_readdir64
 #define DIRENT_TYPE struct __old_dirent64
 
diff --git a/sysdeps/unix/sysv/linux/i386/semctl.c b/sysdeps/unix/sysv/linux/i386/semctl.c
index 84edf052b0..14bfac613c 100644
--- a/sysdeps/unix/sysv/linux/i386/semctl.c
+++ b/sysdeps/unix/sysv/linux/i386/semctl.c
@@ -1,4 +1,4 @@
-/* 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.
 
@@ -71,6 +71,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;
diff --git a/sysdeps/unix/sysv/linux/i386/shmctl.c b/sysdeps/unix/sysv/linux/i386/shmctl.c
index 8fa6ff0b6b..394d3c01cf 100644
--- a/sysdeps/unix/sysv/linux/i386/shmctl.c
+++ b/sysdeps/unix/sysv/linux/i386/shmctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1997, 1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1997, 1998, 2000, 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.
 
@@ -70,6 +70,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,
diff --git a/sysdeps/unix/sysv/linux/i386/syscalls.list b/sysdeps/unix/sysv/linux/i386/syscalls.list
index ddd81be5be..214397446d 100644
--- a/sysdeps/unix/sysv/linux/i386/syscalls.list
+++ b/sysdeps/unix/sysv/linux/i386/syscalls.list
@@ -2,7 +2,7 @@
 
 modify_ldt	EXTRA	modify_ldt	i:ipi	__modify_ldt	modify_ldt
 vm86old		EXTRA	vm86old		i:p	__vm86old	vm86@GLIBC_2.0
-vm86		-	vm86		i:ip	__vm86		vm86@GLIBC_2.3.4
+vm86		-	vm86		i:ip	__vm86		vm86@@GLIBC_2.3.4
 oldgetrlimit	EXTRA	getrlimit	i:ip	__old_getrlimit	getrlimit@GLIBC_2.0
 oldsetrlimit	EXTRA	setrlimit	i:ip	__old_setrlimit	setrlimit@GLIBC_2.0
 time		-	time		Ei:p	time
diff --git a/sysdeps/unix/sysv/linux/i386/versionsort64.c b/sysdeps/unix/sysv/linux/i386/versionsort64.c
index 7243021ff4..3efce692f7 100644
--- a/sysdeps/unix/sysv/linux/i386/versionsort64.c
+++ b/sysdeps/unix/sysv/linux/i386/versionsort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1997, 1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1997, 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
@@ -38,11 +38,12 @@ int
 __old_versionsort64 (const void *a, const void *b);
 
 int
+attribute_compat_text_section
 __old_versionsort64 (const void *a, const void *b)
 {
   return __strverscmp ((*(const struct __old_dirent64 **) a)->d_name,
 		       (*(const struct __old_dirent64 **) b)->d_name);
 }
-                      
+
 compat_symbol (libc, __old_versionsort64, versionsort64, GLIBC_2_1);
 #endif