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.
This commit is contained in:
Ulrich Drepper 2004-03-10 09:29:17 +00:00
parent 3f2fb22342
commit 4a381a81fe
35 changed files with 145 additions and 45 deletions

View file

@ -1,3 +1,44 @@
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.
2004-03-09 Ulrich Drepper <drepper@redhat.com> 2004-03-09 Ulrich Drepper <drepper@redhat.com>
* stdlib/qsort.c (_quicksort): Initialize first stack element [BZ #16]. * stdlib/qsort.c (_quicksort): Initialize first stack element [BZ #16].

View file

@ -759,4 +759,11 @@ for linking")
/* Get some dirty hacks. */ /* Get some dirty hacks. */
#include <symbol-hacks.h> #include <symbol-hacks.h>
/* Move compatibility symbols out of the way by placing them all in a
special section. */
#define attribute_compat_text_section \
__attribute__ ((section (".text.compat")))
#define attribute_compat_data_section \
__attribute__ ((section (".data.compat")))
#endif /* libc-symbols.h */ #endif /* libc-symbols.h */

View file

@ -1,5 +1,5 @@
/* File tree walker functions. /* File tree walker functions.
Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc. Copyright (C) 1996-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@cygnus.com>, 1996. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -784,6 +784,7 @@ versioned_symbol (libc, NFTW_NEW_NAME, NFTW_NAME, GLIBC_2_3_3);
int NFTW_OLD_NAME (const char *, NFTW_FUNC_T, int, int); int NFTW_OLD_NAME (const char *, NFTW_FUNC_T, int, int);
int int
attribute_compat_text_section
NFTW_OLD_NAME (path, func, descriptors, flags) NFTW_OLD_NAME (path, func, descriptors, flags)
const char *path; const char *path;
NFTW_FUNC_T func; NFTW_FUNC_T func;

View file

@ -195,6 +195,7 @@ _IO_FILE * _IO_old_fopencookie (void *cookie, const char *mode,
_IO_cookie_io_functions_t io_functions); _IO_cookie_io_functions_t io_functions);
static _IO_off64_t static _IO_off64_t
attribute_compat_text_section
_IO_old_cookie_seek (fp, offset, dir) _IO_old_cookie_seek (fp, offset, dir)
_IO_FILE *fp; _IO_FILE *fp;
_IO_off64_t offset; _IO_off64_t offset;
@ -237,6 +238,7 @@ static const struct _IO_jump_t _IO_old_cookie_jumps = {
}; };
_IO_FILE * _IO_FILE *
attribute_compat_text_section
_IO_old_fopencookie (cookie, mode, io_functions) _IO_old_fopencookie (cookie, mode, io_functions)
void *cookie; void *cookie;
const char *mode; const char *mode;

View file

@ -115,6 +115,7 @@ extern int errno;
void void
attribute_compat_text_section
_IO_old_file_init (fp) _IO_old_file_init (fp)
struct _IO_FILE_plus *fp; struct _IO_FILE_plus *fp;
{ {
@ -141,6 +142,7 @@ _IO_old_file_init (fp)
} }
int int
attribute_compat_text_section
_IO_old_file_close_it (fp) _IO_old_file_close_it (fp)
_IO_FILE *fp; _IO_FILE *fp;
{ {
@ -168,6 +170,7 @@ _IO_old_file_close_it (fp)
} }
void void
attribute_compat_text_section
_IO_old_file_finish (fp, dummy) _IO_old_file_finish (fp, dummy)
_IO_FILE *fp; _IO_FILE *fp;
int dummy; int dummy;
@ -182,6 +185,7 @@ _IO_old_file_finish (fp, dummy)
} }
_IO_FILE * _IO_FILE *
attribute_compat_text_section
_IO_old_file_fopen (fp, filename, mode) _IO_old_file_fopen (fp, filename, mode)
_IO_FILE *fp; _IO_FILE *fp;
const char *filename; const char *filename;
@ -231,6 +235,7 @@ _IO_old_file_fopen (fp, filename, mode)
} }
_IO_FILE * _IO_FILE *
attribute_compat_text_section
_IO_old_file_attach (fp, fd) _IO_old_file_attach (fp, fd)
_IO_FILE *fp; _IO_FILE *fp;
int fd; int fd;
@ -250,6 +255,7 @@ _IO_old_file_attach (fp, fd)
} }
_IO_FILE * _IO_FILE *
attribute_compat_text_section
_IO_old_file_setbuf (fp, p, len) _IO_old_file_setbuf (fp, p, len)
_IO_FILE *fp; _IO_FILE *fp;
char *p; char *p;
@ -271,6 +277,7 @@ static int old_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
Then mark FP as having empty buffers. */ Then mark FP as having empty buffers. */
int int
attribute_compat_text_section
_IO_old_do_write (fp, data, to_do) _IO_old_do_write (fp, data, to_do)
_IO_FILE *fp; _IO_FILE *fp;
const char *data; const char *data;
@ -280,8 +287,8 @@ _IO_old_do_write (fp, data, to_do)
? 0 : EOF; ? 0 : EOF;
} }
static static int
int attribute_compat_text_section
old_do_write (fp, data, to_do) old_do_write (fp, data, to_do)
_IO_FILE *fp; _IO_FILE *fp;
const char *data; const char *data;
@ -315,6 +322,7 @@ old_do_write (fp, data, to_do)
} }
int int
attribute_compat_text_section
_IO_old_file_underflow (fp) _IO_old_file_underflow (fp)
_IO_FILE *fp; _IO_FILE *fp;
{ {
@ -379,6 +387,7 @@ _IO_old_file_underflow (fp)
} }
int int
attribute_compat_text_section
_IO_old_file_overflow (f, ch) _IO_old_file_overflow (f, ch)
_IO_FILE *f; _IO_FILE *f;
int ch; int ch;
@ -430,6 +439,7 @@ _IO_old_file_overflow (f, ch)
} }
int int
attribute_compat_text_section
_IO_old_file_sync (fp) _IO_old_file_sync (fp)
_IO_FILE *fp; _IO_FILE *fp;
{ {
@ -464,6 +474,7 @@ _IO_old_file_sync (fp)
} }
_IO_off64_t _IO_off64_t
attribute_compat_text_section
_IO_old_file_seekoff (fp, offset, dir, mode) _IO_old_file_seekoff (fp, offset, dir, mode)
_IO_FILE *fp; _IO_FILE *fp;
_IO_off64_t offset; _IO_off64_t offset;
@ -650,6 +661,7 @@ resync:
} }
_IO_ssize_t _IO_ssize_t
attribute_compat_text_section
_IO_old_file_write (f, data, n) _IO_old_file_write (f, data, n)
_IO_FILE *f; _IO_FILE *f;
const void *data; const void *data;
@ -674,6 +686,7 @@ _IO_old_file_write (f, data, n)
} }
_IO_size_t _IO_size_t
attribute_compat_text_section
_IO_old_file_xsputn (f, data, n) _IO_old_file_xsputn (f, data, n)
_IO_FILE *f; _IO_FILE *f;
const void *data; const void *data;

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1995, 1997-2001, 2002 Free Software Foundation, Inc. /* Copyright (C) 1993, 1995, 1997-2002, 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
@ -35,6 +35,7 @@
#endif #endif
int int
attribute_compat_text_section
_IO_old_fclose (fp) _IO_old_fclose (fp)
_IO_FILE *fp; _IO_FILE *fp;
{ {

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1993,94,97,99,2000,2002,2003 Free Software Foundation, Inc. /* Copyright (C) 1993,94,97,99,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
@ -40,6 +41,7 @@
#endif #endif
_IO_FILE * _IO_FILE *
attribute_compat_text_section
_IO_old_fdopen (fd, mode) _IO_old_fdopen (fd, mode)
int fd; int fd;
const char *mode; const char *mode;

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003 /* Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -33,6 +33,7 @@
#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
_IO_old_fgetpos (fp, posp) _IO_old_fgetpos (fp, posp)
_IO_FILE *fp; _IO_FILE *fp;
_IO_fpos_t *posp; _IO_fpos_t *posp;

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003 /* Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -33,6 +33,7 @@
#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2) #if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)
int int
attribute_compat_text_section
_IO_old_fgetpos64 (fp, posp) _IO_old_fgetpos64 (fp, posp)
_IO_FILE *fp; _IO_FILE *fp;
_IO_fpos64_t *posp; _IO_fpos64_t *posp;

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1993,1997,1999,2000,2002,2003 Free Software Foundation, Inc. /* Copyright (C) 1993,1997,1999,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
@ -36,6 +37,7 @@
_IO_FILE * _IO_FILE *
attribute_compat_text_section
_IO_old_fopen (filename, mode) _IO_old_fopen (filename, mode)
const char *filename; const char *filename;
const char *mode; const char *mode;

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1995, 1997, 1998, 1999, 2000, 2002, 2003 /* Copyright (C) 1993, 1995, 1997, 1998, 1999, 2000, 2002, 2003, 2004
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -32,6 +32,7 @@
#include <shlib-compat.h> #include <shlib-compat.h>
#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
_IO_old_fsetpos (fp, posp) _IO_old_fsetpos (fp, posp)
_IO_FILE *fp; _IO_FILE *fp;
const _IO_fpos_t *posp; const _IO_fpos_t *posp;

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1995, 1997, 1998, 1999, 2000, 2002, 2003 /* Copyright (C) 1993, 1995, 1997, 1998, 1999, 2000, 2002, 2003, 2004
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -33,6 +33,7 @@
#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2) #if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)
int int
attribute_compat_text_section
_IO_old_fsetpos64 (fp, posp) _IO_old_fsetpos64 (fp, posp)
_IO_FILE *fp; _IO_FILE *fp;
const _IO_fpos64_t *posp; const _IO_fpos64_t *posp;

View file

@ -120,6 +120,7 @@ unlock (void *not_used)
#endif #endif
_IO_FILE * _IO_FILE *
attribute_compat_text_section
_IO_old_proc_open (fp, command, mode) _IO_old_proc_open (fp, command, mode)
_IO_FILE *fp; _IO_FILE *fp;
const char *command; const char *command;
@ -202,6 +203,7 @@ _IO_old_proc_open (fp, command, mode)
} }
_IO_FILE * _IO_FILE *
attribute_compat_text_section
_IO_old_popen (command, mode) _IO_old_popen (command, mode)
const char *command; const char *command;
const char *mode; const char *mode;
@ -236,6 +238,7 @@ _IO_old_popen (command, mode)
} }
int int
attribute_compat_text_section
_IO_old_proc_close (fp) _IO_old_proc_close (fp)
_IO_FILE *fp; _IO_FILE *fp;
{ {

View 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. 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
@ -34,6 +34,7 @@
#include <errno.h> #include <errno.h>
int int
attribute_compat_text_section
__old_pclose (fp) __old_pclose (fp)
FILE *fp; FILE *fp;
{ {

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1993, 1996-2000, 2003 Free Software Foundation, Inc. /* Copyright (C) 1991,1993,1996-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.
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
@ -29,6 +29,7 @@
If we couldn't generate a unique filename or the file couldn't If we couldn't generate a unique filename or the file couldn't
be opened, NULL is returned. */ be opened, NULL is returned. */
FILE * FILE *
attribute_compat_text_section
__old_tmpfile (void) __old_tmpfile (void)
{ {
char buf[FILENAME_MAX]; char buf[FILENAME_MAX];

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. /* Copyright (C) 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@redhat.com>, 2002. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -88,7 +88,8 @@ FORWARD (pthread_condattr_destroy, (pthread_condattr_t *attr), (attr), 0)
FORWARD (pthread_condattr_init, (pthread_condattr_t *attr), (attr), 0) FORWARD (pthread_condattr_init, (pthread_condattr_t *attr), (attr), 0)
#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2) #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
FORWARD (__pthread_cond_broadcast_2_0, (pthread_cond_2_0_t *cond), (cond), 0) FORWARD2 (__pthread_cond_broadcast_2_0, int attribute_compat_text_section,
(pthread_cond_2_0_t *cond), (cond), 0)
compat_symbol (libc, __pthread_cond_broadcast_2_0, pthread_cond_broadcast, compat_symbol (libc, __pthread_cond_broadcast_2_0, pthread_cond_broadcast,
GLIBC_2_0); GLIBC_2_0);
#endif #endif
@ -97,7 +98,8 @@ versioned_symbol (libc, __pthread_cond_broadcast, pthread_cond_broadcast,
GLIBC_2_3_2); GLIBC_2_3_2);
#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2) #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
FORWARD (__pthread_cond_destroy_2_0, (pthread_cond_2_0_t *cond), (cond), 0) FORWARD2 (__pthread_cond_destroy_2_0, int attribute_compat_text_section,
(pthread_cond_2_0_t *cond), (cond), 0)
compat_symbol (libc, __pthread_cond_destroy_2_0, pthread_cond_destroy, compat_symbol (libc, __pthread_cond_destroy_2_0, pthread_cond_destroy,
GLIBC_2_0); GLIBC_2_0);
#endif #endif
@ -106,9 +108,9 @@ versioned_symbol (libc, __pthread_cond_destroy, pthread_cond_destroy,
GLIBC_2_3_2); GLIBC_2_3_2);
#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2) #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
FORWARD (__pthread_cond_init_2_0, FORWARD2 (__pthread_cond_init_2_0, int attribute_compat_text_section,
(pthread_cond_2_0_t *cond, const pthread_condattr_t *cond_attr), (pthread_cond_2_0_t *cond, const pthread_condattr_t *cond_attr),
(cond, cond_attr), 0) (cond, cond_attr), 0)
compat_symbol (libc, __pthread_cond_init_2_0, pthread_cond_init, GLIBC_2_0); compat_symbol (libc, __pthread_cond_init_2_0, pthread_cond_init, GLIBC_2_0);
#endif #endif
FORWARD (__pthread_cond_init, FORWARD (__pthread_cond_init,
@ -117,7 +119,8 @@ FORWARD (__pthread_cond_init,
versioned_symbol (libc, __pthread_cond_init, pthread_cond_init, GLIBC_2_3_2); versioned_symbol (libc, __pthread_cond_init, pthread_cond_init, GLIBC_2_3_2);
#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2) #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
FORWARD (__pthread_cond_signal_2_0, (pthread_cond_2_0_t *cond), (cond), 0) FORWARD2 (__pthread_cond_signal_2_0, int attribute_compat_text_section,
(pthread_cond_2_0_t *cond), (cond), 0)
compat_symbol (libc, __pthread_cond_signal_2_0, pthread_cond_signal, compat_symbol (libc, __pthread_cond_signal_2_0, pthread_cond_signal,
GLIBC_2_0); GLIBC_2_0);
#endif #endif
@ -126,8 +129,8 @@ versioned_symbol (libc, __pthread_cond_signal, pthread_cond_signal,
GLIBC_2_3_2); GLIBC_2_3_2);
#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2) #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
FORWARD (__pthread_cond_wait_2_0, FORWARD2 (__pthread_cond_wait_2_0, int attribute_compat_text_section,
(pthread_cond_2_0_t *cond, pthread_mutex_t *mutex), (cond, mutex), 0) (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex), (cond, mutex), 0)
compat_symbol (libc, __pthread_cond_wait_2_0, pthread_cond_wait, compat_symbol (libc, __pthread_cond_wait_2_0, pthread_cond_wait,
GLIBC_2_0); GLIBC_2_0);
#endif #endif
@ -137,9 +140,9 @@ versioned_symbol (libc, __pthread_cond_wait, pthread_cond_wait,
GLIBC_2_3_2); GLIBC_2_3_2);
#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2) #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
FORWARD (__pthread_cond_timedwait_2_0, FORWARD2 (__pthread_cond_timedwait_2_0, int attribute_compat_text_section,
(pthread_cond_2_0_t *cond, pthread_mutex_t *mutex, (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex,
const struct timespec *abstime), (cond, mutex, abstime), 0) const struct timespec *abstime), (cond, mutex, abstime), 0)
compat_symbol (libc, __pthread_cond_timedwait_2_0, pthread_cond_timedwait, compat_symbol (libc, __pthread_cond_timedwait_2_0, pthread_cond_timedwait,
GLIBC_2_0); GLIBC_2_0);
#endif #endif
@ -188,7 +191,8 @@ FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
#define return /* value is void */ #define return /* value is void */
FORWARD2(__pthread_unwind, FORWARD2(__pthread_unwind,
void attribute_hidden __attribute ((noreturn)) __cleanup_fct_attribute, void attribute_hidden __attribute ((noreturn)) __cleanup_fct_attribute
attribute_compat_text_section,
(__pthread_unwind_buf_t *buf), (buf), { (__pthread_unwind_buf_t *buf), (buf), {
/* We cannot call abort() here. */ /* We cannot call abort() here. */
INTERNAL_SYSCALL_DECL (err); INTERNAL_SYSCALL_DECL (err);

View file

@ -270,6 +270,7 @@ done:
#define OLD1(name) __old_##name #define OLD1(name) __old_##name
int int
attribute_compat_text_section
OLD (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, OLD (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
size_t buflen, LOOKUP_TYPE **result H_ERRNO_PARM) size_t buflen, LOOKUP_TYPE **result H_ERRNO_PARM)
{ {

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1996,97,98,99,2000,2002 Free Software Foundation, Inc. /* Copyright (C) 1996,97,98,99,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@cygnus.com>, 1996. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -175,6 +175,7 @@ INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen,
#define OLD1(name) __old_##name #define OLD1(name) __old_##name
int int
attribute_compat_text_section
OLD (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen, OLD (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen,
LOOKUP_TYPE **result H_ERRNO_PARM) LOOKUP_TYPE **result H_ERRNO_PARM)
{ {

View file

@ -219,6 +219,7 @@ versioned_symbol (libc, __realpath, realpath, GLIBC_2_3);
#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3) #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3)
char * char *
attribute_compat_text_section
__old_realpath (const char *name, char *resolved) __old_realpath (const char *name, char *resolved)
{ {
if (resolved == NULL) if (resolved == NULL)

View file

@ -1,7 +1,7 @@
#include <shlib-compat.h> #include <shlib-compat.h>
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2_2) #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2_2)
# define atexit __dyn_atexit # define atexit attribute_compat_text_section __dyn_atexit
# include "atexit.c" # include "atexit.c"
# undef atexit # undef atexit
compat_symbol (libc, __dyn_atexit, atexit, GLIBC_2_0); compat_symbol (libc, __dyn_atexit, atexit, GLIBC_2_0);

View file

@ -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. 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
@ -390,6 +390,9 @@ next_brace_sub (cp, flags)
If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
Otherwise, `glob' returns zero. */ Otherwise, `glob' returns zero. */
int int
#ifdef GLOB_ATTRIBUTE
GLOB_ATTRIBUTE
#endif
glob (pattern, flags, errfunc, pglob) glob (pattern, flags, errfunc, pglob)
const char *pattern; const char *pattern;
int flags; int flags;

View file

@ -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. 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
@ -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) #if __WORDSIZE == 32 && SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
int int
attribute_compat_text_section
__posix_fallocate64_l32 (int fd, off64_t offset, size_t len) __posix_fallocate64_l32 (int fd, off64_t offset, size_t len)
{ {
return __posix_fallocate64_l64 (fd, offset, len); return __posix_fallocate64_l64 (fd, offset, len);

View file

@ -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. 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 @@ int
__old_alphasort64 (const void *a, const void *b); __old_alphasort64 (const void *a, const void *b);
int int
attribute_compat_text_section
__old_alphasort64 (const void *a, const void *b) __old_alphasort64 (const void *a, const void *b)
{ {
return strcoll ((*(const struct __old_dirent64 **) a)->d_name, return strcoll ((*(const struct __old_dirent64 **) a)->d_name,

View file

@ -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. 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
@ -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) #elif 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);

View file

@ -43,6 +43,7 @@ int __old_glob64 (__const char *__pattern, int __flags,
#define glob(pattern, flags, errfunc, pglob) \ #define glob(pattern, flags, errfunc, pglob) \
__old_glob64 (pattern, flags, errfunc, pglob) __old_glob64 (pattern, flags, errfunc, pglob)
#define glob_in_dir __old_glob_in_dir #define glob_in_dir __old_glob_in_dir
#define GLOB_ATTRIBUTE attribute_compat_text_section
#define GLOB_ONLY_P 1 #define GLOB_ONLY_P 1

View file

@ -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. 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 +63,7 @@ extern int __libc_missing_32bit_uids;
#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, return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,

View file

@ -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. 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
@ -33,6 +33,7 @@ extern int __old_getrlimit64 (enum __rlimit_resource resource,
/* Put the soft and hard limits for RESOURCE in *RLIMITS. /* Put the soft and hard limits for RESOURCE in *RLIMITS.
Returns 0 if successful, -1 if not (and sets errno). */ Returns 0 if successful, -1 if not (and sets errno). */
int int
attribute_compat_text_section
__old_getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits) __old_getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits)
{ {
struct rlimit rlimits32; struct rlimit rlimits32;

View file

@ -116,7 +116,10 @@ L(overflow):
END (BP_SYM (__posix_fadvise64_l64)) END (BP_SYM (__posix_fadvise64_l64))
#ifdef __NR_fadvise64 #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 ret
PSEUDO_END_ERRVAL (__posix_fadvise64_l32) PSEUDO_END_ERRVAL (__posix_fadvise64_l32)
#else #else

View file

@ -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. 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
@ -34,7 +34,7 @@ versioned_symbol (libc, __readdir64, readdir64, GLIBC_2_2);
#include <sysdeps/unix/sysv/linux/i386/olddirent.h> #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 __GETDENTS __old_getdents64
#define DIRENT_TYPE struct __old_dirent64 #define DIRENT_TYPE struct __old_dirent64

View file

@ -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. 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
@ -34,7 +34,7 @@ versioned_symbol (libc, __readdir64_r, readdir64_r, GLIBC_2_2);
#include <sysdeps/unix/sysv/linux/i386/olddirent.h> #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 __GETDENTS __old_getdents64
#define DIRENT_TYPE struct __old_dirent64 #define DIRENT_TYPE struct __old_dirent64

View file

@ -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. 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
@ -36,7 +36,7 @@ versioned_symbol (libc, __scandir64, scandir64, GLIBC_2_2);
#include <sysdeps/unix/sysv/linux/i386/olddirent.h> #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 READDIR __old_readdir64
#define DIRENT_TYPE struct __old_dirent64 #define DIRENT_TYPE struct __old_dirent64

View file

@ -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. 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.
@ -71,6 +71,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;

View file

@ -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. 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.
@ -70,6 +70,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, return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl,

View file

@ -2,7 +2,7 @@
modify_ldt EXTRA modify_ldt i:ipi __modify_ldt modify_ldt modify_ldt EXTRA modify_ldt i:ipi __modify_ldt modify_ldt
vm86old EXTRA vm86old i:p __vm86old vm86@GLIBC_2.0 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 oldgetrlimit EXTRA getrlimit i:ip __old_getrlimit getrlimit@GLIBC_2.0
oldsetrlimit EXTRA setrlimit i:ip __old_setrlimit setrlimit@GLIBC_2.0 oldsetrlimit EXTRA setrlimit i:ip __old_setrlimit setrlimit@GLIBC_2.0
time - time Ei:p time time - time Ei:p time

View file

@ -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. 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 @@ int
__old_versionsort64 (const void *a, const void *b); __old_versionsort64 (const void *a, const void *b);
int int
attribute_compat_text_section
__old_versionsort64 (const void *a, const void *b) __old_versionsort64 (const void *a, const void *b)
{ {
return __strverscmp ((*(const struct __old_dirent64 **) a)->d_name, return __strverscmp ((*(const struct __old_dirent64 **) a)->d_name,