From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) by sourceware.org (Postfix) with ESMTPS id 567AC385DC1A for ; Sun, 6 Dec 2020 14:49:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 567AC385DC1A Received: by mail-pf1-x443.google.com with SMTP id q22so7247598pfk.12 for ; Sun, 06 Dec 2020 06:49:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=WTej6RGCE3wfz0rFrUdzB2Fmb/Pzc5y7cjeC/xj8aBc=; b=N3T9/ghqbZeuczwPweMSZx30FGVCZ5i+CXm0qM+f3h8qzEWPjD+Utr5H/gKN7hwbWq GlnrLFlgTHqfbK5wi9nAX2/GNIZg8vfIaVfWw+9MJD4PR6gSRkut78yFERWluuyki5BF XCFrnTYy5LhYiPJ6WE1FVX3RVF7izwHbV96DaUL4/2r+9gCN+kWyW2q+Ib0w4yTdTpaz mYmHo+N5GriU78zyv6j8DZaI+IOxu/qkezy7ti5Vc8VLzkY8pA/5e+PwyR73ftrmx/pF 7Ys13sOljtOMTWmGgNioD7XYg6+RRgSXbjaFtF2baIMvomcIgbfu0Fvevgu21eY0wm6X hjBQ== X-Gm-Message-State: AOAM533bSxr7s43W2ws1mhK3qRSo42U4kfIEg83H4trYKbrsx24Fgviy utCuWhLPzS0AsBlvjYC7A80= X-Google-Smtp-Source: ABdhPJxcHpeejoQ8EM5oiWQhl+fqBZQNsTP/Z0DNlQt/cTuGzWFNUTaIyd6jqt9A9ojw3ei2dwc/9Q== X-Received: by 2002:aa7:9429:0:b029:197:f974:c989 with SMTP id y9-20020aa794290000b0290197f974c989mr12606333pfo.30.1607266196458; Sun, 06 Dec 2020 06:49:56 -0800 (PST) Received: from gnu-cfl-2.localdomain (c-69-181-90-243.hsd1.ca.comcast.net. [69.181.90.243]) by smtp.gmail.com with ESMTPSA id e13sm248023pgh.54.2020.12.06.06.49.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Dec 2020 06:49:55 -0800 (PST) Received: from gnu-cfl-2.localdomain (localhost [IPv6:::1]) by gnu-cfl-2.localdomain (Postfix) with ESMTP id AA2701A013F; Sun, 6 Dec 2020 06:49:54 -0800 (PST) From: "H.J. Lu" To: libc-alpha@sourceware.org Cc: Florian Weimer Subject: V5 [PATCH 0/2] x86: Support GNU_PROPERTY_X86_ISA_1_NEEDED marker [BZ #26717] Date: Sun, 6 Dec 2020 06:49:50 -0800 Message-Id: <20201206144952.2109594-1-hjl.tools@gmail.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3034.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Dec 2020 14:50:01 -0000 GCC 11 supports -march=x86-64-v[234] to enable x86 micro-architecture ISA levels and -mneeded to emit GNU_PROPERTY_X86_ISA_1_NEEDED property with GNU_PROPERTY_X86_ISA_1_V[234] marker. GNU_PROPERTY_X86_ISA_1_NEEDED property in x86 ELF binaries indicate the micro-architecture ISA level required to execute the binary. The marker must be added by programmers explicitly in one of 3 ways: 1. Pass -mneeded to GCC. 2. Add the marker in the linker inputs as this patch does. 3. Pass -z x86-64-v[234] to the linker. Marked elf/tst-isa-level-1 with x86-64-v4, ran it on x86-64-v3 machine and got: [hjl@gnu-cfl-2 build-x86_64-linux]$ ./elf/tst-isa-level-1 ./elf/tst-isa-level-1: CPU ISA level is lower than required [hjl@gnu-cfl-2 build-x86_64-linux]$ H.J. Lu (2): x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] ldconfig/x86: Add ISA level check to glibc-hwcaps config.h.in | 3 + elf/elf.h | 35 +++--- elf/ldconfig.c | 9 +- elf/readelflib.c | 83 ++++++++++++- elf/readlib.c | 7 +- elf/tst-glibc-hwcaps-2-cache.c | 45 +++++++ .../etc/ld.so.conf | 2 + .../postclean.req | 0 elf/tst-glibc-hwcaps-2-cache.script | 6 + sysdeps/generic/ldconfig.h | 9 +- sysdeps/generic/read-prop.h | 32 +++++ sysdeps/unix/sysv/linux/x86/read-prop.h | 57 +++++++++ sysdeps/unix/sysv/linux/x86/readelflib.c | 67 +++++++++-- sysdeps/unix/sysv/linux/x86_64/Makefile | 26 ++++ .../sysv/linux/x86_64/tst-glibc-hwcaps-2.c | 50 ++++++++ .../linux/x86_64/x86-64-isa-level-VALUE.c | 4 + sysdeps/x86/Makefile | 10 ++ sysdeps/x86/abi-note.c | 29 +++++ sysdeps/x86/configure | 101 ++++++++++++++++ sysdeps/x86/configure.ac | 26 ++++ sysdeps/x86/cpu-features.c | 3 + sysdeps/x86/dl-cet.c | 12 +- sysdeps/x86/dl-prop.h | 113 +++++++++++++----- sysdeps/x86/get-isa-level.h | 66 ++++++++++ sysdeps/x86/include/cpu-features.h | 2 + sysdeps/x86/isa-level.c | 95 +++++++++++++++ sysdeps/x86/link_map.h | 18 +-- sysdeps/x86/tst-isa-level-1.c | 74 ++++++++++++ sysdeps/x86/tst-isa-level-mod-1.c | 23 ++++ sysdeps/x86/tst-isa-level-mod-1a.c | 2 + sysdeps/x86/tst-isa-level-mod-1b.c | 1 + sysdeps/x86_64/dl-hwcaps-subdirs.c | 30 ++--- sysdeps/x86_64/tst-glibc-hwcaps.c | 41 ++----- 33 files changed, 950 insertions(+), 131 deletions(-) create mode 100644 elf/tst-glibc-hwcaps-2-cache.c create mode 100644 elf/tst-glibc-hwcaps-2-cache.root/etc/ld.so.conf create mode 100644 elf/tst-glibc-hwcaps-2-cache.root/postclean.req create mode 100644 elf/tst-glibc-hwcaps-2-cache.script create mode 100644 sysdeps/generic/read-prop.h create mode 100644 sysdeps/unix/sysv/linux/x86/read-prop.h create mode 100644 sysdeps/unix/sysv/linux/x86_64/tst-glibc-hwcaps-2.c create mode 100644 sysdeps/unix/sysv/linux/x86_64/x86-64-isa-level-VALUE.c create mode 100644 sysdeps/x86/abi-note.c create mode 100644 sysdeps/x86/get-isa-level.h create mode 100644 sysdeps/x86/isa-level.c create mode 100644 sysdeps/x86/tst-isa-level-1.c create mode 100644 sysdeps/x86/tst-isa-level-mod-1.c create mode 100644 sysdeps/x86/tst-isa-level-mod-1a.c create mode 100644 sysdeps/x86/tst-isa-level-mod-1b.c -- 2.28.0