This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug dynamic-link/21391] x86: Set dl_platform and dl_hwcap from CPU features


https://sourceware.org/bugzilla/show_bug.cgi?id=21391

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  1432d38ea04ab5e96f21a382101856db5b49ad8a (commit)
      from  3b5f801ddb838311b5b05c218caac3bdb00d7c95 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1432d38ea04ab5e96f21a382101856db5b49ad8a

commit 1432d38ea04ab5e96f21a382101856db5b49ad8a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 3 13:42:42 2017 -0700

    x86: Set dl_platform and dl_hwcap from CPU features [BZ #21391]

    dl_platform and dl_hwcap are set from AT_PLATFORM and AT_HWCAP very
    early during startup.  They are used by dynamic linker to determine
    platform and build an array of hardware capability names, which are
    added to search path when loading shared object.  dl_platform and
    dl_hwcap are unused on x86-64.  On i386, i386, i486, i586 and i686
    platforms were supported and only SSE2 capability was used.

    On x86, usage of AT_PLATFORM and AT_HWCAP to determine platform and
    processor capabilities is obsolete since all information is available
    in dl_x86_cpu_features.  This patch sets dl_platform and dl_hwcap from
    dl_x86_cpu_features in dynamic linker.  On i386, the available plaforms
    are changed to i586 and i686 since i386 has been deprecated.  On x86-64,
    the available plaforms are haswell, which is for Haswell class processors
    with BMI1, BMI2, LZCNT, MOVBE, POPCNT, AVX2 and FMA, and xeon_phi, which
    is for Xeon Phi class processors with AVX512F, AVX512CD, AVX512ER and
    AVX512PF.  A capability, avx512_1, is also added to x86-64 for AVX512
    ISAs: AVX512F, AVX512CD, AVX512BW, AVX512DQ and AVX512VL.

        [BZ #21391]
        * sysdeps/i386/dl-machine.h (dl_platform_init) [IS_IN (rtld)]:
        Only call init_cpu_features.
        [!IS_IN (rtld)]: Only set GLRO(dl_platform) to NULL if needed.
        * sysdeps/x86_64/dl-machine.h (dl_platform_init): Likewise.
        * sysdeps/i386/dl-procinfo.h: Removed.
        * sysdeps/unix/sysv/linux/i386/dl-procinfo.h: Don't include
        <sysdeps/i386/dl-procinfo.h> nor <ldsodefs.h>.  Include
        <sysdeps/x86/dl-procinfo.h>.
        (_dl_procinfo): Replace _DL_HWCAP_COUNT with 32.
        * sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h [!IS_IN (ldconfig)]:
        Include <sysdeps/x86/dl-procinfo.h> instead of
         <sysdeps/generic/dl-procinfo.h>.
        * sysdeps/x86/cpu-features.c: Include <dl-hwcap.h>.
        (init_cpu_features): Set dl_platform, dl_hwcap and dl_hwcap_mask.
        * sysdeps/x86/cpu-features.h (bit_cpu_LZCNT): New.
        (bit_cpu_MOVBE): Likewise.
        (bit_cpu_BMI1): Likewise.
        (bit_cpu_BMI2): Likewise.
        (index_cpu_BMI1): Likewise.
        (index_cpu_BMI2): Likewise.
        (index_cpu_LZCNT): Likewise.
        (index_cpu_MOVBE): Likewise.
        (index_cpu_POPCNT): Likewise.
        (reg_BMI1): Likewise.
        (reg_BMI2): Likewise.
        (reg_LZCNT): Likewise.
        (reg_MOVBE): Likewise.
        (reg_POPCNT): Likewise.
        * sysdeps/x86/dl-hwcap.h: New file.
        * sysdeps/x86/dl-procinfo.h: Likewise.
        * sysdeps/x86/dl-procinfo.c (_dl_x86_hwcap_flags): New.
        (_dl_x86_platforms): Likewise.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                    |   36 +++++++++
 sysdeps/i386/dl-machine.h                    |   10 +-
 sysdeps/i386/dl-procinfo.c                   |   21 +-----
 sysdeps/i386/dl-procinfo.h                   |  102 --------------------------
 sysdeps/unix/sysv/linux/i386/dl-procinfo.h   |    6 +-
 sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h |    2 +-
 sysdeps/x86/cpu-features.c                   |   48 ++++++++++++
 sysdeps/x86/cpu-features.h                   |   15 ++++
 sysdeps/x86/dl-hwcap.h                       |   75 +++++++++++++++++++
 sysdeps/x86/dl-procinfo.c                    |   38 +++++++++-
 sysdeps/{mips => x86}/dl-procinfo.h          |   38 +++------
 sysdeps/x86_64/dl-machine.h                  |   10 +-
 12 files changed, 238 insertions(+), 163 deletions(-)
 delete mode 100644 sysdeps/i386/dl-procinfo.h
 create mode 100644 sysdeps/x86/dl-hwcap.h
 copy sysdeps/{mips => x86}/dl-procinfo.h (54%)

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]