[all-commits] [llvm/llvm-project] edeeba: [llvm-objcopy] Add support for shell wildcards

Jordan Rupprecht via All-commits all-commits at lists.llvm.org
Thu Oct 17 13:49:52 PDT 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: edeebad7715774b8481103733dc5d52dac43bdf3
      https://github.com/llvm/llvm-project/commit/edeebad7715774b8481103733dc5d52dac43bdf3
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2019-10-17 (Thu, 17 Oct 2019)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-objcopy.rst
    M llvm/docs/CommandGuide/llvm-strip.rst
    A llvm/test/tools/llvm-objcopy/ELF/wildcard-flags.test
    A llvm/test/tools/llvm-objcopy/ELF/wildcard-syntax.test
    M llvm/tools/llvm-objcopy/CommonOpts.td
    M llvm/tools/llvm-objcopy/CopyConfig.cpp
    M llvm/tools/llvm-objcopy/CopyConfig.h
    M llvm/tools/llvm-objcopy/llvm-objcopy.cpp

  Log Message:
  -----------
  [llvm-objcopy] Add support for shell wildcards

Summary: GNU objcopy accepts the --wildcard flag to allow wildcard matching on symbol-related flags. (Note: it's implicitly true for section flags).

The basic syntax is to allow *, ?, \, and [] which work similarly to how they work in a shell. Additionally, starting a wildcard with ! causes that wildcard to prevent it from matching a flag.

Use an updated GlobPattern in libSupport to handle these patterns. It does not fully match the `fnmatch` used by GNU objcopy since named character classes (e.g. `[[:digit:]]`) are not supported, but this should support most existing use cases (mostly just `*` is what's used anyway).

Reviewers: jhenderson, MaskRay, evgeny777, espindola, alexshap

Reviewed By: MaskRay

Subscribers: nickdesaulniers, emaste, arichardson, hiraditya, jakehehrlich, abrachet, seiya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66613

llvm-svn: 375169




More information about the All-commits mailing list