summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/ChangeLog12
-rw-r--r--backends/Makefile.am6
-rw-r--r--backends/i386_init.c1
-rw-r--r--backends/i386_syscall.c50
-rw-r--r--backends/ppc64_init.c1
-rw-r--r--backends/ppc_init.c1
-rw-r--r--backends/ppc_syscall.c53
-rw-r--r--backends/x86_64_init.c1
-rw-r--r--backends/x86_64_syscall.c50
-rw-r--r--libebl/ChangeLog9
-rw-r--r--libebl/Makefile.am2
-rw-r--r--libebl/ebl-hooks.h4
-rw-r--r--libebl/ebl_syscall_abi.c40
-rw-r--r--libebl/eblopenbackend.c17
-rw-r--r--libebl/libebl.h8
15 files changed, 25 insertions, 230 deletions
diff --git a/backends/ChangeLog b/backends/ChangeLog
index ce4c971e..2f632a31 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,15 @@
+2020-10-19 Mark Wielard <mark@klomp.org>
+
+ * Makefile.am (i386_SRCS): Remove i386_syscall.c.
+ (x86_64_SRCS): Remove x86_64_syscall.c.
+ (ppc_SRCS): Remove ppc_syscall.c.
+ * i386_init.c (i386_init): Remove syscall_abi HOOK.
+ * i386_syscall.c: Delete.
+ * ppc64_init.c (ppc64_init): Remove syscall_abi HOOK.
+ * ppc_syscall.c: Delete.
+ * x86_64_init.c (x86_64_init): Remove syscall_abi HOOK.
+ * x86_64_syscall.c: Delete.
+
2020-08-28 Mark Wielard <mark@klomp.org>
* aarch64_init.c (aarch64_init): Hook dynamic_tag_name and
diff --git a/backends/Makefile.am b/backends/Makefile.am
index f4052125..3849f457 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -40,13 +40,13 @@ modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \
tilegx m68k bpf riscv csky
i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \
- i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \
+ i386_retval.c i386_regs.c i386_auxv.c \
i386_initreg.c i386_unwind.c
sh_SRCS = sh_init.c sh_symbol.c sh_corenote.c sh_regs.c sh_retval.c
x86_64_SRCS = x86_64_init.c x86_64_symbol.c x86_64_corenote.c x86_64_cfi.c \
- x86_64_retval.c x86_64_regs.c x86_64_syscall.c x86_64_initreg.c \
+ x86_64_retval.c x86_64_regs.c x86_64_initreg.c \
x86_64_unwind.c x32_corenote.c
@@ -67,7 +67,7 @@ sparc_SRCS = sparc_init.c sparc_symbol.c sparc_regs.c sparc_retval.c \
sparc_cfi.c sparc_initreg.c
ppc_SRCS = ppc_init.c ppc_symbol.c ppc_retval.c ppc_regs.c \
- ppc_corenote.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \
+ ppc_corenote.c ppc_auxv.c ppc_attrs.c \
ppc_cfi.c ppc_initreg.c
ppc64_SRCS = ppc64_init.c ppc64_symbol.c ppc64_retval.c ppc64_corenote.c \
diff --git a/backends/i386_init.c b/backends/i386_init.c
index 3f6b9ed1..579e5fad 100644
--- a/backends/i386_init.c
+++ b/backends/i386_init.c
@@ -52,7 +52,6 @@ i386_init (Elf *elf __attribute__ ((unused)),
HOOK (eh, debugscn_p);
HOOK (eh, return_value_location);
HOOK (eh, register_info);
- HOOK (eh, syscall_abi);
HOOK (eh, auxv_info);
HOOK (eh, disasm);
HOOK (eh, abi_cfi);
diff --git a/backends/i386_syscall.c b/backends/i386_syscall.c
deleted file mode 100644
index 535dcd86..00000000
--- a/backends/i386_syscall.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Linux/i386 system call ABI in DWARF register numbers.
- Copyright (C) 2008 Red Hat, Inc.
- This file is part of elfutils.
-
- This file is free software; you can redistribute it and/or modify
- it under the terms of either
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at
- your option) any later version
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at
- your option) any later version
-
- or both in parallel, as here.
-
- elfutils is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#define BACKEND i386_
-#include "libebl_CPU.h"
-
-int
-i386_syscall_abi (Ebl *ebl __attribute__ ((unused)),
- int *sp, int *pc, int *callno, int args[6])
-{
- *sp = 4; /* %esp */
- *pc = 8; /* %eip */
- *callno = 0; /* %eax */
- args[0] = 3; /* %ebx */
- args[1] = 1; /* %ecx */
- args[2] = 2; /* %edx */
- args[3] = 6; /* %esi */
- args[4] = 7; /* %edi */
- args[5] = 5; /* %ebp */
- return 0;
-}
diff --git a/backends/ppc64_init.c b/backends/ppc64_init.c
index f509aef6..ffc9842c 100644
--- a/backends/ppc64_init.c
+++ b/backends/ppc64_init.c
@@ -58,7 +58,6 @@ ppc64_init (Elf *elf __attribute__ ((unused)),
HOOK (eh, bss_plt_p);
HOOK (eh, return_value_location);
HOOK (eh, register_info);
- HOOK (eh, syscall_abi);
HOOK (eh, core_note);
HOOK (eh, auxv_info);
HOOK (eh, check_object_attribute);
diff --git a/backends/ppc_init.c b/backends/ppc_init.c
index ac440ab2..08468f8f 100644
--- a/backends/ppc_init.c
+++ b/backends/ppc_init.c
@@ -54,7 +54,6 @@ ppc_init (Elf *elf __attribute__ ((unused)),
HOOK (eh, bss_plt_p);
HOOK (eh, return_value_location);
HOOK (eh, register_info);
- HOOK (eh, syscall_abi);
HOOK (eh, core_note);
HOOK (eh, auxv_info);
HOOK (eh, check_object_attribute);
diff --git a/backends/ppc_syscall.c b/backends/ppc_syscall.c
deleted file mode 100644
index b1b9c52b..00000000
--- a/backends/ppc_syscall.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Linux/PPC system call ABI in DWARF register numbers.
- Copyright (C) 2008 Red Hat, Inc.
- This file is part of elfutils.
-
- This file is free software; you can redistribute it and/or modify
- it under the terms of either
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at
- your option) any later version
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at
- your option) any later version
-
- or both in parallel, as here.
-
- elfutils is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#define BACKEND ppc_
-#include "libebl_CPU.h"
-
-int
-ppc_syscall_abi (Ebl *ebl __attribute__ ((unused)),
- int *sp, int *pc, int *callno, int args[6])
-{
- *sp = 1;
- *pc = -1;
- *callno = 0;
- args[0] = 3;
- args[1] = 4;
- args[2] = 5;
- args[3] = 6;
- args[4] = 7;
- args[5] = 8;
- return 0;
-}
-
-__typeof (ppc_syscall_abi)
-ppc64_syscall_abi __attribute__ ((alias ("ppc_syscall_abi")));
diff --git a/backends/x86_64_init.c b/backends/x86_64_init.c
index 44c1ad28..8db9b643 100644
--- a/backends/x86_64_init.c
+++ b/backends/x86_64_init.c
@@ -56,7 +56,6 @@ x86_64_init (Elf *elf __attribute__ ((unused)),
HOOK (eh, core_note);
HOOK (eh, return_value_location);
HOOK (eh, register_info);
- HOOK (eh, syscall_abi);
HOOK (eh, auxv_info);
HOOK (eh, disasm);
HOOK (eh, abi_cfi);
diff --git a/backends/x86_64_syscall.c b/backends/x86_64_syscall.c
deleted file mode 100644
index 0deb8bad..00000000
--- a/backends/x86_64_syscall.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Linux/x86-64 system call ABI in DWARF register numbers.
- Copyright (C) 2008 Red Hat, Inc.
- This file is part of elfutils.
-
- This file is free software; you can redistribute it and/or modify
- it under the terms of either
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at
- your option) any later version
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at
- your option) any later version
-
- or both in parallel, as here.
-
- elfutils is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#define BACKEND x86_64_
-#include "libebl_CPU.h"
-
-int
-x86_64_syscall_abi (Ebl *ebl __attribute__ ((unused)),
- int *sp, int *pc, int *callno, int args[6])
-{
- *sp = 7; /* %rsp */
- *pc = 16; /* %rip */
- *callno = 0; /* %rax */
- args[0] = 5; /* %rdi */
- args[1] = 4; /* %rsi */
- args[2] = 1; /* %rdx */
- args[3] = 10; /* %r10 */
- args[4] = 8; /* %r8 */
- args[5] = 9; /* %r9 */
- return 0;
-}
diff --git a/libebl/ChangeLog b/libebl/ChangeLog
index aa43b31f..dbf4b3b7 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,12 @@
+2020-10-19 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (libebl_a_SOURCES): Remove ebl_syscall_abi.c.
+ * ebl-hooks.h (syscall_abi): Remove.
+ * ebl_syscall_abi.c: Delete.
+ * eblopenbackend.c (default_syscall_abi): Remove.
+ (fill_defaults): Remove syscall_abi assignment.
+ * libebl.h (ebl_syscall_abi): Remove.
+
2020-09-03 Mark Wielaard <mark@klomp.org>
* eblobjnote.c (ebl_object_note): For EM_AARCH64 handle BTI and PAC
diff --git a/libebl/Makefile.am b/libebl/Makefile.am
index d0d475b8..d84e7ee2 100644
--- a/libebl/Makefile.am
+++ b/libebl/Makefile.am
@@ -51,7 +51,7 @@ libebl_a_SOURCES = eblopenbackend.c eblclosebackend.c eblreloctypename.c \
eblbsspltp.c eblretval.c eblreginfo.c eblnonerelocp.c \
eblrelativerelocp.c eblsysvhashentrysize.c eblauxvinfo.c \
eblcheckobjattr.c ebl_check_special_section.c \
- ebl_syscall_abi.c eblabicfi.c eblstother.c eblinitreg.c \
+ eblabicfi.c eblstother.c eblinitreg.c \
ebldwarftoregno.c eblnormalizepc.c eblunwind.c \
eblresolvesym.c eblcheckreloctargettype.c \
ebl_data_marker_symbol.c
diff --git a/libebl/ebl-hooks.h b/libebl/ebl-hooks.h
index 1e7960b8..1214bb84 100644
--- a/libebl/ebl-hooks.h
+++ b/libebl/ebl-hooks.h
@@ -142,10 +142,6 @@ ssize_t EBLHOOK(register_info) (Ebl *ebl,
const char **prefix, const char **setname,
int *bits, int *type);
-/* Return system call ABI registers. */
-int EBLHOOK(syscall_abi) (Ebl *ebl, int *sp, int *pc,
- int *callno, int args[6]);
-
/* Disassembler function. */
int EBLHOOK(disasm) (Ebl *ebl, const uint8_t **startp, const uint8_t *end,
GElf_Addr addr, const char *fmt, DisasmOutputCB_t outcb,
diff --git a/libebl/ebl_syscall_abi.c b/libebl/ebl_syscall_abi.c
deleted file mode 100644
index a25369d2..00000000
--- a/libebl/ebl_syscall_abi.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Return system call ABI mapped to DWARF register numbers.
- Copyright (C) 2008 Red Hat, Inc.
- This file is part of elfutils.
-
- This file is free software; you can redistribute it and/or modify
- it under the terms of either
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at
- your option) any later version
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at
- your option) any later version
-
- or both in parallel, as here.
-
- elfutils is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libeblP.h>
-
-
-int
-ebl_syscall_abi (Ebl *ebl, int *sp, int *pc, int *callno, int *args)
-{
- return ebl != NULL ? ebl->syscall_abi (ebl, sp, pc, callno, args) : -1;
-}
diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c
index b3b6fc01..90a83f26 100644
--- a/libebl/eblopenbackend.c
+++ b/libebl/eblopenbackend.c
@@ -214,8 +214,6 @@ static ssize_t default_register_info (Ebl *ebl,
const char **prefix,
const char **setname,
int *bits, int *type);
-static int default_syscall_abi (Ebl *ebl, int *sp, int *pc,
- int *callno, int args[6]);
static bool default_check_object_attribute (Ebl *ebl, const char *vendor,
int tag, uint64_t value,
const char **tag_name,
@@ -259,7 +257,6 @@ fill_defaults (Ebl *result)
result->bss_plt_p = default_bss_plt_p;
result->return_value_location = default_return_value_location;
result->register_info = default_register_info;
- result->syscall_abi = default_syscall_abi;
result->check_object_attribute = default_check_object_attribute;
result->check_reloc_target_type = default_check_reloc_target_type;
result->disasm = NULL;
@@ -690,20 +687,6 @@ default_register_info (Ebl *ebl __attribute__ ((unused)),
return snprintf (name, namelen, "reg%d", regno);
}
-static int
-default_syscall_abi (Ebl *ebl __attribute__ ((unused)),
- int *sp, int *pc, int *callno, int args[6])
-{
- *sp = *pc = *callno = -1;
- args[0] = -1;
- args[1] = -1;
- args[2] = -1;
- args[3] = -1;
- args[4] = -1;
- args[5] = -1;
- return -1;
-}
-
static bool
default_check_object_attribute (Ebl *ebl __attribute__ ((unused)),
const char *vendor __attribute__ ((unused)),
diff --git a/libebl/libebl.h b/libebl/libebl.h
index 23c0e950..731001d3 100644
--- a/libebl/libebl.h
+++ b/libebl/libebl.h
@@ -241,14 +241,6 @@ extern ssize_t ebl_register_info (Ebl *ebl,
const char **prefix, const char **setname,
int *bits, int *type);
-/* Fill in the DWARF register numbers for the registers used in system calls.
- The SP and PC are what kernel reports call the user stack pointer and PC.
- The CALLNO and ARGS are the system call number and incoming arguments.
- Each of these is filled with the DWARF register number corresponding,
- or -1 if there is none. Returns zero when the information is available. */
-extern int ebl_syscall_abi (Ebl *ebl, int *sp, int *pc,
- int *callno, int args[6]);
-
/* Supply the ABI-specified state of DWARF CFI before CIE initial programs.
The DWARF 3.0 spec says that the default initial states of all registers