Page MenuHomeFreeBSD

D7637.1789658622.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D7637.1789658622.diff

Index: contrib/elftoolchain/elfcopy/elfcopy.h
===================================================================
--- contrib/elftoolchain/elfcopy/elfcopy.h
+++ contrib/elftoolchain/elfcopy/elfcopy.h
@@ -47,6 +47,7 @@
#define SYMOP_KEEPG 0x0010U
#define SYMOP_WEAKEN 0x0020U
#define SYMOP_REDEF 0x0040U
+#define SYMOP_HIDE 0x0080U
unsigned int op;
Index: contrib/elftoolchain/elfcopy/main.c
===================================================================
--- contrib/elftoolchain/elfcopy/main.c
+++ contrib/elftoolchain/elfcopy/main.c
@@ -54,6 +54,8 @@
ECP_GAP_FILL,
ECP_GLOBALIZE_SYMBOL,
ECP_GLOBALIZE_SYMBOLS,
+ ECP_HIDE_SYMBOL,
+ ECP_HIDE_SYMBOLS,
ECP_KEEP_SYMBOLS,
ECP_KEEP_GLOBAL_SYMBOLS,
ECP_LOCALIZE_HIDDEN,
@@ -131,6 +133,8 @@
{"globalize-symbol", required_argument, NULL, ECP_GLOBALIZE_SYMBOL},
{"globalize-symbols", required_argument, NULL, ECP_GLOBALIZE_SYMBOLS},
{"help", no_argument, NULL, 'h'},
+ {"hide-symbol", required_argument, NULL, ECP_HIDE_SYMBOL},
+ {"hide-symbols", required_argument, NULL, ECP_HIDE_SYMBOLS},
{"input-target", required_argument, NULL, 'I'},
{"keep-symbol", required_argument, NULL, 'K'},
{"keep-symbols", required_argument, NULL, ECP_KEEP_SYMBOLS},
@@ -909,6 +913,12 @@
case ECP_GLOBALIZE_SYMBOLS:
parse_symlist_file(ecp, optarg, SYMOP_GLOBALIZE);
break;
+ case ECP_HIDE_SYMBOL:
+ add_to_symop_list(ecp, optarg, NULL, SYMOP_HIDE);
+ break;
+ case ECP_HIDE_SYMBOLS:
+ parse_symlist_file(ecp, optarg, SYMOP_HIDE);
+ break;
case ECP_KEEP_SYMBOLS:
parse_symlist_file(ecp, optarg, SYMOP_KEEP);
break;
Index: contrib/elftoolchain/elfcopy/symbols.c
===================================================================
--- contrib/elftoolchain/elfcopy/symbols.c
+++ contrib/elftoolchain/elfcopy/symbols.c
@@ -552,6 +552,9 @@
GELF_ST_TYPE(sym.st_info));
/* XXX We should globalize weak symbol? */
}
+ if (!is_hidden_symbol(sym.st_other) &&
+ lookup_symop_list(ecp, name, SYMOP_HIDE) != NULL)
+ sym.st_other = STV_HIDDEN;
/* Check if we need to rename this symbol. */
if ((sp = lookup_symop_list(ecp, name, SYMOP_REDEF)) != NULL)

File Metadata

Mime Type
text/plain
Expires
Thu, Sep 17, 3:23 PM (11 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29735122
Default Alt Text
D7637.1789658622.diff (2 KB)

Event Timeline