The objcopy from GNU binutils implements --add-symbol: == --add-symbol name=[section:]value[,flags] Add a new symbol named name while copying the file. This option may be specified multiple times. If the section is given, the symbol will be associated with and relative to that section, otherwise it will be an ABS symbol. Specifying an undefined section will result in a fatal error. There is no check for the value, it will be taken as specified. Symbol flags can be specified and not all flags will be meaningful for all object file formats. By default, the symbol will be global. The special flag ’before=othersym’ will insert the new symbol in front of the specified othersym, otherwise the symbol(s) will be added at the end of the symbol table in the order they appear. == elftoolchain objcopy does not. I noticed because it would have been useful for a project I'm working on; I haven't seen a case where the lack of compatibility is a problem.
llvm-objcopy: --add-symbol=name=[section:]value[,flags] Add new symbol <name> to .symtab. Accepted flags: global, local, weak, default, hidden, protected, file, section, object, function, indirect-function. Accepted but ignored for compatibility: debug, constructor, warning, indirect, synthetic, unique-object, before.
^Triage: clear stale flags.