Re: [yocto] [prelink-cross][PATCH] Support copy relocations in .data.rel.ro

2018-10-12 Thread Mark Hatle
On 10/4/18 9:12 AM, Kyle Russell wrote:
> Hey Mark,
> 
> Do you think this approach is reasonable?  If so, I have another patch I'd 
> like
> to propose that would enable us to better catch error scenarios (like the last
> two patches address) that we might encounter during do_image_prelink.  We just
> happened to detect these last two issues even though image_prelink didn't fail
> the build, so I'd like to provide an option to enable a little more assertive
> error path, if desired.

I'm getting caught back up on my prelink 'TODO' set.  The approach seems
reasonable to me.  However, I appear to have lost the reference to the original
patch email.

I'm going to try to reapply from this email (or the list archive), but I may
need you to resend it.  I'll let you [and others know] once I get these things
merged.

Thanks!
--Mark

> Thanks,
> Kyle
> 
> On Fri, Sep 28, 2018 at 10:57 AM Kyle Russell  > wrote:
> 
> binutils-2.28 (17026142ef35b62ac88bfe517b4160614902cb28) adds support
> for copying read-only dynamic symbols into .data.rel.ro 
> 
> instead of .bss
> since .bss is technically writable.  This causes prelink to error out on
> any binary containing COPY relocations in .data.rel.ro 
> .
> 
> Read-only variables defined in shared libraries should be copied directly
> into the space allocated for them in .data.rel.ro  by
> the linker.
> 
> To achieve this, we determine whether either of the two sections
> containing copy relocations is .data.rel.ro .  If so, 
> we
> relocate the
> symbol memory directly into the existing section instead of constructing
> a new .(s)dynbss section once prelink_build_conflicts() returns.
> 
> Fixes cxx1.sh, cxx2.sh, and cxx3.sh on Fedora 28 (which uses
> binutils-2.29).
> ---
>  src/conflict.c | 51 +-
>  src/undo.c     |  9 +
>  2 files changed, 47 insertions(+), 13 deletions(-)
> 
> diff --git a/src/conflict.c b/src/conflict.c
> index 9ae2ddb..5613ace 100644
> --- a/src/conflict.c
> +++ b/src/conflict.c
> @@ -450,7 +450,7 @@ get_relocated_mem (struct prelink_info *info, DSO 
> *dso,
> GElf_Addr addr,
>  int
>  prelink_build_conflicts (struct prelink_info *info)
>  {
> -  int i, ndeps = info->ent->ndepends + 1;
> +  int i, reset_dynbss = 0, reset_sdynbss = 0, ndeps = 
> info->ent->ndepends + 1;
>    struct prelink_entry *ent;
>    int ret = 0;
>    DSO *dso;
> @@ -675,6 +675,11 @@ prelink_build_conflicts (struct prelink_info *info)
>                      dso->filename);
>               goto error_out;
>             }
> +
> +         name = strptr (dso, dso->ehdr.e_shstrndx, 
> dso->shdr[bss1].sh_name);
> +         if (strcmp(name, ".data.rel.ro ") == 0)
> +           reset_sdynbss = 1;
> +
>           firstbss2 = i;
>           info->sdynbss_size = cr.rela[i - 1].r_offset - 
> cr.rela[0].r_offset;
>           info->sdynbss_size += cr.rela[i - 1].r_addend;
> @@ -702,6 +707,10 @@ prelink_build_conflicts (struct prelink_info *info)
>             }
>         }
> 
> +      name = strptr (dso, dso->ehdr.e_shstrndx, dso->shdr[bss2].sh_name);
> +      if (strcmp(name, ".data.rel.ro ") == 0)
> +        reset_dynbss = 1;
> +
>        info->dynbss_size = cr.rela[cr.count - 1].r_offset
>                           - cr.rela[firstbss2].r_offset;
>        info->dynbss_size += cr.rela[cr.count - 1].r_addend;
> @@ -719,9 +728,9 @@ prelink_build_conflicts (struct prelink_info *info)
>           && strcmp (name = strptr (dso, dso->ehdr.e_shstrndx,
>                                     dso->shdr[bss1].sh_name),
>                      ".dynbss") != 0
> -         && strcmp (name, ".sdynbss") != 0)
> +         && strcmp (name, ".sdynbss") != 0 && strcmp (name, ".data.rel.ro
> ") != 0)
>         {
> -         error (0, 0, "%s: COPY relocations don't point into .bss or 
> .sbss
> section",
> +         error (0, 0, "%s: COPY relocations don't point into .bss, .sbss,
> or .data.rel.ro  sections",
>                  dso->filename);
>           goto error_out;
>         }
> @@ -730,9 +739,9 @@ prelink_build_conflicts (struct prelink_info *info)
>           && strcmp (name = strptr (dso, dso->ehdr.e_shstrndx,
>                                     dso->shdr[bss2].sh_name),
>                      ".dynbss") != 0
> -         && strcmp (name, ".sdynbss") != 0)
> +         && strcmp (name, ".sdynbss") != 0 && strcmp (name, ".data.rel.ro
> ") != 0)
>         {
> -         error (0, 0, "%s: COPY relocations don't point into .bss or 
> .sbss

Re: [yocto] [prelink-cross][PATCH] Support copy relocations in .data.rel.ro

2018-10-12 Thread Kyle Russell
Do you want me to just resent my last two patches?  I don't mind if that
would be easier, and I'll remember to add the Signed-off-by. :)

On Fri, Oct 12, 2018 at 10:00 AM Mark Hatle 
wrote:

> On 10/4/18 9:12 AM, Kyle Russell wrote:
> > Hey Mark,
> >
> > Do you think this approach is reasonable?  If so, I have another patch
> I'd like
> > to propose that would enable us to better catch error scenarios (like
> the last
> > two patches address) that we might encounter during do_image_prelink.
> We just
> > happened to detect these last two issues even though image_prelink
> didn't fail
> > the build, so I'd like to provide an option to enable a little more
> assertive
> > error path, if desired.
>
> I'm getting caught back up on my prelink 'TODO' set.  The approach seems
> reasonable to me.  However, I appear to have lost the reference to the
> original
> patch email.
>
> I'm going to try to reapply from this email (or the list archive), but I
> may
> need you to resend it.  I'll let you [and others know] once I get these
> things
> merged.
>
> Thanks!
> --Mark
>
> > Thanks,
> > Kyle
> >
> > On Fri, Sep 28, 2018 at 10:57 AM Kyle Russell  > > wrote:
> >
> > binutils-2.28 (17026142ef35b62ac88bfe517b4160614902cb28) adds support
> > for copying read-only dynamic symbols into .data.rel.ro <
> http://data.rel.ro>
> > instead of .bss
> > since .bss is technically writable.  This causes prelink to error
> out on
> > any binary containing COPY relocations in .data.rel.ro <
> http://data.rel.ro>.
> >
> > Read-only variables defined in shared libraries should be copied
> directly
> > into the space allocated for them in .data.rel.ro <
> http://data.rel.ro> by
> > the linker.
> >
> > To achieve this, we determine whether either of the two sections
> > containing copy relocations is .data.rel.ro .
> If so, we
> > relocate the
> > symbol memory directly into the existing section instead of
> constructing
> > a new .(s)dynbss section once prelink_build_conflicts() returns.
> >
> > Fixes cxx1.sh, cxx2.sh, and cxx3.sh on Fedora 28 (which uses
> > binutils-2.29).
> > ---
> >  src/conflict.c | 51
> +-
> >  src/undo.c |  9 +
> >  2 files changed, 47 insertions(+), 13 deletions(-)
> >
> > diff --git a/src/conflict.c b/src/conflict.c
> > index 9ae2ddb..5613ace 100644
> > --- a/src/conflict.c
> > +++ b/src/conflict.c
> > @@ -450,7 +450,7 @@ get_relocated_mem (struct prelink_info *info,
> DSO *dso,
> > GElf_Addr addr,
> >  int
> >  prelink_build_conflicts (struct prelink_info *info)
> >  {
> > -  int i, ndeps = info->ent->ndepends + 1;
> > +  int i, reset_dynbss = 0, reset_sdynbss = 0, ndeps =
> info->ent->ndepends + 1;
> >struct prelink_entry *ent;
> >int ret = 0;
> >DSO *dso;
> > @@ -675,6 +675,11 @@ prelink_build_conflicts (struct prelink_info
> *info)
> >  dso->filename);
> >   goto error_out;
> > }
> > +
> > + name = strptr (dso, dso->ehdr.e_shstrndx,
> dso->shdr[bss1].sh_name);
> > + if (strcmp(name, ".data.rel.ro ") ==
> 0)
> > +   reset_sdynbss = 1;
> > +
> >   firstbss2 = i;
> >   info->sdynbss_size = cr.rela[i - 1].r_offset -
> cr.rela[0].r_offset;
> >   info->sdynbss_size += cr.rela[i - 1].r_addend;
> > @@ -702,6 +707,10 @@ prelink_build_conflicts (struct prelink_info
> *info)
> > }
> > }
> >
> > +  name = strptr (dso, dso->ehdr.e_shstrndx,
> dso->shdr[bss2].sh_name);
> > +  if (strcmp(name, ".data.rel.ro ") == 0)
> > +reset_dynbss = 1;
> > +
> >info->dynbss_size = cr.rela[cr.count - 1].r_offset
> >   - cr.rela[firstbss2].r_offset;
> >info->dynbss_size += cr.rela[cr.count - 1].r_addend;
> > @@ -719,9 +728,9 @@ prelink_build_conflicts (struct prelink_info
> *info)
> >   && strcmp (name = strptr (dso, dso->ehdr.e_shstrndx,
> > dso->shdr[bss1].sh_name),
> >  ".dynbss") != 0
> > - && strcmp (name, ".sdynbss") != 0)
> > + && strcmp (name, ".sdynbss") != 0 && strcmp (name, ".
> data.rel.ro
> > ") != 0)
> > {
> > - error (0, 0, "%s: COPY relocations don't point into .bss
> or .sbss
> > section",
> > + error (0, 0, "%s: COPY relocations don't point into .bss,
> .sbss,
> > or .data.rel.ro  sections",
> >  dso->filename);
> >   goto error_out;
> > }
> > @@ -730,9 +739,9 @@ prelink_build_conflicts (struct prelink_info
> *info)
> >   && strcmp (

Re: [yocto] [Yocto][poky][meta] already-stripped ignore if set for any other package then INSANE_SKIP_${PN}

2018-10-12 Thread Burton, Ross
On Thu, 11 Oct 2018 at 18:14, Måns Zigher  wrote:
> I have been struggling with a problem where I need to create a package in a 
> recipe and set already-stripped for that package. The package in question is 
> not the the default one so I am trying to set it by using
>
> INSANE_SKIP_${PN} += " \
> dev-so \
> already-stripped \
> "

You say no the default one, but PN is "the default" one, so that's
probably why that doesn't work.

Ross
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] [prelink-cross][PATCH] Support copy relocations in .data.rel.ro

2018-10-12 Thread Mark Hatle
On 10/12/18 9:06 AM, Kyle Russell wrote:
> Do you want me to just resent my last two patches?  I don't mind if that would
> be easier, and I'll remember to add the Signed-off-by. :)

I was able to pull them from the mailing list archives and have them applied to
my local tree.  I have a few other patches and then I'll be pushing to the
staging tree.

--Mark

> On Fri, Oct 12, 2018 at 10:00 AM Mark Hatle  > wrote:
> 
> On 10/4/18 9:12 AM, Kyle Russell wrote:
> > Hey Mark,
> >
> > Do you think this approach is reasonable?  If so, I have another patch 
> I'd
> like
> > to propose that would enable us to better catch error scenarios (like 
> the last
> > two patches address) that we might encounter during do_image_prelink.  
> We just
> > happened to detect these last two issues even though image_prelink 
> didn't fail
> > the build, so I'd like to provide an option to enable a little more 
> assertive
> > error path, if desired.
> 
> I'm getting caught back up on my prelink 'TODO' set.  The approach seems
> reasonable to me.  However, I appear to have lost the reference to the 
> original
> patch email.
> 
> I'm going to try to reapply from this email (or the list archive), but I 
> may
> need you to resend it.  I'll let you [and others know] once I get these 
> things
> merged.
> 
> Thanks!
> --Mark
> 
> > Thanks,
> > Kyle
> >
> > On Fri, Sep 28, 2018 at 10:57 AM Kyle Russell  
> > >> wrote:
> >
> >     binutils-2.28 (17026142ef35b62ac88bfe517b4160614902cb28) adds 
> support
> >     for copying read-only dynamic symbols into .data.rel.ro
>  
> >     instead of .bss
> >     since .bss is technically writable.  This causes prelink to error 
> out on
> >     any binary containing COPY relocations in .data.rel.ro
>  .
> >
> >     Read-only variables defined in shared libraries should be copied 
> directly
> >     into the space allocated for them in .data.rel.ro 
> 
>  by
> >     the linker.
> >
> >     To achieve this, we determine whether either of the two sections
> >     containing copy relocations is .data.rel.ro 
> .  If so, we
> >     relocate the
> >     symbol memory directly into the existing section instead of 
> constructing
> >     a new .(s)dynbss section once prelink_build_conflicts() returns.
> >
> >     Fixes cxx1.sh, cxx2.sh, and cxx3.sh on Fedora 28 (which uses
> >     binutils-2.29).
> >     ---
> >      src/conflict.c | 51 
> +-
> >      src/undo.c     |  9 +
> >      2 files changed, 47 insertions(+), 13 deletions(-)
> >
> >     diff --git a/src/conflict.c b/src/conflict.c
> >     index 9ae2ddb..5613ace 100644
> >     --- a/src/conflict.c
> >     +++ b/src/conflict.c
> >     @@ -450,7 +450,7 @@ get_relocated_mem (struct prelink_info *info, 
> DSO
> *dso,
> >     GElf_Addr addr,
> >      int
> >      prelink_build_conflicts (struct prelink_info *info)
> >      {
> >     -  int i, ndeps = info->ent->ndepends + 1;
> >     +  int i, reset_dynbss = 0, reset_sdynbss = 0, ndeps =
> info->ent->ndepends + 1;
> >        struct prelink_entry *ent;
> >        int ret = 0;
> >        DSO *dso;
> >     @@ -675,6 +675,11 @@ prelink_build_conflicts (struct prelink_info 
> *info)
> >                          dso->filename);
> >                   goto error_out;
> >                 }
> >     +
> >     +         name = strptr (dso, dso->ehdr.e_shstrndx,
> dso->shdr[bss1].sh_name);
> >     +         if (strcmp(name, ".data.rel.ro 
> ") == 0)
> >     +           reset_sdynbss = 1;
> >     +
> >               firstbss2 = i;
> >               info->sdynbss_size = cr.rela[i - 1].r_offset -
> cr.rela[0].r_offset;
> >               info->sdynbss_size += cr.rela[i - 1].r_addend;
> >     @@ -702,6 +707,10 @@ prelink_build_conflicts (struct prelink_info 
> *info)
> >                 }
> >             }
> >
> >     +      name = strptr (dso, dso->ehdr.e_shstrndx, 
> dso->shdr[bss2].sh_name);
> >     +      if (strcmp(name, ".data.rel.ro 
> ") == 0)
> >     +        reset_dynbss = 1;
> >     +
> >            info->dynbss_size = cr.rela[cr.count - 1].r_offset
> >                               - cr.rela[firstbss2].r_offset;
> >            info->dynbss_size += cr.rela[cr.count - 1].r_addend;
> >     @@ -719,9 +728,9 @@ prelink_build_

[yocto] [prelink-cross][PATCH] Add option to return an error if all binaries cannot be prelinked

2018-10-12 Thread Kyle Russell
Otherwise, there's no way to validate whether or not the operation
was actually successful without rescanning.

Signed-off-by: Kyle Russell 
---
 src/doit.c| 16 +++-
 src/main.c|  8 +++-
 src/prelink.h |  2 +-
 3 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/doit.c b/src/doit.c
index 1e32ad5..3784866 100644
--- a/src/doit.c
+++ b/src/doit.c
@@ -237,11 +237,11 @@ error_out:
   return;
 }
 
-void
+int
 prelink_all (void)
 {
   struct collect_ents l;
-  int i;
+  int i, fails = 0;
 
   l.ents =
 (struct prelink_entry **) alloca (prelink_entry_count
@@ -250,7 +250,13 @@ prelink_all (void)
   htab_traverse (prelink_filename_htab, find_ents, &l);
 
   for (i = 0; i < l.nents; ++i)
-if (l.ents[i]->done == 1
-   || (l.ents[i]->done == 0 && l.ents[i]->type == ET_EXEC))
-  prelink_ent (l.ents[i]);
+{
+  if (l.ents[i]->done == 1
+ || (l.ents[i]->done == 0 && l.ents[i]->type == ET_EXEC))
+   prelink_ent (l.ents[i]);
+  if (l.ents[i]->type == ET_UNPRELINKABLE)
+   fails++;
+}
+
+  return fails;
 }
diff --git a/src/main.c b/src/main.c
index 0cea86d..6ba89d5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -47,6 +47,7 @@ int one_file_system;
 int enable_cxx_optimizations = 1;
 int exec_shield;
 int undo, verify;
+int errors;
 enum verify_method_t verify_method;
 int quick;
 int compute_checksum;
@@ -90,6 +91,7 @@ static struct argp_option options[] = {
   {"black-list",   'b', "PATH", 0, "Blacklist path" },
   {"cache-file",   'C', "CACHE", 0, "Use CACHE as cache file" },
   {"config-file",  'c', "CONF", 0, "Use CONF as configuration file" },
+  {"errors",'e', 0, 0,  "Returns an error if all binaries are not 
prelinkable" },
   {"force",'f', 0, 0,  "Force prelinking" },
   {"dereference",  'h', 0, 0,  "Follow symlinks when processing directory 
trees from command line" },
   {"one-file-system",  'l', 0, 0,  "Stay in local file system when processing 
directories from command line" },
@@ -139,6 +141,9 @@ parse_opt (int key, char *arg, struct argp_state *state)
   if (add_to_blacklist (arg, dereference, one_file_system))
exit (EXIT_FAILURE);
   break;
+case 'e':
+  errors = 1;
+  break;
 case 'f':
   force = 1;
   break;
@@ -524,7 +529,8 @@ main (int argc, char *argv[])
 prelink_load_cache ();
 
   layout_libs ();
-  prelink_all ();
+  if(prelink_all () && errors)
+return EXIT_FAILURE;
 
   if (! no_update && ! dry_run)
 prelink_save_cache (all);
diff --git a/src/prelink.h b/src/prelink.h
index 93dbf7a..c7b57e2 100644
--- a/src/prelink.h
+++ b/src/prelink.h
@@ -574,7 +574,7 @@ int get_relocated_mem (struct prelink_info *info, DSO *dso, 
GElf_Addr addr,
 
 int layout_libs (void);
 
-void prelink_all (void);
+int prelink_all (void);
 
 int undo_all (void);
 
-- 
2.17.1

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] [prelink-cross] [PATCH] x86_64: allow prelinking of PIE executables with COPY relocs

2018-10-12 Thread Mark Hatle
On 10/10/18 3:50 PM, Sergei Trofimovich wrote:
> COPY relocs are fine to have in PIE executables (as opposed to
> shared libraries).
> 
> By enabling prelink on PIEs we achieve a few goals:
> - prelink more PIE files on system: nicer for uniformity,
> - avoid spurious warnings about shared libraries with COPY relocs
> 
> It's usefult to prelink PIEs when kernel ASLR is disabled:
> kernel.randomize_va_space=0 + PIE-randomization patches.
> 
> I have gcc built as `--enable-default-pie` (generates PIE
> executables by default).
> 
> Testsute results before the change:
>   PASS:  14
>   FAIL:  31
> 
> After the change:
>   PASS:  32
>   FAIL:  13

After applying this patch, I think it uncovered another issue.

See:

http://git.yoctoproject.org/cgit/cgit.cgi/prelink-cross/log/?h=cross_prelink_staging

specifically:

http://git.yoctoproject.org/cgit/cgit.cgi/prelink-cross/commit/?h=cross_prelink_staging&id=b10e14218646d8b74773b82b0f8b395bce698fa2


Running the test suite, I was getting 4 failures that each manifested 
themselves as:

FAIL: layout1.sh  ../src/prelink: testsuite/layout1: section file offsets not
monotonically increasing
FAIL: cxx2.sh ../src/prelink: testsuite/cxx2: section file offsets not
monotonically increasing
FAIL: cxx3.sh ../src/prelink: testsuite/cxx3: section file offsets not
monotonically increasing
FAIL: quick1.sh   ../src/prelink: testsuite/quick1.tree/usr/bin/bin3: section
file offsets not monotonically increasing

Before this patch they would report:

   COPY relocations don't point into .bss or .sbss section

So I suspect that enabling the PIE executable prelinking has either triggered a
corner case or uncovered a bug in the existing function.

What I am seeing happen, if I dump the sections is:

   section 15 .fini file offset range 12f4 and 12fd
   section 16 .gnu.conflict file offset range 1300 and 2080
   section 17 .rodata file offset range 2000 and 20a3
   section 18 .eh_frame_hdr file offset range 20a4 and 2118

When the .gnu.conflict section is added and processed, it ends up inserting
immediately after .fini.   It then ends up taking more space then the gap allows
for (by 0x80 bytes in this case.)

I looked at the code for a couple of hours, and I'm not making any real progress
on it.

Do you have time to investigate this?

My little hack is enough to identify when this over write happens and abort..
but I suspect it's probably fixable instead.  (I don't intend to keep the hack
commit when transferring this over)

--Mark

> Signed-off-by: Sergei Trofimovich 
> ---
>  src/arch-x86_64.c |  4 ++--
>  src/dso.c | 19 +++
>  src/prelink.h |  1 +
>  3 files changed, 22 insertions(+), 2 deletions(-)
> 
> diff --git a/src/arch-x86_64.c b/src/arch-x86_64.c
> index 5c95f47..2f6c551 100644
> --- a/src/arch-x86_64.c
> +++ b/src/arch-x86_64.c
> @@ -179,7 +179,7 @@ x86_64_prelink_rela (struct prelink_info *info, GElf_Rela 
> *rela,
>   value + rela->r_addend - info->resolvetls->offset);
>break;
>  case R_X86_64_COPY:
> -  if (dso->ehdr.e_type == ET_EXEC)
> +  if (dso->ehdr.e_type == ET_EXEC || dso_is_pie(dso))
>   /* COPY relocs are handled specially in generic code.  */
>   return 0;
>error (0, 0, "%s: R_X86_64_COPY reloc in shared library?", 
> dso->filename);
> @@ -503,7 +503,7 @@ x86_64_undo_prelink_rela (DSO *dso, GElf_Rela *rela, 
> GElf_Addr relaaddr)
>write_le32 (dso, rela->r_offset, 0);
>break;
>  case R_X86_64_COPY:
> -  if (dso->ehdr.e_type == ET_EXEC)
> +  if (dso->ehdr.e_type == ET_EXEC || dso_is_pie(dso))
>   /* COPY relocs are handled specially in generic code.  */
>   return 0;
>error (0, 0, "%s: R_X86_64_COPY reloc in shared library?", 
> dso->filename);
> diff --git a/src/dso.c b/src/dso.c
> index a5fcec5..9fcfc3d 100644
> --- a/src/dso.c
> +++ b/src/dso.c
> @@ -1106,6 +1106,25 @@ dso_is_rdwr (DSO *dso)
>return dso->elfro != NULL;
>  }
>  
> +/* Return true is DSO is position independent executable.
> +
> +   There is no simple way to distinct between shared library
> +   and PIE executable.  Use presence of interpreter as a heuristic.  */
> +
> +int dso_is_pie(DSO *dso)
> +{
> +  int i;
> +
> +  if (dso->ehdr.e_type != ET_DYN)
> +return 0;
> +
> +  for (i = 0; i < dso->ehdr.e_phnum; ++i)
> +if (dso->phdr[i].p_type == PT_INTERP)
> +  return 1;
> +
> +  return 0;
> +}
> +
>  GElf_Addr
>  adjust_old_to_new (DSO *dso, GElf_Addr addr)
>  {
> diff --git a/src/prelink.h b/src/prelink.h
> index 93dbf7a..d8a00c6 100644
> --- a/src/prelink.h
> +++ b/src/prelink.h
> @@ -298,6 +298,7 @@ int reopen_dso (DSO *dso, struct section_move *move, 
> const char *);
>  int adjust_symbol_p (DSO *dso, GElf_Sym *sym);
>  int check_dso (DSO *dso);
>  int dso_is_rdwr (DSO *dso);
> +int dso_is_pie(DSO *dso);
>  void read_dynamic (DSO *dso);
>  int set_dynamic (DSO *dso, GElf_Word tag, GElf_Addr value, int fatal);
>  i

[yocto] Force rebuild to regenerate .ko

2018-10-12 Thread Raymond Yeung
I've a Intel Ethernet driver, ixgbe.ko.  I made some changes (debug logs) to 
the source file.  How do I force the .ko to be regenerated within yocto 
environment, without rebuilding the entire yocto code base?

I tried to do bitbake of the image name earlier, but bitbake decides that 
there's nothing to be done.  This is even after I'd removed the cache and 
sstate directories.

Thanks,
Raymond
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto