mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
BZ#14743: Move clock_* symbols from librt to libc.
This commit is contained in:
parent
0cae3f4b03
commit
6e6249d0b4
58
ChangeLog
58
ChangeLog
@ -1,3 +1,61 @@
|
||||
2012-10-24 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* nscd/Makefile ($(objpfx)nscd): Remove librt dependency.
|
||||
* posix/Makefile ($(objpfx)tst-regex, $(objpfx)tst-regex2):
|
||||
Targets removed.
|
||||
|
||||
[BZ #14743]
|
||||
* include/time.h: Remove librt_hidden_proto (clock_gettime).
|
||||
Declare __clock_getres, __clock_gettime, __clock_settime,
|
||||
__clock_nanosleep, and __clock_getcpuclockid.
|
||||
* rt/clock_gettime.c: Define __clock_gettime as an alias.
|
||||
Remove librt_hidden_def (clock_gettime).
|
||||
* sysdeps/unix/clock_gettime.c: Likewise.
|
||||
* rt/clock_getcpuclockid.c: Define __clock_getcpuclockid as an alias.
|
||||
* sysdeps/unix/sysv/linux/clock_getcpuclockid.c: Likewise.
|
||||
* rt/clock_getres.c: Define __clock_getres as an alias.
|
||||
* sysdeps/posix/clock_getres.c: Likewise.
|
||||
* rt/clock_settime.c: Define __clock_settime as an alias.
|
||||
* sysdeps/unix/clock_settime.c: Likewise.
|
||||
* rt/clock_nanosleep.c: Define __clock_nanosleep as an alias.
|
||||
* sysdeps/unix/clock_nanosleep.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/clock_nanosleep.c: Likewise.
|
||||
* rt/clock-compat.c: New file.
|
||||
* rt/Makefile (librt-routines): Add clock-compat and move
|
||||
$(clock-routines) to ...
|
||||
(routines): ... here, new variable.
|
||||
* sysdeps/unix/sysv/linux/powerpc/Makefile (sysdep_routines):
|
||||
Don't add get_clockfreq here.
|
||||
* rt/Versions (libc: GLIBC_2.17): New version set.
|
||||
Add clock_* symbols here.
|
||||
(libc: GLIBC_PRIVATE): New version set. Add __clock_* symbols here.
|
||||
* sysdeps/unix/sysv/linux/i386/nptl/libc.abilist
|
||||
(GLIBC_2.17): Add clock_* symbols.
|
||||
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist: Likewise.
|
||||
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist: Likewise.
|
||||
* sysdeps/unix/sysv/linux/sh/nptl/libc.abilist: Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist:
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist:
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist: Likewise.
|
||||
* sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist: Likewise.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist: Likewise.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist: Likewise.
|
||||
* NEWS: Mention the move.
|
||||
|
||||
* sysdeps/unix/sysv/linux/i386/get_clockfreq.c (__get_clockfreq):
|
||||
Use __open, __read, __close rather than their public counterparts.
|
||||
* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
|
||||
(__get_clockfreq_via_cpuinfo): Likewise.
|
||||
(__get_clockfreq_via_proc_openprom): Likewise, and __getdirentries.
|
||||
(__get_clockfreq_via_dev_openprom): Likewise, and __ioctl.
|
||||
|
||||
* config.h.in (HAVE_IFUNC): New #undef.
|
||||
* configure.in: Define it if libc_cv_ld_gnu_indirect_function
|
||||
was successful.
|
||||
* configure: Regenerated.
|
||||
|
||||
2012-10-24 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* configure.in: Move READELF check to start of file.
|
||||
|
12
NEWS
12
NEWS
@ -16,7 +16,8 @@ Version 2.17
|
||||
14328, 14331, 14336, 14337, 14347, 14349, 14376, 14417, 14459, 14476,
|
||||
14477, 14505, 14510, 14516, 14518, 14519, 14530, 14532, 14538, 14543,
|
||||
14544, 14545, 14557, 14562, 14568, 14576, 14579, 14583, 14587, 14602,
|
||||
14621, 14638, 14645, 14648, 14652, 14660, 14661, 14683, 14694, 14716.
|
||||
14621, 14638, 14645, 14648, 14652, 14660, 14661, 14683, 14694, 14716,
|
||||
14743.
|
||||
|
||||
* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
|
||||
Optimized versions of memcpy, memset, and memcmp added for System z10 and
|
||||
@ -54,6 +55,13 @@ Version 2.17
|
||||
enabled, and fail on encrypted strings using the MD5 or DES algorithm
|
||||
when the mode is enabled.
|
||||
|
||||
* The `clock_*' suite of functions (declared in <time.h>) is now available
|
||||
directly in the main C library. Previously it was necessary to link with
|
||||
-lrt to use these functions. This change has the effect that a
|
||||
single-threaded program that uses a function such as `clock_gettime' (and
|
||||
is not linked with -lrt) will no longer implicitly load the pthreads
|
||||
library at runtime and so will not suffer the overheads associated with
|
||||
multi-thread support in other code such as the C++ runtime library.
|
||||
|
||||
Version 2.16
|
||||
|
||||
@ -81,7 +89,7 @@ Version 2.16
|
||||
14043, 14044, 14048, 14049, 14050, 14053, 14055, 14059, 14064, 14075,
|
||||
14080, 14083, 14103, 14104, 14109, 14112, 14117, 14122, 14123, 14134,
|
||||
14153, 14183, 14188, 14199, 14210, 14218, 14229, 14241, 14273, 14277,
|
||||
14278,
|
||||
14278.
|
||||
|
||||
* Support for the x32 ABI on x86-64 added. The x32 target is selected by
|
||||
configuring glibc with:
|
||||
|
@ -180,6 +180,9 @@
|
||||
/* Define if the dynamic linker should consult an ld.so.cache file. */
|
||||
#undef USE_LDCONFIG
|
||||
|
||||
/* Define if STT_GNU_IFUNC support actually works. */
|
||||
#undef HAVE_IFUNC
|
||||
|
||||
/*
|
||||
*/
|
||||
|
||||
|
7
configure
vendored
7
configure
vendored
@ -7456,6 +7456,13 @@ if test x$libc_cv_gcc_unwind_find_fde = xyes; then
|
||||
fi
|
||||
|
||||
|
||||
# A sysdeps configure fragment can reset this if IFUNC is not actually
|
||||
# usable even though the assembler knows how to generate the symbol type.
|
||||
if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
|
||||
$as_echo "#define HAVE_IFUNC 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
# This is far from the AC_ARG_ENABLE that sets it so that a sysdeps
|
||||
# configure fragment can override the value to prevent this AC_DEFINE.
|
||||
|
||||
|
@ -2123,6 +2123,12 @@ if test x$libc_cv_gcc_unwind_find_fde = xyes; then
|
||||
fi
|
||||
AC_SUBST(libc_cv_gcc_unwind_find_fde)
|
||||
|
||||
# A sysdeps configure fragment can reset this if IFUNC is not actually
|
||||
# usable even though the assembler knows how to generate the symbol type.
|
||||
if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
|
||||
AC_DEFINE(HAVE_IFUNC)
|
||||
fi
|
||||
|
||||
# This is far from the AC_ARG_ENABLE that sets it so that a sysdeps
|
||||
# configure fragment can override the value to prevent this AC_DEFINE.
|
||||
AC_SUBST(use_nscd)
|
||||
|
@ -19,7 +19,11 @@ libc_hidden_proto (localtime)
|
||||
libc_hidden_proto (strftime)
|
||||
libc_hidden_proto (strptime)
|
||||
|
||||
librt_hidden_proto (clock_gettime)
|
||||
extern __typeof (clock_getres) __clock_getres;
|
||||
extern __typeof (clock_gettime) __clock_gettime;
|
||||
extern __typeof (clock_settime) __clock_settime;
|
||||
extern __typeof (clock_nanosleep) __clock_nanosleep;
|
||||
extern __typeof (clock_getcpuclockid) __clock_getcpuclockid;
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
struct tm;
|
||||
|
@ -1,3 +1,10 @@
|
||||
2012-10-24 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* Makefile ($(objpfx)tst-cond11, $(objpfx)tst-cond19): Targets removed.
|
||||
($(objpfx)tst-sem5, $(objpfx)tst-cancel18): Likewise.
|
||||
((objpfx)tst-cancelx18, $(objpfx)tst-clock2): Likewise.
|
||||
($(objpfx)tst-rwlock14): Likewise.
|
||||
|
||||
2012-10-24 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* Makefile (tests): Remove tst-oddstacklimit.
|
||||
|
@ -484,31 +484,18 @@ $(objpfx)tst-dlsym1: $(libdl) $(shared-thread-library)
|
||||
$(objpfx)tst-fini1: $(shared-thread-library) $(objpfx)tst-fini1mod.so
|
||||
|
||||
ifeq (yes,$(build-shared))
|
||||
$(objpfx)tst-cond11: $(common-objpfx)rt/librt.so
|
||||
$(objpfx)tst-cond19: $(common-objpfx)rt/librt.so
|
||||
$(objpfx)tst-sem5: $(common-objpfx)rt/librt.so
|
||||
$(objpfx)tst-cancel17: $(common-objpfx)rt/librt.so
|
||||
$(objpfx)tst-cancelx17: $(common-objpfx)rt/librt.so
|
||||
$(objpfx)tst-cancel18: $(common-objpfx)rt/librt.so
|
||||
$(objpfx)tst-cancelx18: $(common-objpfx)rt/librt.so
|
||||
$(objpfx)tst-clock2: $(common-objpfx)rt/librt.so
|
||||
$(objpfx)tst-rwlock14: $(common-objpfx)rt/librt.so
|
||||
librt = $(common-objpfx)rt/librt.so
|
||||
else
|
||||
librt = $(common-objpfx)rt/librt.a
|
||||
endif
|
||||
|
||||
$(objpfx)tst-cancel17: $(librt)
|
||||
$(objpfx)tst-cancelx17: $(librt)
|
||||
$(objpfx)tst-_res1mod2.so: $(objpfx)tst-_res1mod1.so
|
||||
LDFLAGS-tst-_res1mod1.so = -Wl,-soname,tst-_res1mod1.so
|
||||
LDFLAGS-tst-_res1mod2.so = -Wl,-soname,tst-_res1mod2.so
|
||||
$(objpfx)tst-_res1: $(objpfx)tst-_res1mod1.so $(objpfx)tst-_res1mod2.so \
|
||||
$(shared-thread-library)
|
||||
else
|
||||
$(objpfx)tst-cond11: $(common-objpfx)rt/librt.a
|
||||
$(objpfx)tst-cond19: $(common-objpfx)rt/librt.a
|
||||
$(objpfx)tst-sem5: $(common-objpfx)rt/librt.a
|
||||
$(objpfx)tst-cancel17: $(common-objpfx)rt/librt.a
|
||||
$(objpfx)tst-cancelx17: $(common-objpfx)rt/librt.a
|
||||
$(objpfx)tst-cancel18: $(common-objpfx)rt/librt.a
|
||||
$(objpfx)tst-cancelx18: $(common-objpfx)rt/librt.a
|
||||
$(objpfx)tst-clock2: $(common-objpfx)rt/librt.a
|
||||
$(objpfx)tst-rwlock14: $(common-objpfx)rt/librt.a
|
||||
endif
|
||||
|
||||
LDLIBS-tst-cancel24 = $(no-as-needed) -lstdc++
|
||||
LDLIBS-tst-cancel24-static = $(LDLIBS-tst-cancel24)
|
||||
|
@ -101,9 +101,7 @@ include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
|
||||
$(objpfx)nscd: $(nscd-modules:%=$(objpfx)%.o)
|
||||
|
||||
ifeq ($(build-shared),yes)
|
||||
$(objpfx)nscd: $(common-objpfx)rt/librt.so $(shared-thread-library) \
|
||||
$(common-objpfx)nis/libnsl.so
|
||||
$(objpfx)nscd: $(shared-thread-library) $(common-objpfx)nis/libnsl.so
|
||||
else
|
||||
$(objpfx)nscd: $(common-objpfx)rt/librt.a $(static-thread-library) \
|
||||
$(common-objpfx)nis/libnsl.a
|
||||
$(objpfx)nscd: $(static-thread-library) $(common-objpfx)nis/libnsl.a
|
||||
endif
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-10-19 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist
|
||||
(GLIBC_2.17): Add clock_* symbols.
|
||||
|
||||
2012-10-09 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/alpha/configure: Regenerated.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-10-22 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/arm/nptl/libc.abilist
|
||||
(GLIBC_2.17): Add clock_* symbols.
|
||||
|
||||
2012-10-22 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h (__O_LARGEFILE):
|
||||
|
@ -1,3 +1,11 @@
|
||||
2012-10-19 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist
|
||||
(GLIBC_2.17): Add clock_* symbols.
|
||||
|
||||
* sysdeps/unix/sysv/linux/ia64/get_clockfreq.c (__get_clockfreq):
|
||||
Use __open, __read, __close rather than their public counterparts.
|
||||
|
||||
2012-10-09 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/ia64/configure: Regenerated.
|
||||
|
@ -1,3 +1,9 @@
|
||||
2012-10-19 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist:
|
||||
(GLIBC_2.17): Add clock_* symbols.
|
||||
* sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist: Likewise.
|
||||
|
||||
2012-10-02 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h: Fix clone
|
||||
|
@ -1,3 +1,9 @@
|
||||
2012-10-19 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist
|
||||
(GLIBC_2.17): Add clock_* symbols.
|
||||
* sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist: Likewise.
|
||||
|
||||
2012-10-24 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Remove all
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-10-19 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
|
||||
(GLIBC_2.17): Add clock_* symbols.
|
||||
|
||||
2012-09-26 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist:
|
||||
@ -180,7 +185,7 @@
|
||||
* sysdeps/powerpc/nofpu/Makefile
|
||||
[subdirs-soft-fp] (sysdep_routines): Remove gcc-quad-routines.
|
||||
[subdirs-math] (CPPFLAGS): Add -I../soft-fp.
|
||||
[subdirs-math] (CFLAGS-e_powl.c): Add -fno-builtin-fabsl.
|
||||
[subdirs-math] (CFLAGS-e_powl.c): Add -fno-builtin-fabsl.
|
||||
[subdirs-math] (CFLAGS-s_ccoshl.c): Likewise.
|
||||
[subdirs-math] (CFLAGS-s_csinhl.c): Likewise.
|
||||
[subdirs-math] (CFLAGS-s_clogl.c): Likewise.
|
||||
|
@ -1,3 +1,12 @@
|
||||
2012-10-19 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist:
|
||||
(GLIBC_2.17): Add clock_* symbols.
|
||||
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist:
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist:
|
||||
Likewise.
|
||||
|
||||
2012-10-11 Chris Metcalf <cmetcalf@tilera.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c: New file.
|
||||
|
@ -1813,6 +1813,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
|
@ -80,6 +80,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Get frequency of the system processor. IA-64/Linux version.
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2012 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
|
||||
@ -37,7 +37,7 @@ __get_clockfreq (void)
|
||||
if (result != 0)
|
||||
return result;
|
||||
|
||||
fd = open ("/proc/cpuinfo", O_RDONLY);
|
||||
fd = __open ("/proc/cpuinfo", O_RDONLY);
|
||||
if (__builtin_expect (fd != -1, 1))
|
||||
{
|
||||
/* XXX AFAIK the /proc filesystem can generate "files" only up
|
||||
@ -45,7 +45,7 @@ __get_clockfreq (void)
|
||||
char buf[4096];
|
||||
ssize_t n;
|
||||
|
||||
n = read (fd, buf, sizeof buf);
|
||||
n = __read (fd, buf, sizeof buf);
|
||||
if (__builtin_expect (n, 1) > 0)
|
||||
{
|
||||
char *mhz = memmem (buf, n, "itc MHz", 7);
|
||||
@ -81,7 +81,7 @@ __get_clockfreq (void)
|
||||
}
|
||||
}
|
||||
|
||||
close (fd);
|
||||
__close (fd);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -80,6 +80,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
|
@ -81,6 +81,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
|
@ -1769,6 +1769,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
|
@ -2244,4 +2244,9 @@ _gp_disp
|
||||
_gp_disp A
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
|
@ -1390,6 +1390,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
|
@ -1774,6 +1774,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
__ppc_get_timebase_freq F
|
||||
GLIBC_2.2
|
||||
|
@ -2082,4 +2082,9 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
|
@ -2082,4 +2082,9 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
|
@ -2082,4 +2082,9 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
|
@ -277,14 +277,6 @@ $(objpfx)tst-boost-mem: $(objpfx)tst-boost.out
|
||||
$(objpfx)tst-getconf.out: tst-getconf.sh $(objpfx)getconf
|
||||
$(SHELL) $< $(common-objpfx) '$(built-program-cmd)'
|
||||
|
||||
ifeq (yes,$(build-shared))
|
||||
$(objpfx)tst-regex: $(common-objpfx)rt/librt.so
|
||||
$(objpfx)tst-regex2: $(common-objpfx)rt/librt.so
|
||||
else
|
||||
$(objpfx)tst-regex: $(common-objpfx)rt/librt.a
|
||||
$(objpfx)tst-regex2: $(common-objpfx)rt/librt.a
|
||||
endif
|
||||
|
||||
$(objpfx)bug-ga2-mem: $(objpfx)bug-ga2.out
|
||||
$(common-objpfx)malloc/mtrace $(objpfx)bug-ga2.mtrace > $@
|
||||
|
||||
|
@ -36,9 +36,12 @@ mq-routines := mq_open mq_close mq_unlink mq_getattr mq_setattr \
|
||||
mq_notify mq_send mq_receive mq_timedsend \
|
||||
mq_timedreceive
|
||||
|
||||
routines = $(clock-routines)
|
||||
|
||||
librt-routines = $(aio-routines) \
|
||||
$(clock-routines) $(timer-routines) \
|
||||
$(shm-routines) $(mq-routines)
|
||||
$(timer-routines) \
|
||||
$(shm-routines) $(mq-routines) \
|
||||
clock-compat
|
||||
|
||||
tests := tst-shm tst-clock tst-clock_nanosleep tst-timer tst-timer2 \
|
||||
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
|
||||
|
14
rt/Versions
14
rt/Versions
@ -1,3 +1,15 @@
|
||||
libc {
|
||||
GLIBC_2.17 {
|
||||
# c*
|
||||
clock_getres; clock_gettime; clock_settime; clock_getcpuclockid;
|
||||
clock_nanosleep;
|
||||
}
|
||||
GLIBC_PRIVATE {
|
||||
__clock_getres; __clock_gettime; __clock_settime; __clock_getcpuclockid;
|
||||
__clock_nanosleep;
|
||||
}
|
||||
}
|
||||
|
||||
librt {
|
||||
GLIBC_2.1 {
|
||||
# AIO functions.
|
||||
@ -6,7 +18,7 @@ librt {
|
||||
aio_suspend64; aio_write; aio_write64; lio_listio; lio_listio64;
|
||||
}
|
||||
GLIBC_2.2 {
|
||||
# c*
|
||||
# These have moved to libc and are still here only for compatibility.
|
||||
clock_getres; clock_gettime; clock_settime; clock_getcpuclockid;
|
||||
clock_nanosleep;
|
||||
|
||||
|
65
rt/clock-compat.c
Normal file
65
rt/clock-compat.c
Normal file
@ -0,0 +1,65 @@
|
||||
/* ABI compatibility redirects for clock_* symbols in librt.
|
||||
Copyright (C) 2012 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
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <shlib-compat.h>
|
||||
|
||||
/* The clock_* symbols were originally defined in librt and so
|
||||
are part of its ABI. As of 2.17, they have moved to libc.
|
||||
So we supply definitions for librt that just redirect to
|
||||
their libc counterparts. */
|
||||
|
||||
#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_17)
|
||||
|
||||
#include <time.h>
|
||||
|
||||
#ifdef HAVE_IFUNC
|
||||
# define COMPAT_REDIRECT(name, proto, arglist) \
|
||||
__typeof (name) *name##_ifunc (void) asm (#name); \
|
||||
__typeof (name) *name##_ifunc (void) \
|
||||
{ \
|
||||
return &__##name; \
|
||||
} \
|
||||
asm (".type " #name ", %gnu_indirect_function");
|
||||
#else
|
||||
# define COMPAT_REDIRECT(name, proto, arglist) \
|
||||
int \
|
||||
name proto \
|
||||
{ \
|
||||
return __##name arglist; \
|
||||
}
|
||||
#endif
|
||||
|
||||
COMPAT_REDIRECT (clock_getres,
|
||||
(clockid_t clock_id, struct timespec *res),
|
||||
(clock_id, res))
|
||||
COMPAT_REDIRECT (clock_gettime,
|
||||
(clockid_t clock_id, struct timespec *tp),
|
||||
(clock_id, tp))
|
||||
COMPAT_REDIRECT (clock_settime,
|
||||
(clockid_t clock_id, const struct timespec *tp),
|
||||
(clock_id, tp))
|
||||
COMPAT_REDIRECT (clock_getcpuclockid,
|
||||
(pid_t pid, clockid_t *clock_id),
|
||||
(pid, clock_id))
|
||||
COMPAT_REDIRECT (clock_nanosleep,
|
||||
(clockid_t clock_id, int flags,
|
||||
const struct timespec *req,
|
||||
struct timespec *rem),
|
||||
(clock_id, flags, req, rem))
|
||||
|
||||
#endif
|
@ -1,4 +1,5 @@
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
/* Get a clockid_t for the process CPU clock of a given process. Generic.
|
||||
Copyright (C) 2000-2012 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,3 +37,4 @@ clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
|
||||
return ENOENT;
|
||||
#endif
|
||||
}
|
||||
strong_alias (clock_getcpuclockid, __clock_getcpuclockid)
|
||||
|
@ -1,4 +1,5 @@
|
||||
/* Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
/* Get the resolution of a clock. Stub version.
|
||||
Copyright (C) 1999-2012 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
|
||||
@ -25,5 +26,6 @@ clock_getres (clockid_t clock_id, struct timespec *res)
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
strong_alias (clock_getres, __clock_getres)
|
||||
stub_warning (clock_getres)
|
||||
#include <stub-tag.h>
|
||||
|
@ -1,4 +1,5 @@
|
||||
/* Copyright (C) 1999, 2005 Free Software Foundation, Inc.
|
||||
/* Get the current value of a clock. Stub version.
|
||||
Copyright (C) 1999-2012 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
|
||||
@ -25,6 +26,6 @@ clock_gettime (clockid_t clock_id, struct timespec *tp)
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
librt_hidden_def (clock_gettime)
|
||||
strong_alias (clock_gettime, __clock_gettime)
|
||||
stub_warning (clock_gettime)
|
||||
#include <stub-tag.h>
|
||||
|
@ -33,5 +33,6 @@ clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
|
||||
/* Not implemented. */
|
||||
return ENOSYS;
|
||||
}
|
||||
strong_alias (clock_nanosleep, __clock_nanosleep)
|
||||
stub_warning (clock_nanosleep)
|
||||
#include <stub-tag.h>
|
||||
|
@ -1,4 +1,5 @@
|
||||
/* Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
/* Set a clock to a given value. Stub version.
|
||||
Copyright (C) 1999-2012 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
|
||||
@ -25,5 +26,6 @@ clock_settime (clockid_t clock_id, const struct timespec *tp)
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
strong_alias (clock_settime, __clock_settime)
|
||||
stub_warning (clock_settime)
|
||||
#include <stub-tag.h>
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* clock_getres -- Get the resolution of a POSIX clockid_t.
|
||||
Copyright (C) 1999,2000,2001,2003,2004,2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999-2012 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
|
||||
@ -115,3 +115,4 @@ clock_getres (clockid_t clock_id, struct timespec *res)
|
||||
|
||||
return retval;
|
||||
}
|
||||
strong_alias (clock_getres, __clock_getres)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* clock_gettime -- Get the current time from a POSIX clockid_t. Unix version.
|
||||
Copyright (C) 1999-2004, 2005, 2007, 2011 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999-2012 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
|
||||
@ -132,4 +132,4 @@ clock_gettime (clockid_t clock_id, struct timespec *tp)
|
||||
|
||||
return retval;
|
||||
}
|
||||
librt_hidden_def (clock_gettime)
|
||||
strong_alias (clock_gettime, __clock_gettime)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* High-resolution sleep with the specified clock.
|
||||
Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000-2012 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
|
||||
@ -98,3 +98,4 @@ clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
|
||||
|
||||
return __builtin_expect (nanosleep (req, rem), 0) ? errno : 0;
|
||||
}
|
||||
strong_alias (clock_nanosleep, __clock_nanosleep)
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1999-2004, 2006, 2007 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1999-2012 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
|
||||
@ -124,3 +124,4 @@ clock_settime (clockid_t clock_id, const struct timespec *tp)
|
||||
|
||||
return retval;
|
||||
}
|
||||
strong_alias (clock_settime, __clock_settime)
|
||||
|
@ -50,3 +50,4 @@ clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
|
||||
else
|
||||
return INTERNAL_SYSCALL_ERRNO (r, err);
|
||||
}
|
||||
strong_alias (clock_getcpuclockid, __clock_getcpuclockid)
|
||||
|
@ -52,3 +52,4 @@ clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
|
||||
return (INTERNAL_SYSCALL_ERROR_P (r, err)
|
||||
? INTERNAL_SYSCALL_ERRNO (r, err) : 0);
|
||||
}
|
||||
strong_alias (clock_nanosleep, __clock_nanosleep)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Get frequency of the system processor. i386/Linux version.
|
||||
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000-2012 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
|
||||
@ -39,7 +39,7 @@ __get_clockfreq (void)
|
||||
if (result != 0)
|
||||
return result;
|
||||
|
||||
fd = open ("/proc/cpuinfo", O_RDONLY);
|
||||
fd = __open ("/proc/cpuinfo", O_RDONLY);
|
||||
if (__builtin_expect (fd != -1, 1))
|
||||
{
|
||||
/* XXX AFAIK the /proc filesystem can generate "files" only up
|
||||
@ -47,7 +47,7 @@ __get_clockfreq (void)
|
||||
char buf[4096];
|
||||
ssize_t n;
|
||||
|
||||
n = read (fd, buf, sizeof buf);
|
||||
n = __read (fd, buf, sizeof buf);
|
||||
if (__builtin_expect (n, 1) > 0)
|
||||
{
|
||||
char *mhz = memmem (buf, n, "cpu MHz", 7);
|
||||
@ -83,7 +83,7 @@ __get_clockfreq (void)
|
||||
}
|
||||
}
|
||||
|
||||
close (fd);
|
||||
__close (fd);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -1813,6 +1813,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
|
@ -19,6 +19,6 @@ endif
|
||||
|
||||
ifeq ($(subdir),misc)
|
||||
sysdep_headers += bits/ppc.h
|
||||
sysdep_routines += get_clockfreq get_timebase_freq
|
||||
sysdep_routines += get_timebase_freq
|
||||
tests += test-gettimebasefreq
|
||||
endif
|
||||
|
@ -1774,6 +1774,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
__ppc_get_timebase_freq F
|
||||
GLIBC_2.2
|
||||
|
@ -80,6 +80,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
__ppc_get_timebase_freq F
|
||||
GLIBC_2.3
|
||||
|
@ -1765,6 +1765,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
|
@ -86,6 +86,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
|
@ -86,6 +86,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
|
@ -1770,6 +1770,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
|
@ -34,13 +34,13 @@ __get_clockfreq_via_cpuinfo (void)
|
||||
|
||||
result = 0;
|
||||
|
||||
fd = open ("/proc/cpuinfo", O_RDONLY);
|
||||
fd = __open ("/proc/cpuinfo", O_RDONLY);
|
||||
if (fd != -1)
|
||||
{
|
||||
char buf[8192];
|
||||
ssize_t n;
|
||||
|
||||
n = read (fd, buf, sizeof buf);
|
||||
n = __read (fd, buf, sizeof buf);
|
||||
if (n > 0)
|
||||
{
|
||||
char *mhz = memmem (buf, n, "Cpu0ClkTck", 7);
|
||||
@ -72,7 +72,7 @@ __get_clockfreq_via_cpuinfo (void)
|
||||
}
|
||||
}
|
||||
|
||||
close (fd);
|
||||
__close (fd);
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -86,7 +86,7 @@ __get_clockfreq_via_proc_openprom (void)
|
||||
|
||||
result = 0;
|
||||
|
||||
obp_fd = open ("/proc/openprom", O_RDONLY);
|
||||
obp_fd = __open ("/proc/openprom", O_RDONLY);
|
||||
if (obp_fd != -1)
|
||||
{
|
||||
unsigned long int buf[4096 / sizeof (unsigned long int)];
|
||||
@ -94,8 +94,8 @@ __get_clockfreq_via_proc_openprom (void)
|
||||
off_t dbase = (off_t) 0;
|
||||
ssize_t len;
|
||||
|
||||
while ((len = getdirentries (obp_fd, (char *) dirp,
|
||||
sizeof (buf), &dbase)) > 0)
|
||||
while ((len = __getdirentries (obp_fd, (char *) dirp,
|
||||
sizeof (buf), &dbase)) > 0)
|
||||
{
|
||||
struct dirent *this_dirp = dirp;
|
||||
|
||||
@ -113,13 +113,13 @@ __get_clockfreq_via_proc_openprom (void)
|
||||
__stpcpy (prop = __stpcpy (__stpcpy (node, "/proc/openprom/"),
|
||||
this_dirp->d_name),
|
||||
"/device_type");
|
||||
fd = open (node, O_RDONLY);
|
||||
fd = __open (node, O_RDONLY);
|
||||
if (fd != -1)
|
||||
{
|
||||
char type_string[128];
|
||||
int ret;
|
||||
|
||||
ret = read (fd, type_string, sizeof (type_string));
|
||||
ret = __read (fd, type_string, sizeof (type_string));
|
||||
if (ret > 0 && strncmp (type_string, "'cpu'", 5) == 0)
|
||||
{
|
||||
int clkfreq_fd;
|
||||
@ -135,7 +135,7 @@ __get_clockfreq_via_proc_openprom (void)
|
||||
close (clkfreq_fd);
|
||||
}
|
||||
}
|
||||
close (fd);
|
||||
__close (fd);
|
||||
}
|
||||
|
||||
if (result != 0)
|
||||
@ -148,7 +148,7 @@ __get_clockfreq_via_proc_openprom (void)
|
||||
if (result != 0)
|
||||
break;
|
||||
}
|
||||
close (obp_fd);
|
||||
__close (obp_fd);
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -178,7 +178,7 @@ __get_clockfreq_via_dev_openprom (void)
|
||||
|
||||
result = 0;
|
||||
|
||||
obp_dev_fd = open ("/dev/openprom", O_RDONLY);
|
||||
obp_dev_fd = __open ("/dev/openprom", O_RDONLY);
|
||||
if (obp_dev_fd != -1)
|
||||
{
|
||||
char obp_buf[8192];
|
||||
@ -188,7 +188,7 @@ __get_clockfreq_via_dev_openprom (void)
|
||||
obp_cmd->oprom_size =
|
||||
sizeof (obp_buf) - sizeof (unsigned int);
|
||||
set_obp_int (obp_cmd, 0);
|
||||
ret = ioctl (obp_dev_fd, OPROMCHILD, (char *) obp_cmd);
|
||||
ret = __ioctl (obp_dev_fd, OPROMCHILD, (char *) obp_cmd);
|
||||
if (ret == 0)
|
||||
{
|
||||
int cur_node = get_obp_int (obp_cmd);
|
||||
@ -197,20 +197,20 @@ __get_clockfreq_via_dev_openprom (void)
|
||||
{
|
||||
obp_cmd->oprom_size = sizeof (obp_buf) - sizeof (unsigned int);
|
||||
strcpy (obp_cmd->oprom_array, "device_type");
|
||||
ret = ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
|
||||
ret = __ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
|
||||
if (ret == 0
|
||||
&& strncmp (obp_cmd->oprom_array, "cpu", 3) == 0)
|
||||
{
|
||||
obp_cmd->oprom_size = (sizeof (obp_buf)
|
||||
- sizeof (unsigned int));
|
||||
strcpy (obp_cmd->oprom_array, "clock-frequency");
|
||||
ret = ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
|
||||
ret = __ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
|
||||
if (ret == 0)
|
||||
result = (hp_timing_t) get_obp_int (obp_cmd);
|
||||
}
|
||||
obp_cmd->oprom_size = sizeof (obp_buf) - sizeof (unsigned int);
|
||||
set_obp_int (obp_cmd, cur_node);
|
||||
ret = ioctl (obp_dev_fd, OPROMNEXT, (char *) obp_cmd);
|
||||
ret = __ioctl (obp_dev_fd, OPROMNEXT, (char *) obp_cmd);
|
||||
if (ret < 0)
|
||||
break;
|
||||
cur_node = get_obp_int (obp_cmd);
|
||||
|
@ -91,6 +91,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
|
@ -82,6 +82,11 @@ GLIBC_2.16
|
||||
timespec_get F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
GLIBC_2.2.5
|
||||
GLIBC_2.2.5 A
|
||||
|
@ -2080,4 +2080,9 @@ GLIBC_2.16
|
||||
xprt_unregister F
|
||||
GLIBC_2.17
|
||||
GLIBC_2.17 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
secure_getenv F
|
||||
|
Loading…
Reference in New Issue
Block a user