[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/28875] ld should warn or error out about creating copy relocs &
From: |
cvs-commit at gcc dot gnu.org |
Subject: |
[Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols |
Date: |
Fri, 11 Feb 2022 18:33:18 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=28875
--- Comment #7 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot
gnu.org> ---
The binutils-2_38-branch branch has been updated by H.J. Lu
<hjl@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=caa6172de4b5100c9b45fd03eae714167a6085c1
commit caa6172de4b5100c9b45fd03eae714167a6085c1
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Feb 9 15:51:22 2022 -0800
x86: Disallow invalid relocation against protected symbol
I am checking this into master and will backport it to 2.38 branch.
H.J
----
On x86, GCC 12 supports -mno-direct-extern-access to enable canonical
reference to protected function and disable copy relocation. With
-mno-direct-extern-access, the canonical protected function symbols must
be accessed via canonical reference and the protected data symbols in
shared libraries are non-copyable. Under glibc 2.35, non-canonical
reference to the canonical protected function will get the run-time error:
./y: internal_f: ./libfoo.so: non-canonical reference to canonical
protected function
and copy relocations against the non-copyable protected symbols will get
the run-time error:
./x: internal_i: ./libfoo.so: copy relocation against non-copyable
protected symbol
Update x86 linker to disallow non-canonical reference to the canonical
protected function:
ld: plt.o: non-canonical reference to canonical protected function
`internal_f' in libfoo.so
ld: failed to set dynamic section sizes: bad value
and copy relocation against the non-copyable protected symbol:
ld: main.o: copy relocation against non-copyable protected symbol
`internal_i' in libfoo.so
at link-time.
bfd/
PR ld/28875
* elf-properties.c (_bfd_elf_parse_gnu_properties): Don't skip
shared libraries for GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS.
* elf32-i386.c (elf_i386_scan_relocs): Disallow non-canonical
reference to canonical protected function.
* elf64-x86-64.c (elf_x86_64_scan_relocs): Likewise.
* elfxx-x86.c (elf_x86_allocate_dynrelocs): Don't allow copy
relocation against non-copyable protected symbol.
ld/
PR ld/28875
* testsuite/ld-i386/i386.exp: Check non-canonical reference to
canonical protected function and check copy relocation against
non-copyable protected symbol.
* testsuite/ld-i386/pr21997-1.err: New file.
* testsuite/ld-i386/pr28875.err: Likewise.
* testsuite/ld-i386/pr28875a.c: Likewise.
* testsuite/ld-i386/pr28875b.c: Likewise.
* testsuite/ld-x86-64/pr21997-1a.err: Updated.
* testsuite/ld-x86-64/pr21997-1b.err: Likewise.
* testsuite/ld-x86-64/pr28875-data.err: New file.
* testsuite/ld-x86-64/pr28875-func.err: Likewise.
* testsuite/ld-x86-64/x86-64.exp: Check non-canonical reference
to canonical protected function and check copy relocation against
non-copyable protected symbol.
(cherry picked from commit ebb191adac4ab45498dec0bfaac62f0a33537ba4)
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, (continued)
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, hjl.tools at gmail dot com, 2022/02/09
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, pinskia at gcc dot gnu.org, 2022/02/09
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, pinskia at gcc dot gnu.org, 2022/02/09
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, hjl.tools at gmail dot com, 2022/02/09
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, hjl.tools at gmail dot com, 2022/02/09
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, thiago at kde dot org, 2022/02/10
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, thiago at kde dot org, 2022/02/10
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, hjl.tools at gmail dot com, 2022/02/10
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, thiago at kde dot org, 2022/02/11
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, cvs-commit at gcc dot gnu.org, 2022/02/11
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols,
cvs-commit at gcc dot gnu.org <=
- [Bug ld/28875] ld should warn or error out about creating copy relocs & direct external references for protected symbols, hjl.tools at gmail dot com, 2022/02/11