diff --git a/packages/valgrind/Makefile.all.am.patch b/packages/valgrind/Makefile.all.am.patch index 811c084bae70329..bb864cc43b44b68 100644 --- a/packages/valgrind/Makefile.all.am.patch +++ b/packages/valgrind/Makefile.all.am.patch @@ -1,20 +1,23 @@ ---- a/Makefile.all.am -+++ b/Makefile.all.am -@@ -335,13 +335,13 @@ +--- valgrind-3.24.0/Makefile.all.am 2024-11-01 13:07:00.000000000 +0800 ++++ valgrind-3.24.0.mod/Makefile.all.am 2025-01-05 20:33:44.924788548 +0800 +@@ -336,13 +336,16 @@ PRELOAD_LDFLAGS_COMMON_LINUX += -nostdlib endif -PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ -PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ -+PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ $(shell $(CC) @FLAG_M32@ -print-libgcc-file-name) -+PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ $(shell $(CC) @FLAG_M64@ -print-libgcc-file-name) ++LIBGCC32 := $(shell $(CC) @FLAG_M32@ -print-libgcc-file-name) ++LIBGCC64 := $(shell $(CC) @FLAG_M64@ -print-libgcc-file-name) ++ ++PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ $(LIBGCC32) ++PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ $(LIBGCC64) PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ PRELOAD_LDFLAGS_PPC64BE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ -PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ -PRELOAD_LDFLAGS_ARM64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ -+PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ $(shell $(CC) @FLAG_M32@ -print-libgcc-file-name) -+PRELOAD_LDFLAGS_ARM64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ $(shell $(CC) @FLAG_M64@ -print-libgcc-file-name) - PRELOAD_LDFLAGS_X86_FREEBSD = $(PRELOAD_LDFLAGS_COMMON_FREEBSD) @FLAG_M32@ - PRELOAD_LDFLAGS_AMD64_FREEBSD= $(PRELOAD_LDFLAGS_COMMON_FREEBSD) @FLAG_M64@ - PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386 ++PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ $(LIBGCC32) ++PRELOAD_LDFLAGS_ARM64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ $(LIBGCC64) + PRELOAD_LDFLAGS_X86_FREEBSD = $(PRELOAD_LDFLAGS_COMMON_FREEBSD) @FLAG_M32@ + PRELOAD_LDFLAGS_AMD64_FREEBSD = $(PRELOAD_LDFLAGS_COMMON_FREEBSD) @FLAG_M64@ + PRELOAD_LDFLAGS_ARM64_FREEBSD = $(PRELOAD_LDFLAGS_COMMON_FREEBSD) @FLAG_M64@ diff --git a/packages/valgrind/aarch64-setjmp.S b/packages/valgrind/aarch64-setjmp.S deleted file mode 100644 index 1c98ed38583e9b0..000000000000000 --- a/packages/valgrind/aarch64-setjmp.S +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifdef __aarch64__ - -// Copied and simplified macros from bionic_asm.h. - -#define ENTRY(f) \ - .text; \ - .globl f; \ - .type f, @function; \ - f: \ - .cfi_startproc \ - -#define END(f) \ - .cfi_endproc; \ - .size f, .-f; \ - -// According to AARCH64 PCS document we need to save the following -// registers: -// -// Core x19 - x30, sp (see section 5.1.1) -// VFP d8 - d15 (see section 5.1.2) -// -// NOTE: All the registers saved here will have 64 bit values. -// AAPCS mandates that the higher part of q registers do not need to -// be saved by the callee. -// -// The internal structure of a jmp_buf is totally private. -// Current layout (changes from release to release): -// -// word name description -// 0 sigflag/cookie setjmp cookie in top 31 bits, signal mask flag in low bit -// 1 sigmask signal mask (not used with _setjmp / _longjmp) -// 2 core_base base of core registers (x19-x30, sp) -// 15 float_base base of float registers (d8-d15) -// 23 checksum checksum of core registers -// 24 reserved reserved entries (room to grow) -// 32 - -// 'sigmask' and 'checksum' are not used in this simplified version for valgrind. - -#define _JB_SIGFLAG 0 -#define _JB_SIGMASK (_JB_SIGFLAG + 1) -#define _JB_X30_SP (_JB_SIGMASK + 1) -#define _JB_X28_X29 (_JB_X30_SP + 2) -#define _JB_X26_X27 (_JB_X28_X29 + 2) -#define _JB_X24_X25 (_JB_X26_X27 + 2) -#define _JB_X22_X23 (_JB_X24_X25 + 2) -#define _JB_X20_X21 (_JB_X22_X23 + 2) -#define _JB_X19 (_JB_X20_X21 + 2) -#define _JB_D14_D15 (_JB_X19 + 1) -#define _JB_D12_D13 (_JB_D14_D15 + 2) -#define _JB_D10_D11 (_JB_D12_D13 + 2) -#define _JB_D8_D9 (_JB_D10_D11 + 2) - -// int setjmp(jmp_buf env); -ENTRY(setjmp) - // Save core registers. - mov x10, sp - stp x30, x10, [x0, #(_JB_X30_SP * 8)] - stp x28, x29, [x0, #(_JB_X28_X29 * 8)] - stp x26, x27, [x0, #(_JB_X26_X27 * 8)] - stp x24, x25, [x0, #(_JB_X24_X25 * 8)] - stp x22, x23, [x0, #(_JB_X22_X23 * 8)] - stp x20, x21, [x0, #(_JB_X20_X21 * 8)] - str x19, [x0, #(_JB_X19 * 8)] - - // Save floating point registers. - stp d14, d15, [x0, #(_JB_D14_D15 * 8)] - stp d12, d13, [x0, #(_JB_D12_D13 * 8)] - stp d10, d11, [x0, #(_JB_D10_D11 * 8)] - stp d8, d9, [x0, #(_JB_D8_D9 * 8)] - - mov w0, #0 - ret -END(setjmp) - -// void longjmp(jmp_buf env, int value); -ENTRY(longjmp) - // Restore core registers. - ldp x30, x10, [x0, #(_JB_X30_SP * 8)] - ldp x28, x29, [x0, #(_JB_X28_X29 * 8)] - ldp x26, x27, [x0, #(_JB_X26_X27 * 8)] - ldp x24, x25, [x0, #(_JB_X24_X25 * 8)] - ldp x22, x23, [x0, #(_JB_X22_X23 * 8)] - ldp x20, x21, [x0, #(_JB_X20_X21 * 8)] - ldr x19, [x0, #(_JB_X19 * 8)] - mov sp, x10 - - // Restore floating point registers. - ldp d14, d15, [x0, #(_JB_D14_D15 * 8)] - ldp d12, d13, [x0, #(_JB_D12_D13 * 8)] - ldp d10, d11, [x0, #(_JB_D10_D11 * 8)] - ldp d8, d9, [x0, #(_JB_D8_D9 * 8)] - - // Set return value. - cmp w1, wzr - csinc w0, w1, wzr, ne - ret -END(longjmp) - -#endif // __aarch64__ diff --git a/packages/valgrind/build.sh b/packages/valgrind/build.sh index 582d5fde977ea3e..85f30eecb8babe9 100644 --- a/packages/valgrind/build.sh +++ b/packages/valgrind/build.sh @@ -2,10 +2,9 @@ TERMUX_PKG_HOMEPAGE=https://valgrind.org/ TERMUX_PKG_DESCRIPTION="Instrumentation framework for building dynamic analysis tools" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION="3.22.0" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_VERSION="3.24.0" TERMUX_PKG_SRCURL=http://sourceware.org/pub/valgrind/valgrind-${TERMUX_PKG_VERSION}.tar.bz2 -TERMUX_PKG_SHA256=c811db5add2c5f729944caf47c4e7a65dcaabb9461e472b578765dd7bf6d2d4c +TERMUX_PKG_SHA256=71aee202bdef1ae73898ccf7e9c315134fa7db6c246063afc503aef702ec03bd TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_BUILD_DEPENDS="binutils-cross" TERMUX_PKG_BREAKS="valgrind-dev" @@ -16,9 +15,6 @@ termux_step_pre_configure() { CFLAGS=${CFLAGS/-fstack-protector-strong/} if [ "$TERMUX_ARCH" == "aarch64" ]; then - cp $TERMUX_PKG_BUILDER_DIR/aarch64-setjmp.S $TERMUX_PKG_SRCDIR - patch --silent -p1 < $TERMUX_PKG_BUILDER_DIR/coregrindmake.am.diff - patch --silent -p1 < $TERMUX_PKG_BUILDER_DIR/memcheckmake.am.diff TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --enable-only64bit" elif [ "$TERMUX_ARCH" == "arm" ]; then # valgrind doesn't like arm; armv7 works, though. diff --git a/packages/valgrind/coregrindmake.am.diff b/packages/valgrind/coregrindmake.am.diff deleted file mode 100644 index 020aa4274738377..000000000000000 --- a/packages/valgrind/coregrindmake.am.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- ../cache/valgrind-3.13.0/coregrind/Makefile.am 2017-05-31 15:14:31.000000000 +0000 -+++ ./coregrind/Makefile.am 2018-08-19 00:35:33.162856194 +0000 -@@ -378,6 +378,7 @@ - m_dispatch/dispatch-amd64-darwin.S \ - m_dispatch/dispatch-x86-solaris.S \ - m_dispatch/dispatch-amd64-solaris.S \ -+ ../aarch64-setjmp.S \ - m_gdbserver/inferiors.c \ - m_gdbserver/m_gdbserver.c \ - m_gdbserver/regcache.c \ diff --git a/packages/valgrind/memcheckmake.am.diff b/packages/valgrind/memcheckmake.am.diff deleted file mode 100644 index 4039ca68acc6407..000000000000000 --- a/packages/valgrind/memcheckmake.am.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- ../cache/valgrind-3.13.0/memcheck/Makefile.am 2017-05-31 15:14:03.000000000 +0000 -+++ ./memcheck/Makefile.am 2018-08-19 00:20:49.488266235 +0000 -@@ -27,6 +27,7 @@ - mc_main.c \ - mc_translate.c \ - mc_machine.c \ -+ ../aarch64-setjmp.S \ - mc_errors.c - - memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \