[PATCH] ld: Hide symbols defined by HIDDEN/PROVIDE_HIDDEN

H.J. Lu hjl.tools@gmail.com
Fri May 18 17:56:00 GMT 2018


On Fri, May 18, 2018 at 10:18 AM, H.J. Lu <hongjiu.lu@intel.com> wrote:
> There should be no difference in output for symbols defined by HIDDEN
> or PROVIDE_HIDDEN assignments whether they are explicitly marked as
> hidden or not.  This patch adds a new BFD function, bfd_link_hide_symbol,
> to hide symbols defined by HIDDEN and PROVIDE_HIDDEN assignments.
>
> Any comments?
>
> H.J.
> ---
> bfd
>
>         PR ld/23201
>         * aout-target.h (MY_bfd_link_hide_symbol): New.
>         * aout-tic30.c (MY_bfd_link_hide_symbol): Likewise.
>         * binary.c (binary_bfd_link_hide_symbol): Likewise.
>         * coff-alpha.c (_bfd_ecoff_bfd_link_hide_symbol): Likewise.
>         * coff-mips.c (_bfd_ecoff_bfd_link_hide_symbol): Likewise.
>         * coff-rs6000.c (_bfd_xcoff_bfd_link_hide_symbol): Likewise.
>         * coffcode.h (coff_bfd_link_hide_symbol): Likewise.
>         * elf-bfd.h (_bfd_elf_link_hide_symbol): Likewise.
>         * elflink.c (_bfd_elf_link_hide_symbol): Likewise.
>         * elfxx-target.h (bfd_elfNN_bfd_link_hide_symbol): Likewise.
>         * i386msdos.c (msdos_bfd_link_hide_symbol): Likewise.
>         * ihex.c (ihex_bfd_link_hide_symbol): Likewise.
>         * libbfd-in.h (_bfd_nolink_bfd_link_hide_symbol): Likewise.
>         * linker.c (_bfd_generic_link_hide_symbol): Likewise.
>         (bfd_link_hide_symbol): Likewise.
>         * mach-o-target.c (bfd_mach_o_bfd_link_hide_symbol): Likewise.
>         * mmo.c (mmo_bfd_link_hide_symbol): Likewise.
>         * pef.c (bfd_pef_bfd_link_hide_symbol): Likewise.
>         * plugin.c (bfd_plugin_bfd_link_hide_symbol): Likewise.
>         * ppcboot.c (ppcboot_bfd_link_hide_symbol): Likewise.
>         * som.c (som_bfd_link_hide_symbol): Likewise.
>         * srec.c (srec_bfd_link_hide_symbol): Likewise.
>         * tekhex.c (tekhex_bfd_link_hide_symbol): Likewise.
>         * vms-alpha.c (vms_bfd_link_hide_symbol): Likewise.
>         (alpha_vms_bfd_link_hide_symbol): Likewise.
>         * xsym.c (bfd_sym_bfd_link_hide_symbol): Likewise.
>         * coff64-rs6000.c (rs6000_xcoff64_vec): Add
>         _bfd_generic_link_hide_symbol.
>         (rs6000_xcoff64_aix_vec): Likewise.
>         * elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't
>         check root.ldscript_def.
>         * targets.c (bfd_target): Add _bfd_link_hide_symbol.
>         (BFD_JUMP_TABLE_LINK): Add NAME##_bfd_link_hide_symbol.
>         * bfd-in2.h: Regenerated.
>         * libbfd.h: Likewise.
>
> ld/
>
>         PR ld/23201
>         * ldexp.c (exp_fold_tree_1): Call bfd_link_hide_symbol to hide
>         a symbol.
>         * testsuite/ld-elf/provide-hidden-dynabs.nd: Removed.
>         * testsuite/ld-elf/provide-hidden-dynsec.nd: Likewise.
>         * testsuite/ld-elf/provide-hidden.exp: Replace
>         provide-hidden-dynsec.nd with provide-hidden-sec.nd and
>         provide-hidden-dyn.nd.  Replace provide-hidden-dynabs.nd with
>         provide-hidden-abs.nd and provide-hidden-dyn.nd.
>         * testsuite/ld-i386/pr23189.d: Expect no dynamic relocation.
>         * testsuite/ld-x86-64/pr23189.d: Likewise.
>

The updated patch to call elf_backend_hide_symbol instead of
_bfd_elf_link_hash_hide_symbol.

H.J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ld-Hide-symbols-defined-by-HIDDEN-PROVIDE_HIDDEN.patch
Type: text/x-patch
Size: 28236 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20180518/60a26d4d/attachment.bin>


More information about the Binutils mailing list