pie: Give VDSO symbol table local scope

In commit c2271198, Laurent Dufour kindly reunified the VDSO code
that had become duplicated between architectures. Unfortunately
this introduced a regression in AArch64 where apparently due to
the scope of vdso_symbols array of pointers to characters changing
from local to global, load-time relocations became necessary.

The following thread on the GCC mailing list discusses why
load-time relocations can be necessary when pointers are used,
although it doesn't mention the potential for locally scoped
arrays to be handled differently:
https://gcc.gnu.org/ml/gcc/2004-05/msg01016.html

Because the alternatives, such as porting piegen to AArch64, are
far more involved, simply revert the change in scope.

Signed-off-by: Christopher Covington <cov@codeaurora.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
Christopher Covington 2015-10-03 15:47:00 +03:00 committed by Pavel Emelyanov
parent 627f9a9e5f
commit 871da9a111
2 changed files with 4 additions and 8 deletions

View file

@ -60,10 +60,6 @@ static inline unsigned long vvar_vma_size(struct vdso_symtable *t)
return t->vvar_end - t->vvar_start;
}
extern const char *vdso_symbols[VDSO_SYMBOL_MAX];
extern int vdso_fill_symtable(char *mem, size_t size, struct vdso_symtable *t);
#endif /* __CR_UTIL_VDSO_H__ */