]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
BZ#14743: Move clock_* symbols from librt to libc.
authorRoland McGrath <roland@hack.frob.com>
Wed, 24 Oct 2012 21:50:46 +0000 (14:50 -0700)
committerRoland McGrath <roland@hack.frob.com>
Wed, 24 Oct 2012 21:50:46 +0000 (14:50 -0700)
56 files changed:
ChangeLog
NEWS
config.h.in
configure
configure.in
include/time.h
nptl/ChangeLog
nptl/Makefile
nscd/Makefile
ports/ChangeLog.alpha
ports/ChangeLog.arm
ports/ChangeLog.ia64
ports/ChangeLog.m68k
ports/ChangeLog.mips
ports/ChangeLog.powerpc
ports/ChangeLog.tile
ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c
ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist
posix/Makefile
rt/Makefile
rt/Versions
rt/clock-compat.c [new file with mode: 0644]
rt/clock_getcpuclockid.c
rt/clock_getres.c
rt/clock_gettime.c
rt/clock_nanosleep.c
rt/clock_settime.c
sysdeps/posix/clock_getres.c
sysdeps/unix/clock_gettime.c
sysdeps/unix/clock_nanosleep.c
sysdeps/unix/clock_settime.c
sysdeps/unix/sysv/linux/clock_getcpuclockid.c
sysdeps/unix/sysv/linux/clock_nanosleep.c
sysdeps/unix/sysv/linux/i386/get_clockfreq.c
sysdeps/unix/sysv/linux/i386/nptl/libc.abilist
sysdeps/unix/sysv/linux/powerpc/Makefile
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist
sysdeps/unix/sysv/linux/sh/nptl/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist
sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist
sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist

index 3c9a31e2ebbde2ba50bc8ea3609b3fb091938c1f..28f485a06a73d61b61fff31781bb8bf4dcd4fd3f 100644 (file)
--- a/ChangeLog
+++ b/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.
diff --git a/NEWS b/NEWS
index 0e10112a357964c5adeaed3643796cc7a73ffab4..a1cc1287fdeeb305cd0a06159ce60331ebf5f626 100644 (file)
--- a/NEWS
+++ b/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.
 \f
 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:
index 5f9f3c39d5a07cfec3e52dabf6f3e99402fe8634..653df54e563bf905e258873b1f9c25cb65fa0a22 100644 (file)
 /* 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
+
 /*
 \f */
 
index 8cd403bf4e7d54e161e95e3f6bc172c72c599802..35b06c1473eeaed0871d7eb47af514fb5fb87362 100755 (executable)
--- a/configure
+++ b/configure
@@ -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.
 
index 4f7bc098429060075faf82e38e50e75c13230b15..928b7b62a954936c1ca761c77915218288b1a61c 100644 (file)
@@ -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)
index f056542a1094b142a0d5d154edd2c98fad7a54f3..9be15b97398c61f3242101eeb9d745911701fa15 100644 (file)
@@ -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;
index 5a3ab06604d0bec5ab6064cd6d645da536ead6a0..d0b5d6c7b8b1cf74b9ad8b4f61f435a8d9c1949a 100644 (file)
@@ -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.
index 21a876652e153b7c170a959ffed0bb915ff77936..7387a640b993103c8ce3ebd80f9624ad304b0317 100644 (file)
@@ -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)
index de754d2a43a05945866031d11f0010c14dd90df5..0f8efcfb7c803c79c8c96c5f5a46c0be1c14c4c2 100644 (file)
@@ -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
index 8cddb777eb55b24b39f5f7774c15687d868fac3a..8ddde9f25f0ee6cf54f40c75f5144f0ad8e4cff3 100644 (file)
@@ -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.
index 6fcfc7ada8e77ceaff7dc3d0ee2207a1ff79facf..0b76f5ed22db05362b4f266c3a5ab065646bd927 100644 (file)
@@ -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):
index 641033b29804ec8fe5414c21e62e8d43a53b2ba0..8d8f4dcd7c03596b39adc964d02707a24e43ae12 100644 (file)
@@ -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.
index e9b4f3689065ea3fe7b6ba2ac7f816fcc6b655a7..dda8cf7ee870e6601c071e202e0efc5906c2014e 100644 (file)
@@ -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
index 12af7965bb7017d547dd05ad2ff600bcd8d4cda3..a6aecad24e3e010a1b54cc3924213a6fbd817bc3 100644 (file)
@@ -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
index aa5595602167fb4121b7c97c369ab6b39ee747ac..642e7165c6c915fe45fc4e5e2d0859bb486328e2 100644 (file)
@@ -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:
        * 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.
index dfe5e9c60fa67491d328a07efcf065d002ec0076..93c99ac695bed6fa8d19996da94d2abfef9b0dfa 100644 (file)
@@ -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.
index f8a3295add3d538b53a920eff6d50b40a39f968b..1d0cc7ec317ae11464fa8637707ed121d652f7e9 100644 (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
index 5523fdd2a3da5bb1de106533649fefe19ee8929c..ceab6b2cd9d04844f2883a3a772acecbab731809 100644 (file)
@@ -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
index 4c1777a5165cec5e215ed0331ac8b35a17f0a451..cb8025ebe04d7ea6610ccbba4c10170d00e0027c 100644 (file)
@@ -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;
index b73f5ca8f74f96644f87f7b62da4dec3709519f0..b3510fe2a281081c92f68bcd72c8e6d22cca5480 100644 (file)
@@ -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
index 9a924571e889f732feeba638ebad7b405e1bfddf..3c40379aacde4958ea02648def4ea2477a7ac428 100644 (file)
@@ -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
index fbcd20897bbab7c4b58b167f7f80aba1637969a4..f998b1b2764255b3f5f874c0eaf7b5b5172413eb 100644 (file)
@@ -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
index 54e8d1a94e942af94a44c8589123714f1bd581b8..73788692361e5b2d1dfc28c3284830fdc9916561 100644 (file)
@@ -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
index 0e21194ac12d2edacfa9ba259d657bb172cf6444..22b3068d8f089ef5545917b39e0b68d0122beb97 100644 (file)
@@ -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
index 481162e99f74f00515c526b0c6ba0aacaf25084f..f2682b39c0fcc68dc65dc89f4c982c7de1d9cd41 100644 (file)
@@ -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
index 48f0c69eb87cf3489d74310c641f5f0c95aa2416..d79b2df55d47c3a6e1dae718302a3a4dd3537be6 100644 (file)
@@ -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
index 3aa70a1004e0e4ed7020023a493de15794f1e500..f61740567526d79b5a00fac00fb8f2b35b328739 100644 (file)
@@ -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
index 48f0c69eb87cf3489d74310c641f5f0c95aa2416..d79b2df55d47c3a6e1dae718302a3a4dd3537be6 100644 (file)
@@ -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
index 86e6c6bedeba9db8e9c7b4df2d409d4acdc76a65..add2ca5be6f01683477e6d6ae2b00fad680c53a7 100644 (file)
@@ -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 > $@
 
index 26d4ffaaf60781f8098727cd98dd02e406896c18..4805f8b5b7878de0bf34509fcb8bc618ad690fcd 100644 (file)
@@ -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 \
index 2921c9c8ab5e11b550c4c239727d024692906bfc..91e3fd2a204ded9c1c0ab25e606a02788e5e4458 100644 (file)
@@ -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;
 
diff --git a/rt/clock-compat.c b/rt/clock-compat.c
new file mode 100644 (file)
index 0000000..16e4109
--- /dev/null
@@ -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
index 08972f54fd2e119b46dd57f7a2bcf28131354622..4bead25685bda54a15289d59adc7c36c8b7e3046 100644 (file)
@@ -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)
index 576c9bf73860adcebc10606b8b2a3c4845d40e37..162c8a56971c0adf0e1578852b1c6c4017ad85ce 100644 (file)
@@ -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>
index 1203f0117956a9dbdcb7f834046115939b3de319..5139e8724c0d388a5b795c4c99a72a4e54234700 100644 (file)
@@ -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>
index 0b16ad2d4f08b01ee349af42499341f6b43fc272..d9a0e92d4b32fe8d61db2fcbbc07f41efa29b825 100644 (file)
@@ -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>
index 3b3c3c48d556985b1ea444116e5b85fa35564859..6f7cdd6edcdf753bd82e41151f1fa2e0c0a1b420 100644 (file)
@@ -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>
index 938877e937bd4f4bcff1d09be3993d568e54f28f..678257b3aa89476d5def362571c1a49f0d9a5744 100644 (file)
@@ -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)
index db6643a1c49713f769619b991e10ab31c54b36cd..c9a91e3376888a9f3996aa1d0d0a6e92242751cc 100644 (file)
@@ -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)
index 1b4399655189c0c8da56a2ee3e81227c0b291f22..c39f6a79ca42e4110d46be0903315f914cc8850a 100644 (file)
@@ -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)
index 97caa0d0fd817a2e225a414de8e6cd308a997774..e09463a561e63743f41f109508aefaaad301e286 100644 (file)
@@ -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)
index 8700354a9222efb7c8844fc4f25cf741bda555ec..c00f5ea064eb46e5f112e60cc36934629a9ab9fa 100644 (file)
@@ -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)
index 110296363af798c1e2d5fc9b6ab7d47c67fadbd7..b12bd868f227eee23556d4e64c89eb37fac1ff61 100644 (file)
@@ -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)
index 821e35e4c28ac602267cfd725e605a6a3c603888..920b0d553e94255ef8df1ca51fce8e4bc2ab714f 100644 (file)
@@ -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;
index 0e8576fdd52b4db4455186d7fe47449f33af5cac..67d592959b2afb66ac48634d735dc3782abeb088 100644 (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
index 6bdf4dc7f514c15a918460e273b3d42dfed93cff..4ff7e849c3ffa0fa877475dc9c4bc67287e32636 100644 (file)
@@ -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
index ab96361d403a075e0ed99e3b8d22a75365adf0b2..a3cd89540d0ad37c80eeceee6b8b851279c402bc 100644 (file)
@@ -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
index a60b72ad1aa0e208f747a27d2288528475a45e7a..0a80d0c57d5a043ef0044bca50bf060817635185 100644 (file)
@@ -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
index ff0b82f51f835173a3893745be24e35aaf54d59a..d9914ff53fa2c98d97b6030d07395c777ad373b1 100644 (file)
@@ -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
index 2fb0786942c201d097f2f7604273fe3998e3c78f..ef1ead30697d78534b621f7ee6b78419f22477a5 100644 (file)
@@ -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
index 3fd150e7e57b19029bd028a40fb997ab0337deeb..733b550fee04474f6d9d9fc713a2193c4fe2bf8d 100644 (file)
@@ -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
index 7d5a3429fdc5e7ab9e989d1701cfc089e08689fa..3a96ea883bc594bf002851881ca28868fefd3c19 100644 (file)
@@ -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
index cbb817952e3beb19ae5ffa50687a3b548746a315..67ff77fa8cb2b21a42ee87e58b4d400c33456992 100644 (file)
@@ -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);
index 6d6e57c114ba4c25d025716f87a840671654b610..aa892b8b8bcb3500a6d9b843b30e576dbfc1e36a 100644 (file)
@@ -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
index d6ab153e19fcc9d83998f2369f5c5edf159297e2..a42d424cdebc48a49016928e03ac7667a2f32ea8 100644 (file)
@@ -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
index 65bcead8bc1eb897deb2d3960536e99c48f6ec90..108b80fb43ee75a6f9787e354596ebc10d0638d0 100644 (file)
@@ -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