lkml.org 
[lkml]   [2015]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [RFC PATCH v10 11/50] bpf tools: Collect symbol table from SHT_SYMTAB section
    Em Wed, Jul 01, 2015 at 02:13:59AM +0000, Wang Nan escreveu:
    > This patch collects symbols section. This section is useful when
    > linking ELF maps.

    I guess it is, but could you ellaborate on this? I.e. _how_ is this
    useful? I can imagine some ways, but would be nice if you outlined what
    is the first thing you will do with this, as a justification for this
    patch.

    I am applying the patches, compile testing them and will try the end
    result, but please consider being more verbose in the justification for
    each patch, not requiring the reviewer to go on looking at other patches
    to figure out what a patch is good for.

    I will happily 'git commit -i' the patches to amend the patch
    descriptions.

    This is valid for me of for anybody else trying to make sense of your
    patches.

    - Arnaldo

    > Signed-off-by: Wang Nan <wangnan0@huawei.com>
    > Acked-by: Alexei Starovoitov <ast@plumgrid.com>
    > ---
    > tools/lib/bpf/libbpf.c | 10 ++++++++++
    > 1 file changed, 10 insertions(+)
    >
    > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
    > index 87f5054..9b016c0 100644
    > --- a/tools/lib/bpf/libbpf.c
    > +++ b/tools/lib/bpf/libbpf.c
    > @@ -94,6 +94,7 @@ struct bpf_object {
    > size_t obj_buf_sz;
    > Elf *elf;
    > GElf_Ehdr ehdr;
    > + Elf_Data *symbols;
    > } efile;
    > char path[];
    > };
    > @@ -135,6 +136,7 @@ static void bpf_object__elf_finish(struct bpf_object *obj)
    > elf_end(obj->efile.elf);
    > obj->efile.elf = NULL;
    > }
    > + obj->efile.symbols = NULL;
    > zclose(obj->efile.fd);
    > obj->efile.obj_buf = NULL;
    > obj->efile.obj_buf_sz = 0;
    > @@ -333,6 +335,14 @@ static int bpf_object__elf_collect(struct bpf_object *obj)
    > else if (strcmp(name, "maps") == 0)
    > err = bpf_object__init_maps(obj, data->d_buf,
    > data->d_size);
    > + else if (sh.sh_type == SHT_SYMTAB) {
    > + if (obj->efile.symbols) {
    > + pr_warning("bpf: multiple SYMTAB in %s\n",
    > + obj->path);
    > + err = -EEXIST;
    > + } else
    > + obj->efile.symbols = data;
    > + }
    > if (err)
    > goto out;
    > }
    > --
    > 1.8.3.4


    \
     
     \ /
      Last update: 2015-07-07 17:41    [W:3.319 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site