From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8003042395019736004==" MIME-Version: 1.0 From: Mark Wielaard To: elfutils-devel@lists.fedorahosted.org Subject: Re: libebl: Add ebl_func_addr_mask plus ARM backend implementation. (Was: [PATCH] libebl: Add ebl_unwind_ret_mask.) Date: Sun, 22 Jun 2014 13:49:19 +0200 Message-ID: <1403437759.9562.3.camel@bordewijk.wildebeest.org> In-Reply-To: 1403035773.4374.35.camel@bordewijk.wildebeest.org --===============8003042395019736004== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Tue, 2014-06-17 at 22:09 +0200, Mark Wielaard wrote: > libebl: Add ebl_func_addr_mask plus ARM backend implementation. > = > The ARM EABI says that the zero bit of function symbol st_value indic= ates > whether the symbol points to a THUMB or ARM function. Also the return > value address in an unwind will contain the same extra bit to indicate > whether to return to a regular ARM or THUMB function. Add a new ebl > function to mask off such bits and turn a function value into a funct= ion > address so that we get the actual value that a function symbol or ret= urn > address points to. It isn't easily possible to reuse the existing > ebl_resolve_sym_value for this purpose, so we end up with another hook > that can be used from dwfl_module_getsym, handle_cfi and elflint. > = > Signed-off-by: Mark Wielaard Pushed after testing against Fedora armv7hl, which doesn't use THUMB by default and Debian armhf which does use THUMB by default. Cheers, Mark --===============8003042395019736004==--