Being a drop in replacement for GNU objcopy has been a desire of the project as it has been devolved but we'd also like to replace GNU strip as well. Unfortunately they sport different interfaces and in one cases their interfaces contradict each other. This change adds a means of allowing for different behavior between objcopy and strip.
- The options have been moved down further into the code and put into a namespace so that they're relatively hidden
- InvokeMain now calls the appropriate function either Strip or Objcopy
- The CopyConfig struct was added (and CopyBinary made a method of it) in order to drive CopyBinary instead of the options directly
- The only difference added between llvm-objcopy and llvm-strip right now is that llvm-strip defaults to --strip-all
I think you accidentally made this a diff against your previous version, although it's a new file!