aboutsummaryrefslogtreecommitdiffstats
path: root/package/devel
diff options
context:
space:
mode:
Diffstat (limited to 'package/devel')
-rw-r--r--package/devel/binutils/Makefile17
-rw-r--r--package/devel/binutils/patches/001-replace-attribute_const.patch88
-rw-r--r--package/devel/gdb/Makefile13
-rw-r--r--package/devel/gdb/patches/010-aarch64-headers.patch38
-rw-r--r--package/devel/gdb/patches/100-musl_fix.patch53
-rw-r--r--package/devel/gdb/patches/110-shared_libgcc.patch12
-rw-r--r--package/devel/gdb/patches/130-gdb-ctrl-c.patch35
-rw-r--r--package/devel/gdb/patches/130-uclibc-fix.patch11
-rw-r--r--package/devel/gdb/patches/140-sgidefs.patch30
-rw-r--r--package/devel/gdb/patches/150-mips64.patch32
-rw-r--r--package/devel/gperf/Makefile36
-rw-r--r--package/devel/kselftests-bpf/Makefile63
-rw-r--r--package/devel/leds/Makefile74
-rw-r--r--package/devel/perf/Makefile7
-rw-r--r--package/devel/strace/Makefile10
-rw-r--r--package/devel/strace/patches/010-m4.patch10
-rw-r--r--package/devel/tmon/Makefile53
-rw-r--r--package/devel/trace-cmd/Makefile29
-rw-r--r--package/devel/trace-cmd/patches/100-musl.patch104
-rw-r--r--package/devel/trace-cmd/patches/110-mac80211_tracepoint.patch24
-rw-r--r--package/devel/valgrind/Makefile10
-rw-r--r--package/devel/valgrind/patches/010-mips-Fix-new-syscall-numbers.patch143
-rw-r--r--package/devel/valgrind/patches/100-fix_configure_check.patch2
-rw-r--r--package/devel/valgrind/patches/130-fix_arm_arch_detection.patch2
-rw-r--r--package/devel/valgrind/patches/130-mips_fix_soft_float.patch12
25 files changed, 619 insertions, 289 deletions
diff --git a/package/devel/binutils/Makefile b/package/devel/binutils/Makefile
index ca1099349c1..3fb281c2edd 100644
--- a/package/devel/binutils/Makefile
+++ b/package/devel/binutils/Makefile
@@ -8,16 +8,16 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=binutils
-PKG_VERSION:=2.35.2
+PKG_VERSION:=2.42
PKG_RELEASE:=1
PKG_SOURCE_URL:=@GNU/binutils
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_VERSION:=$(PKG_VERSION)
-PKG_HASH:=dcd5b0416e7b0a9b24bed76cd8c6c132526805761863150a26d016415b8bdc7b
+PKG_HASH:=f6e4d41fd5fc778b06b7891457b3620da5ecea1006c6a4a41ae998109f85a800
-PKG_FIXUP:=autoreconf
-PKG_LIBTOOL_PATHS:=. gas bfd opcodes gprof binutils ld libiberty gold intl
+PKG_FIXUP:=patch-libtool
+PKG_LIBTOOL_PATHS:=. gas bfd opcodes gprof gprofng binutils ld libiberty gold intl libctf libsframe
PKG_REMOVE_FILES:=libtool.m4
PKG_INSTALL:=1
@@ -25,7 +25,7 @@ PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-3.0+
PKG_CPE_ID:=cpe:/a:gnu:binutils
PKG_BUILD_PARALLEL:=1
-PKG_USE_MIPS16:=0
+PKG_BUILD_FLAGS:=no-mips16
include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/package.mk
@@ -87,7 +87,11 @@ CONFIGURE_ARGS += \
--enable-shared \
--enable-install-libiberty \
--enable-install-libbfd \
- --enable-install-libctf
+ --enable-install-libctf \
+ --with-system-zlib \
+ --without-zstd \
+ --without-msgpack \
+ --disable-gprofng
define Build/Install
$(call Build/Install/Default)
@@ -105,6 +109,7 @@ endef
define Package/libbfd/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libbfd*.so* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsframe*.so* $(1)/usr/lib/
endef
define Package/libctf/install
diff --git a/package/devel/binutils/patches/001-replace-attribute_const.patch b/package/devel/binutils/patches/001-replace-attribute_const.patch
new file mode 100644
index 00000000000..dac641de110
--- /dev/null
+++ b/package/devel/binutils/patches/001-replace-attribute_const.patch
@@ -0,0 +1,88 @@
+Fix this compile error:
+----------------------
+./../common/cpuid.c:27:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__get_cpuid'
+ 27 | __get_cpuid (unsigned int op ATTRIBUTE_UNUSED, unsigned int *eax,
+ | ^~~~~~~~~~~
+----------------------
+
+and this error:
+----------------------
+unwind.c: In function '__collector_ext_return_address':
+unwind.c:236:34: error: '__u64' undeclared (first use in this function)
+ 236 | context->uc_mcontext.sp = (__u64) __builtin_frame_address(0); \
+ | ^~~~~
+unwind.c:490:3: note: in expansion of macro 'FILL_CONTEXT'
+ 490 | FILL_CONTEXT ((&context));
+
+----------------------
+--- a/gprofng/common/cpuid.c
++++ b/gprofng/common/cpuid.c
+@@ -23,7 +23,7 @@
+ #elif defined(__aarch64__)
+ #define ATTRIBUTE_UNUSED __attribute__((unused))
+
+-static inline uint_t __attribute_const__
++static inline uint_t __attribute__((__const__))
+ __get_cpuid (unsigned int op ATTRIBUTE_UNUSED, unsigned int *eax,
+ unsigned int *ebx ATTRIBUTE_UNUSED,
+ unsigned int *ecx ATTRIBUTE_UNUSED, unsigned int *edx ATTRIBUTE_UNUSED)
+--- a/gprofng/libcollector/unwind.c
++++ b/gprofng/libcollector/unwind.c
+@@ -237,7 +237,7 @@ typedef uint64_t __u64;
+
+ #define FILL_CONTEXT(context) \
+ { CALL_UTIL (getcontext) (context); \
+- context->uc_mcontext.sp = (__u64) __builtin_frame_address(0); \
++ context->uc_mcontext.sp = (uint64_t) __builtin_frame_address(0); \
+ }
+
+ #endif /* ARCH() */
+@@ -4583,11 +4583,11 @@ stack_unwind (char *buf, int size, void
+ if (buf && bptr && eptr && context && size + mode > 0)
+ getByteInstruction ((unsigned char *) eptr);
+ int ind = 0;
+- __u64 *lbuf = (void *) buf;
+- int lsize = size / sizeof (__u64);
+- __u64 pc = context->uc_mcontext.pc;
+- __u64 sp = context->uc_mcontext.sp;
+- __u64 stack_base;
++ uint64_t *lbuf = (void *) buf;
++ int lsize = size / sizeof (uint64_t);
++ uint64_t pc = context->uc_mcontext.pc;
++ uint64_t sp = context->uc_mcontext.sp;
++ uint64_t stack_base;
+ unsigned long tbgn = 0;
+ unsigned long tend = 0;
+
+@@ -4598,7 +4598,7 @@ stack_unwind (char *buf, int size, void
+ {
+ stack_base = sp + 0x100000;
+ if (stack_base < sp) // overflow
+- stack_base = (__u64) -1;
++ stack_base = (uint64_t) -1;
+ }
+ DprintfT (SP_DUMP_UNWIND,
+ "unwind.c:%d stack_unwind %2d pc=0x%llx sp=0x%llx stack_base=0x%llx\n",
+@@ -4629,17 +4629,17 @@ stack_unwind (char *buf, int size, void
+ __LINE__, (unsigned long) sp);
+ break;
+ }
+- pc = ((__u64 *) sp)[1];
+- __u64 old_sp = sp;
+- sp = ((__u64 *) sp)[0];
++ pc = ((uint64_t *) sp)[1];
++ uint64_t old_sp = sp;
++ sp = ((uint64_t *) sp)[0];
+ if (sp < old_sp)
+ break;
+ }
+ if (ind >= lsize)
+ {
+ ind = lsize - 1;
+- lbuf[ind++] = (__u64) SP_TRUNC_STACK_MARKER;
++ lbuf[ind++] = (uint64_t) SP_TRUNC_STACK_MARKER;
+ }
+- return ind * sizeof (__u64);
++ return ind * sizeof (uint64_t);
+ }
+ #endif /* ARCH() */
diff --git a/package/devel/gdb/Makefile b/package/devel/gdb/Makefile
index 17b2bb84812..cf897b79f27 100644
--- a/package/devel/gdb/Makefile
+++ b/package/devel/gdb/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=gdb
-PKG_VERSION:=10.1
+PKG_VERSION:=14.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/gdb
-PKG_HASH:=f82f1eceeec14a3afa2de8d9b0d3c91d5a3820e23e0a01bbb70ef9f0276b62c0
+PKG_HASH:=d66df51276143451fcbff464cc8723d68f1e9df45a6a2d5635a54e71643edb80
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
@@ -33,7 +33,7 @@ endef
define Package/gdb
$(call Package/gdb/Default)
TITLE:=GNU Debugger
- DEPENDS+=+libreadline +libncurses +zlib
+ DEPENDS+=+libreadline +libncurses +zlib +libgmp +libmpfr
endef
define Package/gdb/description
@@ -45,7 +45,6 @@ endef
define Package/gdbserver
$(call Package/gdb/Default)
TITLE:=Remote server for GNU Debugger
- DEPENDS+=@!arc
endef
define Package/gdbserver/description
@@ -59,11 +58,15 @@ CONFIGURE_ARGS+= \
--with-system-zlib \
--without-expat \
--without-lzma \
+ --without-zstd \
--disable-unit-tests \
--disable-ubsan \
--disable-sim \
--disable-werror \
- --disable-source-highlight
+ --disable-source-highlight \
+ --without-isl \
+ --without-xxhash \
+ --with-libgmp-prefix=$(STAGING_DIR)/usr
CONFIGURE_VARS+= \
ac_cv_search_tgetent="$(TARGET_LDFLAGS) -lncurses -lreadline"
diff --git a/package/devel/gdb/patches/010-aarch64-headers.patch b/package/devel/gdb/patches/010-aarch64-headers.patch
deleted file mode 100644
index 8f057382986..00000000000
--- a/package/devel/gdb/patches/010-aarch64-headers.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-The signal definitions of musl and gdb collide
-
-The kernel defines "struct sigcontext" in asm/sigcontext.h and musl libc
-defines it in signal.h which collides.
-Kernel 4.14 misses the definitions of struct user_sve_header so we still
-have to use the aarch64-sve-linux-sigcontext.h header file which also
-provides that and make sure aarch64-sve-linux-sigcontext.h does not
-provide the same headers as the kernel or musl.
-
---- a/gdb/nat/aarch64-sve-linux-ptrace.h
-+++ b/gdb/nat/aarch64-sve-linux-ptrace.h
-@@ -25,7 +25,7 @@
- #include <sys/ptrace.h>
- #include <asm/ptrace.h>
-
--#ifndef SVE_SIG_ZREGS_SIZE
-+#ifndef SVE_PT_REGS_SVE
- #include "aarch64-sve-linux-sigcontext.h"
- #endif
-
---- a/gdb/nat/aarch64-sve-linux-sigcontext.h
-+++ b/gdb/nat/aarch64-sve-linux-sigcontext.h
-@@ -19,6 +19,7 @@
- #ifndef NAT_AARCH64_SVE_LINUX_SIGCONTEXT_H
- #define NAT_AARCH64_SVE_LINUX_SIGCONTEXT_H
-
-+#ifndef SVE_MAGIC
- #define SVE_MAGIC 0x53564501
-
- struct sve_context {
-@@ -128,6 +129,7 @@ struct sve_context {
- (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET)
-
- #define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
-+#endif
-
- /* SVE/FP/SIMD state (NT_ARM_SVE) */
-
diff --git a/package/devel/gdb/patches/100-musl_fix.patch b/package/devel/gdb/patches/100-musl_fix.patch
deleted file mode 100644
index e0d871d2914..00000000000
--- a/package/devel/gdb/patches/100-musl_fix.patch
+++ /dev/null
@@ -1,53 +0,0 @@
---- a/gdb/linux-nat.c
-+++ b/gdb/linux-nat.c
-@@ -17,6 +17,7 @@
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-+#include "stopcode.h"
- #include "defs.h"
- #include "inferior.h"
- #include "infrun.h"
-@@ -70,6 +71,10 @@
- #include "gdbsupport/gdb-sigmask.h"
- #include "debug.h"
-
-+#ifndef __SIGRTMIN
-+#define __SIGRTMIN SIGRTMIN
-+#endif
-+
- /* This comment documents high-level logic of this file.
-
- Waiting for events in sync mode
---- /dev/null
-+++ b/gdb/stopcode.h
-@@ -0,0 +1,4 @@
-+#ifndef W_STOPCODE
-+#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
-+#endif
-+
---- a/gdb/nat/ppc-linux.h
-+++ b/gdb/nat/ppc-linux.h
-@@ -18,7 +18,10 @@
- #ifndef NAT_PPC_LINUX_H
- #define NAT_PPC_LINUX_H
-
-+#define pt_regs __pt_regs
- #include <asm/ptrace.h>
-+#undef pt_regs
-+
- #include <asm/cputable.h>
-
- /* This sometimes isn't defined. */
---- a/gdbserver/linux-ppc-low.cc
-+++ b/gdbserver/linux-ppc-low.cc
-@@ -23,7 +23,9 @@
- #include "elf/common.h"
- #include <sys/uio.h>
- #include <elf.h>
-+#define pt_regs __pt_regs
- #include <asm/ptrace.h>
-+#undef pt_regs
-
- #include "arch/ppc-linux-common.h"
- #include "arch/ppc-linux-tdesc.h"
diff --git a/package/devel/gdb/patches/110-shared_libgcc.patch b/package/devel/gdb/patches/110-shared_libgcc.patch
index de92a1f945c..1a02ad11603 100644
--- a/package/devel/gdb/patches/110-shared_libgcc.patch
+++ b/package/devel/gdb/patches/110-shared_libgcc.patch
@@ -1,6 +1,6 @@
--- a/configure.ac
+++ b/configure.ac
-@@ -1302,13 +1302,13 @@ if test -z "$LD"; then
+@@ -1400,13 +1400,13 @@ if test -z "$LD"; then
fi
fi
@@ -17,7 +17,7 @@
AC_LANG_PUSH(C++)
AC_LINK_IFELSE([AC_LANG_SOURCE([
#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
-@@ -1648,7 +1648,7 @@ AC_ARG_WITH(stage1-ldflags,
+@@ -1836,7 +1836,7 @@ AC_ARG_WITH(stage1-ldflags,
# trust that they are doing what they want.
if test "$with_static_standard_libraries" = yes -a "$stage1_libs" = "" \
-a "$have_static_libs" = yes; then
@@ -26,7 +26,7 @@
fi])
AC_SUBST(stage1_ldflags)
-@@ -1677,7 +1677,7 @@ AC_ARG_WITH(boot-ldflags,
+@@ -1865,7 +1865,7 @@ AC_ARG_WITH(boot-ldflags,
# statically. But if the user explicitly specified the libraries to
# use, trust that they are doing what they want.
if test "$poststage1_libs" = ""; then
@@ -37,7 +37,7 @@
--- a/configure
+++ b/configure
-@@ -5075,14 +5075,14 @@ if test -z "$LD"; then
+@@ -5413,14 +5413,14 @@ if test -z "$LD"; then
fi
fi
@@ -56,7 +56,7 @@
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-@@ -5883,7 +5883,7 @@ else
+@@ -8464,7 +8464,7 @@ else
# trust that they are doing what they want.
if test "$with_static_standard_libraries" = yes -a "$stage1_libs" = "" \
-a "$have_static_libs" = yes; then
@@ -65,7 +65,7 @@
fi
fi
-@@ -5919,7 +5919,7 @@ else
+@@ -8500,7 +8500,7 @@ else
# statically. But if the user explicitly specified the libraries to
# use, trust that they are doing what they want.
if test "$poststage1_libs" = ""; then
diff --git a/package/devel/gdb/patches/130-gdb-ctrl-c.patch b/package/devel/gdb/patches/130-gdb-ctrl-c.patch
new file mode 100644
index 00000000000..5272b7e9698
--- /dev/null
+++ b/package/devel/gdb/patches/130-gdb-ctrl-c.patch
@@ -0,0 +1,35 @@
+From 63df98fa78c8a6e12b40ebdc5c155838d2bf8b5f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Nov 2018 18:00:23 -0800
+Subject: [PATCH 11/11] gdbserver ctrl-c handling
+
+This problem was created by the upstream commit 78708b7c8c
+After applying the commit, it will send SIGINT to the process
+group(-signal_pid).
+But if we use gdbserver send SIGINT, and the attached process is not a
+process
+group leader, then the "kill (-signal_pid, SIGINT)" returns error and
+fails to
+interrupt the attached process.
+
+Upstream-Status: Submitted
+[https://sourceware.org/bugzilla/show_bug.cgi?id=18945]
+
+Author: Josh Gao
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdbserver/linux-low.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/gdbserver/linux-low.cc
++++ b/gdbserver/linux-low.cc
+@@ -5481,7 +5481,7 @@ linux_process_target::request_interrupt
+ {
+ /* Send a SIGINT to the process group. This acts just like the user
+ typed a ^C on the controlling terminal. */
+- int res = ::kill (-signal_pid, SIGINT);
++ int res = ::kill (signal_pid, SIGINT);
+ if (res == -1)
+ warning (_("Sending SIGINT to process group of pid %ld failed: %s"),
+ signal_pid, safe_strerror (errno));
diff --git a/package/devel/gdb/patches/130-uclibc-fix.patch b/package/devel/gdb/patches/130-uclibc-fix.patch
deleted file mode 100644
index a4c339ebe03..00000000000
--- a/package/devel/gdb/patches/130-uclibc-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/gdb/dwarf2/index-write.c
-+++ b/gdb/dwarf2/index-write.c
-@@ -777,7 +777,7 @@ public:
- gdb_assert (m_abbrev_table.empty ());
- const size_t name_count = m_name_to_value_set.size ();
- m_bucket_table.resize
-- (std::pow (2, std::ceil (std::log2 (name_count * 4 / 3))));
-+ (std::pow (2, std::ceil (log2 (name_count * 4 / 3))));
- m_hash_table.reserve (name_count);
- m_name_table_string_offs.reserve (name_count);
- m_name_table_entry_offs.reserve (name_count);
diff --git a/package/devel/gdb/patches/140-sgidefs.patch b/package/devel/gdb/patches/140-sgidefs.patch
new file mode 100644
index 00000000000..05b30f52425
--- /dev/null
+++ b/package/devel/gdb/patches/140-sgidefs.patch
@@ -0,0 +1,30 @@
+From 677b5b56135141c0d259e370aacd0e11c810aa15 Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Fri, 5 Feb 2016 14:00:00 -0800
+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>
+---
+ gdb/mips-linux-nat.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- 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"
diff --git a/package/devel/gdb/patches/150-mips64.patch b/package/devel/gdb/patches/150-mips64.patch
new file mode 100644
index 00000000000..65418fd290f
--- /dev/null
+++ b/package/devel/gdb/patches/150-mips64.patch
@@ -0,0 +1,32 @@
+From e92f8932ef488de2a56db4299131ce6a4eb170bd 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
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ gdb/mips-linux-nat.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/gdb/mips-linux-nat.c
++++ b/gdb/mips-linux-nat.c
+@@ -42,6 +42,11 @@
+ #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
+ {
+ public:
diff --git a/package/devel/gperf/Makefile b/package/devel/gperf/Makefile
new file mode 100644
index 00000000000..f0f794ee2d9
--- /dev/null
+++ b/package/devel/gperf/Makefile
@@ -0,0 +1,36 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gperf
+PKG_VERSION:=3.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@GNU/gperf
+PKG_HASH:=588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2
+
+PKG_LICENSE:=GPL-3.0
+PKG_LICENSE_FILES:=COPYING
+
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/package.mk
+
+HOST_CPPFLAGS:=-I$(HOST_BUILD_DIR)/lib -I$(HOST_BUILD_DIR)/src $(HOST_CPPFLAGS)
+TARGET_CPPFLAGS:=-I$(PKG_BUILD_DIR)/lib -I$(PKG_BUILD_DIR)/src $(TARGET_CPPFLAGS)
+
+define Package/gperf
+ SECTION:=devel
+ CATEGORY:=Development
+ TITLE:=GNU gperf
+ URL:=http://www.gnu.org/software/gperf
+endef
+
+define Package/gperf/description
+ GNU gperf is a perfect hash function generator. For a given list of strings,
+ it produces a hash function and hash table, in form of C or C++ code,
+ for looking up a value depending on the input string.
+ The hash function is perfect, which means that the hash table has no collisions,
+ and the hash table lookup needs a single string comparison only.
+endef
+
+$(eval $(call HostBuild))
+$(eval $(call BuildPackage,gperf))
diff --git a/package/devel/kselftests-bpf/Makefile b/package/devel/kselftests-bpf/Makefile
new file mode 100644
index 00000000000..0a5b874e04d
--- /dev/null
+++ b/package/devel/kselftests-bpf/Makefile
@@ -0,0 +1,63 @@
+#
+# Copyright (C) 2021 Tony Ambardar <itugrok@yahoo.com>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_NAME:=kselftests-bpf
+PKG_VERSION:=$(LINUX_VERSION)
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Tony Ambardar <itugrok@yahoo.com>
+
+PKG_BUILD_FLAGS:=gc-sections lto
+PKG_BUILD_PARALLEL:=1
+PKG_FLAGS:=nonshared
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/kselftests-bpf
+ SECTION:=devel
+ CATEGORY:=Development
+ DEPENDS:= +libelf +zlib +libpthread +librt @!IN_SDK \
+ @KERNEL_DEBUG_FS @KERNEL_DEBUG_INFO_BTF @KERNEL_BPF_EVENTS
+ TITLE:=Linux Kernel Selftests (BPF)
+ URL:=http://www.kernel.org
+endef
+
+define Package/kselftests-bpf/description
+ kselftests-bpf is the Linux kernel BPF test suite
+endef
+
+TEST_TARGET = test_verifier
+
+MAKE_PATH:=tools/testing/selftests/bpf
+
+MAKE_VARS = \
+ ARCH="$(LINUX_KARCH)" \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ SAN_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
+ LDLIBS="$(TARGET_LDFLAGS)" \
+ TOOLCHAIN_INCLUDE="$(TOOLCHAIN_INC_DIRS)" \
+ VMLINUX_BTF="$(LINUX_DIR)/vmlinux"
+
+MAKE_FLAGS = \
+ $(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \
+ O=$(PKG_BUILD_DIR)
+
+define Build/Compile
+ +$(MAKE_VARS) \
+ $(MAKE) $(PKG_JOBS) -C $(LINUX_DIR)/$(MAKE_PATH) \
+ $(MAKE_FLAGS) $(TEST_TARGET) ;
+endef
+
+define Package/kselftests-bpf/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(TEST_TARGET) $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,kselftests-bpf))
diff --git a/package/devel/leds/Makefile b/package/devel/leds/Makefile
new file mode 100644
index 00000000000..47b9674c4f4
--- /dev/null
+++ b/package/devel/leds/Makefile
@@ -0,0 +1,74 @@
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_NAME:=leds
+PKG_VERSION:=$(LINUX_VERSION)
+PKG_RELEASE:=1
+
+PKG_BUILD_PARALLEL:=1
+PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
+PKG_LICENSE:=GPL-2.0-only
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/leds/default
+ SECTION:=devel
+ CATEGORY:=Development
+ VERSION:=$(LINUX_VERSION)-$(PKG_RELEASE)
+ URL:=http://www.kernel.org
+endef
+
+define Package/ledumon
+ $(Package/leds/default)
+ TITLE:=Monitoring userspace LEDs
+ DEPENDS:=+kmod-leds-uleds
+endef
+
+define Package/ledumon/description
+ This program creates a new userspace LED class device and monitors it.
+ A timestamp and brightness value is printed each time the brightness
+ changes.
+endef
+
+define Package/ledhwbmon
+ $(Package/leds/default)
+ TITLE:=Monitoring hardware controlled LED brightness
+endef
+
+define Package/ledhwbmon/description
+ This program monitors LED brightness level changes having its origin
+ in hardware/firmware, i.e. outside of kernel control. A timestamp and
+ brightness value is printed each time the brightness changes.
+endef
+
+MAKE_FLAGS = \
+ ARCH="$(LINUX_KARCH)" \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ CC="$(TARGET_CC)" \
+ LD="$(TARGET_CROSS)ld" \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS) -static" \
+ $(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \
+ prefix=/usr
+
+define Build/Compile
+ -$(MAKE) clean \
+ -C $(LINUX_DIR)/tools/leds
+ +$(MAKE_FLAGS) $(MAKE) \
+ -C $(LINUX_DIR)/tools/leds
+endef
+
+define Package/ledumon/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(LINUX_DIR)/tools/leds/uledmon \
+ $(1)/usr/bin/ledumon
+endef
+
+define Package/ledhwbmon/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(LINUX_DIR)/tools/leds/led_hw_brightness_mon \
+ $(1)/usr/bin/ledhwbmon
+endef
+
+$(eval $(call BuildPackage,ledumon))
+$(eval $(call BuildPackage,ledhwbmon))
diff --git a/package/devel/perf/Makefile b/package/devel/perf/Makefile
index bbf3aaf9cea..f9573c4150f 100644
--- a/package/devel/perf/Makefile
+++ b/package/devel/perf/Makefile
@@ -10,9 +10,9 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=perf
PKG_VERSION:=$(LINUX_VERSION)
-PKG_RELEASE:=4
+PKG_RELEASE:=5
-PKG_USE_MIPS16:=0
+PKG_BUILD_FLAGS:=no-mips16 no-lto
PKG_BUILD_PARALLEL:=1
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_FLAGS:=nonshared
@@ -27,7 +27,8 @@ include $(INCLUDE_DIR)/nls.mk
define Package/perf
SECTION:=devel
CATEGORY:=Development
- DEPENDS:= +libelf +libdw +PACKAGE_libunwind:libunwind +libpthread +librt +objdump @!IN_SDK @!TARGET_arc770 @KERNEL_PERF_EVENTS
+ DEPENDS:= +libelf +libdw +PACKAGE_libunwind:libunwind +libpthread +librt +objdump @!IN_SDK @KERNEL_PERF_EVENTS \
+ +PACKAGE_libbfd:libbfd +PACKAGE_libopcodes:libopcodes
TITLE:=Linux performance monitoring tool
VERSION:=$(LINUX_VERSION)-$(PKG_RELEASE)
URL:=http://www.kernel.org
diff --git a/package/devel/strace/Makefile b/package/devel/strace/Makefile
index a95d429311a..c4c395566b8 100644
--- a/package/devel/strace/Makefile
+++ b/package/devel/strace/Makefile
@@ -9,17 +9,17 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=strace
-PKG_VERSION:=5.10
+PKG_VERSION:=6.7
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://strace.io/files/$(PKG_VERSION)
-PKG_HASH:=fe3982ea4cd9aeb3b4ba35f6279f0b577a37175d3282be24b9a5537b56b8f01c
+PKG_HASH:=2090201e1a3ff32846f4fe421c1163b15f440bb38e31355d09f82d3949922af7
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=LGPL-2.1-or-later
PKG_LICENSE_FILES:=COPYING
-PKG_CPE_ID:=cpe:/a:paul_kranenburg:strace
+PKG_CPE_ID:=cpe:/a:strace_project:strace
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
@@ -29,6 +29,7 @@ PKG_CONFIG_DEPENDS := \
CONFIG_STRACE_LIBUNWIND
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
HOST_CFLAGS += -I$(LINUX_DIR)/user_headers/include
@@ -70,7 +71,8 @@ endef
CONFIGURE_ARGS += \
--with-libdw=$(if $(CONFIG_STRACE_LIBDW),yes,no) \
--with-libunwind=$(if $(CONFIG_STRACE_LIBUNWIND),yes,no) \
- --enable-mpers=no
+ --enable-mpers=no \
+ --without-libselinux
MAKE_FLAGS := \
CCOPT="$(TARGET_CFLAGS)"
diff --git a/package/devel/strace/patches/010-m4.patch b/package/devel/strace/patches/010-m4.patch
new file mode 100644
index 00000000000..32584e11806
--- /dev/null
+++ b/package/devel/strace/patches/010-m4.patch
@@ -0,0 +1,10 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -21,7 +21,6 @@ man_MANS = doc/strace.1 doc/strace-log-m
+
+ ACLOCAL_AMFLAGS = -I m4 -I src/xlat
+
+-@CODE_COVERAGE_RULES@
+ CODE_COVERAGE_BRANCH_COVERAGE = 1
+ CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) \
+ --title "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \
diff --git a/package/devel/tmon/Makefile b/package/devel/tmon/Makefile
new file mode 100644
index 00000000000..6f9182ce9ad
--- /dev/null
+++ b/package/devel/tmon/Makefile
@@ -0,0 +1,53 @@
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_NAME:=tmon
+PKG_VERSION:=$(LINUX_VERSION)
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
+PKG_LICENSE:=GPL-2.0-only
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/tmon
+ SECTION:=devel
+ CATEGORY:=Development
+ TITLE:=Thermal monitoring and testing tool
+ VERSION:=$(LINUX_VERSION)-$(PKG_RELEASE)
+ URL:=http://www.kernel.org
+ DEPENDS:=+libncursesw
+endef
+
+define Package/tmon/description
+ As hardware vendors cope with the thermal constraints on their products,
+ more and more sensors are added, new cooling capabilities are introduced.
+ To expose such relationship to the userspace, Linux generic thermal layer
+ introduced sysfs entry at /sys/class/thermal with a matrix of symbolic
+ links, trip point bindings, and device instances. To traverse such
+ matrix by hand is not a trivial task.
+ 'TMON' is conceived as a tool to help visualize, tune, and test the
+ complex thermal subsystem.
+endef
+
+MAKE_FLAGS = \
+ ARCH="$(LINUX_KARCH)" \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ CC="$(TARGET_CC)" \
+ CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)"
+
+define Build/Compile
+ -$(MAKE) clean \
+ -C $(LINUX_DIR)/tools/thermal/tmon
+ +$(MAKE_FLAGS) $(MAKE) \
+ -C $(LINUX_DIR)/tools/thermal/tmon
+endef
+
+define Package/tmon/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(LINUX_DIR)/tools/thermal/tmon/tmon \
+ $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,tmon))
diff --git a/package/devel/trace-cmd/Makefile b/package/devel/trace-cmd/Makefile
index e15b04ad23a..c1a24dc1719 100644
--- a/package/devel/trace-cmd/Makefile
+++ b/package/devel/trace-cmd/Makefile
@@ -1,18 +1,18 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=trace-cmd
-PKG_VERSION:=v2.9.1
+PKG_VERSION:=v3.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git/snapshot/
-PKG_HASH:=9404fc3cf540ea795304608068c9db6cdb38b90584c7f3c43249785913d54b38
+PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/snapshot/
+PKG_HASH:=62af2c6062eeb434925921bb5936774b0a0e17a5f86671fa2ea2f40704a080cd
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING
PKG_INSTALL:=1
-PKG_USE_MIPS16:=0
+PKG_BUILD_FLAGS:=no-mips16
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
@@ -21,42 +21,27 @@ define Package/trace-cmd
SECTION:=devel
CATEGORY:=Development
TITLE:=Linux trace command line utility
- DEPENDS:=
+ DEPENDS:=+libtracefs +zlib
endef
define Package/trace-cmd-extra
SECTION:=devel
CATEGORY:=Development
TITLE:=Extra plugins for trace-cmd
- DEPENDS:=
+ DEPENDS:=+libtraceevent-extra
endef
MAKE_FLAGS += \
NO_PYTHON=1 \
NO_AUDIT=1 \
+ NO_LIBZSTD=1 \
prefix=/usr
-PLUGINS_DIR := $(PKG_INSTALL_DIR)/usr/lib/traceevent/plugins
-PLUGINS_MAIN := function hrtimer mac80211 sched_switch
-
TARGET_CFLAGS += --std=gnu99 -D_GNU_SOURCE
define Package/trace-cmd/install
$(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib/traceevent/plugins
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/trace-cmd $(1)/usr/bin/
- $(CP) \
- $(patsubst %,$(PLUGINS_DIR)/plugin_%.so,$(PLUGINS_MAIN)) \
- $(1)/usr/lib/traceevent/plugins
-endef
-
-define Package/trace-cmd-extra/install
- $(INSTALL_DIR) $(1)/usr/lib/traceevent/plugins
- $(CP) \
- $$(patsubst %,$(PLUGINS_DIR)/plugin_%.so, \
- $$(filter-out $(PLUGINS_MAIN), \
- $$(patsubst $(PLUGINS_DIR)/plugin_%.so,%, \
- $$(wildcard $(PLUGINS_DIR)/plugin_*.so)))) \
- $(1)/usr/lib/traceevent/plugins
endef
$(eval $(call BuildPackage,trace-cmd))
diff --git a/package/devel/trace-cmd/patches/100-musl.patch b/package/devel/trace-cmd/patches/100-musl.patch
deleted file mode 100644
index 80b419eb828..00000000000
--- a/package/devel/trace-cmd/patches/100-musl.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 1a000636c1828eecdcec5360a51623ef4ffbff04 Mon Sep 17 00:00:00 2001
-From: Beniamin Sandu <beniaminsandu@gmail.com>
-Date: Mon, 30 Nov 2020 14:27:55 +0200
-Subject: trace-cmd: make it build against musl C library
-
-* add some missing headers and macros
-* set pthread affinity using pthread_setaffinity_np after creating the thread
-instead of pthread_attr_setaffinity_np (which seems to not be implemented
-in musl)
-
-Tested using https://musl.cc/x86_64-linux-musl-native.tgz
-
-Link: https://lore.kernel.org/linux-trace-devel/20201130122755.31000-1-beniaminsandu@gmail.com
-
-Reviewed-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
-Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
-[ Fixed a whitespace issue ]
-Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
----
- include/trace-cmd/trace-cmd.h | 1 +
- lib/trace-cmd/include/trace-cmd-local.h | 1 +
- lib/tracefs/tracefs-events.c | 1 +
- tracecmd/include/trace-local.h | 1 +
- tracecmd/trace-tsync.c | 16 +++++++++++-----
- 5 files changed, 20 insertions(+), 5 deletions(-)
-
---- a/include/trace-cmd/trace-cmd.h
-+++ b/include/trace-cmd/trace-cmd.h
-@@ -6,6 +6,7 @@
- #ifndef _TRACE_CMD_H
- #define _TRACE_CMD_H
-
-+#include <pthread.h>
- #include "traceevent/event-parse.h"
-
- #define TRACECMD_MAGIC { 23, 8, 68 }
---- a/lib/trace-cmd/include/trace-cmd-local.h
-+++ b/lib/trace-cmd/include/trace-cmd-local.h
-@@ -26,5 +26,6 @@ void warning(const char *fmt, ...);
- #endif
- #endif
-
-+#include <byteswap.h>
-
- #endif /* _TRACE_CMD_LOCAL_H */
---- a/lib/tracefs/tracefs-events.c
-+++ b/lib/tracefs/tracefs-events.c
-@@ -13,6 +13,7 @@
- #include <errno.h>
- #include <sys/stat.h>
- #include <fcntl.h>
-+#include <limits.h>
-
- #include "kbuffer.h"
- #include "tracefs.h"
---- a/tracecmd/include/trace-local.h
-+++ b/tracecmd/include/trace-local.h
-@@ -8,6 +8,7 @@
-
- #include <sys/types.h>
- #include <dirent.h> /* for DIR */
-+#include <limits.h>
-
- #include "trace-cmd.h"
- #include "event-utils.h"
---- a/tracecmd/trace-tsync.c
-+++ b/tracecmd/trace-tsync.c
-@@ -104,13 +104,16 @@ int tracecmd_host_tsync(struct buffer_in
-
- pthread_attr_init(&attrib);
- pthread_attr_setdetachstate(&attrib, PTHREAD_CREATE_JOINABLE);
-- if (!get_first_cpu(&pin_mask, &mask_size))
-- pthread_attr_setaffinity_np(&attrib, mask_size, pin_mask);
-
- ret = pthread_create(&instance->tsync_thread, &attrib,
- tsync_host_thread, &instance->tsync);
-- if (!ret)
-+
-+ if (!ret) {
-+ if (!get_first_cpu(&pin_mask, &mask_size))
-+ pthread_setaffinity_np(instance->tsync_thread, mask_size, pin_mask);
- instance->tsync_thread_running = true;
-+ }
-+
- if (pin_mask)
- CPU_FREE(pin_mask);
- pthread_attr_destroy(&attrib);
-@@ -243,11 +246,14 @@ unsigned int tracecmd_guest_tsync(char *
- pthread_attr_init(&attrib);
- tsync->sync_proto = proto;
- pthread_attr_setdetachstate(&attrib, PTHREAD_CREATE_JOINABLE);
-- if (!get_first_cpu(&pin_mask, &mask_size))
-- pthread_attr_setaffinity_np(&attrib, mask_size, pin_mask);
-
- ret = pthread_create(thr_id, &attrib, tsync_agent_thread, tsync);
-
-+ if (!ret) {
-+ if (!get_first_cpu(&pin_mask, &mask_size))
-+ pthread_setaffinity_np(*thr_id, mask_size, pin_mask);
-+ }
-+
- if (pin_mask)
- CPU_FREE(pin_mask);
- pthread_attr_destroy(&attrib);
diff --git a/package/devel/trace-cmd/patches/110-mac80211_tracepoint.patch b/package/devel/trace-cmd/patches/110-mac80211_tracepoint.patch
deleted file mode 100644
index cffcaa06b5c..00000000000
--- a/package/devel/trace-cmd/patches/110-mac80211_tracepoint.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/lib/traceevent/plugins/plugin_mac80211.c
-+++ b/lib/traceevent/plugins/plugin_mac80211.c
-@@ -165,12 +165,15 @@ static int drv_config(struct trace_seq *
- { 2, "IDLE" },
- { 3, "QOS"},
- );
-- tep_print_num_field(s, " chan:%d/", event, "center_freq", record, 1);
-- print_enum(s, event, "channel_type", data,
-- { 0, "noht" },
-- { 1, "ht20" },
-- { 2, "ht40-" },
-- { 3, "ht40+" });
-+ tep_print_num_field(s, " chan:%d@", event, "control_freq", record, 1);
-+ print_enum(s, event, "chan_width", data,
-+ { 0, "20_noht" },
-+ { 1, "20" },
-+ { 2, "40" },
-+ { 3, "80" },
-+ { 4, "80p80" },
-+ { 5, "160" });
-+
- trace_seq_putc(s, ' ');
- SF("power_level");
-
diff --git a/package/devel/valgrind/Makefile b/package/devel/valgrind/Makefile
index 829f37569e9..9f8a2e9e79a 100644
--- a/package/devel/valgrind/Makefile
+++ b/package/devel/valgrind/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=valgrind
-PKG_VERSION:=3.16.1
+PKG_VERSION:=3.22.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://sourceware.org/pub/valgrind/
-PKG_HASH:=c91f3a2f7b02db0f3bc99479861656154d241d2fdb265614ba918cc6720a33ca
+PKG_SOURCE_URL:=https://sourceware.org/pub/valgrind/
+PKG_HASH:=c811db5add2c5f729944caf47c4e7a65dcaabb9461e472b578765dd7bf6d2d4c
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0+
@@ -22,7 +22,7 @@ PKG_CPE_ID:=cpe:/a:valgrind:valgrind
PKG_FIXUP = autoreconf
PKG_INSTALL := 1
PKG_BUILD_PARALLEL := 1
-PKG_USE_MIPS16:=0
+PKG_BUILD_FLAGS:=no-mips16
PKG_SSP:=0
STRIP:=:
@@ -33,7 +33,7 @@ include $(INCLUDE_DIR)/kernel.mk
define Package/valgrind
SECTION:=devel
CATEGORY:=Development
- DEPENDS:=@mips||mipsel||i386||x86_64||powerpc||arm_v7||aarch64 +libpthread +librt
+ DEPENDS:=@mips||mipsel||mips64||mips64el||i386||x86_64||powerpc||arm_v7||aarch64 +libpthread +librt
TITLE:=debugging and profiling tools for Linux
URL:=http://www.valgrind.org
endef
diff --git a/package/devel/valgrind/patches/010-mips-Fix-new-syscall-numbers.patch b/package/devel/valgrind/patches/010-mips-Fix-new-syscall-numbers.patch
new file mode 100644
index 00000000000..5967b0cadac
--- /dev/null
+++ b/package/devel/valgrind/patches/010-mips-Fix-new-syscall-numbers.patch
@@ -0,0 +1,143 @@
+From 82e935c564699456a766044faa39367b47cce793 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Sun, 31 Oct 2021 23:11:11 +0100
+Subject: [PATCH] mips: Fix new syscall numbers
+
+The MIPS32 and MIPS64 O32 ABI are adding 4000 to all syscall numbers.
+The MIPS64 N64 ABI adds 5000 to each syscall and the MIPS64 N32 ABI adds
+6000 to each syscall number. We can not use the shared file for MIPS and
+have to define this for each sycall separately.
+
+Without this change valgrind is not able to detect new syscalls like
+clock_gettime64 correctly.
+
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+---
+ include/pub_tool_vkiscnums_asm.h | 3 --
+ include/vki/vki-scnums-mips32-linux.h | 40 +++++++++++++++++++++++++++
+ include/vki/vki-scnums-mips64-linux.h | 40 +++++++++++++++++++++++++++
+ 3 files changed, 80 insertions(+), 3 deletions(-)
+
+--- a/include/pub_tool_vkiscnums_asm.h
++++ b/include/pub_tool_vkiscnums_asm.h
+@@ -63,15 +63,12 @@
+ # include "vki/vki-scnums-arm64-linux.h"
+
+ #elif defined(VGP_mips32_linux)
+-# include "vki/vki-scnums-shared-linux.h"
+-# include "vki/vki-scnums-32bit-linux.h"
+ # include "vki/vki-scnums-mips32-linux.h"
+
+ #elif defined(VGP_nanomips_linux)
+ # include "vki/vki-scnums-nanomips-linux.h"
+
+ #elif defined(VGP_mips64_linux)
+-# include "vki/vki-scnums-shared-linux.h"
+ # include "vki/vki-scnums-mips64-linux.h"
+
+ #elif defined(VGP_x86_freebsd) || defined(VGP_amd64_freebsd)
+--- a/include/vki/vki-scnums-mips32-linux.h
++++ b/include/vki/vki-scnums-mips32-linux.h
+@@ -401,6 +401,46 @@
+ #define __NR_pkey_free (__NR_Linux + 365)
+ #define __NR_statx (__NR_Linux + 366)
+
++#define __NR_clock_gettime64 (__NR_Linux + 403)
++#define __NR_clock_settime64 (__NR_Linux + 404)
++#define __NR_clock_adjtime64 (__NR_Linux + 405)
++#define __NR_clock_getres_time64 (__NR_Linux + 406)
++#define __NR_clock_nanosleep_time64 (__NR_Linux + 407)
++#define __NR_timer_gettime64 (__NR_Linux + 408)
++#define __NR_timer_settime64 (__NR_Linux + 409)
++#define __NR_timerfd_gettime64 (__NR_Linux + 410)
++#define __NR_timerfd_settime64 (__NR_Linux + 411)
++#define __NR_utimensat_time64 (__NR_Linux + 412)
++#define __NR_pselect6_time64 (__NR_Linux + 413)
++#define __NR_ppoll_time64 (__NR_Linux + 414)
++#define __NR_io_pgetevents_time64 (__NR_Linux + 416)
++#define __NR_recvmmsg_time64 (__NR_Linux + 417)
++#define __NR_mq_timedsend_time64 (__NR_Linux + 418)
++#define __NR_mq_timedreceive_time64 (__NR_Linux + 419)
++#define __NR_semtimedop_time64 (__NR_Linux + 420)
++#define __NR_rt_sigtimedwait_time64 (__NR_Linux + 421)
++#define __NR_futex_time64 (__NR_Linux + 422)
++#define __NR_sched_rr_get_interval_time64 (__NR_Linux + 423)
++#define __NR_pidfd_send_signal (__NR_Linux + 424)
++#define __NR_io_uring_setup (__NR_Linux + 425)
++#define __NR_io_uring_enter (__NR_Linux + 426)
++#define __NR_io_uring_register (__NR_Linux + 427)
++#define __NR_open_tree (__NR_Linux + 428)
++#define __NR_move_mount (__NR_Linux + 429)
++#define __NR_fsopen (__NR_Linux + 430)
++#define __NR_fsconfig (__NR_Linux + 431)
++#define __NR_fsmount (__NR_Linux + 432)
++#define __NR_fspick (__NR_Linux + 433)
++
++#define __NR_pidfd_open (__NR_Linux + 434)
++#define __NR_clone3 (__NR_Linux + 435)
++#define __NR_close_range (__NR_Linux + 436)
++#define __NR_openat2 (__NR_Linux + 437)
++
++#define __NR_faccessat2 (__NR_Linux + 439)
++
++#define __NR_epoll_pwait2 (__NR_Linux + 441)
++
+ /*
+ * Offset of the last Linux o32 flavoured syscall
+ */
+--- a/include/vki/vki-scnums-mips64-linux.h
++++ b/include/vki/vki-scnums-mips64-linux.h
+@@ -363,6 +363,26 @@
+ #define __NR_pkey_free (__NR_Linux + 325)
+ #define __NR_statx (__NR_Linux + 326)
+
++#define __NR_pidfd_send_signal (__NR_Linux + 424)
++#define __NR_io_uring_setup (__NR_Linux + 425)
++#define __NR_io_uring_enter (__NR_Linux + 426)
++#define __NR_io_uring_register (__NR_Linux + 427)
++#define __NR_open_tree (__NR_Linux + 428)
++#define __NR_move_mount (__NR_Linux + 429)
++#define __NR_fsopen (__NR_Linux + 430)
++#define __NR_fsconfig (__NR_Linux + 431)
++#define __NR_fsmount (__NR_Linux + 432)
++#define __NR_fspick (__NR_Linux + 433)
++
++#define __NR_pidfd_open (__NR_Linux + 434)
++#define __NR_clone3 (__NR_Linux + 435)
++#define __NR_close_range (__NR_Linux + 436)
++#define __NR_openat2 (__NR_Linux + 437)
++
++#define __NR_faccessat2 (__NR_Linux + 439)
++
++#define __NR_epoll_pwait2 (__NR_Linux + 441)
++
+ #elif defined(VGABI_N32)
+
+ /*
+@@ -702,6 +722,26 @@
+ #define __NR_pkey_free (__NR_Linux + 329)
+ #define __NR_statx (__NR_Linux + 330)
+
++#define __NR_pidfd_send_signal (__NR_Linux + 424)
++#define __NR_io_uring_setup (__NR_Linux + 425)
++#define __NR_io_uring_enter (__NR_Linux + 426)
++#define __NR_io_uring_register (__NR_Linux + 427)
++#define __NR_open_tree (__NR_Linux + 428)
++#define __NR_move_mount (__NR_Linux + 429)
++#define __NR_fsopen (__NR_Linux + 430)
++#define __NR_fsconfig (__NR_Linux + 431)
++#define __NR_fsmount (__NR_Linux + 432)
++#define __NR_fspick (__NR_Linux + 433)
++
++#define __NR_pidfd_open (__NR_Linux + 434)
++#define __NR_clone3 (__NR_Linux + 435)
++#define __NR_close_range (__NR_Linux + 436)
++#define __NR_openat2 (__NR_Linux + 437)
++
++#define __NR_faccessat2 (__NR_Linux + 439)
++
++#define __NR_epoll_pwait2 (__NR_Linux + 441)
++
+ #else
+ #error unknown mips64 abi
+ #endif
diff --git a/package/devel/valgrind/patches/100-fix_configure_check.patch b/package/devel/valgrind/patches/100-fix_configure_check.patch
index 6e9384ff887..5fa51977e7b 100644
--- a/package/devel/valgrind/patches/100-fix_configure_check.patch
+++ b/package/devel/valgrind/patches/100-fix_configure_check.patch
@@ -1,6 +1,6 @@
--- a/configure.ac
+++ b/configure.ac
-@@ -345,7 +345,7 @@ case "${host_os}" in
+@@ -364,7 +364,7 @@ case "${host_os}" in
# Ok, this is linux. Check the kernel version
AC_MSG_CHECKING([for the kernel version])
diff --git a/package/devel/valgrind/patches/130-fix_arm_arch_detection.patch b/package/devel/valgrind/patches/130-fix_arm_arch_detection.patch
index 26291f777bb..9a7b591e707 100644
--- a/package/devel/valgrind/patches/130-fix_arm_arch_detection.patch
+++ b/package/devel/valgrind/patches/130-fix_arm_arch_detection.patch
@@ -6,7 +6,7 @@ Last-Update: 2013-11-30
--- a/configure.ac
+++ b/configure.ac
-@@ -252,7 +252,7 @@ case "${host_cpu}" in
+@@ -271,7 +271,7 @@ case "${host_cpu}" in
ARCH_MAX="s390x"
;;
diff --git a/package/devel/valgrind/patches/130-mips_fix_soft_float.patch b/package/devel/valgrind/patches/130-mips_fix_soft_float.patch
index 05be099ca5e..7c7122ecac9 100644
--- a/package/devel/valgrind/patches/130-mips_fix_soft_float.patch
+++ b/package/devel/valgrind/patches/130-mips_fix_soft_float.patch
@@ -14,7 +14,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
--- a/VEX/priv/guest_mips_helpers.c
+++ b/VEX/priv/guest_mips_helpers.c
-@@ -617,6 +617,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -616,6 +616,7 @@ extern UInt mips_dirtyhelper_calculate_F
flt_op inst )
{
UInt ret = 0;
@@ -22,7 +22,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
#if defined(__mips__)
VexGuestMIPS32State* guest_state = (VexGuestMIPS32State*)gs;
UInt loFsVal, hiFsVal, loFtVal, hiFtVal;
-@@ -699,6 +700,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -698,6 +699,7 @@ extern UInt mips_dirtyhelper_calculate_F
break;
}
#endif
@@ -30,7 +30,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
return ret;
}
-@@ -708,6 +710,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -707,6 +709,7 @@ extern UInt mips_dirtyhelper_calculate_F
flt_op inst )
{
UInt ret = 0;
@@ -38,7 +38,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
#if defined(__mips__) && ((__mips == 64) || \
(defined(__mips_isa_rev) && (__mips_isa_rev >= 2)))
#if defined(VGA_mips32)
-@@ -860,6 +863,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -859,6 +862,7 @@ extern UInt mips_dirtyhelper_calculate_F
break;
}
#endif
@@ -48,7 +48,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
--- a/coregrind/m_machine.c
+++ b/coregrind/m_machine.c
-@@ -1828,6 +1828,7 @@ Bool VG_(machine_get_hwcaps)( void )
+@@ -2109,6 +2109,7 @@ Bool VG_(machine_get_hwcaps)( void )
we are using alternative way to determine FP mode */
ULong result = 0;
@@ -56,7 +56,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
if (!VG_MINIMAL_SETJMP(env_unsup_insn)) {
__asm__ volatile (
".set push\n\t"
-@@ -1845,6 +1846,9 @@ Bool VG_(machine_get_hwcaps)( void )
+@@ -2126,6 +2127,9 @@ Bool VG_(machine_get_hwcaps)( void )
fpmode = (result != 0x3FF0000000000000ull);
}