[binutils-gdb/binutils-2_45-branch] libctf: exclude always-emitted Solaris symbols from the symtypetab

Nick Alcock nix@sourceware.org
Sun Aug 10 21:22:18 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e54a1de95156e7f60908dc2ac0d3b16d2ae5e5fb

commit e54a1de95156e7f60908dc2ac0d3b16d2ae5e5fb
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Wed Jul 16 16:55:51 2025 +0100

    libctf: exclude always-emitted Solaris symbols from the symtypetab
    
    If we're skipping _BEGIN_ and _END_ we should certainly skip all the other
    ABI-required always-emitted symbols given in ld/emultempl/solaris2*em as
    well.  (This fixes a couple of diagnostics tests, but that's just because
    the tests are quite sensitive to CTF section sizes, and introducing any
    symtypetab entries for those tests perturbs those.)
    
    Some of these are usually STT_NOTYPE, but not always: if programs already
    emitted the symbol they might end up with any type, in particular
    STT_OBJECT, and appear in the symtypetabs.
    
    [nca: added commit log, added more symbols]
    
    libctf/
            PR libctf/33162
            * ctf-serialize.c (ctf_symtab_skippable): Skip
            more always-emitted Solaris symbols.
    
    (cherry picked from commit 4214ca9036c8f5d01025d0505ff1167700af5f98)

Diff:
---
 libctf/ctf-serialize.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libctf/ctf-serialize.c b/libctf/ctf-serialize.c
index 8c35a2b2489..f04c278344c 100644
--- a/libctf/ctf-serialize.c
+++ b/libctf/ctf-serialize.c
@@ -74,6 +74,12 @@ ctf_symtab_skippable (ctf_link_sym_t *sym)
 	  || sym->st_shndx == SHN_UNDEF
 	  || strcmp (sym->st_name, "_START_") == 0
 	  || strcmp (sym->st_name, "_END_") == 0
+	  || strcmp (sym->st_name, "_DYNAMIC") == 0
+	  || strcmp (sym->st_name, "_GLOBAL_OFFSET_TABLE_") == 0
+	  || strcmp (sym->st_name, "_PROCEDURE_LINKAGE_TABLE_") == 0
+	  || strcmp (sym->st_name, "_edata") == 0
+	  || strcmp (sym->st_name, "_end") == 0
+	  || strcmp (sym->st_name, "_etext") == 0
 	  || (sym->st_type == STT_OBJECT && sym->st_shndx == SHN_EXTABS
 	      && sym->st_value == 0));
 }


More information about the Binutils-cvs mailing list