[meta-xilinx] [PATCH 1/4] recipes-microblaze/glibc: Remove glibc patches

Alistair Francis alistair.francis at xilinx.com
Mon Aug 21 09:54:13 PDT 2017


On Sun, Aug 20, 2017 at 9:36 PM, Nathan Rossi <nathan at nathanrossi.com> wrote:
> On 19 August 2017 at 03:11, Alistair Francis
> <alistair.francis at xilinx.com> wrote:
>> On Fri, Aug 18, 2017 at 9:29 AM, Alistair Francis
>> <alistair.francis at xilinx.com> wrote:
>>> The meta layer has moved to glibc 2.26 so these bbappends no longer
>>> apply. As these patches don't apply to glibc 2.26 and some other similar
>>> patches have been merged just remove these patches.
>>>
>>> Signed-off-by: Alistair Francis <alistair.francis at xilinx.com>
>>> ---
>>
>> Ah, my under the line was lost.
>>
>> I'm a little unsure about this one. Once this patch is applied I can't
>> boot the QEMU machines on QEMU. I'm not sure that is broken by this
>> though, or master just doesn't work as I can't build master without
>> this patch.
>
> This change is expected, I've had it on my nrossi/next branch for a
> little while now
> (https://github.com/nathanrossi/meta-xilinx/commit/1f59c6ca4b8a00b7a4c93e781e4022d4bfd09206).
> I will add your signed off by on that commit (so as to keep the
> slightly more specific commit message info).

Great! Thanks.

>
> Glibc 2.26 resolved the pt-vfork symbol issues. So no patches needed
> for glibc as of 2.26.
>
> As for broken linux boot (at least on the userspace side), that's a
> gcc issue, need to update the patches for 7.2. I'm working on that
> though.

Ah ok. I'll test your patches then.

Thanks,
Alistair

>
> Thanks,
> Nathan
>
>>
>> Thanks,
>> Alistair
>>
>>>  ...oBlaze-fix-up-pt-vfork-symbol-definitions.patch | 105 ---------------------
>>>  .../glibc/glibc-initial_2.25.bbappend              |   4 -
>>>  recipes-microblaze/glibc/glibc_2.25.bbappend       |   4 -
>>>  3 files changed, 113 deletions(-)
>>>  delete mode 100644 recipes-microblaze/glibc/files/MicroBlaze-fix-up-pt-vfork-symbol-definitions.patch
>>>  delete mode 100644 recipes-microblaze/glibc/glibc-initial_2.25.bbappend
>>>  delete mode 100644 recipes-microblaze/glibc/glibc_2.25.bbappend
>>>
>>> diff --git a/recipes-microblaze/glibc/files/MicroBlaze-fix-up-pt-vfork-symbol-definitions.patch b/recipes-microblaze/glibc/files/MicroBlaze-fix-up-pt-vfork-symbol-definitions.patch
>>> deleted file mode 100644
>>> index ed37d63..0000000
>>> --- a/recipes-microblaze/glibc/files/MicroBlaze-fix-up-pt-vfork-symbol-definitions.patch
>>> +++ /dev/null
>>> @@ -1,105 +0,0 @@
>>> -From 873fc4bf58d6cc8d579a65224350ce3adddc6c2a Mon Sep 17 00:00:00 2001
>>> -From: Nathan Rossi <nathan at nathanrossi.com>
>>> -Date: Wed, 23 Nov 2016 22:30:29 +1000
>>> -Subject: [PATCH] MicroBlaze: fix up pt-vfork symbol definitions
>>> -
>>> -Due to the reuse of the alpha/pt-vfork.S implementation additional
>>> -symbols are emitted for libpthread which are invalid due to the
>>> -non-existence of a '__libc_vfork' symbol/implementation. A symbol is
>>> -emitted which references __libc_vfork and is invalid which causes the
>>> -linker to emit a corrupt symbol entry:
>>> -
>>> -    180: 00000000 0x24a91 NOTYPE  LOCAL  DEFAULT  UND <corrupt>
>>> -
>>> -Depending on the internals of the linker this corrupt symbol is either a
>>> -valid symbol as above or an completely invalid symbol that causes issues
>>> -when linking against libpthread.so:
>>> -
>>> -    179: 0000564b 0x825fd688 <OS specific>: 11 <unknown>: 4 HIDDEN
>>> -        [<other>: 54]   UND <corrupt>
>>> -
>>> -In both cases this is the 'vfork at GLIBC_2.18' compat_symbol which is
>>> -aliased as the local '__libc_vfork'. (in libpthread.so)
>>> -
>>> -    12: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND vfork at GLIBC_2.18
>>> -
>>> -Due to how MicroBlaze differs from other architectures, it is special in
>>> -that it only implements '__vfork' and due to the weak_alias in vfork.S
>>> -also defines 'vfork' for both libc and libpthread. No other symbols
>>> -(e.g. '__vfork_compat') are part of the ABI.
>>> -
>>> -This change removes the compatible symbol generation provided by
>>> -alpha/pt-vfork.S and sets up the 'vfork' and '__vfork' symbols to be
>>> -provided in libpthread based on SHLIB_COMPAT. This avoids the generation
>>> -of invalid symbols but maintains the expected libc and libpthread vfork
>>> -ABIs.
>>> -
>>> -Signed-off-by: Nathan Rossi <nathan at nathanrossi.com>
>>> -Upstream-Status: Pending
>>> ----
>>> - sysdeps/unix/sysv/linux/microblaze/pt-vfork.S | 40 ++++++++++++++++++++++++++-
>>> - sysdeps/unix/sysv/linux/microblaze/vfork.S    |  4 ++-
>>> - 2 files changed, 42 insertions(+), 2 deletions(-)
>>> -
>>> -diff --git a/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S b/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S
>>> -index 65cc3823ac..82bc36eecc 100644
>>> ---- a/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S
>>> -+++ b/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S
>>> -@@ -1 +1,39 @@
>>> --#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
>>> -+/* vfork ABI-compatibility entry points for libpthread.
>>> -+   Copyright (C) 2014-2016 Free Software Foundation, Inc.
>>> -+   This file is part of the GNU C Library.
>>> -+
>>> -+   The GNU C Library is free software; you can redistribute it and/or
>>> -+   modify it under the terms of the GNU Lesser General Public
>>> -+   License as published by the Free Software Foundation; either
>>> -+   version 2.1 of the License, or (at your option) any later version.
>>> -+
>>> -+   The GNU C Library is distributed in the hope that it will be useful,
>>> -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
>>> -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>>> -+   Lesser General Public License for more details.
>>> -+
>>> -+   You should have received a copy of the GNU Lesser General Public
>>> -+   License along with the GNU C Library; if not, see
>>> -+   <http://www.gnu.org/licenses/>.  */
>>> -+
>>> -+#include <shlib-compat.h>
>>> -+
>>> -+/* libpthread used to have its own vfork implementation that differed
>>> -+   from libc's only in having a pointless micro-optimization.  There
>>> -+   is no longer any use to having a separate copy in libpthread, but
>>> -+   the historical ABI requires it.  For static linking, there is no
>>> -+   need to provide anything here--the libc version will be linked in.
>>> -+   For shared library ABI compatibility, there must be __vfork and
>>> -+   vfork symbols in libpthread.so.  */
>>> -+
>>> -+#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
>>> -+     || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
>>> -+
>>> -+#include <vfork.S>
>>> -+
>>> -+#endif
>>> -+
>>> -+#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
>>> -+weak_alias (__vfork, vfork)
>>> -+#endif
>>> -+
>>> -diff --git a/sysdeps/unix/sysv/linux/microblaze/vfork.S b/sysdeps/unix/sysv/linux/microblaze/vfork.S
>>> -index 9592cb4f28..b537f1ce34 100644
>>> ---- a/sysdeps/unix/sysv/linux/microblaze/vfork.S
>>> -+++ b/sysdeps/unix/sysv/linux/microblaze/vfork.S
>>> -@@ -40,6 +40,8 @@ ENTRY (__vfork)
>>> -       nop
>>> -
>>> - PSEUDO_END (__vfork)
>>> --libc_hidden_def (__vfork)
>>> -
>>> -+#if IS_IN (libc)
>>> - weak_alias (__vfork, vfork)
>>> -+libc_hidden_def (__vfork)
>>> -+#endif
>>> ---
>>> -2.10.2
>>> -
>>> diff --git a/recipes-microblaze/glibc/glibc-initial_2.25.bbappend b/recipes-microblaze/glibc/glibc-initial_2.25.bbappend
>>> deleted file mode 100644
>>> index a4beb0b..0000000
>>> --- a/recipes-microblaze/glibc/glibc-initial_2.25.bbappend
>>> +++ /dev/null
>>> @@ -1,4 +0,0 @@
>>> -
>>> -FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
>>> -SRC_URI += "file://MicroBlaze-fix-up-pt-vfork-symbol-definitions.patch"
>>> -
>>> diff --git a/recipes-microblaze/glibc/glibc_2.25.bbappend b/recipes-microblaze/glibc/glibc_2.25.bbappend
>>> deleted file mode 100644
>>> index a4beb0b..0000000
>>> --- a/recipes-microblaze/glibc/glibc_2.25.bbappend
>>> +++ /dev/null
>>> @@ -1,4 +0,0 @@
>>> -
>>> -FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
>>> -SRC_URI += "file://MicroBlaze-fix-up-pt-vfork-symbol-definitions.patch"
>>> -
>>> --
>>> 2.11.0
>>>
>>> --
>>> _______________________________________________
>>> meta-xilinx mailing list
>>> meta-xilinx at yoctoproject.org
>>> https://lists.yoctoproject.org/listinfo/meta-xilinx
> --
> _______________________________________________
> meta-xilinx mailing list
> meta-xilinx at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-xilinx



More information about the meta-xilinx mailing list