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

--- Comment #2 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=9ca889ccf1da85afa5e1e662a423bd90eb867430

commit 9ca889ccf1da85afa5e1e662a423bd90eb867430
Author: Jan Soƅtan <[email protected]>
Date:   Wed Oct 21 09:35:17 2026 +1030

    An empty DT_GNU_HASH table's symoffset value

    The GNU-style ELF dynamic symbol lookup table DT_GNU_HASH indexes the
    names of dynamic symbols that are being exported by the object.  The
    names of other dynamin symbols (local, imported, etc) are not hashed,
    and are required by the semantics of DT_GNU_HASH to appear in the
    dynamic symbol table before any exported (hashed) symbols.  The header
    of the DT_GNU_HASH structure reports the index of the first hashed
    symbol with the value symoffset, giving us the count of non-hashed
    symbols.

    However, in a special case where there are no hashed (exported)
    symbols, a special "empty" table is generated with fixed values - 1
    empty bucket, 1 zeroed word in the bloom filter and symoffset always
    set to 1 (to point past the always-present zeroed out first symbol).
    This is wrong because there may be other non-hashed dynamic symbols.

            PR 34736
            * elflink.c (bfd_elf_size_dynsym_hash_dynstr): Correct empty
            DT_GNU_HASH symoffset.

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

Reply via email to