On 01/06/2020 19:18, Vineet Gupta wrote: > This is purely for review purposes to attest the interface defined > in prior patch LGTM with some style nits, however I think it should be pushed along with the ARC patchset. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@xxxxxxxxxx> > --- > sysdeps/arc/dl-runtime.h | 42 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > create mode 100644 sysdeps/arc/dl-runtime.h > > diff --git a/sysdeps/arc/dl-runtime.h b/sysdeps/arc/dl-runtime.h > new file mode 100644 > index 000000000000..529d49f5d0a1 > --- /dev/null > +++ b/sysdeps/arc/dl-runtime.h > @@ -0,0 +1,42 @@ > +/* Helpers for On-demand PLT fixup for shared objects. ARC version. Double space after period. > + Copyright (C) 2017-2020 Free Software Foundation, Inc. > + This file is part of the GNU C Library. > + > + The GNU C Library is free software; you can redistribute it and/or > + modify it under the terms of the GNU Lesser General Public License as > + published by the Free Software Foundation; either version 2.1 of the > + License, or (at your option) any later version. > + > + The GNU C Library is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + Lesser General Public License for more details. > + > + You should have received a copy of the GNU Lesser General Public > + License along with the GNU C Library. If not, see > + <https://www.gnu.org/licenses/>. */ > + > +/* PLT jump into resolver passes PC of PLTn, while _dl_fixup expects the > + address of corresponding .rela.plt entry. > + > + - @plt0: runtime pc of first plt entry (DT_PLTGOT) > + - @pltn: runtime pc of plt entry being resolved > + - @size: size of .plt.rela entry (unused). */ > +static inline uintptr_t > +reloc_index (uintptr_t plt0, uintptr_t pltn, size_t size) > +{ > + unsigned long int idx = (unsigned long)pltn - (unsigned long)plt0; I don't think the explicit cast is required here. > + > + /* PLT trampoline is 16 bytes. */ > + idx /= 16; > + > + /* Exclude PLT0 and PLT1. */ > + return idx - 2; > +} > + > +static inline uintptr_t > +reloc_offset (uintptr_t plt0, uintptr_t pltn) > +{ > + size_t sz = sizeof (ElfW(Rela)); > + return reloc_index(plt0, pltn, sz) * sz; Space before parenthesis. > +} > _______________________________________________ linux-snps-arc mailing list linux-snps-arc@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-snps-arc