Hi Roland,

jankratochvil/abicfi-retval

I think it is obvious, IIRC it was crashing for me before I have implemented
the new abi_cfi methods for non-x86* backends.


Thanks,
Jan


commit 2fac29b29b3eec5358f27f80f4d91c7d7b7d75dc
Author: Jan Kratochvil <[email protected]>
Date:   Fri Oct 12 20:43:21 2012 +0200

    libebl/
    2012-10-12  Jan Kratochvil  <[email protected]>
    
        * ebl-hooks.h (abi_cfi): Extend its comment for return value.
        * eblopenbackend.c (default_abi_cfi): Return -1.
        * libebl.h (ebl_abi_cfi): Extend its comment for return value.
    
    Signed-off-by: Jan Kratochvil <[email protected]>

diff --git a/libebl/ChangeLog b/libebl/ChangeLog
index f12613a..e881ce7 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,9 @@
+2012-10-12  Jan Kratochvil  <[email protected]>
+
+       * ebl-hooks.h (abi_cfi): Extend its comment for return value.
+       * eblopenbackend.c (default_abi_cfi): Return -1.
+       * libebl.h (ebl_abi_cfi): Extend its comment for return value.
+
 2012-08-30  Petr Machata  <[email protected]>
 
        * eblcorenotetypename.c: Handle PPC_VSX, X86_XSTATE,
diff --git a/libebl/ebl-hooks.h b/libebl/ebl-hooks.h
index f629bce..d3cf3e6 100644
--- a/libebl/ebl-hooks.h
+++ b/libebl/ebl-hooks.h
@@ -151,7 +151,8 @@ int EBLHOOK(disasm) (const uint8_t **startp, const uint8_t 
*end,
                     GElf_Addr addr, const char *fmt, DisasmOutputCB_t outcb,
                     DisasmGetSymCB_t symcb, void *outcbarg, void *symcbarg);
 
-/* Supply the machine-specific state of CFI before CIE initial programs.  */
+/* Supply the machine-specific state of CFI before CIE initial programs.
+   Function returns 0 on success and -1 on error.  */
 int EBLHOOK(abi_cfi) (Ebl *ebl, Dwarf_CIE *abi_info);
 
 /* Destructor for ELF backend handle.  */
diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c
index 89e5da5..ed0c0ff 100644
--- a/libebl/eblopenbackend.c
+++ b/libebl/eblopenbackend.c
@@ -750,5 +750,5 @@ static int
 default_abi_cfi (Ebl *ebl __attribute__ ((unused)),
                 Dwarf_CIE *abi_info __attribute__ ((unused)))
 {
-  return 0;
+  return -1;
 }
diff --git a/libebl/libebl.h b/libebl/libebl.h
index 0d5621d..cae31c9 100644
--- a/libebl/libebl.h
+++ b/libebl/libebl.h
@@ -267,7 +267,10 @@ extern int ebl_syscall_abi (Ebl *ebl, int *sp, int *pc,
    DWARF register number that identifies the actual PC in machine state.
    If there is no canonical DWARF register number with that meaning, it's
    left unchanged (callers usually initialize with (Dwarf_Word) -1).
-   This value is not used by CFI per se.  */
+   This value is not used by CFI per se.
+
+   Function returns 0 on success and -1 for error or unsupported by the
+   backend.  */
 extern int ebl_abi_cfi (Ebl *ebl, Dwarf_CIE *abi_info)
   __nonnull_attribute__ (2);
 
_______________________________________________
elfutils-devel mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/elfutils-devel

Reply via email to