aboutsummaryrefslogtreecommitdiffstats
path: root/src/dso.c
diff options
context:
space:
mode:
authorCodeSourcery, LLC <support@codesourcery.com>2006-08-08 11:21:07 -0500
committerMark Hatle <mark.hatle@windriver.com>2010-07-22 15:49:56 -0500
commitcfe26a3ed3e9e4e9783baef8463234e4ca23c686 (patch)
tree10e508f2b044c0cff60845b2f4a1a167516dcd6a /src/dso.c
parent96723bf7f8ecd32bb6e86034277807ec5d2b792a (diff)
downloadprelink-cross-cfe26a3ed3e9e4e9783baef8463234e4ca23c686.tar.gz
prelink-cross-cfe26a3ed3e9e4e9783baef8463234e4ca23c686.tar.bz2
prelink-cross-cfe26a3ed3e9e4e9783baef8463234e4ca23c686.zip
Import from: prelink-arch-arm.patch
Source: CodeSourcery, LLC. Description: Add new ARM EABI support Add new dynamic_linker_alt as older versions of ARM used a different dynamic linker name Handle STT_ARM_TFUNC in the prelinker. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Diffstat (limited to 'src/dso.c')
-rw-r--r--src/dso.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/dso.c b/src/dso.c
index b55d027..50443af 100644
--- a/src/dso.c
+++ b/src/dso.c
@@ -1026,7 +1026,9 @@ adjust_symtab (DSO *dso, int n, GElf_Addr start, GElf_Addr adjust)
{
gelfx_getsym (dso->elf, data, ndx, &sym);
if (sym.st_shndx == SHN_ABS && sym.st_value != 0
- && GELF_ST_TYPE (sym.st_info) <= STT_FUNC)
+ && (GELF_ST_TYPE (sym.st_info) <= STT_FUNC
+ || (dso->ehdr.e_machine == EM_ARM
+ && GELF_ST_TYPE (sym.st_info) == STT_ARM_TFUNC)))
{
/* This is problematic. How do we find out if
we should relocate this? Assume we should. */