Post by Pinski, Andrewhttps://sourceware.org/ml/binutils/2017-03/msg00075.html
https://sourceware.org/ml/gdb-patches/2017-03/msg00051.html
All these TODOs are given based on the observations of gdb tests result
with these two patches above applied.
Post by Pinski, AndrewPost by Maxim Kuvyrkov2. [GLIBC] LP64 glibc libthread_db does not support ILP32.
No change to glibc was needed to fix this, only the above changes to gdb were needed.
There are still some failed tests in gdb.threads/,
FAIL: gdb.threads/thread-specific-bp.exp: all-stop: get main thread id
FAIL: gdb.threads/thread-specific-bp.exp: non-stop: get main thread id
FAIL: gdb.threads/thread-specific.exp: get threads list (no threads)
Post by Pinski, AndrewPost by Maxim Kuvyrkov3. [GDB] Handle ILP32 siginfo layout
The change to aarch64_linux_siginfo_fixup fixes that.
FAIL: gdb.base/siginfo-obj.exp: p ssi_addr
FAIL: gdb.base/siginfo-obj.exp: p ssi_addr
FAIL: gdb.base/siginfo-obj.exp: p
$_siginfo._sifields._sigfault.si_addr from core file
FAIL: gdb.base/siginfo-thread.exp: p ssi_addr
FAIL: gdb.base/siginfo-thread.exp: p
$_siginfo._sifields._sigfault.si_addr from core file
Post by Pinski, AndrewPost by Maxim Kuvyrkov4. [GDB] Inferior call passing pointer argument.
The change to aarch64_gdbarch_init fixes that.
FAIL: gdb.base/callfuncs.exp: p t_string_values("string 1","string 2")
FAIL: gdb.base/callfuncs.exp: p t_string_values("string 1",string_val2)
FAIL: gdb.base/callfuncs.exp: p t_string_values(string_val1,"string 2")
FAIL: gdb.base/callfuncs.exp: p t_char_array_values("carray 1","carray 2")
FAIL: gdb.base/callfuncs.exp: p t_char_array_values("carray 1",char_array_val2)
FAIL: gdb.base/callfuncs.exp: p t_char_array_values(char_array_val1,"carray 2")
FAIL: gdb.base/callfuncs.exp: p sum_args(1,{2})
FAIL: gdb.base/callfuncs.exp: p sum_args(2,{2,3})
FAIL: gdb.base/callfuncs.exp: p sum_args(3,{2,3,4})
FAIL: gdb.base/callfuncs.exp: p sum_args(4,{2,3,4,5})
FAIL: gdb.base/callfuncs.exp: noproto: p t_string_values("string 1","string 2")
FAIL: gdb.base/callfuncs.exp: noproto: p t_string_values("string 1",string_val2)
FAIL: gdb.base/callfuncs.exp: noproto: p t_string_values(string_val1,"string 2")
FAIL: gdb.base/callfuncs.exp: noproto: p t_char_array_values("carray
1","carray 2")
FAIL: gdb.base/callfuncs.exp: noproto: p t_char_array_values("carray
1",char_array_val2)
FAIL: gdb.base/callfuncs.exp: noproto: p
t_char_array_values(char_array_val1,"carray 2")
FAIL: gdb.base/callfuncs.exp: noproto: p sum_args(1,{2})
FAIL: gdb.base/callfuncs.exp: noproto: p sum_args(2,{2,3})
FAIL: gdb.base/callfuncs.exp: noproto: p sum_args(3,{2,3,4})
FAIL: gdb.base/callfuncs.exp: noproto: p sum_args(4,{2,3,4,5})
Post by Pinski, AndrewPost by Maxim Kuvyrkov5. Handle shared libraries
The change to aarch64_linux_init_abi fixes that.
There are still many failed tests about shared library.
FAIL: gdb.base/catch-load.exp: plain load with stop-on-solib-events:
set var libname = "catch-load-so.so"
FAIL: gdb.base/catch-load.exp: plain load with stop-on-solib-events: continue
FAIL: gdb.base/catch-load.exp: rx load with stop-on-solib-events: set
var libname = "catch-load-so.so"
FAIL: gdb.base/catch-load.exp: rx load with stop-on-solib-events: continue
FAIL: gdb.base/catch-load.exp: non-matching load with
stop-on-solib-events: set var libname = "catch-load-so.so"
FAIL: gdb.base/catch-load.exp: non-matching load with
stop-on-solib-events: continue
FAIL: gdb.base/catch-load.exp: plain unload with stop-on-solib-events:
set var libname = "catch-load-so.so"
FAIL: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: continue
FAIL: gdb.base/catch-load.exp: rx unload with stop-on-solib-events:
set var libname = "catch-load-so.so"
FAIL: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: continue
FAIL: gdb.base/catch-load.exp: non-matching unload with
stop-on-solib-events: set var libname = "catch-load-so.so"
FAIL: gdb.base/catch-load.exp: non-matching unload with
stop-on-solib-events: continue
FAIL: gdb.base/skip-solib.exp: step after ignoring solib file.
FAIL: gdb.base/skip-solib.exp: step (the program exited)
FAIL: gdb.base/skip-solib.exp: bt
FAIL: gdb.base/so-impl-ld.exp: step into solib call
FAIL: gdb.base/so-impl-ld.exp: step in solib call
FAIL: gdb.base/so-impl-ld.exp: step out of solib call
FAIL: gdb.base/solib-display.exp: NO: display (int) a_global
FAIL: gdb.base/solib-display.exp: NO: display (int) b_global
FAIL: gdb.base/solib-display.exp: NO: display (int) c_global
FAIL: gdb.base/solib-display.exp: NO: after rerun
FAIL: gdb.base/solib-display.exp: NO: after rerun (2)
FAIL: gdb.base/solib-display.exp: NO: display main_global
FAIL: gdb.base/solib-display.exp: NO: display a_local
FAIL: gdb.base/solib-display.exp: NO: display a_static
FAIL: gdb.base/solib-display.exp: NO: continue
FAIL: gdb.base/solib-display.exp: IN: display (int) a_global
FAIL: gdb.base/solib-display.exp: IN: display (int) b_global
FAIL: gdb.base/solib-display.exp: IN: display (int) c_global
FAIL: gdb.base/solib-display.exp: IN: after rerun
FAIL: gdb.base/solib-display.exp: IN: after rerun (2)
FAIL: gdb.base/solib-display.exp: IN: display main_global
FAIL: gdb.base/solib-display.exp: IN: display a_local
FAIL: gdb.base/solib-display.exp: IN: display a_static
FAIL: gdb.base/solib-display.exp: IN: continue
FAIL: gdb.base/solib-display.exp: SEP: display (int) a_global
FAIL: gdb.base/solib-display.exp: SEP: display (int) b_global
FAIL: gdb.base/solib-display.exp: SEP: display (int) c_global
FAIL: gdb.base/solib-display.exp: SEP: after rerun
FAIL: gdb.base/solib-display.exp: SEP: after rerun (2)
FAIL: gdb.base/solib-display.exp: SEP: display main_global
FAIL: gdb.base/solib-display.exp: SEP: display a_local
FAIL: gdb.base/solib-display.exp: SEP: display a_static
FAIL: gdb.base/solib-display.exp: SEP: continue
FAIL: gdb.base/solib-symbol.exp: foo in libmd
FAIL: gdb.base/solib-symbol.exp: foo2 in mdlib
FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2
nodebug, lib1 first (the program exited)
FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2
nodebug, lib2 first (the program exited)
FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2
debug, lib1 first (the program exited)
FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2
debug, lib2 first (the program exited)
FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2
nodebug, lib1 first (the program exited)
FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2
nodebug, lib2 first (the program exited)
FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2
debug, lib1 first (the program exited)
FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2
debug, lib2 first (the program exited)
Post by Pinski, AndrewPost by Maxim Kuvyrkov6. [GDB] GDB resolves ifunc functions,
The change to aarch64_gdbarch_init fixes that IIRC.
FAIL: gdb.base/gnu-ifunc.exp: p gnu_ifunc (3)
FAIL: gdb.base/gnu-ifunc.exp: resolver received HWCAP
FAIL: gdb.base/gnu-ifunc.exp: continue to break-at-nextcall
FAIL: gdb.base/gnu-ifunc.exp: nextcall gnu_ifunc skipped
FAIL: gdb.base/gnu-ifunc.exp: p gnu_ifunc executing
FAIL: gdb.base/gnu-ifunc.exp: info sym gnu_ifunc executing
FAIL: gdb.base/gnu-ifunc.exp: info sym <gnu_ifunc-address>
Post by Pinski, AndrewPost by Maxim Kuvyrkov7. [GDB] Gdbserver support for ILP32.
The change to aarch64_linux_read_description fixes that.
That is not enough, GDBserver (LP64) needs to fix up siginfo for
ILP32 program, like what GDB does. GDBserver uses libthread_db
too. There is also tracepoint and fast tracepoint support in
GDBserver. I don't expect them supported in ILP32.
--
Yao Qi