diff options
Diffstat (limited to 'meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch')
-rw-r--r-- | meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch b/meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch deleted file mode 100644 index 9afa7f6a55..0000000000 --- a/meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch +++ /dev/null @@ -1,144 +0,0 @@ -From abbc0761fa0349d49b10dc8c0f10af6bc0578c40 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard <mark@klomp.org> -Date: Tue, 12 May 2020 16:58:36 +0200 -Subject: [PATCH 1/2] gcc10 arm64 build needs __getauxval for linking with - libgcc - -Provide a new library libgcc-sup-<platform>.a that contains symbols -needed by libgcc. This needs to be linked after -lgcc to provide -any symbols missing which would normally be provided by glibc. -At the moment this only provides __getauxval on arm64 linux. - -https://bugs.kde.org/show_bug.cgi?id=421321 - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Upstream-Status: Backport [https://sourceware.org/git/?p=valgrind.git;a=commit;h=abbc0761fa0349d49b10dc8c0f10af6bc0578c40] - ---- - Makefile.tool.am | 3 +- - coregrind/Makefile.am | 26 +++++++++++++++++ - coregrind/m_libgcc_sup.c | 61 ++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 89 insertions(+), 1 deletion(-) - create mode 100644 coregrind/m_libgcc_sup.c - -diff --git a/Makefile.tool.am b/Makefile.tool.am -index cc2fa0ee6..2bf90de5d 100644 ---- a/Makefile.tool.am -+++ b/Makefile.tool.am -@@ -17,7 +17,8 @@ TOOL_DEPENDENCIES_@VGCONF_PLATFORM_SEC_CAPS@ = \ - endif - - --TOOL_LDADD_COMMON = -lgcc -+TOOL_LDADD_COMMON = -lgcc \ -+ $(top_builddir)/coregrind/libgcc-sup-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a - TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ - $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) $(TOOL_LDADD_COMMON) - if VGCONF_HAVE_PLATFORM_SEC -diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am -index 6a1a925fb..1753fb633 100644 ---- a/coregrind/Makefile.am -+++ b/coregrind/Makefile.am -@@ -542,6 +542,32 @@ libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_DEPENDENCIES = \ - libnolto_coregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a - endif - -+#---------------------------------------------------------------------------- -+# libgcc-sup-<platform>.a -+# Special supplemental library for functions normally supplied by glibc -+# used by libgcc. -+#---------------------------------------------------------------------------- -+ -+pkglib_LIBRARIES += libgcc-sup-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a -+if VGCONF_HAVE_PLATFORM_SEC -+pkglib_LIBRARIES += libgcc-sup-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a -+endif -+ -+libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \ -+ m_libgcc_sup.c -+libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \ -+ $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -+libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \ -+ $(AM_CFLAGS_PSO_@VGCONF_PLATFORM_PRI_CAPS@) -+if VGCONF_HAVE_PLATFORM_SEC -+libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \ -+ m_libgcc_sup.c -+libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \ -+ $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -+libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \ -+ $(AM_CFLAGS_PSO_@VGCONF_PLATFORM_SEC_CAPS@) -+endif -+ - #---------------------------------------------------------------------------- - # libreplacemalloc_toolpreload-<platform>.a - #---------------------------------------------------------------------------- -diff --git a/coregrind/m_libgcc_sup.c b/coregrind/m_libgcc_sup.c -new file mode 100644 -index 000000000..e29325459 ---- /dev/null -+++ b/coregrind/m_libgcc_sup.c -@@ -0,0 +1,61 @@ -+/* -*- mode: C; c-basic-offset: 3; -*- */ -+ -+/*--------------------------------------------------------------------*/ -+/*--- Supplemental functions for libgcc normally provided by glibc ---*/ -+/*--------------------------------------------------------------------*/ -+ -+/* -+ This file is part of Valgrind, a dynamic binary instrumentation -+ framework. -+ -+ Copyright (C) 2020 Mark Wielaard -+ mark@klomp.org -+ -+ This program is free software; you can redistribute it and/or -+ modify it under the terms of the GNU General Public License as -+ published by the Free Software Foundation; either version 2 of the -+ License, or (at your option) any later version. -+ -+ This program 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 -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program; if not, see <http://www.gnu.org/licenses/>. -+ -+ The GNU General Public License is contained in the file COPYING. -+*/ -+ -+#include "config.h" -+#include "pub_core_basics.h" -+#include "pub_core_clientstate.h" -+ -+/*====================================================================*/ -+/*=== arm64 libgcc support function for init_have_lse_atomics ===*/ -+/*====================================================================*/ -+ -+#if defined(VGP_arm64_linux) -+struct auxv -+{ -+ Word a_type; -+ union { -+ void *a_ptr; -+ Word a_val; -+ } u; -+}; -+#define AT_NULL 0 -+ -+unsigned long int __getauxval (unsigned long int type); -+unsigned long int __getauxval (unsigned long int type) -+{ -+ struct auxv *p; -+ for (p = (struct auxv *) VG_(client_auxv); -+ p != NULL && p->a_type != AT_NULL; -+ p++) -+ if (p->a_type == type) -+ return p->u.a_val; -+ -+ return 0; -+} -+#endif --- -2.26.2 - |