V5 [PATCH 0/2] Add <sys/platform/x86.h>

H.J. Lu hjl.tools@gmail.com
Thu Sep 27 19:43:00 GMT 2018


Add <sys/platform/x86.h> to provide an API to access x86 specific platform
features.  It makes raw and derived CPUID information available to
applications so that programmers can avoid complicated steps to retrieve
the same information with CPUID instructions.  2 macros are provided to
query x86 platform features:

1. HAS_CPU_FEATURE evaluates to true if CPU supports the feature. 
2. CPU_FEATURE_USABLE evaluates to true if the feature is usable.

They can be used in IFUNC resolvers, including in LD_PRELOAD shared
objects.


H.J. Lu (2):
  x86: Add <sys/platform/x86.h>
  x86: Add a LD_PRELOAD IFUNC resolver test for CPU_FEATURE_USABLE

 NEWS                                          |   3 +
 manual/platform.texi                          | 458 +++++++++++
 sysdeps/mach/hurd/i386/ld.abilist             |   2 +
 sysdeps/unix/sysv/linux/i386/ld.abilist       |   2 +
 sysdeps/unix/sysv/linux/x86_64/64/ld.abilist  |   2 +
 sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist |   2 +
 sysdeps/x86/Makefile                          |  23 +-
 sysdeps/x86/Versions                          |   3 +
 sysdeps/x86/cpu-features.c                    |  97 ++-
 sysdeps/x86/cpu-features.h                    | 234 ++----
 sysdeps/x86/dl-get-cpu-features.c             |  19 +
 sysdeps/x86/sys/platform/x86.h                | 755 ++++++++++++++++++
 sysdeps/x86/tst-get-cpu-features.c            |  29 +-
 sysdeps/x86/tst-x86-platform-1-static.c       |   1 +
 sysdeps/x86/tst-x86-platform-1.c              | 254 ++++++
 sysdeps/x86/tst-x86-platform-2.c              |  27 +
 sysdeps/x86/tst-x86-platform-3.c              |  27 +
 sysdeps/x86/tst-x86-platform-4.c              |  54 ++
 sysdeps/x86/tst-x86-platform-mod-2.c          |   2 +
 sysdeps/x86/tst-x86-platform-mod-3.c          |   2 +
 sysdeps/x86/tst-x86-platform-mod-4.c          |  37 +
 sysdeps/x86/tst-x86-platform-preload-4.c      |  62 ++
 sysdeps/x86_64/multiarch/sched_cpucount.c     |   2 +-
 sysdeps/x86_64/multiarch/test-multiarch.c     |   4 +-
 24 files changed, 1889 insertions(+), 212 deletions(-)
 create mode 100644 sysdeps/x86/sys/platform/x86.h
 create mode 100644 sysdeps/x86/tst-x86-platform-1-static.c
 create mode 100644 sysdeps/x86/tst-x86-platform-1.c
 create mode 100644 sysdeps/x86/tst-x86-platform-2.c
 create mode 100644 sysdeps/x86/tst-x86-platform-3.c
 create mode 100644 sysdeps/x86/tst-x86-platform-4.c
 create mode 100644 sysdeps/x86/tst-x86-platform-mod-2.c
 create mode 100644 sysdeps/x86/tst-x86-platform-mod-3.c
 create mode 100644 sysdeps/x86/tst-x86-platform-mod-4.c
 create mode 100644 sysdeps/x86/tst-x86-platform-preload-4.c

-- 
2.17.1



More information about the Libc-alpha mailing list