[OE-core] [PATCH v2] systemd: work-around ppc gold linker error

Khem Raj raj.khem at gmail.com
Thu Jun 22 22:22:32 UTC 2017


What's the link to upstream bug in linker

On Thu, Jun 22, 2017 at 12:34 AM Randy MacLeod <randy.macleod at windriver.com>
wrote:

> Merge if you like or wait for the real fix to binutils.
>
> This bug has been around for more than a week
> since the binutils upgrade was merged and
> no one else seems to have noticed so it doesn't
> seem urgent.
>
> I needed the work-around to keep our auto-builders happy.
> Oh and I did basic sanity testing to show that booting
> and systemctl status works on qemuppc.
>
> ../Randy
>
> On 2017-06-21 10:14 PM, Randy MacLeod wrote:
> > If you enable systemd and build for qemuppc, then the
> > compile of systemd fails due to a gold linker failure:
> >
> >     .../powerpc-oe-linux-ld.gold:
> >     error: invalid STB_LOCAL symbol in external symbols
> >     error: linker defined: multiple definition of
> '00000001.plt_call.memcpy+8000'
> >     command line: previous definition here
> >
> > A git bisect confirms that the commit:
> >     0b0f545 binutils-2.28: Update to latest on release branch
> > is the problem. This is only known to affect powerpc machines.
> >
> > Work-around this for powerpc by getting configure to use
> > the bfd linker rather than the gold linker.
> >
> > This unblocks powerpc use until the linker bug can be resolved.
> >
> > Signed-off-by: Randy MacLeod <Randy.MacLeod at windriver.com>
> > ---
> >   .../systemd/systemd/systemd-drop-gold-use-bfd.patch   | 19
> +++++++++++++++++++
> >   meta/recipes-core/systemd/systemd_232.bb              |  2 ++
> >   2 files changed, 21 insertions(+)
> >   create mode 100644
> meta/recipes-core/systemd/systemd/systemd-drop-gold-use-bfd.patch
> >
> > diff --git
> a/meta/recipes-core/systemd/systemd/systemd-drop-gold-use-bfd.patch
> b/meta/recipes-core/systemd/systemd/systemd-drop-gold-use-bfd.patch
> > new file mode 100644
> > index 0000000..e0eb0bd
> > --- /dev/null
> > +++ b/meta/recipes-core/systemd/systemd/systemd-drop-gold-use-bfd.patch
> > @@ -0,0 +1,19 @@
> > +Upstream-Status: Inappropriate [other]
> > +
> > +The patch is not appropriate for upstream since it's a temporary
> > +work-around for only ppc arches. Once the binutils defect in the
> > +gold linker is resolved, this patch can be dropped.
> > +
> > +Signed-off-by: Randy MacLeod <Randy.MacLeod at windriver.com>
> > +
> > +--- a/configure.ac
> > ++++ b/configure.ac
> > +@@ -260,7 +260,7 @@
> > +         -Wl,-z,relro \
> > +         -Wl,-z,now \
> > +         -pie \
> > +-        -Wl,-fuse-ld=gold])
> > ++        -Wl,-fuse-ld=bfd])
> > + AC_SUBST([OUR_LDFLAGS], "$with_ldflags $sanitizer_ldflags")
> > +
> > + AC_CHECK_SIZEOF(pid_t)
> > diff --git a/meta/recipes-core/systemd/systemd_232.bb
> b/meta/recipes-core/systemd/systemd_232.bb
> > index 1007360..1e8dffe 100644
> > --- a/meta/recipes-core/systemd/systemd_232.bb
> > +++ b/meta/recipes-core/systemd/systemd_232.bb
> > @@ -41,6 +41,8 @@ SRC_URI_append_libc-uclibc = "\
> >   "
> >   SRC_URI_append_qemuall = "
> file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"
> >
> > +SRC_URI_append_powerpc = " file://systemd-drop-gold-use-bfd.patch"
> > +
> >   PACKAGECONFIG ??= "xz \
> >                      ${@bb.utils.filter('DISTRO_FEATURES', 'efi pam
> selinux ldconfig', d)} \
> >                      ${@bb.utils.contains('DISTRO_FEATURES', 'x11',
> 'xkbcommon', '', d)} \
> >
>
>
> --
> # Randy MacLeod. SMTS, Linux, Wind River
> Direct: 613.963.1350 | 350 Terry Fox Drive, Suite 200, Ottawa, ON,
> Canada, K2K 2W5
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20170622/190303b3/attachment-0002.html>


More information about the Openembedded-core mailing list