lightning.git - Portable just-in-time compiler library

index : lightning.git
Portable just-in-time compiler library
summary refs log tree commit diff
diff options
context:
space:
mode:
authorpcpa <paulo.cesar.pereira.de.andrade@gmail.com>2017年09月13日 11:39:30 -0400
committerpcpa <paulo.cesar.pereira.de.andrade@gmail.com>2017年09月13日 11:39:30 -0400
commit7259f9dc8a24279d50ed05d2eb92add4fcce723a (patch)
tree5624935c28fbfecb3bddb405490a584302a50a35
parentd7614993153b4e4da323b52acf78bd4dc3cbcfa7 (diff)
downloadlightning-7259f9dc8a24279d50ed05d2eb92add4fcce723a.tar.gz
Adapt for binutils 2.29
* configure.ac: Add check for binutils 2.29 prototype to the disassembler function. * lib/jit_disasm.c: Adapt for binutils 2.29 change.
Diffstat
-rw-r--r--ChangeLog 6
-rw-r--r--configure.ac 18
-rw-r--r--lib/jit_disasm.c 10
3 files changed, 32 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 97263f7..42d6129 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-13-09 Paulo Andrade <pcpa@gnu.org>
+
+ * configure.ac: Add check for binutils 2.29 prototype to the
+ disassembler function.
+ * lib/jit_disasm.c: Adapt for binutils 2.29 change.
+
2017年06月09日 Paulo Andrade <pcpa@gnu.org>
* include/lightning/jit_private.h, lib/lightning.c: Add a
diff --git a/configure.ac b/configure.ac
index f5a0fb5..289083b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -93,6 +93,24 @@ fi
AM_CONDITIONAL(with_disassembler, [test "x$DISASSEMBLER" != "xno"])
if test "x$DISASSEMBLER" != "xno"; then
LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DDISASSEMBLER=1"
+ save_CFLAGS=$CFLAGS
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+ #include <lightning.h>
+ #include <lightning/jit_private.h>
+ #include <dis-asm.h>
+ int main(int argc, char *argv[])
+ {
+ disassembler_ftype print;
+ bdf *abfd;
+ print = disassembler(abfd);
+ return 0;
+ }
+ )], [ac_cv_test_new_disassembler=no],,)
+ CFLAGS="$CFLAGS -I$PWD/include -D_GNU_SOURCE"
+ CFLAGS="$save_CFLAGS"
+ if test "x$ac_cv_test_new_disassembler" != "xno"; then
+ LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DBINUTILS_2_29=1"
+ fi
fi
AC_ARG_ENABLE(devel-disassembler,
diff --git a/lib/jit_disasm.c b/lib/jit_disasm.c
index e3773a7..cc623b6 100644
--- a/lib/jit_disasm.c
+++ b/lib/jit_disasm.c
@@ -73,8 +73,6 @@ jit_init_debug(const char *progname)
}
bfd_check_format(disasm_bfd, bfd_object);
bfd_check_format(disasm_bfd, bfd_archive);
- disasm_print = disassembler(disasm_bfd);
- assert(disasm_print);
INIT_DISASSEMBLE_INFO(disasm_info, disasm_stream, fprintf);
# if defined(__i386__) || defined(__x86_64__)
disasm_info.arch = bfd_arch_i386;
@@ -124,6 +122,14 @@ jit_init_debug(const char *progname)
# endif
disasm_info.print_address_func = disasm_print_address;
+# if BINUTILS_2_29
+ disasm_print = disassembler(disasm_info.arch, __BYTE_ORDER == __BIG_ENDIAN,
+ disasm_info.mach, disasm_bfd);
+# else
+ disasm_print = disassembler(disasm_bfd);
+# endif
+ assert(disasm_print);
+
if (bfd_get_file_flags(disasm_bfd) & HAS_SYMS) {
asymbol **in;
asymbol **out;
generated by cgit v1.2.3 (git 2.25.1) at 2025年09月18日 08:41:02 +0000

AltStyle によって変換されたページ (->オリジナル) /