[PATCH v2] vDSO cleanup

Adhemerval Zanella adhemerval.zanella@linaro.org
Mon Apr 20 16:47:00 GMT 2015


Hi all,

Motivate by the recent ARM32 vDSO RFC patch [1], this is second spin on
a vDSO cleanup patches.  As before the idea ia to simplify current
implementation and make it easier to add further vDSO symbols on other
arches..

The patchset is divided in three parts:

1. Create a default sysdep-vdso.h header with vdso symbol access to be
   used on all arches.  It also consolidates the PTR_MANGLE/DEMANGLE on
   all ports.

2. Consolidate gettimeofday across aarch64/s390/tile: this simplify current
   implementation for this arch by eliminating shard code.

3. x86: clock_gettime and timespec_get vDSO cleanup: simplify the x86 
   implementation by using the HAVE_CLOCK_GETTIME_VSYSCALL used by other
   arches.

I have tested this patchset on the machines I have access: i686, x86_64,
arm-gnu-eabi, arm-gnu-eabihf, aarch64, and powerpc64le.  I have also built
on s390-linux, s390x-linux and tilepro-linux to check for build breaks.

--

 ChangeLog                                          | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 sysdeps/unix/sysv/linux/aarch64/gettimeofday.c     |  38 --------------------------------------
 sysdeps/unix/sysv/linux/aarch64/init-first.c       |  20 ++++++++++++++------
 sysdeps/unix/sysv/linux/aarch64/libc-vdso.h        |   8 +++++---
 sysdeps/unix/sysv/linux/aarch64/sysdep.h           |  54 +-----------------------------------------------------
 sysdeps/unix/sysv/linux/clock_getres.c             |  10 +++-------
 sysdeps/unix/sysv/linux/clock_gettime.c            |  23 +++++------------------
 sysdeps/unix/sysv/linux/gettimeofday.c             |  39 +++++++++++++++++++++++++++++++++++++++
 sysdeps/unix/sysv/linux/i386/init-first.c          |   6 +++---
 sysdeps/unix/sysv/linux/i386/sysdep.h              |   4 ++++
 sysdeps/unix/sysv/linux/powerpc/init-first.c       |  56 +++++++++++++++++++++++++++++++++++++-------------------
 sysdeps/unix/sysv/linux/powerpc/libc-vdso.h        |  24 +++++++++++-------------
 sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h |  95 +++++++++++++++++++++++-----------------------------------------------------------------------
 sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h |  72 +++++++++--------------------------------------------------------------
 sysdeps/unix/sysv/linux/powerpc/sched_getcpu.c     |   3 +--
 sysdeps/unix/sysv/linux/s390/gettimeofday.c        |  39 ---------------------------------------
 sysdeps/unix/sysv/linux/s390/init-first.c          |  23 +++++++++++++++--------
 sysdeps/unix/sysv/linux/s390/libc-vdso.h           |  14 ++++++++------
 sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h      |  64 +++++----------------------------------------------------------
 sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h      |  64 +++++----------------------------------------------------------
 sysdeps/unix/sysv/linux/sysdep-vdso.h              |  98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 sysdeps/unix/sysv/linux/tile/gettimeofday.c        |  32 --------------------------------
 sysdeps/unix/sysv/linux/tile/init-first.c          |  18 ++++++++++++------
 sysdeps/unix/sysv/linux/tile/libc-vdso.h           |  14 ++++++++------
 sysdeps/unix/sysv/linux/tile/sysdep.h              |  69 +++++++++-----------------------------------------------------------
 sysdeps/unix/sysv/linux/timespec_get.c             |  21 ++++++---------------
 sysdeps/unix/sysv/linux/x86/clock_gettime.c        |  34 ----------------------------------
 sysdeps/unix/sysv/linux/x86/libc-vdso.h            |   4 +++-
 sysdeps/unix/sysv/linux/x86/timespec_get.c         |  29 -----------------------------
 sysdeps/unix/sysv/linux/x86_64/init-first.c        |   9 +++++----
 sysdeps/unix/sysv/linux/x86_64/sysdep.h            |  57 +++------------------------------------------------------
 31 files changed, 459 insertions(+), 709 deletions(-)



More information about the Libc-alpha mailing list