[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