Comments

On 06/16/2018 11:45 PM, Mark Wielaard wrote:
> The BPF ELF format has new relocation types R_BPF_64_64 and R_BPF_64_32.
> The existing R_BPF_MAP_FD was an extension that never got implemented.
> Remove it, because its constant conflicts with the official R_BPF_64_64.
Is there an ABI manual against which we could review this change?
The last change said that this was added to the Generic ABI
<http://www.sco.com/developers/gabi/latest/contents.html>, but there is
no evidence of that.
Thanks,
Florian

On Tue, 2018-06-19 at 22:06 +0200, Florian Weimer wrote:
> On 06/16/2018 11:45 PM, Mark Wielaard wrote:
> > The BPF ELF format has new relocation types R_BPF_64_64 and R_BPF_64_32.
> > The existing R_BPF_MAP_FD was an extension that never got implemented.
> > Remove it, because its constant conflicts with the official R_BPF_64_64.
>
> Is there an ABI manual against which we could review this change?
>
> The last change said that this was added to the Generic ABI
> > <http://www.sco.com/developers/gabi/latest/contents.html>, but there is
> no evidence of that.
Only the EM values are, since they are generic.
It just takes a while before they make it to the public website.
rth has an email from the maintainer though with the assigned value.
The relocation constants don't have a separate ABI manual
(because BPF isn't really a full blown architecture/abi).
Those are kept in sync between the projects handling BPF elf files
(which is this patch, which is a prerequisite for getting the same
constants into elfutils, because we see the glibc elf.h as the
master copy that holds all GNU/Linux ELF constants.)
Thanks,
Mark

On 6/19/18 1:34 PM, Mark Wielaard wrote:
> On Tue, 2018-06-19 at 22:06 +0200, Florian Weimer wrote:
>> On 06/16/2018 11:45 PM, Mark Wielaard wrote:
>>> The BPF ELF format has new relocation types R_BPF_64_64 and R_BPF_64_32.
>>> The existing R_BPF_MAP_FD was an extension that never got implemented.
>>> Remove it, because its constant conflicts with the official R_BPF_64_64.
>>
>> Is there an ABI manual against which we could review this change?
>>
>> The last change said that this was added to the Generic ABI
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.sco.com_developers_gabi_latest_contents.html&d=DwIFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=DA8e1B5r073vIqRrFz7MRA&m=vat1LaeLAQ_XbOs1SRdavOCV310jx4Ctku_6Jcq72HY&s=r5vE3J-yD5ebnpdq_d0AkFfNFzewdpXShVKSvBULDzc&e=>, but there is
>> no evidence of that.
>
> Only the EM values are, since they are generic.
> It just takes a while before they make it to the public website.
> rth has an email from the maintainer though with the assigned value.
>
> The relocation constants don't have a separate ABI manual
> (because BPF isn't really a full blown architecture/abi).
> Those are kept in sync between the projects handling BPF elf files
> (which is this patch, which is a prerequisite for getting the same
> constants into elfutils, because we see the glibc elf.h as the
> master copy that holds all GNU/Linux ELF constants.)
The LLVM source code for the definition is here:
https://github.com/llvm-mirror/llvm/blob/master/include/llvm/BinaryFormat/ELFRelocs/BPF.def
Yes, BPF related documentation has been lacking. For example,
the support in binutils is not there yet. But we are starting
to work on it.
Thanks!
Yonghong
>
> Thanks,
>
> Mark
>

On Thu, Jun 21, 2018 at 11:29:26AM -0400, Carlos O'Donell wrote:
> Having said that we should align the values here with the values being used
> by llvm and Facebook. They represent the most recent values being used for
> relocations in this pseudo-machine. Without an officially published ABI for
> these relocations we have no real way to review what is canonical and what
> is not.
Right, that is really what this is commit is for.
To make sure that we have agreement over the constants used without
having a central authority for this "architecture".
> OK to checkin.
>
> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Thanks, pushed.
Mark