diff --git a/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index da17038..3a04f42 100644
--- a/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -1651,13 +1651,6 @@
       return nullptr;
 
     dwo_file.SetFile(comp_dir, FileSpec::Style::native);
-    if (dwo_file.IsRelative()) {
-      // if DW_AT_comp_dir is relative, it should be relative to the location
-      // of the executable, not to the location from which the debugger was
-      // launched.
-      dwo_file.PrependPathComponent(
-          m_objfile_sp->GetFileSpec().GetDirectory().GetStringRef());
-    }
     FileSystem::Instance().Resolve(dwo_file);
     dwo_file.AppendPathComponent(dwo_name);
   }
diff --git a/test/Shell/SymbolFile/DWARF/dwo-relative-path.s b/test/Shell/SymbolFile/DWARF/dwo-relative-path.s
deleted file mode 100644
index cc05434..0000000
--- a/test/Shell/SymbolFile/DWARF/dwo-relative-path.s
+++ /dev/null
@@ -1,417 +0,0 @@
-# Test to verify LLDB searches for dwos with relative paths relative to the
-# binary location, not relative to LLDB's launch location.
-
-# RUN: llvm-mc --filetype=obj --triple x86_64-pc-linux %s -o %t.o
-# RUN: llvm-objcopy --split-dwo=%T/dwo-relative-path.dwo %t.o
-
-# RUN: cd ../..
-
-# RUN: %lldb %t.o -o "target var x" -b 2>&1 | FileCheck %s
-
-# CHECK: x = 0
-
-	.text
-	.file	"dwo-relative-path.cpp"
-	.file	0 "." "dwo-relative-path.cpp" md5 0xadc61d242247514c5d402d62db34b825
-	.globl	main                            # -- Begin function main
-	.p2align	4, 0x90
-	.type	main,@function
-main:                                   # @main
-.Lfunc_begin0:
-	.loc	0 14 0                          # dwo-relative-path.cpp:14:0
-	.cfi_startproc
-# %bb.0:                                # %entry
-	pushq	%rbp
-	.cfi_def_cfa_offset 16
-	.cfi_offset %rbp, -16
-	movq	%rsp, %rbp
-	.cfi_def_cfa_register %rbp
-	movl	$0, -4(%rbp)
-	movl	%edi, -8(%rbp)
-	movq	%rsi, -16(%rbp)
-.Ltmp0:
-	.loc	0 15 8 prologue_end             # dwo-relative-path.cpp:15:8
-	movw	.L__const.main.y, %ax
-	movw	%ax, -19(%rbp)
-	movb	.L__const.main.y+2, %al
-	movb	%al, -17(%rbp)
-	.loc	0 17 14                         # dwo-relative-path.cpp:17:14
-	movsbl	-19(%rbp), %eax
-	.loc	0 17 27 is_stmt 0               # dwo-relative-path.cpp:17:27
-	movsbl	-18(%rbp), %ecx
-	.loc	0 17 19                         # dwo-relative-path.cpp:17:19
-	addl	%ecx, %eax
-	.loc	0 17 5                          # dwo-relative-path.cpp:17:5
-	addl	x, %eax
-	movl	%eax, x
-	.loc	0 19 3 is_stmt 1                # dwo-relative-path.cpp:19:3
-	xorl	%eax, %eax
-	popq	%rbp
-	.cfi_def_cfa %rsp, 8
-	retq
-.Ltmp1:
-.Lfunc_end0:
-	.size	main, .Lfunc_end0-main
-	.cfi_endproc
-                                        # -- End function
-	.type	x,@object                       # @x
-	.data
-	.globl	x
-	.p2align	2
-x:
-	.long	10                              # 0xa
-	.size	x, 4
-
-	.type	.L__const.main.y,@object        # @__const.main.y
-	.section	.rodata,"a",@progbits
-.L__const.main.y:
-	.ascii	"abc"
-	.size	.L__const.main.y, 3
-
-	.section	.debug_abbrev,"",@progbits
-	.byte	1                               # Abbreviation Code
-	.byte	74                              # DW_TAG_skeleton_unit
-	.byte	0                               # DW_CHILDREN_no
-	.byte	16                              # DW_AT_stmt_list
-	.byte	23                              # DW_FORM_sec_offset
-	.byte	114                             # DW_AT_str_offsets_base
-	.byte	23                              # DW_FORM_sec_offset
-	.byte	27                              # DW_AT_comp_dir
-	.byte	37                              # DW_FORM_strx1
-	.ascii	"\264B"                         # DW_AT_GNU_pubnames
-	.byte	25                              # DW_FORM_flag_present
-	.byte	118                             # DW_AT_dwo_name
-	.byte	37                              # DW_FORM_strx1
-	.byte	17                              # DW_AT_low_pc
-	.byte	27                              # DW_FORM_addrx
-	.byte	18                              # DW_AT_high_pc
-	.byte	6                               # DW_FORM_data4
-	.byte	115                             # DW_AT_addr_base
-	.byte	23                              # DW_FORM_sec_offset
-	.byte	0                               # EOM(1)
-	.byte	0                               # EOM(2)
-	.byte	0                               # EOM(3)
-	.section	.debug_info,"",@progbits
-.Lcu_begin0:
-	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
-.Ldebug_info_start0:
-	.short	5                               # DWARF version number
-	.byte	4                               # DWARF Unit Type
-	.byte	8                               # Address Size (in bytes)
-	.long	.debug_abbrev                   # Offset Into Abbrev. Section
-	.quad	3752513468363206953
-	.byte	1                               # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
-	.long	.Lline_table_start0             # DW_AT_stmt_list
-	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
-	.byte	0                               # DW_AT_comp_dir
-                                        # DW_AT_GNU_pubnames
-	.byte	1                               # DW_AT_dwo_name
-	.byte	1                               # DW_AT_low_pc
-	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
-	.long	.Laddr_table_base0              # DW_AT_addr_base
-.Ldebug_info_end0:
-	.section	.debug_str_offsets,"",@progbits
-	.long	12                              # Length of String Offsets Set
-	.short	5
-	.short	0
-.Lstr_offsets_base0:
-	.section	.debug_str,"MS",@progbits,1
-.Lskel_string0:
-	.asciz	"."                             # string offset=0
-.Lskel_string1:
-	.asciz	"dwo-relative-path.dwo"         # string offset=2
-	.section	.debug_str_offsets,"",@progbits
-	.long	.Lskel_string0
-	.long	.Lskel_string1
-	.section	.debug_str_offsets.dwo,"e",@progbits
-	.long	48                              # Length of String Offsets Set
-	.short	5
-	.short	0
-	.section	.debug_str.dwo,"eMS",@progbits,1
-.Linfo_string0:
-	.asciz	"x"                             # string offset=0
-.Linfo_string1:
-	.asciz	"int"                           # string offset=2
-.Linfo_string2:
-	.asciz	"main"                          # string offset=6
-.Linfo_string3:
-	.asciz	"argc"                          # string offset=11
-.Linfo_string4:
-	.asciz	"argv"                          # string offset=16
-.Linfo_string5:
-	.asciz	"char"                          # string offset=21
-.Linfo_string6:
-	.asciz	"y"                             # string offset=26
-.Linfo_string7:
-	.asciz	"__ARRAY_SIZE_TYPE__"           # string offset=28
-.Linfo_string8:
-	.asciz	"clang version 13.0.0 (https://chromium.googlesource.com/external/github.com/llvm/llvm-project 6666e0d7a29c639df7a1652b6d3bf16f28edd45a)" # string offset=48
-.Linfo_string9:
-	.asciz	"dwo-relative-path.cpp"         # string offset=184
-.Linfo_string10:
-	.asciz	"dwo-relative-path.dwo"         # string offset=206
-	.section	.debug_str_offsets.dwo,"e",@progbits
-	.long	0
-	.long	2
-	.long	6
-	.long	11
-	.long	16
-	.long	21
-	.long	26
-	.long	28
-	.long	48
-	.long	184
-	.long	206
-	.section	.debug_info.dwo,"e",@progbits
-	.long	.Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
-.Ldebug_info_dwo_start0:
-	.short	5                               # DWARF version number
-	.byte	5                               # DWARF Unit Type
-	.byte	8                               # Address Size (in bytes)
-	.long	0                               # Offset Into Abbrev. Section
-	.quad	3752513468363206953
-	.byte	1                               # Abbrev [1] 0x14:0x65 DW_TAG_compile_unit
-	.byte	8                               # DW_AT_producer
-	.short	33                              # DW_AT_language
-	.byte	9                               # DW_AT_name
-	.byte	10                              # DW_AT_dwo_name
-	.byte	2                               # Abbrev [2] 0x1a:0xb DW_TAG_variable
-	.byte	0                               # DW_AT_name
-	.long	37                              # DW_AT_type
-                                        # DW_AT_external
-	.byte	0                               # DW_AT_decl_file
-	.byte	11                              # DW_AT_decl_line
-	.byte	2                               # DW_AT_location
-	.byte	161
-	.byte	0
-	.byte	3                               # Abbrev [3] 0x25:0x4 DW_TAG_base_type
-	.byte	1                               # DW_AT_name
-	.byte	5                               # DW_AT_encoding
-	.byte	4                               # DW_AT_byte_size
-	.byte	4                               # Abbrev [4] 0x29:0x31 DW_TAG_subprogram
-	.byte	1                               # DW_AT_low_pc
-	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
-	.byte	1                               # DW_AT_frame_base
-	.byte	86
-	.byte	2                               # DW_AT_name
-	.byte	0                               # DW_AT_decl_file
-	.byte	13                              # DW_AT_decl_line
-	.long	37                              # DW_AT_type
-                                        # DW_AT_external
-	.byte	5                               # Abbrev [5] 0x38:0xb DW_TAG_formal_parameter
-	.byte	2                               # DW_AT_location
-	.byte	145
-	.byte	120
-	.byte	3                               # DW_AT_name
-	.byte	0                               # DW_AT_decl_file
-	.byte	13                              # DW_AT_decl_line
-	.long	37                              # DW_AT_type
-	.byte	5                               # Abbrev [5] 0x43:0xb DW_TAG_formal_parameter
-	.byte	2                               # DW_AT_location
-	.byte	145
-	.byte	112
-	.byte	4                               # DW_AT_name
-	.byte	0                               # DW_AT_decl_file
-	.byte	13                              # DW_AT_decl_line
-	.long	90                              # DW_AT_type
-	.byte	6                               # Abbrev [6] 0x4e:0xb DW_TAG_variable
-	.byte	2                               # DW_AT_location
-	.byte	145
-	.byte	109
-	.byte	6                               # DW_AT_name
-	.byte	0                               # DW_AT_decl_file
-	.byte	15                              # DW_AT_decl_line
-	.long	104                             # DW_AT_type
-	.byte	0                               # End Of Children Mark
-	.byte	7                               # Abbrev [7] 0x5a:0x5 DW_TAG_pointer_type
-	.long	95                              # DW_AT_type
-	.byte	7                               # Abbrev [7] 0x5f:0x5 DW_TAG_pointer_type
-	.long	100                             # DW_AT_type
-	.byte	3                               # Abbrev [3] 0x64:0x4 DW_TAG_base_type
-	.byte	5                               # DW_AT_name
-	.byte	6                               # DW_AT_encoding
-	.byte	1                               # DW_AT_byte_size
-	.byte	8                               # Abbrev [8] 0x68:0xc DW_TAG_array_type
-	.long	100                             # DW_AT_type
-	.byte	9                               # Abbrev [9] 0x6d:0x6 DW_TAG_subrange_type
-	.long	116                             # DW_AT_type
-	.byte	3                               # DW_AT_count
-	.byte	0                               # End Of Children Mark
-	.byte	10                              # Abbrev [10] 0x74:0x4 DW_TAG_base_type
-	.byte	7                               # DW_AT_name
-	.byte	8                               # DW_AT_byte_size
-	.byte	7                               # DW_AT_encoding
-	.byte	0                               # End Of Children Mark
-.Ldebug_info_dwo_end0:
-	.section	.debug_abbrev.dwo,"e",@progbits
-	.byte	1                               # Abbreviation Code
-	.byte	17                              # DW_TAG_compile_unit
-	.byte	1                               # DW_CHILDREN_yes
-	.byte	37                              # DW_AT_producer
-	.byte	37                              # DW_FORM_strx1
-	.byte	19                              # DW_AT_language
-	.byte	5                               # DW_FORM_data2
-	.byte	3                               # DW_AT_name
-	.byte	37                              # DW_FORM_strx1
-	.byte	118                             # DW_AT_dwo_name
-	.byte	37                              # DW_FORM_strx1
-	.byte	0                               # EOM(1)
-	.byte	0                               # EOM(2)
-	.byte	2                               # Abbreviation Code
-	.byte	52                              # DW_TAG_variable
-	.byte	0                               # DW_CHILDREN_no
-	.byte	3                               # DW_AT_name
-	.byte	37                              # DW_FORM_strx1
-	.byte	73                              # DW_AT_type
-	.byte	19                              # DW_FORM_ref4
-	.byte	63                              # DW_AT_external
-	.byte	25                              # DW_FORM_flag_present
-	.byte	58                              # DW_AT_decl_file
-	.byte	11                              # DW_FORM_data1
-	.byte	59                              # DW_AT_decl_line
-	.byte	11                              # DW_FORM_data1
-	.byte	2                               # DW_AT_location
-	.byte	24                              # DW_FORM_exprloc
-	.byte	0                               # EOM(1)
-	.byte	0                               # EOM(2)
-	.byte	3                               # Abbreviation Code
-	.byte	36                              # DW_TAG_base_type
-	.byte	0                               # DW_CHILDREN_no
-	.byte	3                               # DW_AT_name
-	.byte	37                              # DW_FORM_strx1
-	.byte	62                              # DW_AT_encoding
-	.byte	11                              # DW_FORM_data1
-	.byte	11                              # DW_AT_byte_size
-	.byte	11                              # DW_FORM_data1
-	.byte	0                               # EOM(1)
-	.byte	0                               # EOM(2)
-	.byte	4                               # Abbreviation Code
-	.byte	46                              # DW_TAG_subprogram
-	.byte	1                               # DW_CHILDREN_yes
-	.byte	17                              # DW_AT_low_pc
-	.byte	27                              # DW_FORM_addrx
-	.byte	18                              # DW_AT_high_pc
-	.byte	6                               # DW_FORM_data4
-	.byte	64                              # DW_AT_frame_base
-	.byte	24                              # DW_FORM_exprloc
-	.byte	3                               # DW_AT_name
-	.byte	37                              # DW_FORM_strx1
-	.byte	58                              # DW_AT_decl_file
-	.byte	11                              # DW_FORM_data1
-	.byte	59                              # DW_AT_decl_line
-	.byte	11                              # DW_FORM_data1
-	.byte	73                              # DW_AT_type
-	.byte	19                              # DW_FORM_ref4
-	.byte	63                              # DW_AT_external
-	.byte	25                              # DW_FORM_flag_present
-	.byte	0                               # EOM(1)
-	.byte	0                               # EOM(2)
-	.byte	5                               # Abbreviation Code
-	.byte	5                               # DW_TAG_formal_parameter
-	.byte	0                               # DW_CHILDREN_no
-	.byte	2                               # DW_AT_location
-	.byte	24                              # DW_FORM_exprloc
-	.byte	3                               # DW_AT_name
-	.byte	37                              # DW_FORM_strx1
-	.byte	58                              # DW_AT_decl_file
-	.byte	11                              # DW_FORM_data1
-	.byte	59                              # DW_AT_decl_line
-	.byte	11                              # DW_FORM_data1
-	.byte	73                              # DW_AT_type
-	.byte	19                              # DW_FORM_ref4
-	.byte	0                               # EOM(1)
-	.byte	0                               # EOM(2)
-	.byte	6                               # Abbreviation Code
-	.byte	52                              # DW_TAG_variable
-	.byte	0                               # DW_CHILDREN_no
-	.byte	2                               # DW_AT_location
-	.byte	24                              # DW_FORM_exprloc
-	.byte	3                               # DW_AT_name
-	.byte	37                              # DW_FORM_strx1
-	.byte	58                              # DW_AT_decl_file
-	.byte	11                              # DW_FORM_data1
-	.byte	59                              # DW_AT_decl_line
-	.byte	11                              # DW_FORM_data1
-	.byte	73                              # DW_AT_type
-	.byte	19                              # DW_FORM_ref4
-	.byte	0                               # EOM(1)
-	.byte	0                               # EOM(2)
-	.byte	7                               # Abbreviation Code
-	.byte	15                              # DW_TAG_pointer_type
-	.byte	0                               # DW_CHILDREN_no
-	.byte	73                              # DW_AT_type
-	.byte	19                              # DW_FORM_ref4
-	.byte	0                               # EOM(1)
-	.byte	0                               # EOM(2)
-	.byte	8                               # Abbreviation Code
-	.byte	1                               # DW_TAG_array_type
-	.byte	1                               # DW_CHILDREN_yes
-	.byte	73                              # DW_AT_type
-	.byte	19                              # DW_FORM_ref4
-	.byte	0                               # EOM(1)
-	.byte	0                               # EOM(2)
-	.byte	9                               # Abbreviation Code
-	.byte	33                              # DW_TAG_subrange_type
-	.byte	0                               # DW_CHILDREN_no
-	.byte	73                              # DW_AT_type
-	.byte	19                              # DW_FORM_ref4
-	.byte	55                              # DW_AT_count
-	.byte	11                              # DW_FORM_data1
-	.byte	0                               # EOM(1)
-	.byte	0                               # EOM(2)
-	.byte	10                              # Abbreviation Code
-	.byte	36                              # DW_TAG_base_type
-	.byte	0                               # DW_CHILDREN_no
-	.byte	3                               # DW_AT_name
-	.byte	37                              # DW_FORM_strx1
-	.byte	11                              # DW_AT_byte_size
-	.byte	11                              # DW_FORM_data1
-	.byte	62                              # DW_AT_encoding
-	.byte	11                              # DW_FORM_data1
-	.byte	0                               # EOM(1)
-	.byte	0                               # EOM(2)
-	.byte	0                               # EOM(3)
-	.section	.debug_addr,"",@progbits
-	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
-.Ldebug_addr_start0:
-	.short	5                               # DWARF version number
-	.byte	8                               # Address size
-	.byte	0                               # Segment selector size
-.Laddr_table_base0:
-	.quad	x
-	.quad	.Lfunc_begin0
-.Ldebug_addr_end0:
-	.section	.debug_gnu_pubnames,"",@progbits
-	.long	.LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
-.LpubNames_start0:
-	.short	2                               # DWARF Version
-	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
-	.long	40                              # Compilation Unit Length
-	.long	41                              # DIE offset
-	.byte	48                              # Attributes: FUNCTION, EXTERNAL
-	.asciz	"main"                          # External Name
-	.long	26                              # DIE offset
-	.byte	32                              # Attributes: VARIABLE, EXTERNAL
-	.asciz	"x"                             # External Name
-	.long	0                               # End Mark
-.LpubNames_end0:
-	.section	.debug_gnu_pubtypes,"",@progbits
-	.long	.LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
-.LpubTypes_start0:
-	.short	2                               # DWARF Version
-	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
-	.long	40                              # Compilation Unit Length
-	.long	37                              # DIE offset
-	.byte	144                             # Attributes: TYPE, STATIC
-	.asciz	"int"                           # External Name
-	.long	100                             # DIE offset
-	.byte	144                             # Attributes: TYPE, STATIC
-	.asciz	"char"                          # External Name
-	.long	0                               # End Mark
-.LpubTypes_end0:
-	.ident	"clang version 13.0.0 (https://chromium.googlesource.com/external/github.com/llvm/llvm-project 6666e0d7a29c639df7a1652b6d3bf16f28edd45a)"
-	.section	".note.GNU-stack","",@progbits
-	.addrsig
-	.addrsig_sym x
-	.section	.debug_line,"",@progbits
-.Lline_table_start0:
