From 94485cac9629ca3e5489014e1b704e35f988d3e3 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Wed, 17 Jan 2018 12:48:52 +0000 Subject: Don't pass -m64 to libcc1 on aarch64-linux. Nowadays, if we use "compile" on aarch64-linux, we'll get the following error, (gdb) compile code -- ; aarch64-none-linux-gnu-gcc: error: unrecognized command line option '-m64' because the default gcc_target_options returns "-m64" and "-mcmodel=large", neither is useful to aarch64-linux. gdb: 2018-01-17 Yao Qi * aarch64-linux-tdep.c (aarch64_linux_gcc_target_options): New function. (aarch64_linux_init_abi): Install it to gdbarch hook gcc_target_options. --- gdb/ChangeLog | 7 +++++++ gdb/aarch64-linux-tdep.c | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 167aaf8e20..52139d8425 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2018-01-17 Yao Qi + + * aarch64-linux-tdep.c (aarch64_linux_gcc_target_options): New + function. + (aarch64_linux_init_abi): Install it to gdbarch hook + gcc_target_options. + 2018-01-12 Andreas Arnez * infrun.c (keep_going_pass_signal): Clear step-over info when diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c index 1a82406aae..1f3e888e40 100644 --- a/gdb/aarch64-linux-tdep.c +++ b/gdb/aarch64-linux-tdep.c @@ -1001,6 +1001,15 @@ aarch64_linux_syscall_record (struct regcache *regcache, return 0; } +/* Implement the "gcc_target_options" gdbarch method. */ + +static char * +aarch64_linux_gcc_target_options (struct gdbarch *gdbarch) +{ + /* GCC doesn't know "-m64". */ + return NULL; +} + static void aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { @@ -1225,6 +1234,8 @@ aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_displaced_step_location (gdbarch, linux_displaced_step_location); set_gdbarch_displaced_step_hw_singlestep (gdbarch, aarch64_displaced_step_hw_singlestep); + + set_gdbarch_gcc_target_options (gdbarch, aarch64_linux_gcc_target_options); } void -- cgit v1.2.3