Commit Graph

13 Commits

Author SHA1 Message Date
Roland McGrath
f083450f45 NPTL is no longer an add-on! 2014-07-07 09:29:06 -07:00
Andi Kleen
b7aa8caace Remove x86 assembler rwlock code
With the recent tuning the C version of rwlocks is basically the same
performance as the x86 assembler version for uncontended locks (with a
a few cycles near the run-to-run variability). For others it should not
matter anyways.

So remove the assembler code and use the C version like other
architectures.
2014-06-13 13:16:06 -07:00
Roland McGrath
348f8e8c26 Move remaining nptl/sysdeps/unix/sysv/linux/i386/ files. 2014-05-14 13:37:40 -07:00
H.J. Lu
6f6f1215f6 Support multiarch for i686.
This patch adds multiarch support when configured for i686.  I modified
some x86-64 functions to support 32bit. I will contribute 32bit SSE string
and memory functions later.
2009-07-31 11:53:35 -07:00
Roland McGrath
fe27057d17 * elf/tls-macros.h (TLS_LD, TLS_GD): Use call insn, not callq.
* sysdeps/unix/x86_64/sysdep.S [USE_TLS && HAVE___THREAD] [! PIC]:
	Use direct-%fs form of TLS access for errno.

	* sysdeps/unix/sysv/linux/i386/i686/sysdep.h: File removed, since
	the i386 version has all the same asm now.

	* sysdeps/i386/elf/configure.in: Add @GOTNTPOFF and @NTPOFF uses to
	the TLS support check.
	* sysdeps/i386/elf/configure: Regenerated.

	* sysdeps/unix/sysv/linux/i386/sysdep.h [USE_TLS && HAVE___THREAD]
	(SYSCALL_ERROR_HANDLER): Use direct-%gs form of TLS access for errno.

	* sysdeps/unix/i386/sysdep.S (syscall_error)
	[USE_TLS && HAVE___THREAD]: Use TLS access for errno.
2002-09-30 10:26:59 +00:00
Ulrich Drepper
739d440d2a Update.
2002-07-19  Ulrich Drepper  <drepper@redhat.com>

	* configure.in: Add test for __thread support in compiler.
	* config.h.in: Add HAVE___THREAD.
	* Makefile (headers): Remove errno.h, sys/errno.h, and bits/errno.h.
	* include/sys/errno.h: Moved to...
	* stdlib/sys/errno.h: ...here.  New file.
	* stdlib/errno.h: New file.  Moved from...
	* include/errno.h: ...here.  Changed into an internal header defining
	libc-local things like __set_errno.
	* stdlib/Makefile (headers): Add errno.h, sys/errno.h, and
	bits/errno.h.
	* elf/dl-minimal.c: Include <tls.h>.  Define errno as thread-local
	variable if USE_TLS && HAVE___THREAD.  Don't define __errno_location
	either.
	* elf/rtld.c (_dl_start): Add code to initialize TLS for ld.so
	from...
	(_dl_start_final): ...here.  Add code to initialize tls elements from
	bootstrap_map.
	* sysdeps/generic/errno-loc.c: Define errno as thread-local variable
	if USE_TLS && HAVE___THREAD.
	* sysdeps/generic/bits/errno.h: Remove __set_errno definition.
	* sysdeps/mach/hurd/bits/errno.h: Likewise.
	* sysdeps/standalone/arm/bits/errno.h: Likewise.
	* sysdeps/standalone/bits/errno.h: Likewise.
	* sysdeps/unix/bsd/bsd4.4/bits/errno.h: Likewise.
	* sysdeps/unix/sysv/aix/bits/errno.h: Likewise.
	* sysdeps/unix/sysv/hpux/bits/errno.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/errno.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/bits/errno.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/errno.h: Likewise.
	* sysdeps/unix/sysv/sysv4/solaris2/bits/errno.h: Likewise.
	* sysdeps/i386/dl-machine.c (elf_machine_rel) [RTLD_BOOTSTRAP]: Don't
	use GL(dl_rtld_map), use map parameter.
	* sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.S: Define errno in .tbss if
	USE_TLS && HAVE___THREAD.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Unify SETUP_PIC_REG
	definitions.  If USE_TLS && HAVE___THREAD store errooor value using
	TLS code sequence.
	* sysdeps/unix/sysv/linux/i386/i686/sysdep.h: Likewise.

	* sysdeps/unix/sysv/linux/getcwd.c: No real need to restore errno.
	* sysdeps/unix/sysv/linux/grantpt.c: Likewise.
	* sysdeps/unix/sysv/linux/internal_statvfs.c: Likewise.
	* sysdeps/unix/sysv/linux/msgctl.c: Likewise.
	* sysdeps/unix/sysv/linux/readv.c: Likewise.
	* sysdeps/unix/sysv/linux/writev.c: Likewise.
2002-07-20 01:14:41 +00:00
Ulrich Drepper
9bd6460223 Update.
2002-05-30  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/Makefile [$(subdir)==misc] (sysdep_routines):
	Add readahead.
	* sysdeps/unix/sysv/linux/readahead.c: New file.
	* sysdeps/unix/sysv/linux/syscalls.list: Add sendfile64 syscall.
	* sysdeps/unix/sysv/linux/Versions: Export readahead and sendfile64.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add readahead syscall.
	Add sendfile64 alias to sendfile syscall.
	* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add s_readahead
	syscall.

	* sysdeps/unix/sysv/linux/i386/sysdep.h: Use __i686.get_pc_thunk.XX
	special section for PIC register loading.
	* sysdeps/unix/sysv/linux/i386/i686/sysdep.h: Likewise.

	* config.h.in: Define HAVE_HIDDEN.
	* configure.in: Also define HAVE_HIDDEN if HAVE_PROTECTED is defined.

	* elf/elf.h: Correct Alpha TLS relocations according to last spec.
2002-05-30 23:35:59 +00:00
Andreas Jaeger
41bdb6e20c Update to LGPL v2.1.
2001-07-06  Paul Eggert  <eggert@twinsun.com>

	* manual/argp.texi: Remove ignored LGPL copyright notice; it's
	not appropriate for documentation anyway.
	* manual/libc-texinfo.sh: "Library General Public License" ->
	"Lesser General Public License".

2001-07-06  Andreas Jaeger  <aj@suse.de>

	* All files under GPL/LGPL version 2: Place under LGPL version
	2.1.
2001-07-06 04:58:11 +00:00
Greg McGary
ee63ca212c * sysdeps/i386/bp-asm.h (POP_ERRNO_LOCATION_RETURN): Fold insns.
* sysdeps/unix/i386/sysdep.S (syscall_error): Push & pop space 
for BP return value & push implicit struct-return pointer to 
__errno_location. 
* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise. 
(SYSCALL_ERROR_HANDLER): Likewise. 
* sysdeps/unix/sysv/linux/i386/i686/sysdep.h 
(SYSCALL_ERROR_HANDLER): Likewise.
	* sysdeps/i386/bp-asm.h (POP_ERRNO_LOCATION_RETURN): Fold insns.
	* sysdeps/unix/i386/sysdep.S (syscall_error): Push & pop space
	for BP return value & push implicit struct-return pointer to
	__errno_location.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
	(SYSCALL_ERROR_HANDLER): Likewise.
	* sysdeps/unix/sysv/linux/i386/i686/sysdep.h
	(SYSCALL_ERROR_HANDLER): Likewise.

	* Makeconfig (CPPFLAGS-.ob): Pass -fbounded-pointers
	for all files *.[cS].
2000-06-27 01:52:26 +00:00
Ulrich Drepper
4a624ae307 Update.
2000-05-19  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/i386/i686/sysdep.h
	(SYSCALL_ERROR_HANDLER): Remove unneeded syscall_error which
	breaks compilation without linuxthreads.
2000-05-22 01:03:59 +00:00
Ulrich Drepper
b259e74660 Update.
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>
1998-08-23 18:23:26 +00:00
Ulrich Drepper
c0fb8a563c Update.
1998-06-07 13:32  Ulrich Drepper  <drepper@cygnus.com>

	* libc.map: Add _dl_profile.
	* elf/dl-reloc.c (_dl_relocate_object): Take extra argument, pass
	this to ELF_DYNAMIC_RELOCATE.
	Always allocate array for relocation result if LD_PROFILE is defined.
	* elf/ldsodefs.h: Adjust prototypes.
	* elf/dl-open.c (_dl_open): Call relocation function with extra
	argument.
	* elf/rtld.c: Likewise.
	* elf/dl-profile.c (_dl_mcount): Don't mark as internal function.
	Correct loop condition.
	* elf/dynamic-link.h: Don't examine _dl_profile variable, pass
	consider_profile to runtime setup function.
	* sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Use
	_dl_runtime_profile for all shared objects if LD_PROFILE is defined.

	* elf/dl-support.c: Define __libc_stack_end.
	* elf/rtld.c: Likewise.
	* sysdeps/generic/libc-start.c: Store last stack address in
	__libc_stack_end.
	* sysdeps/i386/dl-machine.h (_dl_start_user): Store stack address.
	* sysdeps/i386/elf/start.s: Call __libc_start_main with extra argument.

	* elf/elf.h: Include <features.h>, not <sys/cdefs.h>.
	Include <stdint.h>, not <inttypes.h>.

	* elf/sprof.c: Implement flat profiling.

	* libio/fgetc.c: Call _IO_cleanup_region_end with 0 and call
	_IO_funlockfile explicitly.
	* libio/fileops.c: Likewise.
	* libio/fputc.c: Likewise.
	* libio/freopen.c: Likewise.
	* libio/freopen64.c: Likewise.
	* libio/fseek.c: Likewise.
	* libio/fseeko.c: Likewise.
	* libio/fseeko64.c: Likewise.
	* libio/ftello.c: Likewise.
	* libio/ftello64.c: Likewise.
	* libio/getc.c: Likewise.
	* libio/getchar.c: Likewise.
	* libio/iofclose.c: Likewise.
	* libio/iofflush.c: Likewise.
	* libio/iofgetpos.c: Likewise.
	* libio/iofgetpos64.c: Likewise.
	* libio/iofgets.c: Likewise.
	* libio/iofputs.c: Likewise.
	* libio/iofread.c: Likewise.
	* libio/iofsetpos.c: Likewise.
	* libio/iofsetpos64.c: Likewise.
	* libio/ioftell.c: Likewise.
	* libio/iofwrite.c: Likewise.
	* libio/iogetdelim.c: Likewise.
	* libio/iogets.c: Likewise.
	* libio/ioputs.c: Likewise.
	* libio/ioseekoff.c: Likewise.
	* libio/ioseekpos.c: Likewise.
	* libio/iosetbuffer.c: Likewise.
	* libio/iosetvbuf.c: Likewise.
	* libio/ioungetc.c: Likewise.
	* libio/iovsprintf.c: Likewise.
	* libio/iovsscanf.c: Likewise.
	* libio/oldfileops.c: Likewise.
	* libio/oldiofclose.c: Likewise.
	* libio/peekc.c: Likewise.
	* libio/putc.c: Likewise.
	* libio/putchar.c: Likewise.
	* libio/rewind.c: Likewise.

	* malloc/mtrace.c: Pretty print.

	* misc/mntent.h (struct mentent): Make string elements const char *.

	* nis/nis_printf.c: Optimize I/O a little bit.

	* signal/Makefile (distribute): Add sigset-cvt-mask.h.
	* sysdeps/generic/sigset-cvt-mask.h: New file.
	* sysdeps/unix/sysv/linux/sigset-cvt-mask.h: New file.
	* sysdeps/unix/sysv/sysv4/sigset-cvt-mask.h: New file.
	* sysdeps/posix/sigvec.c: Rewrite the use definitions from
	sigset-cvt-mask.h to do the dirty work.
	Patches by Joe Keane.

	* sysdeps/posix/mkstemp.c: Save one precious byte of rodata.

	* sysdeps/unix/sysv/linux/i386/sysdep.h: Rewrite PSEUDO etc to make
	syscall_error label in case of PIC anonymous.
	* sysdeps/unix/sysv/linux/i386/i686/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/clone.S: Adapt for this change.
	* sysdeps/unix/sysv/linux/i386/mmap.S: Adapt for this change.
	* sysdeps/unix/sysv/linux/i386/s_pread64.S: Adapt for this change.
	* sysdeps/unix/sysv/linux/i386/s_pwrite64.S: Adapt for this change.
	* sysdeps/unix/sysv/linux/i386/socket.S: Adapt for this change.
	* sysdeps/unix/sysv/linux/i386/syscall.S: Adapt for this change.
1998-06-07 14:06:56 +00:00
Ulrich Drepper
63bda0c13a Update.
1998-04-02  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/isomac.c: Use -isystem instead of -I for system include
	dir.

1998-03-30 08:05  H.J. Lu  <hjl@gnu.org>

	* resolv/res_comp.c (underscorechar): New.
	(middlechar): Allow '_'.

1998-04-02  Ulrich Drepper  <drepper@cygnus.com>

	* intl/explodename.c (stdlib.h): Include that file only if
	STDC_HEADERS or _LIBC.
	(string.h): Include that file only if HAVE_STRING_H or _LIBC.
	Patch by Philippe De Muyter <phdm@macqel.be>.

1998-04-01 21:08  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* aclocal.m4 (AC_PROG_CC_LOCAL): Remove superfluous tests.
	(AC_PROG_CHECK_VER): New macro.
	* configure.in: Use AC_PROG_CHECK_VER to check versions of
	gcc, gmake, msgfmt, makeinfo.  Remove superfluous tests.

1998-04-02 15:13  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/i386/i686/sysdep.h: New file.
	* sysdeps/i386/i686/strtok.S: New file
	* sysdeps/i386/i686/strtok_r.S: New file

1998-04-02  Mark Kettenis  <kettenis@phys.uva.nl>

	* posix/unistd.h: [__USE_FILE_OFFSET64] (lseek): Change return
	type to __off64_t.
	* libio/stdio.h [__USE_FILE_OFFSET64] (fseeko): Declare offset
	parameter as __off64_t instead of __off_t.
	(ftello): Make alias for ftello64 instead of ftello.  Change
	return type to __off64_t.

1998-04-02  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/bits/string.h: Fix various typos.
	Patch by Horst von Brand <vonbrand@sleipnir.valparaiso.cl>.

	* sysdeps/unix/sysv/linux/getcwd.c: Use getcwd syscall in Linux 2.1.92.

1998-04-02  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/i386/chown.c: Handle old kernels without
	lchown syscall correctly.  [PR libc/541].
1998-04-02 17:42:53 +00:00