From 7bf8fb104226407b75103b95525364c4667c869f Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Mon, 13 Apr 2015 16:38:16 -0300 Subject: libc-vdso.h place consolidation This patch moves the libc-vdso.h internal header from bits folder to default architecture one and also corrects the remaning includes in the files. --- sysdeps/unix/sysv/linux/aarch64/bits/libc-vdso.h | 31 ---------- sysdeps/unix/sysv/linux/aarch64/gettimeofday.c | 2 +- sysdeps/unix/sysv/linux/aarch64/init-first.c | 2 +- sysdeps/unix/sysv/linux/aarch64/libc-vdso.h | 31 ++++++++++ sysdeps/unix/sysv/linux/clock_getres.c | 2 +- sysdeps/unix/sysv/linux/clock_gettime.c | 2 +- sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h | 76 ------------------------ sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c | 2 +- sysdeps/unix/sysv/linux/powerpc/gettimeofday.c | 2 +- sysdeps/unix/sysv/linux/powerpc/init-first.c | 2 +- sysdeps/unix/sysv/linux/powerpc/libc-vdso.h | 76 ++++++++++++++++++++++++ sysdeps/unix/sysv/linux/powerpc/sched_getcpu.c | 2 +- sysdeps/unix/sysv/linux/powerpc/time.c | 2 +- sysdeps/unix/sysv/linux/s390/bits/libc-vdso.h | 34 ----------- sysdeps/unix/sysv/linux/s390/gettimeofday.c | 2 +- sysdeps/unix/sysv/linux/s390/init-first.c | 2 +- sysdeps/unix/sysv/linux/s390/libc-vdso.h | 34 +++++++++++ sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h | 40 ------------- sysdeps/unix/sysv/linux/tile/gettimeofday.c | 2 +- sysdeps/unix/sysv/linux/tile/init-first.c | 2 +- sysdeps/unix/sysv/linux/tile/libc-vdso.h | 40 +++++++++++++ sysdeps/unix/sysv/linux/timespec_get.c | 2 +- 22 files changed, 195 insertions(+), 195 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/libc-vdso.h create mode 100644 sysdeps/unix/sysv/linux/aarch64/libc-vdso.h delete mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h create mode 100644 sysdeps/unix/sysv/linux/powerpc/libc-vdso.h delete mode 100644 sysdeps/unix/sysv/linux/s390/bits/libc-vdso.h create mode 100644 sysdeps/unix/sysv/linux/s390/libc-vdso.h delete mode 100644 sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h create mode 100644 sysdeps/unix/sysv/linux/tile/libc-vdso.h (limited to 'sysdeps/unix/sysv/linux') diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/aarch64/bits/libc-vdso.h deleted file mode 100644 index 1f6bb36c3b..0000000000 --- a/sysdeps/unix/sysv/linux/aarch64/bits/libc-vdso.h +++ /dev/null @@ -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 - . */ - -#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 */ diff --git a/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c b/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c index 950666fda7..67b7f6d566 100644 --- a/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c +++ b/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c @@ -21,7 +21,7 @@ #undef __gettimeofday -#include +#include /* Get the current time of day and timezone information, putting it into *tv and *tz. If tz is null, *tz is not filled. diff --git a/sysdeps/unix/sysv/linux/aarch64/init-first.c b/sysdeps/unix/sysv/linux/aarch64/init-first.c index 01241aa340..d99c821f6d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/init-first.c +++ b/sysdeps/unix/sysv/linux/aarch64/init-first.c @@ -21,7 +21,7 @@ # undef __gettimeofday # undef __clock_gettime # undef __clock_getres -# include +# include void (*__vdso_gettimeofday) (struct timeval *, void *) attribute_hidden; void (*__vdso_clock_gettime) (clockid_t, struct timespec *); diff --git a/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h b/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h new file mode 100644 index 0000000000..1f6bb36c3b --- /dev/null +++ b/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h @@ -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 + . */ + +#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 */ diff --git a/sysdeps/unix/sysv/linux/clock_getres.c b/sysdeps/unix/sysv/linux/clock_getres.c index 60fbde6100..9b31d8c925 100644 --- a/sysdeps/unix/sysv/linux/clock_getres.c +++ b/sysdeps/unix/sysv/linux/clock_getres.c @@ -27,7 +27,7 @@ # undef INLINE_VSYSCALL # define INLINE_VSYSCALL INLINE_SYSCALL #else -# include +# include #endif #define SYSCALL_GETRES \ diff --git a/sysdeps/unix/sysv/linux/clock_gettime.c b/sysdeps/unix/sysv/linux/clock_gettime.c index 57db8ee4d5..93aa0951d7 100644 --- a/sysdeps/unix/sysv/linux/clock_gettime.c +++ b/sysdeps/unix/sysv/linux/clock_gettime.c @@ -27,7 +27,7 @@ # undef INLINE_VSYSCALL # define INLINE_VSYSCALL INLINE_SYSCALL #else -# include +# include #endif #ifndef SYSCALL_GETTIME diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h deleted file mode 100644 index 63a7a9bf52..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h +++ /dev/null @@ -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 - . */ - - -#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 */ diff --git a/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c b/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c index fe8c5a15b3..5b6bb51ab5 100644 --- a/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c +++ b/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include hp_timing_t diff --git a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c index f50cf7e136..f561ac7d15 100644 --- a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c +++ b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c @@ -21,7 +21,7 @@ #ifdef SHARED # include -# include +# include # include void *gettimeofday_ifunc (void) __asm__ ("__gettimeofday"); diff --git a/sysdeps/unix/sysv/linux/powerpc/init-first.c b/sysdeps/unix/sysv/linux/powerpc/init-first.c index c1903ca778..b4917d12a5 100644 --- a/sysdeps/unix/sysv/linux/powerpc/init-first.c +++ b/sysdeps/unix/sysv/linux/powerpc/init-first.c @@ -21,7 +21,7 @@ # undef __gettimeofday # undef __clock_gettime # undef __clock_getres -# include +# include void *__vdso_gettimeofday attribute_hidden; void *__vdso_clock_gettime; diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h b/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h new file mode 100644 index 0000000000..63a7a9bf52 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h @@ -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 + . */ + + +#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 */ diff --git a/sysdeps/unix/sysv/linux/powerpc/sched_getcpu.c b/sysdeps/unix/sysv/linux/powerpc/sched_getcpu.c index 11d3d6b60e..5bf540c19a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sched_getcpu.c +++ b/sysdeps/unix/sysv/linux/powerpc/sched_getcpu.c @@ -17,7 +17,7 @@ #include #include -#include +#include int diff --git a/sysdeps/unix/sysv/linux/powerpc/time.c b/sysdeps/unix/sysv/linux/powerpc/time.c index d72e651eb3..0c26508f43 100644 --- a/sysdeps/unix/sysv/linux/powerpc/time.c +++ b/sysdeps/unix/sysv/linux/powerpc/time.c @@ -21,7 +21,7 @@ # include # include # include -# include +# include # include void *time_ifunc (void) asm ("time"); diff --git a/sysdeps/unix/sysv/linux/s390/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/s390/bits/libc-vdso.h deleted file mode 100644 index 3fd3d06b79..0000000000 --- a/sysdeps/unix/sysv/linux/s390/bits/libc-vdso.h +++ /dev/null @@ -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 - . */ - - -#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 */ diff --git a/sysdeps/unix/sysv/linux/s390/gettimeofday.c b/sysdeps/unix/sysv/linux/s390/gettimeofday.c index 68acca4c9a..e8dee26842 100644 --- a/sysdeps/unix/sysv/linux/s390/gettimeofday.c +++ b/sysdeps/unix/sysv/linux/s390/gettimeofday.c @@ -21,7 +21,7 @@ #include #include -#include +#include /* Get the current time of day and timezone information, putting it into *TV and *TZ. If TZ is NULL, *TZ is not filled. diff --git a/sysdeps/unix/sysv/linux/s390/init-first.c b/sysdeps/unix/sysv/linux/s390/init-first.c index 3f167a7de2..2e00a99866 100644 --- a/sysdeps/unix/sysv/linux/s390/init-first.c +++ b/sysdeps/unix/sysv/linux/s390/init-first.c @@ -21,7 +21,7 @@ # undef __gettimeofday # undef __clock_gettime # undef __clock_getres -# include +# include long int (*__vdso_gettimeofday) (struct timeval *, void *) attribute_hidden; diff --git a/sysdeps/unix/sysv/linux/s390/libc-vdso.h b/sysdeps/unix/sysv/linux/s390/libc-vdso.h new file mode 100644 index 0000000000..3fd3d06b79 --- /dev/null +++ b/sysdeps/unix/sysv/linux/s390/libc-vdso.h @@ -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 + . */ + + +#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 */ diff --git a/sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h deleted file mode 100644 index 44f828630f..0000000000 --- a/sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h +++ /dev/null @@ -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 - . */ - - -#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 */ diff --git a/sysdeps/unix/sysv/linux/tile/gettimeofday.c b/sysdeps/unix/sysv/linux/tile/gettimeofday.c index 05c6298712..8d34b403a2 100644 --- a/sysdeps/unix/sysv/linux/tile/gettimeofday.c +++ b/sysdeps/unix/sysv/linux/tile/gettimeofday.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include int __gettimeofday (struct timeval *tv, struct timezone *tz) diff --git a/sysdeps/unix/sysv/linux/tile/init-first.c b/sysdeps/unix/sysv/linux/tile/init-first.c index 75dbfd79b9..6b0e26a35e 100644 --- a/sysdeps/unix/sysv/linux/tile/init-first.c +++ b/sysdeps/unix/sysv/linux/tile/init-first.c @@ -17,7 +17,7 @@ #ifdef SHARED #include -#include +#include struct syscall_return_value (*__vdso_gettimeofday) (struct timeval *, void *) attribute_hidden; diff --git a/sysdeps/unix/sysv/linux/tile/libc-vdso.h b/sysdeps/unix/sysv/linux/tile/libc-vdso.h new file mode 100644 index 0000000000..44f828630f --- /dev/null +++ b/sysdeps/unix/sysv/linux/tile/libc-vdso.h @@ -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 + . */ + + +#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 */ diff --git a/sysdeps/unix/sysv/linux/timespec_get.c b/sysdeps/unix/sysv/linux/timespec_get.c index c1626952c1..25616493cd 100644 --- a/sysdeps/unix/sysv/linux/timespec_get.c +++ b/sysdeps/unix/sysv/linux/timespec_get.c @@ -22,7 +22,7 @@ # undef INTERNAL_VSYSCALL # define INTERNAL_VSYSCALL INTERNAL_SYSCALL #else -# include +# include #endif #ifndef INTERNAL_GETTIME -- cgit 1.4.1