@@ -33,7 +33,7 @@
# undef INLINE_VSYSCALL
# define INLINE_VSYSCALL INLINE_SYSCALL
#else
-# include <bits/libc-vdso.h>
+# include <libc-vdso.h>
#endif
/* Cleanup handler, defined in pthread_cond_wait.c. */
@@ -20,7 +20,7 @@
#include <stddef.h>
#include <string.h>
#include <signal.h>
-#include <bits/libc-vdso.h>
+#include <libc-vdso.h>
/* This is the stack layout we see with every stack frame.
Note that every routine is required by the ABI to lay out the stack
@@ -20,7 +20,7 @@
#include <stddef.h>
#include <string.h>
#include <signal.h>
-#include <bits/libc-vdso.h>
+#include <libc-vdso.h>
/* This is the stack layout we see with every stack frame.
Note that every routine is required by the ABI to lay out the stack
deleted file mode 100644
@@ -1,31 +0,0 @@
-/* Copyright (C) 2009-2015 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/>. */
-
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#ifdef SHARED
-
-extern void (*__vdso_gettimeofday) (struct timeval *, void *)
- attribute_hidden;
-extern void (*__vdso_clock_gettime) (clockid_t, struct timespec *);
-extern void (*__vdso_clock_getres) (clockid_t, struct timespec *);
-
-#endif
-
-#endif /* _LIBC_VDSO_H */
@@ -21,7 +21,7 @@
# undef __gettimeofday
# undef __clock_gettime
# undef __clock_getres
-# include <bits/libc-vdso.h>
+# include <libc-vdso.h>
void (*__vdso_gettimeofday) (struct timeval *, void *) attribute_hidden;
void (*__vdso_clock_gettime) (clockid_t, struct timespec *);
new file mode 100644
@@ -0,0 +1,31 @@
+/* Copyright (C) 2009-2015 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/>. */
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+extern void (*__vdso_gettimeofday) (struct timeval *, void *)
+ attribute_hidden;
+extern void (*__vdso_clock_gettime) (clockid_t, struct timespec *);
+extern void (*__vdso_clock_getres) (clockid_t, struct timespec *);
+
+#endif
+
+#endif /* _LIBC_VDSO_H */
@@ -27,7 +27,7 @@
# undef INLINE_VSYSCALL
# define INLINE_VSYSCALL INLINE_SYSCALL
#else
-# include <bits/libc-vdso.h>
+# include <libc-vdso.h>
#endif
#define SYSCALL_GETRES \
@@ -27,7 +27,7 @@
# undef INLINE_VSYSCALL
# define INLINE_VSYSCALL INLINE_SYSCALL
#else
-# include <bits/libc-vdso.h>
+# include <libc-vdso.h>
#endif
#ifndef SYSCALL_GETTIME
@@ -19,7 +19,7 @@
#include <errno.h>
#include <sys/time.h>
#if HAVE_GETTIMEOFDAY_VSYSCAL
-# include <bits/libc-vdso.h>
+# include <libc-vdso.h>
#endif
/* Get the current time of day and timezone information,
deleted file mode 100644
@@ -1,76 +0,0 @@
-/* Resolve function pointers to VDSO functions.
- Copyright (C) 2005-2015 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/>. */
-
-
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#ifdef SHARED
-
-extern void *__vdso_gettimeofday attribute_hidden;
-
-extern void *__vdso_clock_gettime;
-
-extern void *__vdso_clock_getres;
-
-extern void *__vdso_get_tbfreq;
-
-extern void *__vdso_getcpu;
-
-extern void *__vdso_time;
-
-#if defined(__PPC64__) || defined(__powerpc64__)
-extern void *__vdso_sigtramp_rt64;
-#else
-extern void *__vdso_sigtramp32;
-extern void *__vdso_sigtramp_rt32;
-#endif
-
-#if (defined(__PPC64__) || defined(__powerpc64__)) && _CALL_ELF != 2
-/* The correct solution is for _dl_vdso_vsym to return the address of the OPD
- for the kernel VDSO function. That address would then be stored in the
- __vdso_* variables and returned as the result of the IFUNC resolver function.
- Yet, the kernel does not contain any OPD entries for the VDSO functions
- (incomplete implementation). However, PLT relocations for IFUNCs still expect
- the address of an OPD to be returned from the IFUNC resolver function (since
- PLT entries on PPC64 are just copies of OPDs). The solution for now is to
- create an artificial static OPD for each VDSO function returned by a resolver
- function. The TOC value is set to a non-zero value to avoid triggering lazy
- symbol resolution via .glink0/.plt0 for a zero TOC (requires thread-safe PLT
- sequences) when the dynamic linker isn't prepared for it e.g. RTLD_NOW. None
- of the kernel VDSO routines use the TOC or AUX values so any non-zero value
- will work. Note that function pointer comparisons will not use this artificial
- static OPD since those are resolved via ADDR64 relocations and will point at
- the non-IFUNC default OPD for the symbol. Lastly, because the IFUNC relocations
- are processed immediately at startup the resolver functions and this code need
- not be thread-safe, but if the caller writes to a PLT slot it must do so in a
- thread-safe manner with all the required barriers. */
-#define VDSO_IFUNC_RET(value) \
- ({ \
- static Elf64_FuncDesc vdso_opd = { .fd_toc = ~0x0 }; \
- vdso_opd.fd_func = (Elf64_Addr)value; \
- &vdso_opd; \
- })
-
-#else
-#define VDSO_IFUNC_RET(value) ((void *) (value))
-#endif
-
-#endif
-
-#endif /* _LIBC_VDSO_H */
@@ -23,7 +23,7 @@
#include <unistd.h>
#include <libc-internal.h>
#include <sysdep.h>
-#include <bits/libc-vdso.h>
+#include <libc-vdso.h>
#include <not-cancel.h>
hp_timing_t
@@ -21,7 +21,7 @@
#ifdef SHARED
# include <dl-vdso.h>
-# include <bits/libc-vdso.h>
+# include <libc-vdso.h>
# include <dl-machine.h>
void *gettimeofday_ifunc (void) __asm__ ("__gettimeofday");
@@ -21,7 +21,7 @@
# undef __gettimeofday
# undef __clock_gettime
# undef __clock_getres
-# include <bits/libc-vdso.h>
+# include <libc-vdso.h>
void *__vdso_gettimeofday attribute_hidden;
void *__vdso_clock_gettime;
new file mode 100644
@@ -0,0 +1,76 @@
+/* Resolve function pointers to VDSO functions.
+ Copyright (C) 2005-2015 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/>. */
+
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+extern void *__vdso_gettimeofday attribute_hidden;
+
+extern void *__vdso_clock_gettime;
+
+extern void *__vdso_clock_getres;
+
+extern void *__vdso_get_tbfreq;
+
+extern void *__vdso_getcpu;
+
+extern void *__vdso_time;
+
+#if defined(__PPC64__) || defined(__powerpc64__)
+extern void *__vdso_sigtramp_rt64;
+#else
+extern void *__vdso_sigtramp32;
+extern void *__vdso_sigtramp_rt32;
+#endif
+
+#if (defined(__PPC64__) || defined(__powerpc64__)) && _CALL_ELF != 2
+/* The correct solution is for _dl_vdso_vsym to return the address of the OPD
+ for the kernel VDSO function. That address would then be stored in the
+ __vdso_* variables and returned as the result of the IFUNC resolver function.
+ Yet, the kernel does not contain any OPD entries for the VDSO functions
+ (incomplete implementation). However, PLT relocations for IFUNCs still expect
+ the address of an OPD to be returned from the IFUNC resolver function (since
+ PLT entries on PPC64 are just copies of OPDs). The solution for now is to
+ create an artificial static OPD for each VDSO function returned by a resolver
+ function. The TOC value is set to a non-zero value to avoid triggering lazy
+ symbol resolution via .glink0/.plt0 for a zero TOC (requires thread-safe PLT
+ sequences) when the dynamic linker isn't prepared for it e.g. RTLD_NOW. None
+ of the kernel VDSO routines use the TOC or AUX values so any non-zero value
+ will work. Note that function pointer comparisons will not use this artificial
+ static OPD since those are resolved via ADDR64 relocations and will point at
+ the non-IFUNC default OPD for the symbol. Lastly, because the IFUNC relocations
+ are processed immediately at startup the resolver functions and this code need
+ not be thread-safe, but if the caller writes to a PLT slot it must do so in a
+ thread-safe manner with all the required barriers. */
+#define VDSO_IFUNC_RET(value) \
+ ({ \
+ static Elf64_FuncDesc vdso_opd = { .fd_toc = ~0x0 }; \
+ vdso_opd.fd_func = (Elf64_Addr)value; \
+ &vdso_opd; \
+ })
+
+#else
+#define VDSO_IFUNC_RET(value) ((void *) (value))
+#endif
+
+#endif
+
+#endif /* _LIBC_VDSO_H */
@@ -17,7 +17,7 @@
#include <sched.h>
#include <sysdep.h>
-#include <bits/libc-vdso.h>
+#include <libc-vdso.h>
int
@@ -21,7 +21,7 @@
# include <time.h>
# include <sysdep.h>
# include <dl-vdso.h>
-# include <bits/libc-vdso.h>
+# include <libc-vdso.h>
# include <dl-machine.h>
void *time_ifunc (void) asm ("time");
deleted file mode 100644
@@ -1,34 +0,0 @@
-/* Resolve function pointers to VDSO functions.
- Copyright (C) 2008-2015 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/>. */
-
-
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#ifdef SHARED
-
-extern long int (*__vdso_gettimeofday) (struct timeval *, void *)
- attribute_hidden;
-
-extern long int (*__vdso_clock_gettime) (clockid_t, struct timespec *);
-
-extern long int (*__vdso_clock_getres) (clockid_t, struct timespec *);
-
-#endif
-
-#endif /* _LIBC_VDSO_H */
@@ -21,7 +21,7 @@
# undef __gettimeofday
# undef __clock_gettime
# undef __clock_getres
-# include <bits/libc-vdso.h>
+# include <libc-vdso.h>
long int (*__vdso_gettimeofday) (struct timeval *, void *) attribute_hidden;
new file mode 100644
@@ -0,0 +1,34 @@
+/* Resolve function pointers to VDSO functions.
+ Copyright (C) 2008-2015 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/>. */
+
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+extern long int (*__vdso_gettimeofday) (struct timeval *, void *)
+ attribute_hidden;
+
+extern long int (*__vdso_clock_gettime) (clockid_t, struct timespec *);
+
+extern long int (*__vdso_clock_getres) (clockid_t, struct timespec *);
+
+#endif
+
+#endif /* _LIBC_VDSO_H */
deleted file mode 100644
@@ -1,40 +0,0 @@
-/* Resolve function pointers to VDSO functions.
- Copyright (C) 2012-2015 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/>. */
-
-
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#ifdef SHARED
-
-struct syscall_return_value
-{
- long int value;
- long int error;
-};
-
-extern struct syscall_return_value (*__vdso_gettimeofday) (struct timeval *,
- void *)
- attribute_hidden;
-
-extern struct syscall_return_value (*__vdso_clock_gettime) (clockid_t,
- struct timespec *);
-
-#endif
-
-#endif /* _LIBC_VDSO_H */
new file mode 100644
@@ -0,0 +1,40 @@
+/* Resolve function pointers to VDSO functions.
+ Copyright (C) 2012-2015 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/>. */
+
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+struct syscall_return_value
+{
+ long int value;
+ long int error;
+};
+
+extern struct syscall_return_value (*__vdso_gettimeofday) (struct timeval *,
+ void *)
+ attribute_hidden;
+
+extern struct syscall_return_value (*__vdso_clock_gettime) (clockid_t,
+ struct timespec *);
+
+#endif
+
+#endif /* _LIBC_VDSO_H */