[llvm] 7d83c29 - Revert "Introduce llvm-install-name-tool"

Shoaib Meenai via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 6 17:28:22 PST 2019


It's a good idea to note why you're reverting a change (with links to bot failures, etc.).

On 11/6/19, 5:07 PM, "llvm-commits on behalf of Alexander Shaposhnikov via llvm-commits" <llvm-commits-bounces at lists.llvm.org on behalf of llvm-commits at lists.llvm.org> wrote:

    
    Author: Alexander Shaposhnikov
    Date: 2019-11-06T17:04:04-08:00
    New Revision: 7d83c2989092fbfc4afb41bed43848dbc69e35d6
    
    URL: https://github.com/llvm/llvm-project/commit/7d83c2989092fbfc4afb41bed43848dbc69e35d6
    DIFF: https://github.com/llvm/llvm-project/commit/7d83c2989092fbfc4afb41bed43848dbc69e35d6.diff
    
    LOG: Revert "Introduce llvm-install-name-tool"
    
    This reverts commit b5913e6d2f6d13fb753df701619731ca11936316.
    
    Added: 
        
    
    Modified: 
        llvm/tools/llvm-objcopy/CMakeLists.txt
        llvm/tools/llvm-objcopy/CopyConfig.cpp
        llvm/tools/llvm-objcopy/CopyConfig.h
        llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp
        llvm/tools/llvm-objcopy/MachO/Object.cpp
        llvm/tools/llvm-objcopy/MachO/Object.h
        llvm/tools/llvm-objcopy/llvm-objcopy.cpp
    
    Removed: 
        llvm/test/tools/llvm-objcopy/MachO/Inputs/i386.yaml
        llvm/test/tools/llvm-objcopy/MachO/Inputs/x86_64.yaml
        llvm/test/tools/llvm-objcopy/MachO/install-name-tool-add-rpath.test
        llvm/test/tools/llvm-objcopy/MachO/install-name-tool-help-message.test
        llvm/test/tools/llvm-objcopy/MachO/install-name-tool-version.test
        llvm/tools/llvm-objcopy/InstallNameToolOpts.td
    
    
    ################################################################################
    diff  --git a/llvm/test/tools/llvm-objcopy/MachO/Inputs/i386.yaml b/llvm/test/tools/llvm-objcopy/MachO/Inputs/i386.yaml
    deleted file mode 100644
    index 15e62206e95e..000000000000
    --- a/llvm/test/tools/llvm-objcopy/MachO/Inputs/i386.yaml
    +++ /dev/null
    @@ -1,88 +0,0 @@
    ---- !mach-o
    -FileHeader:
    -  magic:           0xFEEDFACE
    -  cputype:         0x00000007
    -  cpusubtype:      0x00000003
    -  filetype:        0x00000001
    -  ncmds:           4
    -  sizeofcmds:      312
    -  flags:           0x00002000
    -LoadCommands:
    -  - cmd:             LC_SEGMENT
    -    cmdsize:         192
    -    segname:         ''
    -    vmaddr:          0
    -    vmsize:          72
    -    fileoff:         340
    -    filesize:        72
    -    maxprot:         7
    -    initprot:        7
    -    nsects:          2
    -    flags:           0
    -    Sections:
    -      - sectname:        __text
    -        segname:         __TEXT
    -        addr:            0x0000000000000000
    -        size:            18
    -        offset:          0x00000154
    -        align:           4
    -        reloff:          0x00000000
    -        nreloc:          0
    -        flags:           0x80000400
    -        reserved1:       0x00000000
    -        reserved2:       0x00000000
    -        reserved3:       0x00000000
    -      - sectname:        __eh_frame
    -        segname:         __TEXT
    -        addr:            0x0000000000000014
    -        size:            52
    -        offset:          0x00000168
    -        align:           2
    -        reloff:          0x00000000
    -        nreloc:          0
    -        flags:           0x6800000B
    -        reserved1:       0x00000000
    -        reserved2:       0x00000000
    -        reserved3:       0x00000000
    -  - cmd:             LC_VERSION_MIN_MACOSX
    -    cmdsize:         16
    -    version:         656384
    -    sdk:             0
    -  - cmd:             LC_SYMTAB
    -    cmdsize:         24
    -    symoff:          412
    -    nsyms:           1
    -    stroff:          424
    -    strsize:         8
    -  - cmd:             LC_DYSYMTAB
    -    cmdsize:         80
    -    ilocalsym:       0
    -    nlocalsym:       0
    -    iextdefsym:      0
    -    nextdefsym:      1
    -    iundefsym:       1
    -    nundefsym:       0
    -    tocoff:          0
    -    ntoc:            0
    -    modtaboff:       0
    -    nmodtab:         0
    -    extrefsymoff:    0
    -    nextrefsyms:     0
    -    indirectsymoff:  0
    -    nindirectsyms:   0
    -    extreloff:       0
    -    nextrel:         0
    -    locreloff:       0
    -    nlocrel:         0
    -LinkEditData:
    -  NameList:
    -    - n_strx:          1
    -      n_type:          0x0F
    -      n_sect:          1
    -      n_desc:          0
    -      n_value:         0
    -  StringTable:
    -    - ''
    -    - _main
    -    - ''
    -...
    
    diff  --git a/llvm/test/tools/llvm-objcopy/MachO/Inputs/x86_64.yaml b/llvm/test/tools/llvm-objcopy/MachO/Inputs/x86_64.yaml
    deleted file mode 100644
    index 5b059bb5a1bb..000000000000
    --- a/llvm/test/tools/llvm-objcopy/MachO/Inputs/x86_64.yaml
    +++ /dev/null
    @@ -1,89 +0,0 @@
    ---- !mach-o
    -FileHeader:
    -  magic:           0xFEEDFACF
    -  cputype:         0x01000007
    -  cpusubtype:      0x00000003
    -  filetype:        0x00000001
    -  ncmds:           4
    -  sizeofcmds:      352
    -  flags:           0x00002000
    -  reserved:        0x00000000
    -LoadCommands:
    -  - cmd:             LC_SEGMENT_64
    -    cmdsize:         232
    -    segname:         ''
    -    vmaddr:          0
    -    vmsize:          80
    -    fileoff:         384
    -    filesize:        80
    -    maxprot:         7
    -    initprot:        7
    -    nsects:          2
    -    flags:           0
    -    Sections:
    -      - sectname:        __text
    -        segname:         __TEXT
    -        addr:            0x0000000000000000
    -        size:            15
    -        offset:          0x00000180
    -        align:           4
    -        reloff:          0x00000000
    -        nreloc:          0
    -        flags:           0x80000400
    -        reserved1:       0x00000000
    -        reserved2:       0x00000000
    -        reserved3:       0x00000000
    -      - sectname:        __eh_frame
    -        segname:         __TEXT
    -        addr:            0x0000000000000010
    -        size:            64
    -        offset:          0x00000190
    -        align:           3
    -        reloff:          0x00000000
    -        nreloc:          0
    -        flags:           0x6800000B
    -        reserved1:       0x00000000
    -        reserved2:       0x00000000
    -        reserved3:       0x00000000
    -  - cmd:             LC_VERSION_MIN_MACOSX
    -    cmdsize:         16
    -    version:         656384
    -    sdk:             0
    -  - cmd:             LC_SYMTAB
    -    cmdsize:         24
    -    symoff:          464
    -    nsyms:           1
    -    stroff:          480
    -    strsize:         8
    -  - cmd:             LC_DYSYMTAB
    -    cmdsize:         80
    -    ilocalsym:       0
    -    nlocalsym:       0
    -    iextdefsym:      0
    -    nextdefsym:      1
    -    iundefsym:       1
    -    nundefsym:       0
    -    tocoff:          0
    -    ntoc:            0
    -    modtaboff:       0
    -    nmodtab:         0
    -    extrefsymoff:    0
    -    nextrefsyms:     0
    -    indirectsymoff:  0
    -    nindirectsyms:   0
    -    extreloff:       0
    -    nextrel:         0
    -    locreloff:       0
    -    nlocrel:         0
    -LinkEditData:
    -  NameList:
    -    - n_strx:          1
    -      n_type:          0x0F
    -      n_sect:          1
    -      n_desc:          0
    -      n_value:         0
    -  StringTable:
    -    - ''
    -    - _main
    -    - ''
    -...
    
    diff  --git a/llvm/test/tools/llvm-objcopy/MachO/install-name-tool-add-rpath.test b/llvm/test/tools/llvm-objcopy/MachO/install-name-tool-add-rpath.test
    deleted file mode 100644
    index 6d262019429a..000000000000
    --- a/llvm/test/tools/llvm-objcopy/MachO/install-name-tool-add-rpath.test
    +++ /dev/null
    @@ -1,23 +0,0 @@
    -## This test checks adding a new LC_RPATH load command to a MachO binary.
    -
    -# RUN: yaml2obj %p/Inputs/i386.yaml > %t.i386
    -# RUN: llvm-install-name-tool -add_rpath @executable_path/. %t.i386
    -# RUN: llvm-objdump -p %t.i386 | FileCheck --check-prefix=NEW-RPATH %s
    -
    -# RUN: yaml2obj %p/Inputs/x86_64.yaml > %t.x86_64
    -# RUN: llvm-install-name-tool -add_rpath @executable_path/. %t.x86_64
    -# RUN: llvm-objdump -p %t.x86_64 | FileCheck --check-prefix=NEW-RPATH %s
    -
    -# NEW-RPATH: cmd LC_RPATH
    -# NEW-RPATH-NEXT: cmdsize
    -# NEW-RPATH-NEXT: @executable_path/.
    -
    -# RUN: not llvm-install-name-tool -add_rpath @executable_path/. %t.i386 2>&1 \
    -# RUN: | FileCheck --check-prefix=DUPLICATE-RPATH %s
    -
    -# DUPLICATE-RPATH: duplicate load command
    -
    -# RUN: not llvm-install-name-tool -add_rpath @executable_path/. 2>&1 \
    -# RUN: | FileCheck --check-prefix=NO-INPUT %s
    -
    -# NO-INPUT: no input file specified
    
    diff  --git a/llvm/test/tools/llvm-objcopy/MachO/install-name-tool-help-message.test b/llvm/test/tools/llvm-objcopy/MachO/install-name-tool-help-message.test
    deleted file mode 100644
    index 43e5290c3793..000000000000
    --- a/llvm/test/tools/llvm-objcopy/MachO/install-name-tool-help-message.test
    +++ /dev/null
    @@ -1,10 +0,0 @@
    -# RUN: llvm-install-name-tool -h | FileCheck --check-prefix=INSTALL-NAME-TOOL-USAGE %s
    -# RUN: llvm-install-name-tool --help | FileCheck --check-prefix=INSTALL-NAME-TOOL-USAGE %s
    -# RUN: not llvm-install-name-tool 2>&1 | FileCheck --check-prefix=INSTALL-NAME-TOOL-USAGE %s
    -# RUN: not llvm-install-name-tool -abcabc 2>&1 | FileCheck --check-prefix=UNKNOWN-ARG %s
    -# RUN: not llvm-install-name-tool --abcabc 2>&1 | FileCheck --check-prefix=UNKNOWN-ARG %s
    -
    -# INSTALL-NAME-TOOL-USAGE: USAGE: llvm-install-name-tool
    -# INSTALL-NAME-TOOL-USAGE: @FILE
    -
    -# UNKNOWN-ARG: unknown argument '{{-+}}abcabc'
    
    diff  --git a/llvm/test/tools/llvm-objcopy/MachO/install-name-tool-version.test b/llvm/test/tools/llvm-objcopy/MachO/install-name-tool-version.test
    deleted file mode 100644
    index 295e57356101..000000000000
    --- a/llvm/test/tools/llvm-objcopy/MachO/install-name-tool-version.test
    +++ /dev/null
    @@ -1,2 +0,0 @@
    -# RUN: llvm-install-name-tool --version | FileCheck %s
    -# CHECK: {{ version }}
    
    diff  --git a/llvm/tools/llvm-objcopy/CMakeLists.txt b/llvm/tools/llvm-objcopy/CMakeLists.txt
    index 6d4048f040ba..50c890b59769 100644
    --- a/llvm/tools/llvm-objcopy/CMakeLists.txt
    +++ b/llvm/tools/llvm-objcopy/CMakeLists.txt
    @@ -9,10 +9,6 @@ set(LLVM_TARGET_DEFINITIONS ObjcopyOpts.td)
     tablegen(LLVM ObjcopyOpts.inc -gen-opt-parser-defs)
     add_public_tablegen_target(ObjcopyOptsTableGen)
     
    -set(LLVM_TARGET_DEFINITIONS InstallNameToolOpts.td)
    -tablegen(LLVM InstallNameToolOpts.inc -gen-opt-parser-defs)
    -add_public_tablegen_target(InstallNameToolOptsTableGen)
    -
     set(LLVM_TARGET_DEFINITIONS StripOpts.td)
     tablegen(LLVM StripOpts.inc -gen-opt-parser-defs)
     add_public_tablegen_target(StripOptsTableGen)
    @@ -35,11 +31,9 @@ add_llvm_tool(llvm-objcopy
       MachO/Object.cpp
       DEPENDS
       ObjcopyOptsTableGen
    -  InstallNameToolOptsTableGen
       StripOptsTableGen
       )
     
    -add_llvm_tool_symlink(llvm-install-name-tool llvm-objcopy)
     add_llvm_tool_symlink(llvm-strip llvm-objcopy)
     
     if(LLVM_INSTALL_BINUTILS_SYMLINKS)
    
    diff  --git a/llvm/tools/llvm-objcopy/CopyConfig.cpp b/llvm/tools/llvm-objcopy/CopyConfig.cpp
    index 73ed00b5cb2a..d707bec20c49 100644
    --- a/llvm/tools/llvm-objcopy/CopyConfig.cpp
    +++ b/llvm/tools/llvm-objcopy/CopyConfig.cpp
    @@ -63,44 +63,6 @@ class ObjcopyOptTable : public opt::OptTable {
       ObjcopyOptTable() : OptTable(ObjcopyInfoTable) {}
     };
     
    -enum InstallNameToolID {
    -  INSTALL_NAME_TOOL_INVALID = 0, // This is not an option ID.
    -#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM,  \
    -               HELPTEXT, METAVAR, VALUES)                                      \
    -  INSTALL_NAME_TOOL_##ID,
    -#include "InstallNameToolOpts.inc"
    -#undef OPTION
    -};
    -
    -#define PREFIX(NAME, VALUE)                                                    \
    -  const char *const INSTALL_NAME_TOOL_##NAME[] = VALUE;
    -#include "InstallNameToolOpts.inc"
    -#undef PREFIX
    -
    -static const opt::OptTable::Info InstallNameToolInfoTable[] = {
    -#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM,  \
    -               HELPTEXT, METAVAR, VALUES)                                      \
    -  {INSTALL_NAME_TOOL_##PREFIX,                                                 \
    -   NAME,                                                                       \
    -   HELPTEXT,                                                                   \
    -   METAVAR,                                                                    \
    -   INSTALL_NAME_TOOL_##ID,                                                     \
    -   opt::Option::KIND##Class,                                                   \
    -   PARAM,                                                                      \
    -   FLAGS,                                                                      \
    -   INSTALL_NAME_TOOL_##GROUP,                                                  \
    -   INSTALL_NAME_TOOL_##ALIAS,                                                  \
    -   ALIASARGS,                                                                  \
    -   VALUES},
    -#include "InstallNameToolOpts.inc"
    -#undef OPTION
    -};
    -
    -class InstallNameToolOptTable : public opt::OptTable {
    -public:
    -  InstallNameToolOptTable() : OptTable(InstallNameToolInfoTable) {}
    -};
    -
     enum StripID {
       STRIP_INVALID = 0, // This is not an option ID.
     #define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM,  \
    @@ -790,57 +752,6 @@ parseObjcopyOptions(ArrayRef<const char *> ArgsArr,
       return std::move(DC);
     }
     
    -// ParseInstallNameToolOptions returns the config and sets the input arguments.
    -// If a help flag is set then ParseInstallNameToolOptions will print the help
    -// messege and exit.
    -Expected<DriverConfig>
    -parseInstallNameToolOptions(ArrayRef<const char *> ArgsArr) {
    -  DriverConfig DC;
    -  CopyConfig Config;
    -  InstallNameToolOptTable T;
    -  unsigned MissingArgumentIndex, MissingArgumentCount;
    -  llvm::opt::InputArgList InputArgs =
    -      T.ParseArgs(ArgsArr, MissingArgumentIndex, MissingArgumentCount);
    -
    -  if (InputArgs.size() == 0) {
    -    printHelp(T, errs(), "llvm-install-name-tool");
    -    exit(1);
    -  }
    -
    -  if (InputArgs.hasArg(INSTALL_NAME_TOOL_help)) {
    -    printHelp(T, outs(), "llvm-install-name-tool");
    -    exit(0);
    -  }
    -
    -  if (InputArgs.hasArg(INSTALL_NAME_TOOL_version)) {
    -    outs() << "llvm-install-name-tool, compatible with cctools "
    -              "install_name_tool\n";
    -    cl::PrintVersionMessage();
    -    exit(0);
    -  }
    -
    -  for (auto Arg : InputArgs.filtered(INSTALL_NAME_TOOL_add_rpath))
    -    Config.RPathToAdd.push_back(Arg->getValue());
    -
    -  SmallVector<StringRef, 2> Positional;
    -  for (auto Arg : InputArgs.filtered(INSTALL_NAME_TOOL_UNKNOWN))
    -    return createStringError(errc::invalid_argument, "unknown argument '%s'",
    -                             Arg->getAsString(InputArgs).c_str());
    -  for (auto Arg : InputArgs.filtered(INSTALL_NAME_TOOL_INPUT))
    -    Positional.push_back(Arg->getValue());
    -  if (Positional.empty())
    -    return createStringError(errc::invalid_argument, "no input file specified");
    -  if (Positional.size() > 1)
    -    return createStringError(
    -        errc::invalid_argument,
    -        "llvm-install-name-tool expects a single input file");
    -  Config.InputFilename = Positional[0];
    -  Config.OutputFilename = Positional[0];
    -
    -  DC.CopyConfigs.push_back(std::move(Config));
    -  return std::move(DC);
    -}
    -
     // ParseStripOptions returns the config and sets the input arguments. If a
     // help flag is set then ParseStripOptions will print the help messege and
     // exit.
    
    diff  --git a/llvm/tools/llvm-objcopy/CopyConfig.h b/llvm/tools/llvm-objcopy/CopyConfig.h
    index c83f688e76c2..55a55d3a2bc2 100644
    --- a/llvm/tools/llvm-objcopy/CopyConfig.h
    +++ b/llvm/tools/llvm-objcopy/CopyConfig.h
    @@ -175,7 +175,6 @@ struct CopyConfig {
       std::vector<StringRef> AddSection;
       std::vector<StringRef> DumpSection;
       std::vector<StringRef> SymbolsToAdd;
    -  std::vector<StringRef> RPathToAdd;
     
       // Section matchers
       NameMatcher KeepSection;
    @@ -252,12 +251,6 @@ Expected<DriverConfig>
     parseObjcopyOptions(ArrayRef<const char *> ArgsArr,
                         llvm::function_ref<Error(Error)> ErrorCallback);
     
    -// ParseInstallNameToolOptions returns the config and sets the input arguments.
    -// If a help flag is set then ParseInstallNameToolOptions will print the help
    -// messege and exit.
    -Expected<DriverConfig>
    -parseInstallNameToolOptions(ArrayRef<const char *> ArgsArr);
    -
     // ParseStripOptions returns the config and sets the input arguments. If a
     // help flag is set then ParseStripOptions will print the help messege and
     // exit. ErrorCallback is used to handle recoverable errors. An Error returned
    @@ -265,6 +258,7 @@ parseInstallNameToolOptions(ArrayRef<const char *> ArgsArr);
     Expected<DriverConfig>
     parseStripOptions(ArrayRef<const char *> ArgsArr,
                       llvm::function_ref<Error(Error)> ErrorCallback);
    +
     } // namespace objcopy
     } // namespace llvm
     
    
    diff  --git a/llvm/tools/llvm-objcopy/InstallNameToolOpts.td b/llvm/tools/llvm-objcopy/InstallNameToolOpts.td
    deleted file mode 100644
    index 35047a57994c..000000000000
    --- a/llvm/tools/llvm-objcopy/InstallNameToolOpts.td
    +++ /dev/null
    @@ -1,22 +0,0 @@
    -//===-- InstallNameToolOpts.td - llvm-install-name-tool options  --------*-===//
    -//
    -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
    -// See https://urldefense.proofpoint.com/v2/url?u=https-3A__llvm.org_LICENSE.txt&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=zgimRgK8QKvZqPNj22e_dKf-W4YcwhlMXEH8VWVoN4g&s=twwCXdRYjIdjaYn7WcVatg1HF1JWrVT7RTiqdjTQgPo&e=  for license information.
    -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
    -//
    -//===----------------------------------------------------------------------===//
    -//
    -// This file describes the command line options of llvm-install-name.
    -//
    -//===----------------------------------------------------------------------===//
    -
    -include "llvm/Option/OptParser.td"
    -
    -def help : Flag<["--"], "help">;
    -def h : Flag<["-"], "h">, Alias<help>;
    -
    -def add_rpath : Option<["-", "--"], "add_rpath", KIND_SEPARATE>,
    -                HelpText<"Add new rpath">;
    -
    -def version : Flag<["--"], "version">,
    -              HelpText<"Print the version and exit.">;
    
    diff  --git a/llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp b/llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp
    index 652c0ac09577..d14354e8d067 100644
    --- a/llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp
    +++ b/llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp
    @@ -59,18 +59,6 @@ static void removeSymbols(const CopyConfig &Config, Object &Obj) {
       Obj.SymTable.removeSymbols(RemovePred);
     }
     
    -static LoadCommand buildRPathLoadCommand(StringRef Path) {
    -  LoadCommand LC;
    -  MachO::rpath_command RPathLC;
    -  RPathLC.cmd = MachO::LC_RPATH;
    -  RPathLC.path = sizeof(MachO::rpath_command);
    -  RPathLC.cmdsize = alignTo(sizeof(MachO::rpath_command) + Path.size(), 8);
    -  LC.MachOLoadCommand.rpath_command_data = RPathLC;
    -  LC.Payload.assign(RPathLC.cmdsize - sizeof(MachO::rpath_command), 0);
    -  std::copy(Path.begin(), Path.end(), LC.Payload.begin());
    -  return LC;
    -}
    -
     static Error handleArgs(const CopyConfig &Config, Object &Obj) {
       if (Config.AllowBrokenLinks || !Config.BuildIdLinkDir.empty() ||
           Config.BuildIdLinkInput || Config.BuildIdLinkOutput ||
    @@ -93,6 +81,7 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj) {
         return createStringError(llvm::errc::invalid_argument,
                                  "option not supported by llvm-objcopy for MachO");
       }
    +
       removeSections(Config, Obj);
     
       // Mark symbols to determine which symbols are still needed.
    @@ -106,19 +95,6 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj) {
           for (Section &Sec : LC.Sections)
             Sec.Relocations.clear();
     
    -  for (StringRef RPath : Config.RPathToAdd) {
    -    for (LoadCommand &LC : Obj.LoadCommands) {
    -      if (LC.MachOLoadCommand.load_command_data.cmd == MachO::LC_RPATH &&
    -          RPath == StringRef(reinterpret_cast<char *>(LC.Payload.data()),
    -                             LC.Payload.size())
    -                       .trim(0)) {
    -        return createStringError(errc::invalid_argument,
    -                                 "rpath " + RPath +
    -                                     " would create a duplicate load command");
    -      }
    -    }
    -    Obj.addLoadCommand(buildRPathLoadCommand(RPath));
    -  }
       return Error::success();
     }
     
    
    diff  --git a/llvm/tools/llvm-objcopy/MachO/Object.cpp b/llvm/tools/llvm-objcopy/MachO/Object.cpp
    index 812853ec4639..5626782d7d6e 100644
    --- a/llvm/tools/llvm-objcopy/MachO/Object.cpp
    +++ b/llvm/tools/llvm-objcopy/MachO/Object.cpp
    @@ -29,10 +29,6 @@ void Object::removeSections(function_ref<bool(const Section &)> ToRemove) {
                           std::end(LC.Sections));
     }
     
    -void Object::addLoadCommand(LoadCommand LC) {
    -  LoadCommands.push_back(std::move(LC));
    -}
    -
     } // end namespace macho
     } // end namespace objcopy
     } // end namespace llvm
    
    diff  --git a/llvm/tools/llvm-objcopy/MachO/Object.h b/llvm/tools/llvm-objcopy/MachO/Object.h
    index 098556d7402c..8642ce3c0d94 100644
    --- a/llvm/tools/llvm-objcopy/MachO/Object.h
    +++ b/llvm/tools/llvm-objcopy/MachO/Object.h
    @@ -74,7 +74,7 @@ struct LoadCommand {
       // The raw content of the payload of the load command (located right after the
       // corresponding struct). In some cases it is either empty or can be
       // copied-over without digging into its structure.
    -  std::vector<uint8_t> Payload; 
    +  ArrayRef<uint8_t> Payload;
     
       // Some load commands can contain (inside the payload) an array of sections,
       // though the contents of the sections are stored separately. The struct
    @@ -270,7 +270,6 @@ struct Object {
       Optional<size_t> FunctionStartsCommandIndex;
     
       void removeSections(function_ref<bool(const Section &)> ToRemove);
    -  void addLoadCommand(LoadCommand LC);
     };
     
     } // end namespace macho
    
    diff  --git a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
    index e662f35f4b08..a68210f3fdd3 100644
    --- a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
    +++ b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
    @@ -313,20 +313,11 @@ static Error executeObjcopy(CopyConfig &Config) {
       return Error::success();
     }
     
    -namespace {
    -
    -enum class ToolType { Objcopy, Strip, InstallNameTool };
    -
    -} // anonymous namespace
    -
     int main(int argc, char **argv) {
       InitLLVM X(argc, argv);
       ToolName = argv[0];
    -  ToolType Tool = StringSwitch<ToolType>(sys::path::stem(ToolName))
    -                      .EndsWith("strip", ToolType::Strip)
    -                      .EndsWith("install-name-tool", ToolType::InstallNameTool)
    -                      .EndsWith("install_name_tool", ToolType::InstallNameTool)
    -                      .Default(ToolType::Objcopy);
    +  bool IsStrip = sys::path::stem(ToolName).contains("strip");
    +
       // Expand response files.
       // TODO: Move these lines, which are copied from lib/Support/CommandLine.cpp,
       // into a separate function in the CommandLine library and call that function
    @@ -341,11 +332,10 @@ int main(int argc, char **argv) {
                               NewArgv);
     
       auto Args = makeArrayRef(NewArgv).drop_front();
    +
       Expected<DriverConfig> DriverConfig =
    -      (Tool == ToolType::Strip) ? parseStripOptions(Args, reportWarning)
    -                                : ((Tool == ToolType::InstallNameTool)
    -                                       ? parseInstallNameToolOptions(Args)
    -                                       : parseObjcopyOptions(Args, reportWarning));
    +      IsStrip ? parseStripOptions(Args, reportWarning)
    +              : parseObjcopyOptions(Args, reportWarning);
       if (!DriverConfig) {
         logAllUnhandledErrors(DriverConfig.takeError(),
                               WithColor::error(errs(), ToolName));
    
    
            
    _______________________________________________
    llvm-commits mailing list
    llvm-commits at lists.llvm.org
    https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=zgimRgK8QKvZqPNj22e_dKf-W4YcwhlMXEH8VWVoN4g&s=LqlkOccq6y5vCn8VEsIM11OWb3nw53a2idndcF4Q0Jw&e= 
    



More information about the llvm-commits mailing list