[oe] [PATCH] prelink: Added prelink-20100106, which works on ARM.
James Limbouris
james at digitalmatter.com.au
Wed Jun 15 01:16:22 UTC 2011
On Tuesday, 14 June 2011 5:17 PM, Phil Blundell wrote:
> On Tue, 2011-06-14 at 15:49 +0800, James Limbouris wrote:
> > This version of prelink, together with a patch by Carsten Munk
> > <carsten at maemo.org>, taken from MeeGo, fixes an ARM incompatibility
> > with 20090925.
> >
> > Signed-off-by: James Limbouris <james at digitalmatter.com.au>
> > ---
> > .../prelink-20100106-arm-fix.patch | 86 ++++++++++++++++++++
> > recipes/prelink/prelink_20100106.bb | 53 ++++++++++++
> > 2 files changed, 139 insertions(+), 0 deletions(-) create mode
> > 100755 recipes/prelink/prelink-20100106/prelink-20100106-arm-fix.patch
> > create mode 100644 recipes/prelink/prelink_20100106.bb
> >
> > diff --git
> > a/recipes/prelink/prelink-20100106/prelink-20100106-arm-fix.patch
> > b/recipes/prelink/prelink-20100106/prelink-20100106-arm-fix.patch
> > new file mode 100755
> > index 0000000..a694541
> > --- /dev/null
> > +++ b/recipes/prelink/prelink-20100106/prelink-20100106-arm-fix.patch
> > @@ -0,0 +1,86 @@
> > +diff -ru prelink-old/src/arch-arm.c prelink/src/arch-arm.c
> > +--- prelink-old/src/arch-arm.c 2009-06-15 07:37:50.000000000 -0400
> > ++++ prelink/src/arch-arm.c 2010-08-17 03:35:05.000000000 -0400
> > +@@ -832,7 +832,7 @@
> > + .R_COPY = R_ARM_COPY,
> > + .R_RELATIVE = R_ARM_RELATIVE,
> > + .rtype_class_valid = RTYPE_CLASS_VALID,
> > +- .dynamic_linker = "/lib/ld-linux.so.2",
> > ++ .dynamic_linker = "/lib/ld-linux.so.3",
>
> That looks like it's going to break OABI binaries. I'm not sure to what extent
> we care about those anymore, but I'm not sure I would describe this as a
> "fix" exactly.
>
> > +- switch (vfork ())
> > ++ switch (pid=fork ())
> > + {
> > + case -1:
> > + error (0, errno, "Could not run %s", path); @@ -63,7 +65,9 @@
> > + close (p[1]);
> > + }
> > + dup2 (1, 2);
> > +- execve (path, argv, envp);
> > ++ while (*envp)
> > ++ putenv(*envp++);
> > ++ execv (path, argv);
> > + _exit (127);
>
> What's that about?
>
> p.
Hi,
I believe the vfork() changes are for qemu compatibility - I don't know what the issue was exactly.
I didn't realise the linker version was for EABI/OABI compatibility - I guess prelink should determine the ABI and choose accordingly...
But I don't have any OABI binaries on my system at all...
So we can:
1. Fix it properly
2. Switch from OABI only to EABI only
3. Make a prelink-eabi recipe.
I don't really have the patience for 1., since I have no OABI binaries. Does anyone have any preferences here?
Regards,
James
More information about the Openembedded-devel
mailing list