https://sourceware.org/bugzilla/show_bug.cgi?id=33593
--- Comment #1 from Sourceware Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Alan Modra <[email protected]>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2dfd38f93ce3b05d25c7bd14cbcff0fa3614c056 commit 2dfd38f93ce3b05d25c7bd14cbcff0fa3614c056 Author: Alan Modra <[email protected]> Date: Thu Feb 5 08:34:31 2026 +1030 PR 33593 Misplaced synthetic plt symbols in aarch64 PIE binaries elfNN_aarch64_plt_sym_val wrongly treats PIEs. PIEs are an executable but not ET_EXEC, instead being ET_DYN with DF_1_PIE set in DT_FLAGS_1 to distinguish them from shared libraries. get_plt_type scans .dynamic for DT_AARCH64_BTI_PLT and DT_AARCH64_PAC_PLT, setting PLT_BTI and PLT_PAC in the function return value respectively. It's easy enough to extend the .dynamic scan to also return DF_1_PIE in tdata is_pie. The patch also makes a few tidies, things I noticed when scanning all the code dealing with sw_protections.plt_type. PR 33593 * elfnn-aarch64.c (get_plt_type): Return DF_1_PIE via tdata is_pie. (elfNN_aarch64_plt_sym_val): Handle PIEs as well as ET_EXEC. (setup_plt_values): Delete wrong ET_EXEC comments. (elfNN_aarch64_late_size_sections): Remove excess parentheses. (elfNN_aarch64_finish_dynamic_sections): Rename type to plt_type, and simplify test for PLT_BTI or PLT_BTI_PAC. Co-Authored-By: Michael Matz <[email protected]> -- You are receiving this mail because: You are on the CC list for the bug.
