Initial commit
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
SUMMARY = "GNU debugger"
|
||||
HOMEPAGE = "http://www.gnu.org/software/gdb/"
|
||||
DESCRIPTION = "GDB, the GNU Project debugger, allows you to see what is going on inside another program while it executes -- or what another program was doing at the moment it crashed."
|
||||
SECTION = "devel"
|
||||
DEPENDS = "expat gmp zlib ncurses virtual/libiconv ${LTTNGUST} bison-native"
|
||||
|
||||
LTTNGUST = "lttng-ust"
|
||||
LTTNGUST:arc = ""
|
||||
LTTNGUST:aarch64 = ""
|
||||
LTTNGUST:mipsarch = ""
|
||||
LTTNGUST:sh4 = ""
|
||||
|
||||
inherit autotools texinfo
|
||||
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "gdb\-(?P<pver>.+)\-release"
|
||||
|
||||
B = "${WORKDIR}/build-${TARGET_SYS}"
|
||||
|
||||
EXPAT = "--with-expat --with-libexpat-prefix=${STAGING_DIR_HOST}"
|
||||
|
||||
EXTRA_OECONF = "--disable-gdbtk --disable-x --disable-werror \
|
||||
--with-curses --disable-multilib --disable-sim \
|
||||
--without-guile \
|
||||
${GDBPROPREFIX} ${EXPAT} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'multiarch', '--enable-64-bit-bfd', '', d)} \
|
||||
--disable-rpath \
|
||||
--disable-gas --disable-binutils \
|
||||
--disable-ld --disable-gold \
|
||||
--disable-gprof \
|
||||
--with-libgmp-prefix=${STAGING_EXECPREFIXDIR} \
|
||||
"
|
||||
|
||||
PACKAGECONFIG ??= "readline ${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)} python"
|
||||
# Use --without-system-readline to compile with readline 5.
|
||||
PACKAGECONFIG[readline] = "--with-system-readline,--without-system-readline,readline"
|
||||
PACKAGECONFIG[python] = "--with-python=${WORKDIR}/python,--without-python,python3,python3-codecs"
|
||||
PACKAGECONFIG[babeltrace] = "--with-babeltrace,--without-babeltrace,babeltrace"
|
||||
# ncurses is already a hard DEPENDS, but would be added here if it weren't
|
||||
PACKAGECONFIG[tui] = "--enable-tui,--disable-tui"
|
||||
PACKAGECONFIG[xz] = "--with-lzma --with-liblzma-prefix=${STAGING_DIR_HOST},--without-lzma,xz"
|
||||
PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod, elfutils"
|
||||
|
||||
GDBPROPREFIX = "--program-prefix=''"
|
||||
|
||||
DISABLE_STATIC = ""
|
||||
|
||||
do_configure () {
|
||||
# override this function to avoid the autoconf/automake/aclocal/autoheader
|
||||
# calls for now
|
||||
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
|
||||
oe_runconf
|
||||
}
|
||||
|
||||
# we don't want gdb to provide bfd/iberty/opcodes, which instead will override the
|
||||
# right bits installed by binutils. Same for bfd.info -- also from binutils.
|
||||
do_install:append() {
|
||||
rm -rf ${D}${libdir}
|
||||
rm -rf ${D}${includedir}
|
||||
rm -rf ${D}${datadir}/locale
|
||||
rm -f ${D}${infodir}/bfd.info
|
||||
rm -f ${D}${infodir}/sframe-spec.info
|
||||
}
|
||||
|
||||
RRECOMMENDS:gdb:append:linux = " glibc-thread-db "
|
||||
RRECOMMENDS:gdb:append:linux-gnueabi = " glibc-thread-db "
|
||||
RRECOMMENDS:gdbserver:append:linux = " glibc-thread-db "
|
||||
RRECOMMENDS:gdbserver:append:linux-gnueabi = " glibc-thread-db "
|
||||
@@ -0,0 +1,44 @@
|
||||
inherit cross-canadian
|
||||
inherit python3-dir
|
||||
inherit pkgconfig
|
||||
|
||||
SUMMARY = "GNU debugger (cross-canadian gdb for ${TARGET_ARCH} target)"
|
||||
PN = "gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
BPN = "gdb"
|
||||
|
||||
DEPENDS = "nativesdk-ncurses nativesdk-expat nativesdk-gettext nativesdk-gmp \
|
||||
virtual/${HOST_PREFIX}gcc virtual/${HOST_PREFIX}binutils virtual/nativesdk-libc"
|
||||
|
||||
GDBPROPREFIX = "--program-prefix='${TARGET_PREFIX}'"
|
||||
|
||||
# Overrides PACKAGECONFIG variables in gdb-common.inc
|
||||
PACKAGECONFIG ??= "python readline ${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)}"
|
||||
PACKAGECONFIG[python] = "--with-python=${WORKDIR}/python,--without-python,nativesdk-python3, \
|
||||
nativesdk-python3-core \
|
||||
nativesdk-python3-codecs nativesdk-python3-netclient \
|
||||
"
|
||||
PACKAGECONFIG[readline] = "--with-system-readline,--without-system-readline,nativesdk-readline"
|
||||
PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod, nativesdk-elfutils"
|
||||
|
||||
SSTATE_ALLOW_OVERLAP_FILES += "${STAGING_DATADIR}/gdb"
|
||||
|
||||
do_configure:prepend() {
|
||||
cat > ${WORKDIR}/python << EOF
|
||||
#! /bin/sh
|
||||
case "\$2" in
|
||||
--includes) echo "-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}/" ;;
|
||||
--ldflags) echo "-Wl,-rpath-link,${STAGING_LIBDIR}/.. -Wl,-rpath,${libdir}/.. -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}${PYTHON_ABI}" ;;
|
||||
--exec-prefix) echo "${exec_prefix}" ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
exit 0
|
||||
EOF
|
||||
chmod +x ${WORKDIR}/python
|
||||
}
|
||||
|
||||
# we don't want gdb to provide bfd/iberty/opcodes, which instead will override the
|
||||
# right bits installed by binutils.
|
||||
do_install:append() {
|
||||
rm -rf ${D}${exec_prefix}/lib
|
||||
cross_canadian_bindirlinks
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
require gdb-common.inc
|
||||
require gdb-cross-canadian.inc
|
||||
require gdb.inc
|
||||
@@ -0,0 +1,31 @@
|
||||
require gdb-common.inc
|
||||
|
||||
DEPENDS = "expat-native gmp-native ncurses-native flex-native bison-native"
|
||||
|
||||
inherit python3native pkgconfig
|
||||
|
||||
# Overrides PACKAGECONFIG variables in gdb-common.inc
|
||||
PACKAGECONFIG ??= "python readline ${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)}"
|
||||
PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python3-native"
|
||||
PACKAGECONFIG[readline] = "--with-system-readline,--without-system-readline,readline-native"
|
||||
PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod, elfutils-native"
|
||||
|
||||
do_compile:prepend() {
|
||||
export STAGING_LIBDIR="${STAGING_LIBDIR_NATIVE}"
|
||||
export STAGING_INCDIR="${STAGING_INCDIR_NATIVE}"
|
||||
}
|
||||
|
||||
#EXTRA_OEMAKE += "LDFLAGS='${BUILD_LDFLAGS}'"
|
||||
|
||||
GDBPROPREFIX = ""
|
||||
|
||||
PN = "gdb-cross-${TARGET_ARCH}"
|
||||
BPN = "gdb"
|
||||
|
||||
# Ignore how TARGET_ARCH is computed.
|
||||
TARGET_ARCH[vardepvalue] = "${TARGET_ARCH}"
|
||||
|
||||
inherit cross
|
||||
inherit gettext
|
||||
|
||||
datadir .= "/gdb-${TARGET_SYS}${TARGET_VENDOR}-${TARGET_OS}"
|
||||
@@ -0,0 +1,2 @@
|
||||
require gdb-cross.inc
|
||||
require gdb.inc
|
||||
@@ -0,0 +1,20 @@
|
||||
LICENSE = "GPL-2.0-only & GPL-3.0-only & LGPL-2.0-only & LGPL-3.0-only"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
|
||||
file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
|
||||
file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
|
||||
file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
|
||||
|
||||
SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
|
||||
file://0001-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
|
||||
file://0002-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
|
||||
file://0003-Dont-disable-libreadline.a-when-using-disable-static.patch \
|
||||
file://0004-use-asm-sgidefs.h.patch \
|
||||
file://0005-Change-order-of-CFLAGS.patch \
|
||||
file://0006-resolve-restrict-keyword-conflict.patch \
|
||||
file://0007-Fix-invalid-sigprocmask-call.patch \
|
||||
file://0008-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \
|
||||
file://add-missing-ldflags.patch \
|
||||
"
|
||||
SRC_URI[sha256sum] = "fd5bebb7be1833abdb6e023c2f498a354498281df9d05523d8915babeb893f0a"
|
||||
|
||||
TOOLCHAIN = "gcc"
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
From 73b71f0b85dd6c8181f2f11a427400d4870fabcc Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 23 Mar 2016 06:30:09 +0000
|
||||
Subject: [PATCH] mips-linux-nat: Define _ABIO32 if not defined
|
||||
|
||||
This helps building gdb on mips64 on musl, since
|
||||
musl does not provide sgidefs.h this define is
|
||||
only defined when GCC is using o32 ABI, in that
|
||||
case gcc emits it as built-in define and hence
|
||||
it works ok for mips32
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
gdb/mips-linux-nat.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
|
||||
index 972b5db8e76..5e68538a3ba 100644
|
||||
--- a/gdb/mips-linux-nat.c
|
||||
+++ b/gdb/mips-linux-nat.c
|
||||
@@ -41,6 +41,10 @@
|
||||
#ifndef PTRACE_GET_THREAD_AREA
|
||||
#define PTRACE_GET_THREAD_AREA 25
|
||||
#endif
|
||||
+/* musl does not define and relies on compiler built-in macros for it */
|
||||
+#ifndef _ABIO32
|
||||
+#define _ABIO32 1
|
||||
+#endif
|
||||
|
||||
class mips_linux_nat_target final : public linux_nat_trad_target
|
||||
{
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
From e258cfb37d7c61b4a97e4ca8f1178485a3f91940 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 30 Apr 2016 18:32:14 -0700
|
||||
Subject: [PATCH] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC systems
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
gdb/nat/ppc-linux.h | 6 ++++++
|
||||
gdbserver/linux-ppc-low.cc | 6 ++++++
|
||||
2 files changed, 12 insertions(+)
|
||||
|
||||
diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h
|
||||
index c84f9146bbd..8c8580c95e1 100644
|
||||
--- a/gdb/nat/ppc-linux.h
|
||||
+++ b/gdb/nat/ppc-linux.h
|
||||
@@ -18,7 +18,13 @@
|
||||
#ifndef NAT_PPC_LINUX_H
|
||||
#define NAT_PPC_LINUX_H
|
||||
|
||||
+#if !defined(__GLIBC__)
|
||||
+# define pt_regs uapi_pt_regs
|
||||
+#endif
|
||||
#include <asm/ptrace.h>
|
||||
+#if !defined(__GLIBC__)
|
||||
+# undef pt_regs
|
||||
+#endif
|
||||
#include <asm/cputable.h>
|
||||
|
||||
/* This sometimes isn't defined. */
|
||||
diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc
|
||||
index fdf74727e39..f64afd09b7a 100644
|
||||
--- a/gdbserver/linux-ppc-low.cc
|
||||
+++ b/gdbserver/linux-ppc-low.cc
|
||||
@@ -23,7 +23,13 @@
|
||||
#include "elf/common.h"
|
||||
#include <sys/uio.h>
|
||||
#include <elf.h>
|
||||
+#if !defined(__GLIBC__)
|
||||
+# define pt_regs uapi_pt_regs
|
||||
+#endif
|
||||
#include <asm/ptrace.h>
|
||||
+#if !defined(__GLIBC__)
|
||||
+# undef pt_regs
|
||||
+#endif
|
||||
|
||||
#include "arch/ppc-linux-common.h"
|
||||
#include "arch/ppc-linux-tdesc.h"
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
From 431a88f4370a23b297998641e1e10ebfd74478d9 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 30 Apr 2016 15:25:03 -0700
|
||||
Subject: [PATCH] Dont disable libreadline.a when using --disable-static
|
||||
|
||||
If gdb is configured with --disable-static then this is dutifully passed to
|
||||
readline which then disables libreadline.a, which causes a problem when gdb
|
||||
tries to link against that.
|
||||
|
||||
To ensure that readline always builds static libraries, pass --enable-static to
|
||||
the sub-configure.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Ross Burton <ross.burton@intel.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Makefile.def | 3 ++-
|
||||
Makefile.in | 2 +-
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile.def b/Makefile.def
|
||||
index f974565d8ca..039b5a3c209 100644
|
||||
--- a/Makefile.def
|
||||
+++ b/Makefile.def
|
||||
@@ -120,7 +120,8 @@ host_modules= { module= libiconv;
|
||||
missing= install-html;
|
||||
missing= install-info; };
|
||||
host_modules= { module= m4; };
|
||||
-host_modules= { module= readline; };
|
||||
+host_modules= { module= readline;
|
||||
+ extra_configure_flags='--enable-static';};
|
||||
host_modules= { module= sid; };
|
||||
host_modules= { module= sim; };
|
||||
host_modules= { module= texinfo; no_install= true; };
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index a425b54e094..dfaf585a7c1 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -32816,7 +32816,7 @@ configure-readline:
|
||||
$$s/$$module_srcdir/configure \
|
||||
--srcdir=$${topdir}/$$module_srcdir \
|
||||
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
|
||||
- --target=${target_alias} \
|
||||
+ --target=${target_alias} --enable-static \
|
||||
|| exit 1
|
||||
@endif readline
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From 693e01865c28c0a48e60173389ef467f46244c21 Mon Sep 17 00:00:00 2001
|
||||
From: Andre McCurdy <amccurdy@gmail.com>
|
||||
Date: Sat, 30 Apr 2016 15:29:06 -0700
|
||||
Subject: [PATCH] use <asm/sgidefs.h>
|
||||
|
||||
Build fix for MIPS with musl libc
|
||||
|
||||
The MIPS specific header <sgidefs.h> is provided by glibc and uclibc
|
||||
but not by musl. Regardless of the libc, the kernel headers provide
|
||||
<asm/sgidefs.h> which provides the same definitions, so use that
|
||||
instead.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
gdb/mips-linux-nat.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
|
||||
index 5e68538a3ba..5b1c209abd8 100644
|
||||
--- a/gdb/mips-linux-nat.c
|
||||
+++ b/gdb/mips-linux-nat.c
|
||||
@@ -31,7 +31,7 @@
|
||||
#include "gdb_proc_service.h"
|
||||
#include "gregset.h"
|
||||
|
||||
-#include <sgidefs.h>
|
||||
+#include <asm/sgidefs.h>
|
||||
#include "nat/gdb_ptrace.h"
|
||||
#include <asm/ptrace.h>
|
||||
#include "inf-ptrace.h"
|
||||
@@ -0,0 +1,27 @@
|
||||
From 9e72a19355375e589032809dd2ec051b75d4db07 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 30 Apr 2016 15:35:39 -0700
|
||||
Subject: [PATCH] Change order of CFLAGS
|
||||
|
||||
Lets us override Werror if need be
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
gdbserver/Makefile.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in
|
||||
index 040f0b6faa0..256ce6a3f6a 100644
|
||||
--- a/gdbserver/Makefile.in
|
||||
+++ b/gdbserver/Makefile.in
|
||||
@@ -156,7 +156,7 @@ WIN32APILIBS = @WIN32APILIBS@
|
||||
INTERNAL_CFLAGS_BASE = ${GLOBAL_CFLAGS} \
|
||||
${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS} $(PTHREAD_CFLAGS)
|
||||
INTERNAL_WARN_CFLAGS = ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS)
|
||||
-INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) -DGDBSERVER
|
||||
+INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) ${COMPILER_CFLAGS} -DGDBSERVER
|
||||
|
||||
# LDFLAGS is specifically reserved for setting from the command line
|
||||
# when running make.
|
||||
@@ -0,0 +1,45 @@
|
||||
From 0ce96011d76ffa377349d0193dd0bf8f1bf641e0 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Tue, 10 May 2016 08:47:05 -0700
|
||||
Subject: [PATCH] resolve restrict keyword conflict
|
||||
|
||||
GCC detects that we call 'restrict' as param name in function
|
||||
signatures and complains since both params are called 'restrict'
|
||||
therefore we use __restrict to denote the C99 keywork
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
gnulib/import/sys_time.in.h | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gnulib/import/sys_time.in.h b/gnulib/import/sys_time.in.h
|
||||
index 87db1a88745..e6b98c7e467 100644
|
||||
--- a/gnulib/import/sys_time.in.h
|
||||
+++ b/gnulib/import/sys_time.in.h
|
||||
@@ -93,20 +93,20 @@ struct timeval
|
||||
# define gettimeofday rpl_gettimeofday
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (gettimeofday, int,
|
||||
- (struct timeval *restrict, void *restrict)
|
||||
+ (struct timeval *__restrict, void *__restrict)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
_GL_CXXALIAS_RPL (gettimeofday, int,
|
||||
- (struct timeval *restrict, void *restrict));
|
||||
+ (struct timeval *__restrict, void *__restrict));
|
||||
# else
|
||||
# if !@HAVE_GETTIMEOFDAY@
|
||||
_GL_FUNCDECL_SYS (gettimeofday, int,
|
||||
- (struct timeval *restrict, void *restrict)
|
||||
+ (struct timeval *__restrict, void *__restrict)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
/* Need to cast, because on glibc systems, by default, the second argument is
|
||||
struct timezone *. */
|
||||
_GL_CXXALIAS_SYS_CAST (gettimeofday, int,
|
||||
- (struct timeval *restrict, void *restrict));
|
||||
+ (struct timeval *__restrict, void *__restrict));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (gettimeofday);
|
||||
# if defined __cplusplus && defined GNULIB_NAMESPACE
|
||||
@@ -0,0 +1,46 @@
|
||||
From 696891f6c5a1c6acab95dffd8c1d3a986ca71a18 Mon Sep 17 00:00:00 2001
|
||||
From: Yousong Zhou <yszhou4tech@gmail.com>
|
||||
Date: Fri, 24 Mar 2017 10:36:03 +0800
|
||||
Subject: [PATCH] Fix invalid sigprocmask call
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The POSIX document says
|
||||
|
||||
The pthread_sigmask() and sigprocmask() functions shall fail if:
|
||||
|
||||
[EINVAL]
|
||||
The value of the how argument is not equal to one of the defined values.
|
||||
|
||||
and this is how musl-libc is currently doing. Fix the call to be safe
|
||||
and correct
|
||||
|
||||
[1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_sigmask.html
|
||||
|
||||
gdb/ChangeLog:
|
||||
2017-03-24 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
|
||||
* common/signals-state-save-restore.c (save_original_signals_state):
|
||||
Fix invalid sigprocmask call.
|
||||
|
||||
Upstream-Status: Pending [not author, cherry-picked from LEDE https://bugs.lede-project.org/index.php?do=details&task_id=637&openedfrom=-1%2Bweek]
|
||||
Signed-off-by: André Draszik <adraszik@tycoint.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
gdbsupport/signals-state-save-restore.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gdbsupport/signals-state-save-restore.cc b/gdbsupport/signals-state-save-restore.cc
|
||||
index 3ec7a259c9c..0702eca7725 100644
|
||||
--- a/gdbsupport/signals-state-save-restore.cc
|
||||
+++ b/gdbsupport/signals-state-save-restore.cc
|
||||
@@ -38,7 +38,7 @@ save_original_signals_state (bool quiet)
|
||||
int i;
|
||||
int res;
|
||||
|
||||
- res = gdb_sigmask (0, NULL, &original_signal_mask);
|
||||
+ res = gdb_sigmask (SIG_BLOCK, NULL, &original_signal_mask);
|
||||
if (res == -1)
|
||||
perror_with_name (("sigprocmask"));
|
||||
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
From e649db1664af981cc87f966aef6c5365ae234547 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sun, 15 Jan 2023 00:16:25 -0800
|
||||
Subject: [PATCH] Define alignof using _Alignof when using C11 or newer
|
||||
|
||||
WG14 N2350 made very clear that it is an UB having type definitions
|
||||
within "offsetof" [1]. This patch enhances the implementation of macro
|
||||
alignof to use builtin "_Alignof" to avoid undefined behavior on
|
||||
when using std=c11 or newer
|
||||
|
||||
clang 16+ has started to flag this [2]
|
||||
|
||||
Fixes build when using -std >= gnu11 and using clang16+
|
||||
|
||||
Older compilers gcc < 4.9 or clang < 8 has buggy _Alignof even though it
|
||||
may support C11, exclude those compilers too
|
||||
|
||||
[1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm
|
||||
[2] https://reviews.llvm.org/D133574
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
libiberty/sha1.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/libiberty/sha1.c b/libiberty/sha1.c
|
||||
index 504f06d3b9b..790ada82443 100644
|
||||
--- a/libiberty/sha1.c
|
||||
+++ b/libiberty/sha1.c
|
||||
@@ -229,7 +229,17 @@ sha1_process_bytes (const void *buffer, size_t len, struct sha1_ctx *ctx)
|
||||
if (len >= 64)
|
||||
{
|
||||
#if !_STRING_ARCH_unaligned
|
||||
+/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023
|
||||
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
|
||||
+ clang versions < 8.0.0 have the same bug. */
|
||||
+#if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
|
||||
+ || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
|
||||
+ && !defined __clang__) \
|
||||
+ || (defined __clang__ && __clang_major__ < 8))
|
||||
# define alignof(type) offsetof (struct { char c; type x; }, x)
|
||||
+#else
|
||||
+# define alignof(type) _Alignof(type)
|
||||
+#endif
|
||||
# define UNALIGNED_P(p) (((size_t) p) % alignof (sha1_uint32) != 0)
|
||||
if (UNALIGNED_P (buffer))
|
||||
while (len > 64)
|
||||
@@ -0,0 +1,47 @@
|
||||
When running the configure check "checking for ELF support in BFD", LDFLAGS
|
||||
were not being passed in to libtool. In OE/YP, we need these flags when using
|
||||
uninative due to the games we play with the dynamic loader.
|
||||
|
||||
If a version of libzstd was built against a newer glibc, it would need
|
||||
newer pthread symbols which it wouldn't find with the system linker. At
|
||||
runtime this isn't an issue as it would be switched to use uninative but we
|
||||
pass flags in LDFLAGS to allow this.
|
||||
|
||||
The comments say LDFLAGS are used but it was dropped in this commit:
|
||||
|
||||
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=5218fa9e8937b007d554f1e01c2e4ecdb9b7e271
|
||||
|
||||
and probably needs to be put back upstream.
|
||||
|
||||
The bug is rare to reproduce as it depends on the host libzstd was built
|
||||
against.
|
||||
|
||||
Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=5fc6b6d44cd63651c2902cbfc5b9734a55aaa617]
|
||||
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
||||
|
||||
Index: gdb-13.1/gdb/acinclude.m4
|
||||
===================================================================
|
||||
--- gdb-13.1.orig/gdb/acinclude.m4
|
||||
+++ gdb-13.1/gdb/acinclude.m4
|
||||
@@ -234,7 +234,7 @@ AC_DEFUN([GDB_AC_CHECK_BFD], [
|
||||
# points somewhere with bfd, with -I/foo/lib and -L/foo/lib. We
|
||||
# always want our bfd.
|
||||
CFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CFLAGS"
|
||||
- LDFLAGS="-L../bfd -L../libiberty"
|
||||
+ LDFLAGS="-L../bfd -L../libiberty $LDFLAGS"
|
||||
intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
|
||||
LIBS="-lbfd -liberty $intl $LIBS"
|
||||
CC="./libtool --quiet --mode=link $CC"
|
||||
Index: gdb-13.1/gdb/configure
|
||||
===================================================================
|
||||
--- gdb-13.1.orig/gdb/configure
|
||||
+++ gdb-13.1/gdb/configure
|
||||
@@ -28561,7 +28561,7 @@ WIN32LIBS="$WIN32LIBS $WIN32APILIBS"
|
||||
# points somewhere with bfd, with -I/foo/lib and -L/foo/lib. We
|
||||
# always want our bfd.
|
||||
CFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CFLAGS"
|
||||
- LDFLAGS="-L../bfd -L../libiberty"
|
||||
+ LDFLAGS="-L../bfd -L../libiberty $LDFLAGS"
|
||||
intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
|
||||
LIBS="-lbfd -liberty $intl $LIBS"
|
||||
CC="./libtool --quiet --mode=link $CC"
|
||||
@@ -0,0 +1,39 @@
|
||||
require gdb-common.inc
|
||||
|
||||
inherit gettext pkgconfig
|
||||
|
||||
#LDFLAGS:append = " -s"
|
||||
#export CFLAGS:append=" -L${STAGING_LIBDIR}"
|
||||
|
||||
# cross-canadian must not see this
|
||||
PACKAGES =+ "gdbserver"
|
||||
FILES:gdbserver = "${bindir}/gdbserver"
|
||||
|
||||
require gdb.inc
|
||||
|
||||
inherit python3-dir
|
||||
|
||||
EXTRA_OEMAKE:append:libc-musl = "\
|
||||
gt_cv_func_gnugettext1_libc=yes \
|
||||
gt_cv_func_gnugettext2_libc=yes \
|
||||
gl_cv_func_working_strerror=yes \
|
||||
gl_cv_func_strerror_0_works=yes \
|
||||
gl_cv_func_gettimeofday_clobber=no \
|
||||
"
|
||||
|
||||
do_configure:prepend() {
|
||||
if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then
|
||||
cat > ${WORKDIR}/python << EOF
|
||||
#!/bin/sh
|
||||
case "\$2" in
|
||||
--includes) echo "-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}/" ;;
|
||||
--ldflags) echo "-Wl,-rpath-link,${STAGING_LIBDIR}/.. -Wl,-rpath,${libdir}/.. -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}${PYTHON_ABI}" ;;
|
||||
--exec-prefix) echo "${exec_prefix}" ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
exit 0
|
||||
EOF
|
||||
chmod +x ${WORKDIR}/python
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user