diff --git a/gdb-support-dw-lle-start-end.patch b/gdb-support-dw-lle-start-end.patch new file mode 100644 index 0000000..8e11a58 --- /dev/null +++ b/gdb-support-dw-lle-start-end.patch @@ -0,0 +1,45 @@ +From 80d1206d7fea6eb756183e2825abdfd0f00cd976 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Mon, 21 Jun 2021 11:38:23 +0200 +Subject: [PATCH] gdb: Support DW_LLE_start_end + +Without that it is impossible to debug on riscv64. + +gdb/ + PR symtab/27999 + * dwarf2/loc.c (decode_debug_loclists_addresses): Support + DW_LLE_start_end. + +diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c +index b7e30e3cb4a..d57cdc165ba 100644 +--- a/gdb/dwarf2/loc.c ++++ b/gdb/dwarf2/loc.c +@@ -255,9 +255,27 @@ decode_debug_loclists_addresses (dwarf2_per_cu_data *per_cu, + *new_ptr = loc_ptr; + return DEBUG_LOC_OFFSET_PAIR; + ++ case DW_LLE_start_end: ++ if (loc_ptr + 2 * addr_size > buf_end) ++ return DEBUG_LOC_BUFFER_OVERFLOW; ++ ++ if (signed_addr_p) ++ *low = extract_signed_integer (loc_ptr, addr_size, byte_order); ++ else ++ *low = extract_unsigned_integer (loc_ptr, addr_size, byte_order); ++ ++ loc_ptr += addr_size; ++ if (signed_addr_p) ++ *high = extract_signed_integer (loc_ptr, addr_size, byte_order); ++ else ++ *high = extract_unsigned_integer (loc_ptr, addr_size, byte_order); ++ ++ loc_ptr += addr_size; ++ *new_ptr = loc_ptr; ++ return DEBUG_LOC_START_END; ++ + /* Following cases are not supported yet. */ + case DW_LLE_startx_endx: +- case DW_LLE_start_end: + case DW_LLE_default_location: + default: + return DEBUG_LOC_INVALID_ENTRY; diff --git a/gdb.changes b/gdb.changes index 4694637..b2315bf 100644 --- a/gdb.changes +++ b/gdb.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jun 23 11:52:54 UTC 2021 - Andreas Schwab + +- gdb-support-dw-lle-start-end.patch: Support DW_LLE_start_end + (bsc#1187044) + ------------------------------------------------------------------- Thu Jun 17 11:19:14 UTC 2021 - Tom de Vries diff --git a/gdb.spec b/gdb.spec index 2d44ad8..8bb409f 100644 --- a/gdb.spec +++ b/gdb.spec @@ -1,5 +1,5 @@ # -# spec file +# spec file for package gdb-testresults # # Copyright (c) 2021 SUSE LLC # Copyright (c) 2012 RedHat @@ -320,6 +320,7 @@ Patch2019: gdb-build-hardcode-with-included-regex.patch Patch2020: gdb-breakpoint-fix-assert-in-jit_event_handler.patch Patch2021: gdb-save-restore-file-offset-while-reading-notes-in-core-file.patch Patch2022: gdb-symtab-fix-infinite-recursion-in-dwarf2_cu-get_builder-again.patch +Patch2023: gdb-support-dw-lle-start-end.patch # Testsuite patches @@ -756,6 +757,7 @@ find -name "*.info*"|xargs rm -f %patch2020 -p1 %patch2021 -p1 %patch2022 -p1 +%patch2023 -p1 %patch2500 -p1 %if 0%{?suse_version} > 1500