[PATCH] D27716: [ELF] - Implemented --retain-symbols-file option

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 14 03:15:34 PST 2016

grimar added inline comments.

Comment at: ELF/Config.h:39
+// For --discard-{all,locals,none} and --retain-symbols-file.
+enum class DiscardPolicy { Default, All, Locals, File, None };
emaste wrote:
> DiscardPolicy File seems confusing to me - in that it seems File would list the symbols to discard. Not sure of a good word to encompass Discard/Retain though.
I agree it was confusing. What about RetainFile ?

Comment at: ELF/Config.h:76
   uint8_t OSABI = 0;
+  llvm::DenseSet<llvm::CachedHashStringRef> RetainSymbolsFile;
   llvm::DenseMap<llvm::CachedHashStringRef, unsigned> SymbolOrderingFile;
ruiu wrote:
> Using CachedHashStringRef doesn't make sense here. You still compute string hash values before looking up strings, so it doesn't really cache anything (unless you have a gigantic --retain-symbols-file which is unrealistic). Just use a string set.
Ok. Currently we know 2 users of this functionality. One of them uses /dev/null as file. That was done I think as workaround for gold which in case of empty file thinks it was not used, what is wrong and inconsistent with bfd.
So I would probably agree now with statement about "unrealistic", though I implemented that initially assuming it is possible to have such file.

Comment at: ELF/Driver.cpp:648
+  // If --retain-symbols-file used it retains only the symbols listed in the
+  // file filename, discarding all others.
ruiu wrote:
> If --retain-symbol-file is used, we'll retail only the symbols listed in the file and discard all others.
Done. Thanks.


More information about the llvm-commits mailing list