From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by sourceware.org (Postfix) with ESMTPS id 86B52385B831 for ; Mon, 6 Apr 2020 10:28:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 86B52385B831 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=gmx.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=n54@gmx.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1586168931; bh=NBmVrsPpr9bGOtsa1mxJul83VWrWLIGsFIcsP+IfWN0=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=iwjDiVl0YdeJQCgIll9QAeNKnIMutLQjZPuTDs4kHi8MEekzaWnyaunr6mpGDH2Ff kwUSq5+Er8evxaD7phKm0nwnFydaau6Um7MKiLQ/U+gOpZfCsmZIf1ruLr4ddi9H63 /g/YrWQBIY897vdGGSy74ovWTrqrlSymuTEveAv4= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([89.79.191.25]) by mail.gmx.com (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MK3Rm-1jbQTt0Gru-00LWa1; Mon, 06 Apr 2020 12:28:51 +0200 From: Kamil Rytarowski To: gdb-patches@sourceware.org Subject: [PATCH] Add signal number conversions for NetBSD Date: Mon, 6 Apr 2020 12:27:55 +0200 Message-Id: <20200406102755.9148-1-n54@gmx.com> X-Mailer: git-send-email 2.25.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:hL+GOIgBrNIAgxI7kK2EkGPi/4fu+bOQIPRJOqVo2LpFXMqiNJa 0iP2sli0tu6ExUlid78VjoAJy6Q3YeqjrPuOtQ/ZRwAhZqcZxru87zyubzK5CKIm1oO1JJ8 o+p3cHOmbrATKZKC03M8uJkpIpA71zTR1dzBM28MMKLAc6yndibV44uUeKHTvTtQdwShgc5 VZyUKrPrWgkDXZz7y7M3w== X-UI-Out-Filterresults: notjunk:1;V03:K0:yhTtpopwAFo=:cOs4yzxVpgscYBKKUb7rCc Oi5Y2o0zTUf2gsGmiPsqYROcArIOT6tPA2dZNearFJFzNK7kyexxJnoRYP0wJ4wb9L3ivVAXn nlNY7BeX++W/qbve3mvoGUIbjKnmSJbdhkCJyEwrWuCVCU5PPom6YQwiWyoUCfxJObzGtBLC+ llMU8FNv4UXwFG94Lc1mAT2p6WkxrosKswfexY9UfRZ4Cfc5KMlsYNL6NRpUm0k/O98f0vUoU i/8iRPSQHLh5meZ3YFZGXVhCfjhNKT3EJQU7OxXcznZZ/ydrSh2IVNZFv9E9vUbd22LZKRWFo nakqhCSflEJeggUGnCeXAxoBAdon7kYL145XfkPIbcoc2CElGvcI9hxtGiIuqqYRVcxYJueBs Hffi9seWUP7375H1dGYusPPFZqngwXlgdMjRzAtlLdYlILtsRxM/0HowaL9nO6whpsLZVTgW3 JYjFCZbwJAeCIrLJph7ANaGtgTmmXEBFF/cY3EX3F5uE9/YRlDgX649IcwymJ0p0vhRPK0/kp FgXRkj91UqrXweuxrI+Jiiv4ZDheP3HS7s7qqeFk1pY717+NMsz2mMXpQQbexcxQKxYt81b/k bcYPM6aFGXIN5SUmQAGft5Dgm9QOOrcRc4niXez6yBe0AgcCUtwBoWuM9x2DsSQArUXOhGfhJ n+HFfdlE8BjXtv6+KKADxAPIvN8tfYUCPWBr+plvtKML7day53Wv+MXOOzAE6Ca1cpIRtwtSR TyTIxSs4vWbVwtIvAd5ymIR/9T2S7jGo+FoqIgq13ebY92KvWvIWIH7ELK4N8CFC+040URorH JLvusszxv7dEzdmnqcXLxIvhEFG6wE4TXP1IFGYqeGTGRbh6EjkN+BY3kfiFz0qgILZoxvTIm XEeTfCxbJB7LFzqtq0uB9jP/icLXb+RAP2VoOjAMINdXb2P0h2N9GUxkGRJQsQRxW8c8beni2 DWaChPTxbWTPm3ihhzrVaoiXdKqxq9Q9BzW6/+UCgvVvnJy+LeWAHvvDBe+Lgeb//nswssPlE eE3JX4PmAxDW044rs5nmrSaGgCUNuRuiK4FsnzLUVBuOGTwz5FoDIz7xgYpgzWQoyyAKgbai+ v75JSKWhQPKuLK2waTNZNles5z7tJOq/Xm01beT7cGvuzRR5IofqPiFVqcYdtBPTojWZckEf7 L7XxXVUMwv9mOoN6SKKQAz2QXmfBVZQWFP0Sxjtp2d9tZ/KEw0qUylmJGMW7Xnb3uTAps= X-Spam-Status: No, score=-28.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 10:28:57 -0000 gdb/ChangeLog: * nbsd-tdep.c: Include "gdbarch.h". Define enum with NetBSD signal numbers. (nbsd_gdb_signal_from_target, nbsd_gdb_signal_to_target): New. * alpha-nbsd-tdep.c (alphanbsd_init_abi): Call nbsd_init_abi(). * amd64-nbsd-tdep.c (amd64nbsd_init_abi): Likewise. * arm-nbsd-tdep.c (arm_netbsd_elf_init_abi): Likewise. * hppa-nbsd-tdep.c (hppanbsd_init_abi): Likewise. * i386-nbsd-tdep.c (i386nbsd_init_abi): Likewise. * mips-nbsd-tdep.c (nbsd_init_abi): Likewise. * ppc-nbsd-tdep.c (ppcnbsd_init_abi): Likewise. * sh-nbsd-tdep.c (shnbsd_init_abi): Likewise. * sparc-nbsd-tdep.c (sparc32nbsd_init_abi): Likewise. * sparc64-nbsd-tdep.c (sparc64nbsd_init_abi): Likewise. * vax-nbsd-tdep.c (vaxnbsd_elf_init_abi): Likewise. =2D-- gdb/ChangeLog | 17 +++ gdb/alpha-nbsd-tdep.c | 2 + gdb/amd64-nbsd-tdep.c | 1 + gdb/arm-nbsd-tdep.c | 3 + gdb/hppa-nbsd-tdep.c | 2 + gdb/i386-nbsd-tdep.c | 2 + gdb/mips-nbsd-tdep.c | 2 + gdb/nbsd-tdep.c | 300 ++++++++++++++++++++++++++++++++++++++++ gdb/nbsd-tdep.h | 4 + gdb/ppc-nbsd-tdep.c | 2 + gdb/sh-nbsd-tdep.c | 1 + gdb/sparc-nbsd-tdep.c | 2 + gdb/sparc64-nbsd-tdep.c | 2 + gdb/vax-nbsd-tdep.c | 2 + 14 files changed, 342 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 014752e4ddc..b1a965304a4 100644 =2D-- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,20 @@ +2020-04-06 Kamil Rytarowski + + * nbsd-tdep.c: Include "gdbarch.h". + Define enum with NetBSD signal numbers. + (nbsd_gdb_signal_from_target, nbsd_gdb_signal_to_target): New. + * alpha-nbsd-tdep.c (alphanbsd_init_abi): Call nbsd_init_abi(). + * amd64-nbsd-tdep.c (amd64nbsd_init_abi): Likewise. + * arm-nbsd-tdep.c (arm_netbsd_elf_init_abi): Likewise. + * hppa-nbsd-tdep.c (hppanbsd_init_abi): Likewise. + * i386-nbsd-tdep.c (i386nbsd_init_abi): Likewise. + * mips-nbsd-tdep.c (nbsd_init_abi): Likewise. + * ppc-nbsd-tdep.c (ppcnbsd_init_abi): Likewise. + * sh-nbsd-tdep.c (shnbsd_init_abi): Likewise. + * sparc-nbsd-tdep.c (sparc32nbsd_init_abi): Likewise. + * sparc64-nbsd-tdep.c (sparc64nbsd_init_abi): Likewise. + * vax-nbsd-tdep.c (vaxnbsd_elf_init_abi): Likewise. + 2020-04-03 Hannes Domani PR gdb/25325 diff --git a/gdb/alpha-nbsd-tdep.c b/gdb/alpha-nbsd-tdep.c index ab9240e35da..58294edb3f6 100644 =2D-- a/gdb/alpha-nbsd-tdep.c +++ b/gdb/alpha-nbsd-tdep.c @@ -258,6 +258,8 @@ alphanbsd_init_abi (struct gdbarch_info info, /* Hook into the MDEBUG frame unwinder. */ alpha_mdebug_init_abi (info, gdbarch); + nbsd_init_abi (info, gdbarch); + /* NetBSD/alpha does not provide single step support via ptrace(2); we must use software single-stepping. */ set_gdbarch_software_single_step (gdbarch, alpha_software_single_step); diff --git a/gdb/amd64-nbsd-tdep.c b/gdb/amd64-nbsd-tdep.c index 89d07236b85..59071488ed7 100644 =2D-- a/gdb/amd64-nbsd-tdep.c +++ b/gdb/amd64-nbsd-tdep.c @@ -106,6 +106,7 @@ amd64nbsd_init_abi (struct gdbarch_info info, struct g= dbarch *gdbarch) amd64_init_abi (info, gdbarch, amd64_target_description (X86_XSTATE_SSE_MASK, true)); + nbsd_init_abi (info, gdbarch); tdep->jb_pc_offset =3D 7 * 8; diff --git a/gdb/arm-nbsd-tdep.c b/gdb/arm-nbsd-tdep.c index e01df50bc25..a6104f760b3 100644 =2D-- a/gdb/arm-nbsd-tdep.c +++ b/gdb/arm-nbsd-tdep.c @@ -150,6 +150,9 @@ arm_netbsd_elf_init_abi (struct gdbarch_info info, struct gdbarch_tdep *tdep =3D gdbarch_tdep (gdbarch); arm_netbsd_init_abi_common (info, gdbarch); + + nbsd_init_abi (info, gdbarch); + if (tdep->fp_model =3D=3D ARM_FLOAT_AUTO) tdep->fp_model =3D ARM_FLOAT_SOFT_VFP; diff --git a/gdb/hppa-nbsd-tdep.c b/gdb/hppa-nbsd-tdep.c index b532ab1d5cc..d601aa96f3f 100644 =2D-- a/gdb/hppa-nbsd-tdep.c +++ b/gdb/hppa-nbsd-tdep.c @@ -201,6 +201,8 @@ hppanbsd_init_abi (struct gdbarch_info info, struct gd= barch *gdbarch) /* Obviously NetBSD is BSD-based. */ hppabsd_init_abi (info, gdbarch); + nbsd_init_abi (info, gdbarch); + /* Core file support. */ set_gdbarch_iterate_over_regset_sections (gdbarch, hppanbsd_iterate_over_regset_sections); diff --git a/gdb/i386-nbsd-tdep.c b/gdb/i386-nbsd-tdep.c index 3157451e08f..f350412d9bd 100644 =2D-- a/gdb/i386-nbsd-tdep.c +++ b/gdb/i386-nbsd-tdep.c @@ -377,6 +377,8 @@ i386nbsd_init_abi (struct gdbarch_info info, struct gd= barch *gdbarch) /* Obviously NetBSD is BSD-based. */ i386bsd_init_abi (info, gdbarch); + nbsd_init_abi (info, gdbarch); + /* NetBSD has a different `struct reg'. */ tdep->gregset_reg_offset =3D i386nbsd_r_reg_offset; tdep->gregset_num_regs =3D ARRAY_SIZE (i386nbsd_r_reg_offset); diff --git a/gdb/mips-nbsd-tdep.c b/gdb/mips-nbsd-tdep.c index 38bc7ce636b..6f4d22b24fb 100644 =2D-- a/gdb/mips-nbsd-tdep.c +++ b/gdb/mips-nbsd-tdep.c @@ -354,6 +354,8 @@ static void mipsnbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { + nbsd_init_abi (info, gdbarch) + set_gdbarch_iterate_over_regset_sections (gdbarch, mipsnbsd_iterate_over_regset_sections); diff --git a/gdb/nbsd-tdep.c b/gdb/nbsd-tdep.c index 49bb2b706bd..6680d3c6fde 100644 =2D-- a/gdb/nbsd-tdep.c +++ b/gdb/nbsd-tdep.c @@ -22,6 +22,7 @@ #include "defs.h" #include "solib-svr4.h" #include "nbsd-tdep.h" +#include "gdbarch.h" /* FIXME: kettenis/20060115: We should really eliminate the next two functions completely. */ @@ -47,3 +48,302 @@ nbsd_pc_in_sigtramp (CORE_ADDR pc, const char *func_na= me) return (func_name !=3D NULL && startswith (func_name, "__sigtramp")); } + +/* This enum is derived from NETBSD's . */ + +enum + { + NBSD_SIGHUP =3D 1, + NBSD_SIGINT =3D 2, + NBSD_SIGQUIT =3D 3, + NBSD_SIGILL =3D 4, + NBSD_SIGTRAP =3D 5, + NBSD_SIGABRT =3D 6, + NBSD_SIGEMT =3D 7, + NBSD_SIGFPE =3D 8, + NBSD_SIGKILL =3D 9, + NBSD_SIGBUS =3D 10, + NBSD_SIGSEGV =3D 11, + NBSD_SIGSYS =3D 12, + NBSD_SIGPIPE =3D 13, + NBSD_SIGALRM =3D 14, + NBSD_SIGTERM =3D 15, + NBSD_SIGURG =3D 16, + NBSD_SIGSTOP =3D 17, + NBSD_SIGTSTP =3D 18, + NBSD_SIGCONT =3D 19, + NBSD_SIGCHLD =3D 20, + NBSD_SIGTTIN =3D 21, + NBSD_SIGTTOU =3D 22, + NBSD_SIGIO =3D 23, + NBSD_SIGXCPU =3D 24, + NBSD_SIGXFSZ =3D 25, + NBSD_SIGVTALRM =3D 26, + NBSD_SIGPROF =3D 27, + NBSD_SIGWINCH =3D 28, + NBSD_SIGINFO =3D 29, + NBSD_SIGUSR1 =3D 30, + NBSD_SIGUSR2 =3D 31, + NBSD_SIGPWR =3D 32, + NBSD_SIGRTMIN =3D 33, + NBSD_SIGRTMAX =3D 63, + }; + +/* Implement the "gdb_signal_from_target" gdbarch method. */ + +static enum gdb_signal +nbsd_gdb_signal_from_target (struct gdbarch *gdbarch, int signal) +{ + switch (signal) + { + case 0: + return GDB_SIGNAL_0; + + case NBSD_SIGHUP: + return GDB_SIGNAL_HUP; + + case NBSD_SIGINT: + return GDB_SIGNAL_INT; + + case NBSD_SIGQUIT: + return GDB_SIGNAL_QUIT; + + case NBSD_SIGILL: + return GDB_SIGNAL_ILL; + + case NBSD_SIGTRAP: + return GDB_SIGNAL_TRAP; + + case NBSD_SIGABRT: + return GDB_SIGNAL_ABRT; + + case NBSD_SIGEMT: + return GDB_SIGNAL_EMT; + + case NBSD_SIGFPE: + return GDB_SIGNAL_FPE; + + case NBSD_SIGKILL: + return GDB_SIGNAL_KILL; + + case NBSD_SIGBUS: + return GDB_SIGNAL_BUS; + + case NBSD_SIGSEGV: + return GDB_SIGNAL_SEGV; + + case NBSD_SIGSYS: + return GDB_SIGNAL_SYS; + + case NBSD_SIGPIPE: + return GDB_SIGNAL_PIPE; + + case NBSD_SIGALRM: + return GDB_SIGNAL_ALRM; + + case NBSD_SIGTERM: + return GDB_SIGNAL_TERM; + + case NBSD_SIGURG: + return GDB_SIGNAL_URG; + + case NBSD_SIGSTOP: + return GDB_SIGNAL_STOP; + + case NBSD_SIGTSTP: + return GDB_SIGNAL_TSTP; + + case NBSD_SIGCONT: + return GDB_SIGNAL_CONT; + + case NBSD_SIGCHLD: + return GDB_SIGNAL_CHLD; + + case NBSD_SIGTTIN: + return GDB_SIGNAL_TTIN; + + case NBSD_SIGTTOU: + return GDB_SIGNAL_TTOU; + + case NBSD_SIGIO: + return GDB_SIGNAL_IO; + + case NBSD_SIGXCPU: + return GDB_SIGNAL_XCPU; + + case NBSD_SIGXFSZ: + return GDB_SIGNAL_XFSZ; + + case NBSD_SIGVTALRM: + return GDB_SIGNAL_VTALRM; + + case NBSD_SIGPROF: + return GDB_SIGNAL_PROF; + + case NBSD_SIGWINCH: + return GDB_SIGNAL_WINCH; + + case NBSD_SIGINFO: + return GDB_SIGNAL_INFO; + + case NBSD_SIGUSR1: + return GDB_SIGNAL_USR1; + + case NBSD_SIGUSR2: + return GDB_SIGNAL_USR2; + + case NBSD_SIGPWR: + return GDB_SIGNAL_PWR; + + /* SIGRTMIN and SIGRTMAX are not continuous in , + therefore we have to handle them here. */ + case NBSD_SIGRTMIN: + return GDB_SIGNAL_REALTIME_33; + + case NBSD_SIGRTMAX: + return GDB_SIGNAL_REALTIME_63; + } + + if (signal >=3D NBSD_SIGRTMIN + 1 && signal <=3D NBSD_SIGRTMAX - 1) + { + int offset =3D signal - NBSD_SIGRTMIN + 1; + + return (enum gdb_signal) ((int) GDB_SIGNAL_REALTIME_34 + offset); + } + + return GDB_SIGNAL_UNKNOWN; +} + +/* Implement the "gdb_signal_to_target" gdbarch method. */ + +static int +nbsd_gdb_signal_to_target (struct gdbarch *gdbarch, + enum gdb_signal signal) +{ + switch (signal) + { + case GDB_SIGNAL_0: + return 0; + + case GDB_SIGNAL_HUP: + return NBSD_SIGHUP; + + case GDB_SIGNAL_INT: + return NBSD_SIGINT; + + case GDB_SIGNAL_QUIT: + return NBSD_SIGQUIT; + + case GDB_SIGNAL_ILL: + return NBSD_SIGILL; + + case GDB_SIGNAL_TRAP: + return NBSD_SIGTRAP; + + case GDB_SIGNAL_ABRT: + return NBSD_SIGABRT; + + case GDB_SIGNAL_EMT: + return NBSD_SIGEMT; + + case GDB_SIGNAL_FPE: + return NBSD_SIGFPE; + + case GDB_SIGNAL_KILL: + return NBSD_SIGKILL; + + case GDB_SIGNAL_BUS: + return NBSD_SIGBUS; + + case GDB_SIGNAL_SEGV: + return NBSD_SIGSEGV; + + case GDB_SIGNAL_SYS: + return NBSD_SIGSYS; + + case GDB_SIGNAL_PIPE: + return NBSD_SIGPIPE; + + case GDB_SIGNAL_ALRM: + return NBSD_SIGALRM; + + case GDB_SIGNAL_TERM: + return NBSD_SIGTERM; + + case GDB_SIGNAL_URG: + return NBSD_SIGSTOP; + + case GDB_SIGNAL_TSTP: + return NBSD_SIGTSTP; + + case GDB_SIGNAL_CONT: + return NBSD_SIGCONT; + + case GDB_SIGNAL_CHLD: + return NBSD_SIGCHLD; + + case GDB_SIGNAL_TTIN: + return NBSD_SIGTTIN; + + case GDB_SIGNAL_TTOU: + return NBSD_SIGTTOU; + + case GDB_SIGNAL_IO: + return NBSD_SIGIO; + + case GDB_SIGNAL_XCPU: + return NBSD_SIGXCPU; + + case GDB_SIGNAL_XFSZ: + return NBSD_SIGXFSZ; + + case GDB_SIGNAL_VTALRM: + return NBSD_SIGVTALRM; + + case GDB_SIGNAL_PROF: + return NBSD_SIGPROF; + + case GDB_SIGNAL_WINCH: + return NBSD_SIGWINCH; + + case GDB_SIGNAL_INFO: + return NBSD_SIGINFO; + + case GDB_SIGNAL_USR1: + return NBSD_SIGUSR1; + + case GDB_SIGNAL_USR2: + return NBSD_SIGUSR2; + + case GDB_SIGNAL_PWR: + return NBSD_SIGPWR; + + /* GDB_SIGNAL_REALTIME_33 is not continuous in , + therefore we have to handle it here. */ + case GDB_SIGNAL_REALTIME_33: + return NBSD_SIGRTMIN; + + /* Same comment applies to _64. */ + case GDB_SIGNAL_REALTIME_63: + return NBSD_SIGRTMAX; + } + + if (signal >=3D GDB_SIGNAL_REALTIME_34 + && signal <=3D GDB_SIGNAL_REALTIME_62) + { + int offset =3D signal - GDB_SIGNAL_REALTIME_32; + + return NBSD_SIGRTMIN + 1 + offset; + } + + return -1; +} + +/* See nbsd-tdep.h. */ + +void +nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) +{ + set_gdbarch_gdb_signal_from_target (gdbarch, nbsd_gdb_signal_from_targe= t); + set_gdbarch_gdb_signal_to_target (gdbarch, nbsd_gdb_signal_to_target); +} diff --git a/gdb/nbsd-tdep.h b/gdb/nbsd-tdep.h index c99a8b537b6..4b06c13f87b 100644 =2D-- a/gdb/nbsd-tdep.h +++ b/gdb/nbsd-tdep.h @@ -25,4 +25,8 @@ struct link_map_offsets *nbsd_lp64_solib_svr4_fetch_link= _map_offsets (void); int nbsd_pc_in_sigtramp (CORE_ADDR, const char *); +/* NetBSD specific set of ABI-related routines. */ + +void nbsd_init_abi (struct gdbarch_info, struct gdbarch *); + #endif /* NBSD_TDEP_H */ diff --git a/gdb/ppc-nbsd-tdep.c b/gdb/ppc-nbsd-tdep.c index d75930c9f8d..81492deaccd 100644 =2D-- a/gdb/ppc-nbsd-tdep.c +++ b/gdb/ppc-nbsd-tdep.c @@ -173,6 +173,8 @@ static void ppcnbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { + nbsd_init_abi (info, gdbarch); + /* For NetBSD, this is an on again, off again thing. Some systems do use the broken struct convention, and some don't. */ set_gdbarch_return_value (gdbarch, ppcnbsd_return_value); diff --git a/gdb/sh-nbsd-tdep.c b/gdb/sh-nbsd-tdep.c index aa319261684..2b2a7e3fd4a 100644 =2D-- a/gdb/sh-nbsd-tdep.c +++ b/gdb/sh-nbsd-tdep.c @@ -63,6 +63,7 @@ shnbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep =3D gdbarch_tdep (gdbarch); + nbsd_init_abi (info, gdbarch); tdep->core_gregmap =3D (struct sh_corefile_regmap *)regmap; tdep->sizeof_gregset =3D 84; diff --git a/gdb/sparc-nbsd-tdep.c b/gdb/sparc-nbsd-tdep.c index 7aba6020d27..ab1b557c57c 100644 =2D-- a/gdb/sparc-nbsd-tdep.c +++ b/gdb/sparc-nbsd-tdep.c @@ -296,6 +296,8 @@ sparc32nbsd_init_abi (struct gdbarch_info info, struct= gdbarch *gdbarch) { struct gdbarch_tdep *tdep =3D gdbarch_tdep (gdbarch); + nbsd_init_abi (info, gdbarch); + /* NetBSD doesn't support the 128-bit `long double' from the psABI. */ set_gdbarch_long_double_bit (gdbarch, 64); set_gdbarch_long_double_format (gdbarch, floatformats_ieee_double); diff --git a/gdb/sparc64-nbsd-tdep.c b/gdb/sparc64-nbsd-tdep.c index cd5bfe89410..dac7fa78b9b 100644 =2D-- a/gdb/sparc64-nbsd-tdep.c +++ b/gdb/sparc64-nbsd-tdep.c @@ -249,6 +249,8 @@ sparc64nbsd_init_abi (struct gdbarch_info info, struct= gdbarch *gdbarch) { struct gdbarch_tdep *tdep =3D gdbarch_tdep (gdbarch); + nbsd_init_abi (info, gdbarch); + tdep->gregset =3D &sparc64nbsd_gregset; tdep->sizeof_gregset =3D 160; diff --git a/gdb/vax-nbsd-tdep.c b/gdb/vax-nbsd-tdep.c index c2c08cc1603..7630ac5ab94 100644 =2D-- a/gdb/vax-nbsd-tdep.c +++ b/gdb/vax-nbsd-tdep.c @@ -29,6 +29,8 @@ static void vaxnbsd_elf_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { + nbsd_init_abi (info, gdbarch); + /* NetBSD ELF uses SVR4-style shared libraries. */ set_solib_svr4_fetch_link_map_offsets (gdbarch, svr4_ilp32_fetch_link_map_offsets); =2D- 2.25.0