1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-07 06:43:00 +03:00
1998-08-23  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/i386/Versions [GLIBC_2.1]: Add
	__modify_ldt and modify_ldt.
	* sysdeps/unix/sysv/linux/i386/syscalls.list: Add modify_ldt.

	* sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER):
	Use orl $-1 instead of movl $-1 to save two bytes.
	* sysdeps/unix/sysv/linux/i386/i686/sysdep.h (SYSCALL_ERROR_HANDLER):
	Likewise.

1998-08-17  H.J. Lu  <hjl@gnu.org>
 
	* libio/Versions (_IO_do_write, _IO_file_attach, 
	_IO_file_close_it, _IO_file_finish, _IO_file_fopen, 
	_IO_file_init, _IO_file_overflow, _IO_file_seekoff, 
	_IO_file_setbuf, _IO_file_sync, _IO_file_underflow, 
	_IO_file_write, _IO_file_xsputn): Added to GLIBC_2.1. 

	* libio/fileops.c (_IO_do_write, _IO_file_attach, 
	_IO_file_close_it, _IO_file_finish, _IO_file_fopen, 
	_IO_file_init, _IO_file_overflow, _IO_file_seekoff, 
	_IO_file_setbuf, _IO_file_sync, _IO_file_underflow, 
	_IO_file_write, _IO_file_xsputn): Change the prefix to 
	"_IO_new_". Added to GLIBC_2.1. 
 
	* libio/libioP.h (_IO_do_write, _IO_file_attach, 
	_IO_file_close_it, _IO_file_finish, _IO_file_fopen, 
	_IO_file_init, _IO_file_overflow, _IO_file_seekoff, 
	_IO_file_setbuf, _IO_file_sync, _IO_file_underflow, 
	_IO_file_write, _IO_file_xsputn): Add prototypes for the prefix 
	"_IO_new_". 
 
	* libio/oldfileops.c (_IO_do_write, _IO_file_attach, 
	_IO_file_close_it, _IO_file_finish, _IO_file_fopen, 
	_IO_file_init, _IO_file_overflow, _IO_file_seekoff, 
	_IO_file_setbuf, _IO_file_sync, _IO_file_underflow, 
	_IO_file_write, _IO_file_xsputn): Added to GLIBC_2.0. 
 
1998-08-23  Richard Henderson  <rth@cygnus.com>

	* Makeconfig (LDFLAGS): Remove.

	* csu/initfini.c: Return to .text before __gmon_start__. 

	* elf/elf.h (EM_FAKE_ALPHA): Rename from EM_OLD_ALPHA. 
	(STO_MIPS_*): Rename from STO_*. 
	(STB_MIPS_SPLIT_COMMON): Rename from STB_SPLIT_COMMON. 
	(STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD): New. 

	* math/atest-exp.c (mpn_bitsize): Fix bit location calculation. 
	(main): e3s is negative on zero. 
	* math/atest-exp2.c: Likewise. 
	* math/atest-sincos.c: Likewise.

1998-08-23  Andreas Jaeger  <aj@arthur.rhein-neckar.de> 
 
	* Makerules (install): Add comment about absolute paths. 
 
1998-08-23  Ulrich Drepper  <drepper@cygnus.com>

	* libio/vsnprintf.c (_IO_vsnprintf): Set first byte of destination
	array to NUL to handle maxlen==1 case correctly.
	Patch by HJ Lu.

1998-08-23  Richard Henderson  <rth@cygnus.com>
This commit is contained in:
Ulrich Drepper
1998-08-23 18:23:26 +00:00
parent c0bc2709b6
commit b259e74660
16 changed files with 194 additions and 49 deletions

View File

@@ -1,4 +1,69 @@
1998-08-23 Ricahrd Henderson <rth@cygnus.com> 1998-08-23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/Versions [GLIBC_2.1]: Add
__modify_ldt and modify_ldt.
* sysdeps/unix/sysv/linux/i386/syscalls.list: Add modify_ldt.
* sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER):
Use orl $-1 instead of movl $-1 to save two bytes.
* sysdeps/unix/sysv/linux/i386/i686/sysdep.h (SYSCALL_ERROR_HANDLER):
Likewise.
1998-08-17 H.J. Lu <hjl@gnu.org>
* libio/Versions (_IO_do_write, _IO_file_attach,
_IO_file_close_it, _IO_file_finish, _IO_file_fopen,
_IO_file_init, _IO_file_overflow, _IO_file_seekoff,
_IO_file_setbuf, _IO_file_sync, _IO_file_underflow,
_IO_file_write, _IO_file_xsputn): Added to GLIBC_2.1.
* libio/fileops.c (_IO_do_write, _IO_file_attach,
_IO_file_close_it, _IO_file_finish, _IO_file_fopen,
_IO_file_init, _IO_file_overflow, _IO_file_seekoff,
_IO_file_setbuf, _IO_file_sync, _IO_file_underflow,
_IO_file_write, _IO_file_xsputn): Change the prefix to
"_IO_new_". Added to GLIBC_2.1.
* libio/libioP.h (_IO_do_write, _IO_file_attach,
_IO_file_close_it, _IO_file_finish, _IO_file_fopen,
_IO_file_init, _IO_file_overflow, _IO_file_seekoff,
_IO_file_setbuf, _IO_file_sync, _IO_file_underflow,
_IO_file_write, _IO_file_xsputn): Add prototypes for the prefix
"_IO_new_".
* libio/oldfileops.c (_IO_do_write, _IO_file_attach,
_IO_file_close_it, _IO_file_finish, _IO_file_fopen,
_IO_file_init, _IO_file_overflow, _IO_file_seekoff,
_IO_file_setbuf, _IO_file_sync, _IO_file_underflow,
_IO_file_write, _IO_file_xsputn): Added to GLIBC_2.0.
1998-08-23 Richard Henderson <rth@cygnus.com>
* Makeconfig (LDFLAGS): Remove.
* csu/initfini.c: Return to .text before __gmon_start__.
* elf/elf.h (EM_FAKE_ALPHA): Rename from EM_OLD_ALPHA.
(STO_MIPS_*): Rename from STO_*.
(STB_MIPS_SPLIT_COMMON): Rename from STB_SPLIT_COMMON.
(STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD): New.
* math/atest-exp.c (mpn_bitsize): Fix bit location calculation.
(main): e3s is negative on zero.
* math/atest-exp2.c: Likewise.
* math/atest-sincos.c: Likewise.
1998-08-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Add comment about absolute paths.
1998-08-23 Ulrich Drepper <drepper@cygnus.com>
* libio/vsnprintf.c (_IO_vsnprintf): Set first byte of destination
array to NUL to handle maxlen==1 case correctly.
Patch by HJ Lu.
1998-08-23 Richard Henderson <rth@cygnus.com>
* sysdeps/alpha/elf/crtbegin.S: Fix .prologue; no pv used. * sysdeps/alpha/elf/crtbegin.S: Fix .prologue; no pv used.
* sysdeps/alpha/elf/crtend.S: Likewise. * sysdeps/alpha/elf/crtend.S: Likewise.

View File

@@ -688,6 +688,8 @@ ifndef subdir
# link script. It contains references for the various libraries we need. # link script. It contains references for the various libraries we need.
# The libc.so object is not complete since some functions are only defined # The libc.so object is not complete since some functions are only defined
# in libc_nonshared.a. # in libc_nonshared.a.
# We need to use absolute paths since otherwise local copies (if they exist)
# of the files are taken by the linker.
install: $(inst_libdir)/libc.so install: $(inst_libdir)/libc.so
$(inst_libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \ $(inst_libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
$(inst_libdir)/$(patsubst %,$(libtype.oS),\ $(inst_libdir)/$(patsubst %,$(libtype.oS),\

View File

@@ -83,6 +83,7 @@ _init (void)
SECTION(".init"); SECTION(".init");
} }
asm ("END_INIT"); asm ("END_INIT");
SECTION(".text");
/* This version of __gmon_start__ is used if no other is found. By providing /* This version of __gmon_start__ is used if no other is found. By providing
a default function we avoid the need to test whether the pointer is NULL, a default function we avoid the need to test whether the pointer is NULL,

View File

@@ -184,7 +184,7 @@ typedef struct
#define EM_RH32 38 /* TRW RH32 */ #define EM_RH32 38 /* TRW RH32 */
#define EM_MMA 39 /* Fujitsu MMA */ #define EM_MMA 39 /* Fujitsu MMA */
#define EM_ARM 40 /* ARM */ #define EM_ARM 40 /* ARM */
#define EM_OLD_ALPHA 41 /* Digital Alpha */ #define EM_FAKE_ALPHA 41 /* Digital Alpha */
#define EM_SH 42 /* Hitachi SH */ #define EM_SH 42 /* Hitachi SH */
#define EM_SPARCV9 43 /* SPARC v9 64-bit */ #define EM_SPARCV9 43 /* SPARC v9 64-bit */
#define EM_TRICORE 44 /* Siemens Tricore */ #define EM_TRICORE 44 /* Siemens Tricore */
@@ -1006,14 +1006,14 @@ typedef struct
/* Symbol tables. */ /* Symbol tables. */
/* MIPS specific values for `st_other'. */ /* MIPS specific values for `st_other'. */
#define STO_DEFAULT 0x0 #define STO_MIPS_DEFAULT 0x0
#define STO_INTERNAL 0x1 #define STO_MIPS_INTERNAL 0x1
#define STO_HIDDEN 0x2 #define STO_MIPS_HIDDEN 0x2
#define STO_PROTECTED 0x3 #define STO_MIPS_PROTECTED 0x3
#define STO_SC_ALIGN_UNUSED 0xff #define STO_MIPS_SC_ALIGN_UNUSED 0xff
/* MIPS specific values for `st_info'. */ /* MIPS specific values for `st_info'. */
#define STB_SPLIT_COMMON 13 #define STB_MIPS_SPLIT_COMMON 13
/* Entries found in sections of type SHT_MIPS_GPTAB. */ /* Entries found in sections of type SHT_MIPS_GPTAB. */
@@ -1306,6 +1306,10 @@ typedef Elf32_Addr Elf32_Conflict;
#define SHF_ALPHA_GPREL 0x10000000 #define SHF_ALPHA_GPREL 0x10000000
/* Legal values for st_other field of Elf64_Sym. */
#define STO_ALPHA_NOPV 0x80 /* No PV required. */
#define STO_ALPHA_STD_GPLOAD 0x88 /* PV only used for initial ldgp. */
/* Alpha relocs. */ /* Alpha relocs. */
#define R_ALPHA_NONE 0 /* No reloc */ #define R_ALPHA_NONE 0 /* No reloc */

View File

@@ -83,6 +83,12 @@ libc {
# functions used in other libraries # functions used in other libraries
_IO_fclose; _IO_fopen; _IO_fdopen; __asprintf; _IO_fclose; _IO_fopen; _IO_fdopen; __asprintf;
# functions used in libstdc++
_IO_do_write; _IO_file_attach; _IO_file_close_it; _IO_file_finish;
_IO_file_fopen; _IO_file_init; _IO_file_overflow; _IO_file_seekoff;
_IO_file_setbuf; _IO_file_sync; _IO_file_underflow;
_IO_file_write; _IO_file_xsputn;
# Changed getline function in libio. # Changed getline function in libio.
_IO_getline_info; _IO_getline_info;

View File

@@ -105,7 +105,7 @@ extern int errno;
void void
_IO_file_init (fp) _IO_new_file_init (fp)
_IO_FILE *fp; _IO_FILE *fp;
{ {
/* POSIX.1 allows another file handle to be used to change the position /* POSIX.1 allows another file handle to be used to change the position
@@ -119,7 +119,7 @@ _IO_file_init (fp)
} }
int int
_IO_file_close_it (fp) _IO_new_file_close_it (fp)
_IO_FILE *fp; _IO_FILE *fp;
{ {
int write_status, close_status; int write_status, close_status;
@@ -146,7 +146,7 @@ _IO_file_close_it (fp)
} }
void void
_IO_file_finish (fp, dummy) _IO_new_file_finish (fp, dummy)
_IO_FILE *fp; _IO_FILE *fp;
int dummy; int dummy;
{ {
@@ -192,7 +192,7 @@ _IO_file_open (fp, filename, posix_mode, prot, read_write, is32not64)
} }
_IO_FILE * _IO_FILE *
_IO_file_fopen (fp, filename, mode, is32not64) _IO_new_file_fopen (fp, filename, mode, is32not64)
_IO_FILE *fp; _IO_FILE *fp;
const char *filename; const char *filename;
const char *mode; const char *mode;
@@ -250,7 +250,7 @@ _IO_file_fopen (fp, filename, mode, is32not64)
} }
_IO_FILE * _IO_FILE *
_IO_file_attach (fp, fd) _IO_new_file_attach (fp, fd)
_IO_FILE *fp; _IO_FILE *fp;
int fd; int fd;
{ {
@@ -269,7 +269,7 @@ _IO_file_attach (fp, fd)
} }
_IO_FILE * _IO_FILE *
_IO_file_setbuf (fp, p, len) _IO_new_file_setbuf (fp, p, len)
_IO_FILE *fp; _IO_FILE *fp;
char *p; char *p;
_IO_ssize_t len; _IO_ssize_t len;
@@ -288,7 +288,7 @@ _IO_file_setbuf (fp, p, len)
Then mark FP as having empty buffers. */ Then mark FP as having empty buffers. */
int int
_IO_do_write (fp, data, to_do) _IO_new_do_write (fp, data, to_do)
_IO_FILE *fp; _IO_FILE *fp;
const char *data; const char *data;
_IO_size_t to_do; _IO_size_t to_do;
@@ -322,7 +322,7 @@ _IO_do_write (fp, data, to_do)
} }
int int
_IO_file_underflow (fp) _IO_new_file_underflow (fp)
_IO_FILE *fp; _IO_FILE *fp;
{ {
_IO_ssize_t count; _IO_ssize_t count;
@@ -377,7 +377,7 @@ _IO_file_underflow (fp)
} }
int int
_IO_file_overflow (f, ch) _IO_new_file_overflow (f, ch)
_IO_FILE *f; _IO_FILE *f;
int ch; int ch;
{ {
@@ -428,7 +428,7 @@ _IO_file_overflow (f, ch)
} }
int int
_IO_file_sync (fp) _IO_new_file_sync (fp)
_IO_FILE *fp; _IO_FILE *fp;
{ {
_IO_ssize_t delta; _IO_ssize_t delta;
@@ -462,7 +462,7 @@ _IO_file_sync (fp)
} }
_IO_fpos64_t _IO_fpos64_t
_IO_file_seekoff (fp, offset, dir, mode) _IO_new_file_seekoff (fp, offset, dir, mode)
_IO_FILE *fp; _IO_FILE *fp;
_IO_off64_t offset; _IO_off64_t offset;
int dir; int dir;
@@ -664,7 +664,7 @@ _IO_file_close (fp)
} }
_IO_ssize_t _IO_ssize_t
_IO_file_write (f, data, n) _IO_new_file_write (f, data, n)
_IO_FILE *f; _IO_FILE *f;
const void *data; const void *data;
_IO_ssize_t n; _IO_ssize_t n;
@@ -688,7 +688,7 @@ _IO_file_write (f, data, n)
} }
_IO_size_t _IO_size_t
_IO_file_xsputn (f, data, n) _IO_new_file_xsputn (f, data, n)
_IO_FILE *f; _IO_FILE *f;
const void *data; const void *data;
_IO_size_t n; _IO_size_t n;
@@ -761,7 +761,7 @@ _IO_file_xsputn (f, data, n)
dont_write = block_size >= 128 ? to_do % block_size : 0; dont_write = block_size >= 128 ? to_do % block_size : 0;
count = to_do - dont_write; count = to_do - dont_write;
if (_IO_do_write (f, s, count) == EOF) if (_IO_new_do_write (f, s, count) == EOF)
return n - to_do; return n - to_do;
to_do = dont_write; to_do = dont_write;
@@ -865,23 +865,56 @@ _IO_file_xsgetn (fp, data, n)
struct _IO_jump_t _IO_file_jumps = struct _IO_jump_t _IO_file_jumps =
{ {
JUMP_INIT_DUMMY, JUMP_INIT_DUMMY,
JUMP_INIT(finish, _IO_file_finish), JUMP_INIT(finish, _IO_new_file_finish),
JUMP_INIT(overflow, _IO_file_overflow), JUMP_INIT(overflow, _IO_new_file_overflow),
JUMP_INIT(underflow, _IO_file_underflow), JUMP_INIT(underflow, _IO_new_file_underflow),
JUMP_INIT(uflow, _IO_default_uflow), JUMP_INIT(uflow, _IO_default_uflow),
JUMP_INIT(pbackfail, _IO_default_pbackfail), JUMP_INIT(pbackfail, _IO_default_pbackfail),
JUMP_INIT(xsputn, _IO_file_xsputn), JUMP_INIT(xsputn, _IO_new_file_xsputn),
JUMP_INIT(xsgetn, _IO_file_xsgetn), JUMP_INIT(xsgetn, _IO_file_xsgetn),
JUMP_INIT(seekoff, _IO_file_seekoff), JUMP_INIT(seekoff, _IO_new_file_seekoff),
JUMP_INIT(seekpos, _IO_default_seekpos), JUMP_INIT(seekpos, _IO_default_seekpos),
JUMP_INIT(setbuf, _IO_file_setbuf), JUMP_INIT(setbuf, _IO_new_file_setbuf),
JUMP_INIT(sync, _IO_file_sync), JUMP_INIT(sync, _IO_new_file_sync),
JUMP_INIT(doallocate, _IO_file_doallocate), JUMP_INIT(doallocate, _IO_file_doallocate),
JUMP_INIT(read, _IO_file_read), JUMP_INIT(read, _IO_file_read),
JUMP_INIT(write, _IO_file_write), JUMP_INIT(write, _IO_new_file_write),
JUMP_INIT(seek, _IO_file_seek), JUMP_INIT(seek, _IO_file_seek),
JUMP_INIT(close, _IO_file_close), JUMP_INIT(close, _IO_file_close),
JUMP_INIT(stat, _IO_file_stat), JUMP_INIT(stat, _IO_file_stat),
JUMP_INIT(showmanyc, _IO_default_showmanyc), JUMP_INIT(showmanyc, _IO_default_showmanyc),
JUMP_INIT(imbue, _IO_default_imbue) JUMP_INIT(imbue, _IO_default_imbue)
}; };
#if defined PIC && DO_VERSIONING
default_symbol_version (_IO_new_do_write, _IO_do_write, GLIBC_2.1);
default_symbol_version (_IO_new_file_attach, _IO_file_attach, GLIBC_2.1);
default_symbol_version (_IO_new_file_close_it, _IO_file_close_it, GLIBC_2.1);
default_symbol_version (_IO_new_file_finish, _IO_file_finish, GLIBC_2.1);
default_symbol_version (_IO_new_file_fopen, _IO_file_fopen, GLIBC_2.1);
default_symbol_version (_IO_new_file_init, _IO_file_init, GLIBC_2.1);
default_symbol_version (_IO_new_file_setbuf, _IO_file_setbuf, GLIBC_2.1);
default_symbol_version (_IO_new_file_sync, _IO_file_sync, GLIBC_2.1);
default_symbol_version (_IO_new_file_overflow, _IO_file_overflow, GLIBC_2.1);
default_symbol_version (_IO_new_file_seekoff, _IO_file_seekoff, GLIBC_2.1);
default_symbol_version (_IO_new_file_underflow, _IO_file_underflow, GLIBC_2.1);
default_symbol_version (_IO_new_file_write, _IO_file_write, GLIBC_2.1);
default_symbol_version (_IO_new_file_xsputn, _IO_file_xsputn, GLIBC_2.1);
#else
# ifdef strong_alias
strong_alias (_IO_new_do_write, _IO_do_write);
strong_alias (_IO_new_file_attach, _IO_file_attach);
strong_alias (_IO_new_file_close_it, _IO_file_close_it);
strong_alias (_IO_new_file_finish, _IO_file_finish);
strong_alias (_IO_new_file_fopen, _IO_file_fopen);
strong_alias (_IO_new_file_init, _IO_file_init);
strong_alias (_IO_new_file_setbuf, _IO_file_setbuf);
strong_alias (_IO_new_file_sync, _IO_file_sync);
strong_alias (_IO_new_file_overflow, _IO_file_overflow);
strong_alias (_IO_new_file_seekoff, _IO_file_seekoff);
strong_alias (_IO_new_file_underflow, _IO_file_underflow);
strong_alias (_IO_new_file_write, _IO_file_write);
strong_alias (_IO_new_file_xsputn, _IO_file_xsputn);
# endif
#endif

View File

@@ -340,6 +340,7 @@ extern struct _IO_jump_t _IO_streambuf_jumps;
extern struct _IO_jump_t _IO_proc_jumps; extern struct _IO_jump_t _IO_proc_jumps;
extern struct _IO_jump_t _IO_str_jumps; extern struct _IO_jump_t _IO_str_jumps;
extern int _IO_do_write __P ((_IO_FILE *, const char *, _IO_size_t)); extern int _IO_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
extern int _IO_new_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
extern int _IO_old_do_write __P ((_IO_FILE *, const char *, _IO_size_t)); extern int _IO_old_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
extern int _IO_flush_all __P ((void)); extern int _IO_flush_all __P ((void));
extern int _IO_cleanup __P ((void)); extern int _IO_cleanup __P ((void));
@@ -389,6 +390,21 @@ extern int _IO_file_close_it __P ((_IO_FILE *));
extern _IO_fpos64_t _IO_file_seek __P ((_IO_FILE *, _IO_off64_t, int)); extern _IO_fpos64_t _IO_file_seek __P ((_IO_FILE *, _IO_off64_t, int));
extern void _IO_file_finish __P ((_IO_FILE *, int)); extern void _IO_file_finish __P ((_IO_FILE *, int));
extern _IO_FILE* _IO_new_file_attach __P ((_IO_FILE *, int));
extern int _IO_new_file_close_it __P ((_IO_FILE *));
extern void _IO_new_file_finish __P ((_IO_FILE *, int));
extern _IO_FILE* _IO_new_file_fopen __P ((_IO_FILE *, const char *, const char *,
int));
extern void _IO_new_file_init __P ((_IO_FILE *));
extern _IO_FILE* _IO_new_file_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t));
extern int _IO_new_file_sync __P ((_IO_FILE *));
extern int _IO_new_file_underflow __P ((_IO_FILE *));
extern int _IO_new_file_overflow __P ((_IO_FILE *, int));
extern _IO_fpos64_t _IO_new_file_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
extern _IO_ssize_t _IO_new_file_write __P ((_IO_FILE *, const void *,
_IO_ssize_t));
extern _IO_size_t _IO_new_file_xsputn __P ((_IO_FILE *, const void *, _IO_size_t));
extern _IO_FILE* _IO_old_file_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t)); extern _IO_FILE* _IO_old_file_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t));
extern _IO_fpos64_t _IO_old_file_seekoff __P ((_IO_FILE *, _IO_off64_t, int, extern _IO_fpos64_t _IO_old_file_seekoff __P ((_IO_FILE *, _IO_off64_t, int,
int)); int));

View File

@@ -721,5 +721,18 @@ struct _IO_jump_t _IO_old_file_jumps =
JUMP_INIT(stat, _IO_file_stat) JUMP_INIT(stat, _IO_file_stat)
}; };
symbol_version (_IO_old_do_write, _IO_do_write, GLIBC_2.0);
symbol_version (_IO_old_file_attach, _IO_file_attach, GLIBC_2.0);
symbol_version (_IO_old_file_close_it, _IO_file_close_it, GLIBC_2.0);
symbol_version (_IO_old_file_finish, _IO_file_finish, GLIBC_2.0);
symbol_version (_IO_old_file_fopen, _IO_file_fopen, GLIBC_2.0);
symbol_version (_IO_old_file_init, _IO_file_init, GLIBC_2.0);
symbol_version (_IO_old_file_setbuf, _IO_file_setbuf, GLIBC_2.0);
symbol_version (_IO_old_file_sync, _IO_file_sync, GLIBC_2.0);
symbol_version (_IO_old_file_overflow, _IO_file_overflow, GLIBC_2.0);
symbol_version (_IO_old_file_seekoff, _IO_file_seekoff, GLIBC_2.0);
symbol_version (_IO_old_file_underflow, _IO_file_underflow, GLIBC_2.0);
symbol_version (_IO_old_file_write, _IO_file_write, GLIBC_2.0);
symbol_version (_IO_old_file_xsputn, _IO_file_xsputn, GLIBC_2.0);
#endif /* PIC && DO_VERSIONING */ #endif /* PIC && DO_VERSIONING */

View File

@@ -124,6 +124,7 @@ _IO_vsnprintf (string, maxlen, format, args)
_IO_init ((_IO_FILE *) &sf, 0); _IO_init ((_IO_FILE *) &sf, 0);
_IO_JUMPS ((_IO_FILE *) &sf) = &_IO_strn_jumps; _IO_JUMPS ((_IO_FILE *) &sf) = &_IO_strn_jumps;
string[0] = '\0';
_IO_str_init_static ((_IO_FILE *) &sf, string, maxlen - 1, string); _IO_str_init_static ((_IO_FILE *) &sf, string, maxlen - 1, string);
ret = _IO_vfprintf ((_IO_FILE *) &sf, format, args); ret = _IO_vfprintf ((_IO_FILE *) &sf, format, args);

View File

@@ -96,11 +96,11 @@ mpn_bitsize(const mp_limb_t *SRC_PTR, mp_size_t SIZE)
for (i = SIZE - 1; i > 0; i--) for (i = SIZE - 1; i > 0; i--)
if (SRC_PTR[i] != 0) if (SRC_PTR[i] != 0)
break; break;
for (j = mpbpl - 1; j > 0; j--) for (j = mpbpl - 1; j >= 0; j--)
if ((SRC_PTR[i] & 1 << j) != 0) if ((SRC_PTR[i] & (mp_limb_t)1 << j) != 0)
break; break;
return i * 32 + j; return i * mpbpl + j;
} }
int int
@@ -141,7 +141,7 @@ main (void)
e2s = mpn_bitsize (e2,SZ); e2s = mpn_bitsize (e2,SZ);
e3s = mpn_bitsize (e3,SZ); e3s = mpn_bitsize (e3,SZ);
if (e3s > 1 && e2s - e3s < 54) if (e3s >= 0 && e2s - e3s < 54)
{ {
#if PRINT_ERRORS #if PRINT_ERRORS
printf ("%06x ", i * (0x100000 / (1 << N2))); printf ("%06x ", i * (0x100000 / (1 << N2)));

View File

@@ -147,11 +147,11 @@ mpn_bitsize(const mp_limb_t *SRC_PTR, mp_size_t SIZE)
for (i = SIZE - 1; i > 0; --i) for (i = SIZE - 1; i > 0; --i)
if (SRC_PTR[i] != 0) if (SRC_PTR[i] != 0)
break; break;
for (j = mpbpl - 1; j > 0; --j) for (j = mpbpl - 1; j >= 0; --j)
if ((SRC_PTR[i] & 1 << j) != 0) if ((SRC_PTR[i] & (mp_limb_t)1 << j) != 0)
break; break;
return i * 32 + j; return i * mpbpl + j;
} }
int int
@@ -192,7 +192,7 @@ main (void)
e2s = mpn_bitsize (e2, SZ); e2s = mpn_bitsize (e2, SZ);
e3s = mpn_bitsize (e3, SZ); e3s = mpn_bitsize (e3, SZ);
if (e3s > 1 && e2s - e3s < 54) if (e3s >= 0 && e2s - e3s < 54)
{ {
#if PRINT_ERRORS #if PRINT_ERRORS
printf ("%06x ", i * (0x100000 / (1 << N2))); printf ("%06x ", i * (0x100000 / (1 << N2)));

View File

@@ -132,11 +132,11 @@ mpn_bitsize (const mp_limb_t *SRC_PTR, mp_size_t SIZE)
for (i = SIZE - 1; i > 0; i--) for (i = SIZE - 1; i > 0; i--)
if (SRC_PTR[i] != 0) if (SRC_PTR[i] != 0)
break; break;
for (j = mpbpl - 1; j > 0; j--) for (j = mpbpl - 1; j >= 0; j--)
if ((SRC_PTR[i] & 1 << j) != 0) if ((SRC_PTR[i] & (mp_limb_t)1 << j) != 0)
break; break;
return i * 32 + j; return i * mpbpl + j;
} }
int int
@@ -188,8 +188,8 @@ main (void)
s3s = mpn_bitsize (s3, SZ); s3s = mpn_bitsize (s3, SZ);
c2s = mpn_bitsize (c2, SZ); c2s = mpn_bitsize (c2, SZ);
c3s = mpn_bitsize (c3, SZ); c3s = mpn_bitsize (c3, SZ);
if (s3s > 1 && s2s - s3s < 54 if (s3s >= 0 && s2s - s3s < 54
|| c3s > 1 && c2s - c3s < 54 || c3s >= 0 && c2s - c3s < 54
|| 0) || 0)
{ {
#if PRINT_ERRORS #if PRINT_ERRORS
@@ -204,8 +204,8 @@ main (void)
print_mpn_hex (c2, (FRAC / 4) + 1); print_mpn_hex (c2, (FRAC / 4) + 1);
putchar ('\n'); putchar ('\n');
printf (" %c%c ", printf (" %c%c ",
s2s-s3s < 54 ? s2s - s3s == 53 ? 'e' : 'F' : 'P', s3s >= 0 && s2s-s3s < 54 ? s2s - s3s == 53 ? 'e' : 'F' : 'P',
c2s-c3s < 54 ? c2s - c3s == 53 ? 'e' : 'F' : 'P'); c3s >= 0 && c2s-c3s < 54 ? c2s - c3s == 53 ? 'e' : 'F' : 'P');
print_mpn_hex (s3, (FRAC / 4) + 1); print_mpn_hex (s3, (FRAC / 4) + 1);
putchar (' '); putchar (' ');
print_mpn_hex (c3, (FRAC / 4) + 1); print_mpn_hex (c3, (FRAC / 4) + 1);

View File

@@ -4,4 +4,7 @@ libc {
vm86; vm86;
} }
GLIBC_2.1 {
__modify_ldt; modify_ldt;
}
} }

View File

@@ -43,7 +43,7 @@
popl %ecx; \ popl %ecx; \
popl %ebx; \ popl %ebx; \
movl %ecx, (%eax); \ movl %ecx, (%eax); \
movl $-1, %eax; \ orl $-1, %eax; \
jmp L(pseudo_end); jmp L(pseudo_end);
/* A quick note: it is assumed that the call to `__errno_location' does /* A quick note: it is assumed that the call to `__errno_location' does
not modify the stack! */ not modify the stack! */
@@ -58,7 +58,7 @@
subl %eax, %edx; \ subl %eax, %edx; \
movl errno@GOT(%ecx), %ecx; \ movl errno@GOT(%ecx), %ecx; \
movl %edx, (%ecx); \ movl %edx, (%ecx); \
movl $-1, %eax; \ orl $-1, %eax; \
jmp L(pseudo_end); jmp L(pseudo_end);
# endif /* _LIBC_REENTRANT */ # endif /* _LIBC_REENTRANT */
#endif /* PIC */ #endif /* PIC */

View File

@@ -1,5 +1,6 @@
# File name Caller Syscall name # args Strong name Weak names # File name Caller Syscall name # args Strong name Weak names
modify_ldt EXTRA modify_ldt 3 __modify_ldt modify_ldt
s_chown chown chown 3 __syscall_chown s_chown chown chown 3 __syscall_chown
s_getgroups getgroups getgroups 2 __syscall_getgroups s_getgroups getgroups getgroups 2 __syscall_getgroups
s_llseek llseek _llseek 5 __sys_llseek s_llseek llseek _llseek 5 __sys_llseek

View File

@@ -86,7 +86,7 @@
popl %ecx; \ popl %ecx; \
popl %ebx; \ popl %ebx; \
movl %ecx, (%eax); \ movl %ecx, (%eax); \
movl $-1, %eax; \ orl $-1, %eax; \
jmp L(pseudo_end); jmp L(pseudo_end);
/* A quick note: it is assumed that the call to `__errno_location' does /* A quick note: it is assumed that the call to `__errno_location' does
not modify the stack! */ not modify the stack! */
@@ -99,7 +99,7 @@
subl %eax, %edx; \ subl %eax, %edx; \
movl errno@GOT(%ecx), %ecx; \ movl errno@GOT(%ecx), %ecx; \
movl %edx, (%ecx); \ movl %edx, (%ecx); \
movl $-1, %eax; \ orl $-1, %eax; \
jmp L(pseudo_end); jmp L(pseudo_end);
#endif /* _LIBC_REENTRANT */ #endif /* _LIBC_REENTRANT */
#endif /* PIC */ #endif /* PIC */