diff --git a/llvm/test/tools/llvm-objcopy/grouped-options.test b/llvm/test/tools/llvm-objcopy/grouped-options.test
new file mode 100644
--- /dev/null
+++ b/llvm/test/tools/llvm-objcopy/grouped-options.test
@@ -0,0 +1,53 @@
+# RUN: yaml2obj %s -o %t
+# RUN: llvm-strip -S -x -o %t-separated %t
+# RUN: llvm-strip -Sx -o %t-grouped %t
+# RUN: cmp %t-separated %t-grouped
+
+!ELF
+FileHeader:
+  Class:           ELFCLASS64
+  Data:            ELFDATA2LSB
+  Type:            ET_REL
+  Machine:         EM_X86_64
+Sections:
+  - Name:            .debugGlobal
+    Type:            SHT_PROGBITS
+    Content:         "00000000"
+  - Name:            .zdebugGlobal
+    Type:            SHT_PROGBITS
+    Content:         "00000000"
+  - Name:            .gdb_index
+    Type:            SHT_PROGBITS
+    Content:         "00000000"
+  - Name:            .text
+    Type:            SHT_PROGBITS
+    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
+    Address:         0x1000
+    AddressAlign:    0x0000000000000010
+    Size:            64
+Symbols:
+  - Name:     Local
+    Type:     STT_FUNC
+    Section:  .text
+    Value:    0x1000
+    Size:     8
+  - Name:     LocalSection
+    Type:     STT_SECTION
+    Section:  .text
+  - Name:     LocalFile
+    Type:     STT_FILE
+  - Name:     Global
+    Type:     STT_FUNC
+    Size:     8
+    Section:  .text
+    Value:    0x1010
+    Binding:  STB_GLOBAL
+  - Name:     Weak
+    Type:     STT_FUNC
+    Size:     8
+    Section:  .text
+    Value:    0x1008
+  - Name:    debugGlobal
+    Section: .debugGlobal
+    Binding:  STB_GLOBAL
+
diff --git a/llvm/tools/llvm-objcopy/ConfigManager.cpp b/llvm/tools/llvm-objcopy/ConfigManager.cpp
--- a/llvm/tools/llvm-objcopy/ConfigManager.cpp
+++ b/llvm/tools/llvm-objcopy/ConfigManager.cpp
@@ -1242,6 +1242,7 @@
     DashDash = std::next(DashDash);
 
   StripOptTable T;
+  T.setGroupedShortOptions(true);
   unsigned MissingArgumentIndex, MissingArgumentCount;
   llvm::opt::InputArgList InputArgs =
       T.ParseArgs(ArgsArr, MissingArgumentIndex, MissingArgumentCount);