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

Nathan Rossi nathan at nathanrossi.com
Sun Aug 20 21:36:45 PDT 2017


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).

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.

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



More information about the meta-xilinx mailing list