Commit Graph

14 Commits

Author SHA1 Message Date
Matthew Fortune
b39d84adff VDSO support for MIPS
This patch adds support for using the implementations of gettimeofday()
and clock_gettime() provided by the kernel in the VDSO. The VDSO will
always provide clock_gettime() as CLOCK_{REALTIME,MONOTONIC}_COARSE can
be implemented regardless of platform. CLOCK_{REALTIME,MONOTONIC}, along
with gettimeofday(), are only implemented on platforms which make use of
either the CP0 count or GIC as their clocksource. On other platforms,
the VDSO does not provide the __vdso_gettimeofday symbol, as it is
never useful.

The VDSO functions return ENOSYS when they encounter an unsupported
request, in which case glibc should fall back to the standard syscall.

Tested with upstream kernel 4.5 and QEMU emulating Malta.

./vdsotest gettimeofday bench
gettimeofday: syscall: 1021 nsec/call
gettimeofday:    libc: 262 nsec/call
gettimeofday:    vdso: 174 nsec/call

	* sysdeps/unix/sysv/linux/mips/Makefile (sysdep_routines):
	Include dl-vdso.
	* sysdeps/unix/sysv/linux/mips/Versions: Add
	__vdso_clock_gettime.
	* sysdeps/unix/sysv/linux/mips/init-first.c: New file.
	* sysdeps/unix/sysv/linux/mips/libc-vdso.h: New file.
	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h:
	(INTERNAL_VSYSCALL_CALL): Define to be compatible with MIPS
	definitions of INTERNAL_SYSCALL_{ERROR_P,ERRNO}.
	(HAVE_CLOCK_GETTIME_VSYSCALL): Define.
	(HAVE_GETTIMEOFDAY_VSYSCALL): Define.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h: Likewise.
2016-04-12 11:05:13 +01:00
Joseph Myers
2ad7600be7 Move mips from ports to libc.
I've moved the MIPS port from ports to the main sysdeps hierarchy.
Beyond the README update, the move of the files was simply

git mv ports/sysdeps/mips sysdeps/mips
git mv ports/sysdeps/unix/mips sysdeps/unix/mips
git mv ports/sysdeps/unix/sysv/linux/mips sysdeps/unix/sysv/linux/mips

and in addition to the ChangeLog entries here, I put a note at the top
of ports/ChangeLog.mips similar to those in other files.

Tested that disassembly of installed shared libraries for mips is the
same before and after this patch (except for ld.so where paths in
assertions are involved, as for arm).

	* sysdeps/mips: Move directory from ports/sysdeps/mips.
	* sysdeps/unix/mips: Move directory from ports/sysdeps/unix/mips.
	* sysdeps/unix/sysv/linux/mips: Move directory from
	ports/sysdeps/unix/sysv/linux/mips.
	* README: Update listing for mips-*-linux-gnu and
	mips64-*-linux-gnu.

	* sysdeps/mips: Move directory to ../sysdeps/mips.
	* sysdeps/unix/mips: Move directory to ../sysdeps/unix/mips.
	* sysdeps/unix/sysv/linux/mips: Move directory to
	../sysdeps/unix/sysv/linux/mips.
2014-02-10 23:30:21 +00:00
Roland McGrath
0d5cb2c74f [BZ #2329]
2006-02-20  Roland McGrath  <roland@redhat.com>
	* sysdeps/mips: Directory removed, saved in ports repository.
	* sysdeps/unix/mips: Likewise.
	* sysdeps/unix/sysv/linux/mips: Likewise.
	* sysdeps/mach/mips: Likewise.
	* sysdeps/mach/hurd/mips: Likewise.
	* shlib-versions: Remove mips matches, now in ports fragment.
	* sysdeps/unix/sysv/linux/kernel-features.h: Likewise.
	* configure.in (machine): Likewise.
	* configure: Regenerated.
2006-02-15  Thomas Schwinge  <tschwinge@gnu.org>

	[BZ #2329]
	* include/unistd.h (__getresuid, __getresgid, __setresuid)
	(__setresgid): Fix argument name order in prototypes.
	* posix/unistd.h (getresuid, getresgid, setresuid, setresgid):
	Likewise.
	* posix/getresuid.c (__getresuid): Fix argument order in definition.
	* posix/getresgid.c (__getresgid): Likewise.
	* posix/setresuid.c (__setresuid): Likewise.
	* posix/setresgid.c (__setresgid): Likewise.
	* sysdeps/mach/hurd/getresuid.c (__getresuid): Likewise.
	* sysdeps/mach/hurd/getresgid.c (__getresgid): Likewise.
	* sysdeps/mach/hurd/setresuid.c (__setresuid): Likewise.
	* sysdeps/mach/hurd/setresgid.c (__setresgid): Likewise.
	Reported by Samuel Thibault <samuel.thibault@ens-lyon.org>.
2006-02-21 02:30:10 +00:00
Ulrich Drepper
a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek
0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Roland McGrath
0d98b3957e 2002-11-05 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/mips/Versions (libc: GLIBC_2.0): Change
	#errlist-compat magic comment to give 123 as size.
	(libc: GLIBC_2.1): Remove this set, moving #errlist-compat magic to ...
	(libc: GLIBC_2.2): ... here.
	(libc: GLIBC_2.3): Likewise.
2002-11-06 02:53:24 +00:00
Ulrich Drepper
5fe14d9670 Update.
* sysdeps/generic/ldsodefs.h (__rtld_global_attribute__): Define.
	(_rtld_global): Use it.

	* sysdeps/gnu/Dist: Remove errlist-compat.c.
	* sysdeps/gnu/Makefile (errlist-compat.c): Build this file in the
	object directory.  Pass all Versions files to the awk script.
	* sysdeps/gnu/errlist-compat.c: Removed.
	* sysdeps/gnu/errlist.awk: Use #errlist-compat comments from the
	first Versions file in the search path which has them.
	Allow multiple errlist symbol versions to have the same count of
	errors.
	* sysdeps/gnu/errlist-compat.awk: Include <errlist-compat.c> instead
	of "errlist-compat.c".
	* sysdeps/gnu/errlist.c: Regenerated.
	* sysdeps/unix/sysv/linux/mips/Versions (libc): Add #errlist-compat
	comments at GLIBC_2.0, GLIBC_2.1 and GLIBC_2.3.
	* sysdeps/unix/sysv/linux/alpha/Versions: Likewise.
	(librt): Add aio_cancel and aio_cancel64 as GLIBC_2.3.
	* sysdeps/unix/sysv/linux/hppa/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/Versions: New file.
	* sysdeps/unix/sysv/linux/alpha/bits/errno.h: New file.
	* sysdeps/unix/sysv/linux/hppa/bits/errno.h (ECANCELED): Define to
	ECANCELLED if not defined by kernel headers.
	* sysdeps/unix/sysv/linux/bits/errno.h: Don't redefine ECANCELED if
	already defined by kernel headers.
	* sysdeps/unix/sysv/linux/sparc/bits/errno.h: New file.
	* sysdeps/pthread/aio_cancel.c: Don't include aio.h and its
	aio_cancel64 renaming hack nor provide weak_alias if aio_cancel
	is a macro.
	* Versions.def (GLIBC_2.3) [librt]: Add.

	* sysdeps/unix/sysv/linux/alpha/pipe.S: New file.

2002-08-28  Ulrich Drepper  <drepper@redhat.com>

	* include/libc-symbols.h [!__ASSEMBLER__] (declare_symbol_1): Add
	missing comma to .type directive.

2002-08-28  Jakub Jelinek  <jakub@redhat.com>
2002-08-29 00:34:10 +00:00
Andreas Jaeger
c0ad824e40 Update.
2002-08-23  Andreas Jaeger  <aj@suse.de>

	* locale/loadarchive.c: Include <stdlib.h> for prototypes of
	alloca, free, qsort.

	* dlfcn/bug-dlsym1-lib1.c (foo): Add prototype to avoid warning.

	* sysdeps/ieee754/flt-32/e_jnf.c: Remove unused variable.
	* sysdeps/ieee754/ldbl-96/e_j0l.c: Likewise.

	* sysdeps/generic/fgetxattr.c: New file.
	* sysdeps/generic/flistxattr.c: New file.
	* sysdeps/generic/fremovexattr.c: New file.
	* sysdeps/generic/fsetxattr.c: New file.
	* sysdeps/generic/getxattr.c: New file.
	* sysdeps/generic/listxattr.c: New file.
	* sysdeps/generic/lgetxattr.c: New file.
	* sysdeps/generic/llistxattr.c: New file.
	* sysdeps/generic/lremovexattr.c: New file.
	* sysdeps/generic/lsetxattr.c: New file.
	* sysdeps/generic/removexattr.c: New file.
	* sysdeps/generic/setxattr.c: New file.

	* misc/sys/xattr.h: New file, contributed by Christoph Hellwig
	<hch@lst.de>.

	* misc/Makefile (headers): Add sys/xattr.h.
	(routines): Add *xattr calls.

	* misc/Versions: Add *xattr calls with version 2.3.

	* sysdeps/unix/sysv/linux/m68k/Versions: Remove *xattr syscalls.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/ia64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/alpha/Versions: Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions: Likewise.

	* sysdeps/powerpc/elf/libc-start.c
	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
2002-08-23 09:29:27 +00:00
Andreas Jaeger
6acb39df39 Add *xattr syscalls with version 2.3. 2002-08-15 09:01:54 +00:00
Ulrich Drepper
74bd2300b5 Update.
2001-10-02  Jakub Jelinek  <jakub@redhat.com>
	    H.J. Lu  <hjl@gnu.org>

	* configure.in (libc_cv_gcc_static_libgcc): Set to -static-libgcc
	if gcc supports this flag.
	(EXPORT_UNWIND_FIND_FDE): Define unless target configure disables it.
	(gcc3): Allow glibc to be compiled with gcc 3.x.
	* config.h.in (EXPORT_UNWIND_FIND_FDE): Add.
	* config.make.in (static-libgcc, unwind-find-fde): Add.
	* Makerules (build-shlib-helper, build-module-helper): Use it.
	* scripts/versions.awk: Make sure GLIBC_ versions come first.
	* elf/soinit.c (__libc_global_ctors): Set tbases and dbases if
	necessary.
	(_fini): Call __deregister_frame_info_bases if
	__register_frame_info_bases was used to register.
	* elf/Versions (__register_frame_info, __deregister_frame_info): Add
	for GLIBC_2.0.
	(__register_frame_info_bases, __register_frame_info_table_bases,
	__deregister_frame_info_bases, _Unwind_Find_FDE): Add for GLIBC_2.2.5.
	* elf/Makefile (routines): Add unwind-dw2-fde.
	(shared-only-routines): Add unwind-dw2-fde.
	* sysdeps/alpha/gccframe.h: New file.
	* sysdeps/arm/gccframe.h: New file.
	* sysdeps/generic/framestate.c: New file.
	* sysdeps/generic/dwarf2.h: New file.
	* sysdeps/generic/gccframe.h (struct object): Update from gcc 3.0.
	* sysdeps/generic/unwind-dw2-fde.c: New file.
	* sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c: New file.
	* sysdeps/generic/unwind-dw2-fde.h: New file.
	* sysdeps/generic/unwind-dw2.c: New file.
	* sysdeps/generic/unwind-pe.h: New file.
	* sysdeps/generic/unwind.h: New file.
	* sysdeps/hppa/gccframe.h: New file.
	* sysdeps/i386/gccframe.h: New file.
	* sysdeps/m68k/gccframe.h: New file.
	* sysdeps/mips/gccframe.h: New file.
	* sysdeps/powerpc/gccframe.h: New file.
	* sysdeps/s390/gccframe.h: New file.
	* sysdeps/sh/gccframe.h: New file.
	* sysdeps/sparc/gccframe.h: New file.
	* sysdeps/vax/gccframe.h: New file.
	* sysdeps/unix/sysv/linux/configure.in (libc_cv_gcc_unwind_find_fde):
	Set on all architectures except ia64.
	* sysdeps/mach/hurd/configure.in (libc_cv_gcc_unwind_find_fde): Set
	for i386.
	* sysdeps/mach/hurd/i386/Versions (__register_frame_info,
	__deregister_frame_info): Move to elf/Versions.
	* sysdeps/unix/sysv/linux/m68k/Versions: Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions: Likewise.
	* sysdeps/unix/sysv/linux/alpha/Versions: Likewise.
	* sysdeps/unix/sysv/linux/i386/Versions: Likewise.
	* sysdeps/unix/sysv/linux/mips/Versions: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Versions: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: Likewise.
	* sysdeps/mach/hurd/i386/Makefile (sysdep-routines): Add framestate.
	* sysdeps/unix/sysv/linux/arm/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/alpha/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/mips/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/sparc/Makefile: Likewise.

	* sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: New file.
	* sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed: New file.
	* sysdeps/generic/strnlen.c: New file.
2001-11-16 01:27:24 +00:00
Andreas Jaeger
af9a084185 Update.
2000-07-12  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* sysdeps/unix/sysv/linux/mips/Dist: Add sys/tas.h.
	* sysdeps/unix/sysv/linux/mips/Makefile (sysdep_routines): Add
	_test_and_set.
	(headers): Add sys/tas.h.
	* sysdeps/unix/sysv/linux/mips/Versions: Export _test_and_set for
	GLIBC_2.2 from libc.
	* sysdeps/unix/sysv/linux/mips/_test_and_set.c: New file.
	* sysdeps/unix/sysv/linux/mips/sys/tas.h: New file for
	_test_and_set.
2000-07-28 13:37:56 +00:00
Andreas Jaeger
e940b742de Update.
* sysdeps/unix/sysv/linux/mips/Versions: Add libgcc frame handling
	functions.
2000-07-13 11:47:15 +00:00
Andreas Jaeger
c3e485f12a Update.
2000-05-31  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Use array for
	gregset_t.

	* sysdeps/unix/sysv/linux/mips/Versions: Export _flush_cache.
	Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
	
	* sysdeps/unix/sysv/linux/mips/ftruncate64.c: Fix prototype of
	syscall.
	* sysdeps/unix/sysv/linux/mips/truncate64.c: Likewise.
2000-05-31 12:04:03 +00:00
Ulrich Drepper
b0b67c47a5 Update.
1998-07-02 21:51  Ulrich Drepper  <drepper@cygnus.com>

	* Makeconfig: Define list of subdirs as all-subdirs and make subdirs
	a copy.
	* Makefile: Add rules to generate map files.
	(distribute): Remove libc.map, add Versions.def and versions.awk.
	* Makerules: Change rules to find map files on common-objpfx.
	* elf/Makefile: Likewise.
	* md5-crypt/Makefile: Likewise.
	* nis/Makefile (libnsl-map): Remove.
	* Versions.def: New file.
	* versions.awk: New file.
	* argp/Versions: New file.
	* assert/Versions: New file.
	* catgets/Versions: New file.
	* csu/Versions: New file.
	* ctype/Versions: New file.
	* db/Versions: New file.
	* debug/Versions: New file.
	* dirent/Versions: New file.
	* elf/Versions: New file.
	* gmon/Versions: New file.
	* grp/Versions: New file.
	* hesiod/Versions: New file.
	* hurd/Versions: New file.
	* iconv/Versions: New file.
	* inet/Versions: New file.
	* intl/Versions: New file.
	* io/Versions: New file.
	* libio/Versions: New file.
	* linuxthreads/Versions: New file.
	* locale/Versions: New file.
	* login/Versions: New file.
	* malloc/Versions: New file.
	* math/Versions: New file.
	* md5-crypt/Versions: New file.
	* misc/Versions: New file.
	* nis/Versions: New file.
	* nss/Versions: New file.
	* posix/Versions: New file.
	* pwd/Versions: New file.
	* resolv/Versions: New file.
	* resource/Versions: New file.
	* rt/Versions: New file.
	* setjmp/Versions: New file.
	* shadow/Versions: New file.
	* signal/Versions: New file.
	* socket/Versions: New file.
	* stdio/Versions: New file.
	* stdio-common/Versions: New file.
	* stdlib/Versions: New file.
	* streams/Versions: New file.
	* string/Versions: New file.
	* sunrpc/Versions: New file.
	* sysdeps/alpha/Versions: New file.
	* sysdeps/alpha/fpu/Versions: New file.
	* sysdeps/i386/Versions: New file.
	* sysdeps/sparc/Versions: New file.
	* sysdeps/unix/sysv/Versions: New file.
	* sysdeps/unix/sysv/linux/Versions: New file.
	* sysdeps/unix/sysv/linux/alpha/Versions: New file.
	* sysdeps/unix/sysv/linux/i386/Versions: New file.
	* sysdeps/unix/sysv/linux/mips/Versions: New file.
	* sysvipc/Versions: New file.
	* termios/Versions: New file.
	* time/Versions: New file.
	* wcsmbs/Versions: New file.
	* wctype/Versions: New file.
	* libc.map: Removed.
	* db/libdb.map: Removed.
	* elf/libdl.map: Removed.
	* hesiod/libnss_hesiod.map: Removed.
	* hurd/libhurduser.map: Removed.
	* hurd/libmachuser.map: Removed.
	* linuxthreads/libpthread.map: Removed.
	* locale/libBrokenLocale.map: Removed.
	* login/libutil.map: Removed.
	* math/libm.map: Removed.
	* md5-crypt/libcrypt.map: Removed.
	* nis/libnsl.map: Removed.
	* nis/libnsl_compat.map: Removed.
	* nis/libnss_nis.map: Removed.
	* nis/libnss_nisplus.map: Removed.
	* nss/libnss_db.map: Removed.
	* nss/libnss_files.map: Removed.
	* resolv/libnss_dns.map: Removed.
	* resolv/libresolv.map: Removed.
	* rt/librt.map: Removed.

	* elf/dl-load.c (fillin_rpath): Fix test for trusted directory.
	Fix typos.

	* elf/rtld.c (process_dl_debug): Recognize 'all'.
	(process_envvars): LD_BIND_NOW must be followed by y, Y, or 1.

	* sysdeps/generic/elf/backtracesyms.c: Allocate string memory of
	correct size.

	* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): Fix typo
	in comment.
1998-07-02 22:51:40 +00:00