50 lines
1.9 KiB
Diff
50 lines
1.9 KiB
Diff
From ef3b54c6da528c97ad3aa1edde084859035539b4 Mon Sep 17 00:00:00 2001
|
|
From: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
Date: Wed, 16 Jul 2025 16:55:51 +0100
|
|
Subject: [PATCH 21/23] 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)
|
|
(cherry picked from commit e54a1de95156e7f60908dc2ac0d3b16d2ae5e5fb)
|
|
---
|
|
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));
|
|
}
|
|
--
|
|
2.49.1
|
|
|