diff options
author | Sam James <sam@gentoo.org> | 2024-11-13 20:54:34 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-11-13 20:54:34 +0000 |
commit | 2ee0e9375b90e29167377b8b6c8c5d6022bce116 (patch) | |
tree | 8fcd18bce141db31033c6984c3c3cbd1e1aaa0e0 /dev-debug | |
parent | dev-python/pybind11: Stabilize 2.13.6 hppa, #939982 (diff) | |
download | gentoo-2ee0e9375b90e29167377b8b6c8c5d6022bce116.tar.gz gentoo-2ee0e9375b90e29167377b8b6c8c5d6022bce116.tar.bz2 gentoo-2ee0e9375b90e29167377b8b6c8c5d6022bce116.zip |
dev-debug/valgrind: drop 3.22.0-r2, 3.23.0_p2
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-debug')
8 files changed, 0 insertions, 961 deletions
diff --git a/dev-debug/valgrind/Manifest b/dev-debug/valgrind/Manifest index ea123200e52d..b30ce2fc0446 100644 --- a/dev-debug/valgrind/Manifest +++ b/dev-debug/valgrind/Manifest @@ -1,6 +1,3 @@ -DIST valgrind-3.22.0.tar.bz2 16565502 BLAKE2B 80024371b3e70521996077fba24e233097a6190477ced1b311cd41fead687dcc2511ac0ef723792488f4af08867dff3e1f474816fda09c1604b89059e31c2514 SHA512 2904c13f68245bbafcea70998c6bd20725271300a7e94b6751ca00916943595fc3fac8557da7ea8db31b54a43f092823a0a947bc142829da811d074e1fe49777 -DIST valgrind-3.22.0.tar.bz2.asc 488 BLAKE2B 9e4d4cfac4dcc09bb62beeaa7b9f78bfafd0a6ae8d63e423ff81b7b8f5444a301e4c3030a241644c8070c36ee040832ce99f444678f22611457e325ceae18dd1 SHA512 c2317db564ef816d2b5d1a7f2f680dc1c6ea05abbffde660587946c986af179ea7ca2314d94c792f63f3043b6a44819ddf5661fd60ec2454a2c562e7d2711b36 -DIST valgrind-3.23.0-patches-2.tar.xz 15024 BLAKE2B ca7085a6dd38cda9df9437697109b2cb59dfcb8154b1df20f9ffb20dcde9acfa671298610ccc8a57704b1a5f7f2a11b40352a51264440daaa0780e54027096d0 SHA512 cc7ea14808100b72e6bdf65248687694bf15f982dec1a42b59a9f42d26b9f1bce0e99a867a544f521d509b107792b26d15b75b417838ac2692e8773d52d6d69f DIST valgrind-3.23.0-patches-3.tar.xz 23084 BLAKE2B 4794143bd80f984d5dc07f792837faa139a4bf8cc6220c7c1e79b85f2c0e6ee579eb5e4220decc264a4e21424683554794d015e10aee20b9e34c16724d64eb58 SHA512 0144142d62552158d90a118591a50412d077d3e79fce333fb6da40aff8acd6c924d15c85f69293d1a189b2ecde66c184cf82c8ba3a134f95c439d50e147e331c DIST valgrind-3.23.0.tar.bz2 16550038 BLAKE2B 9312761b0531006725f13270984b26c48f71ebe66e355b04410d7c01773c9b78ec21db3259cab398e58b3b68f93f5f074db06efe1f359bd7cf423515576191a4 SHA512 27d038faaaf6154cace2df18c3573291393548ba0738dbb6aba58eab6324c5beaa95fc5f3c0271663ca071baf829b15d806f7e81074f7cf087bef20ea0ed3117 DIST valgrind-3.23.0.tar.bz2.asc 488 BLAKE2B b06781577e3e84e506e56bd4acc7341aecacb6b5898d8f0daab627d24bc70c9c60edad11dc7e3723ac77aa9c7978f1e13af7734e7a37763c720e77ea4ff103a4 SHA512 e10b38c72ed1fb8d79a3fa84ab70c475ec7a15927a578ee6715aa74f9600453f0fb72551053b6c31583321c37dab100bafbf6e689c02a3bc06021f6092b4bc80 diff --git a/dev-debug/valgrind/files/0001-valgrind-monitor.py-regular-expressions-should-use-r.patch b/dev-debug/valgrind/files/0001-valgrind-monitor.py-regular-expressions-should-use-r.patch deleted file mode 100644 index 70bd723855ad..000000000000 --- a/dev-debug/valgrind/files/0001-valgrind-monitor.py-regular-expressions-should-use-r.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 027b649fdb831868e71be01cafdacc49a5f419ab Mon Sep 17 00:00:00 2001 -From: Mark Wielaard <mark@klomp.org> -Date: Fri, 17 Nov 2023 14:01:21 +0100 -Subject: [PATCH 1/4] valgrind-monitor.py regular expressions should use raw - strings - -With python 3.12 gdb will produce the following SyntaxWarning when -loading valgrind-monitor-def.py: - - /usr/share/gdb/auto-load/valgrind-monitor-def.py:214: - SyntaxWarning: invalid escape sequence '\[' - if re.fullmatch("^0x[0123456789ABCDEFabcdef]+\[[^\[\]]+\]$", arg_str): - -In a future python version this will become an SyntaxError. - -Use a raw strings for the regular expression. - -https://bugs.kde.org/show_bug.cgi?id=476708 -(cherry picked from commit 0fbfbe05028ad18efda786a256a2738d2c231ed4) ---- - NEWS | 13 +++++++++++++ - coregrind/m_gdbserver/valgrind-monitor-def.py | 2 +- - 2 files changed, 14 insertions(+), 1 deletion(-) - -diff --git a/NEWS b/NEWS -index f11da4be8..ee5b4ff11 100644 ---- a/NEWS -+++ b/NEWS -@@ -1,3 +1,16 @@ -+Branch 3.22 -+~~~~~~~~~~~ -+ -+* ==================== FIXED BUGS ==================== -+ -+The following bugs have been fixed or resolved on this branch. -+ -+476708 valgrind-monitor.py regular expressions should use raw strings -+ -+To see details of a given bug, visit -+ https://bugs.kde.org/show_bug.cgi?id=XXXXXX -+where XXXXXX is the bug number as listed above. -+ - Release 3.22.0 (31 Oct 2023) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -diff --git a/coregrind/m_gdbserver/valgrind-monitor-def.py b/coregrind/m_gdbserver/valgrind-monitor-def.py -index b4e7b992d..d74b1590c 100644 ---- a/coregrind/m_gdbserver/valgrind-monitor-def.py -+++ b/coregrind/m_gdbserver/valgrind-monitor-def.py -@@ -211,7 +211,7 @@ class Valgrind_ADDR_LEN_opt(Valgrind_Command): - For compatibility reason with the Valgrind gdbserver monitor command, - we detect and accept usages such as 0x1234ABCD[10].""" - def invoke(self, arg_str : str, from_tty : bool) -> None: -- if re.fullmatch("^0x[0123456789ABCDEFabcdef]+\[[^\[\]]+\]$", arg_str): -+ if re.fullmatch(r"^0x[0123456789ABCDEFabcdef]+\[[^\[\]]+\]$", arg_str): - arg_str = arg_str.replace("[", " ") - arg_str = arg_str.replace("]", " ") - eval_execute_2(self, arg_str, --- -2.43.0 - diff --git a/dev-debug/valgrind/files/0002-Bug-476548-valgrind-3.22.0-fails-on-assertion-when-l.patch b/dev-debug/valgrind/files/0002-Bug-476548-valgrind-3.22.0-fails-on-assertion-when-l.patch deleted file mode 100644 index df6250ea81db..000000000000 --- a/dev-debug/valgrind/files/0002-Bug-476548-valgrind-3.22.0-fails-on-assertion-when-l.patch +++ /dev/null @@ -1,144 +0,0 @@ -From 1d00e5ce0fb069911c4b525ec38289fb5d9021b0 Mon Sep 17 00:00:00 2001 -From: Paul Floyd <pjfloyd@wanadoo.fr> -Date: Sat, 18 Nov 2023 08:49:34 +0100 -Subject: [PATCH 2/4] Bug 476548 - valgrind 3.22.0 fails on assertion when - loading debuginfo file produced by mold - -(cherry picked from commit 9ea4ae66707a4dcc6f4328e11911652e4418c585) ---- - NEWS | 2 ++ - coregrind/m_debuginfo/image.c | 14 +++++++++ - coregrind/m_debuginfo/priv_image.h | 4 +++ - coregrind/m_debuginfo/readelf.c | 49 ++++++++++++++++++++++++++++-- - 4 files changed, 66 insertions(+), 3 deletions(-) - -diff --git a/NEWS b/NEWS -index ee5b4ff11..6cd13429a 100644 ---- a/NEWS -+++ b/NEWS -@@ -5,6 +5,8 @@ Branch 3.22 - - The following bugs have been fixed or resolved on this branch. - -+476548 valgrind 3.22.0 fails on assertion when loading debuginfo -+ file produced by mold - 476708 valgrind-monitor.py regular expressions should use raw strings - - To see details of a given bug, visit -diff --git a/coregrind/m_debuginfo/image.c b/coregrind/m_debuginfo/image.c -index 02e509071..445f95555 100644 ---- a/coregrind/m_debuginfo/image.c -+++ b/coregrind/m_debuginfo/image.c -@@ -1221,6 +1221,20 @@ Int ML_(img_strcmp_c)(DiImage* img, DiOffT off1, const HChar* str2) - } - } - -+Int ML_(img_strcmp_n)(DiImage* img, DiOffT off1, const HChar* str2, Word n) -+{ -+ ensure_valid(img, off1, 1, "ML_(img_strcmp_c)"); -+ while (n) { -+ UChar c1 = get(img, off1); -+ UChar c2 = *(const UChar*)str2; -+ if (c1 < c2) return -1; -+ if (c1 > c2) return 1; -+ if (c1 == 0) return 0; -+ off1++; str2++; --n; -+ } -+ return 0; -+} -+ - UChar ML_(img_get_UChar)(DiImage* img, DiOffT offset) - { - ensure_valid(img, offset, 1, "ML_(img_get_UChar)"); -diff --git a/coregrind/m_debuginfo/priv_image.h b/coregrind/m_debuginfo/priv_image.h -index a49846f14..c91e49f01 100644 ---- a/coregrind/m_debuginfo/priv_image.h -+++ b/coregrind/m_debuginfo/priv_image.h -@@ -115,6 +115,10 @@ Int ML_(img_strcmp)(DiImage* img, DiOffT off1, DiOffT off2); - cast to HChar before comparison. */ - Int ML_(img_strcmp_c)(DiImage* img, DiOffT off1, const HChar* str2); - -+/* Do strncmp of a C string in the image vs a normal one. Chars are -+ cast to HChar before comparison. */ -+Int ML_(img_strcmp_n)(DiImage* img, DiOffT off1, const HChar* str2, Word n); -+ - /* Do strlen of a C string in the image. */ - SizeT ML_(img_strlen)(DiImage* img, DiOffT off); - -diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c -index fb64ed976..46f8c8343 100644 ---- a/coregrind/m_debuginfo/readelf.c -+++ b/coregrind/m_debuginfo/readelf.c -@@ -2501,8 +2501,7 @@ Bool ML_(read_elf_object) ( struct _DebugInfo* di ) - di->rodata_avma += inrw1->bias; - di->rodata_bias = inrw1->bias; - di->rodata_debug_bias = inrw1->bias; -- } -- else { -+ } else { - BAD(".rodata"); /* should not happen? */ - } - di->rodata_present = True; -@@ -2977,6 +2976,46 @@ Bool ML_(read_elf_object) ( struct _DebugInfo* di ) - return retval; - } - -+static void find_rodata(Word i, Word shnum, DiImage* dimg, struct _DebugInfo* di, DiOffT shdr_dioff, -+ UWord shdr_dent_szB, DiOffT shdr_strtab_dioff, PtrdiffT rw_dbias) -+{ -+ ElfXX_Shdr a_shdr; -+ ElfXX_Shdr a_extra_shdr; -+ ML_(img_get)(&a_shdr, dimg, -+ INDEX_BIS(shdr_dioff, i, shdr_dent_szB), -+ sizeof(a_shdr)); -+ if (di->rodata_present && -+ 0 == ML_(img_strcmp_c)(dimg, shdr_strtab_dioff -+ + a_shdr.sh_name, ".rodata")) { -+ Word sh_size = a_shdr.sh_size; -+ Word j; -+ Word next_addr = a_shdr.sh_addr + a_shdr.sh_size; -+ for (j = i + 1; j < shnum; ++j) { -+ ML_(img_get)(&a_extra_shdr, dimg, -+ INDEX_BIS(shdr_dioff, j, shdr_dent_szB), -+ sizeof(a_shdr)); -+ if (0 == ML_(img_strcmp_n)(dimg, shdr_strtab_dioff -+ + a_extra_shdr.sh_name, ".rodata", 7)) { -+ if (a_extra_shdr.sh_addr == -+ VG_ROUNDUP(next_addr, a_extra_shdr.sh_addralign)) { -+ sh_size = VG_ROUNDUP(sh_size, a_extra_shdr.sh_addralign) + a_extra_shdr.sh_size; -+ } -+ next_addr = a_extra_shdr.sh_addr + a_extra_shdr.sh_size; -+ } else { -+ break; -+ } -+ } -+ vg_assert(di->rodata_size == sh_size); -+ vg_assert(di->rodata_avma + a_shdr.sh_addr + rw_dbias); -+ di->rodata_debug_svma = a_shdr.sh_addr; -+ di->rodata_debug_bias = di->rodata_bias + -+ di->rodata_svma - di->rodata_debug_svma; -+ TRACE_SYMTAB("acquiring .rodata debug svma = %#lx .. %#lx\n", -+ di->rodata_debug_svma, -+ di->rodata_debug_svma + di->rodata_size - 1); -+ TRACE_SYMTAB("acquiring .rodata debug bias = %#lx\n", (UWord)di->rodata_debug_bias); -+ } -+} - Bool ML_(read_elf_debug) ( struct _DebugInfo* di ) - { - Word i, j; -@@ -3391,7 +3430,11 @@ Bool ML_(read_elf_debug) ( struct _DebugInfo* di ) - FIND(text, rx) - FIND(data, rw) - FIND(sdata, rw) -- FIND(rodata, rw) -+ // https://bugs.kde.org/show_bug.cgi?id=476548 -+ // special handling for rodata as adjacent -+ // rodata sections may have been merged in ML_(read_elf_object) -+ //FIND(rodata, rw) -+ find_rodata(i, ehdr_dimg.e_shnum, dimg, di, shdr_dioff, shdr_dent_szB, shdr_strtab_dioff, rw_dbias); - FIND(bss, rw) - FIND(sbss, rw) - --- -2.43.0 - diff --git a/dev-debug/valgrind/files/0003-Add-fchmodat2-syscall-on-linux.patch b/dev-debug/valgrind/files/0003-Add-fchmodat2-syscall-on-linux.patch deleted file mode 100644 index 568cc5302b63..000000000000 --- a/dev-debug/valgrind/files/0003-Add-fchmodat2-syscall-on-linux.patch +++ /dev/null @@ -1,218 +0,0 @@ -From a43e62dddcf51ec6578a90c5988a41e856b44b05 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard <mark@klomp.org> -Date: Sat, 18 Nov 2023 21:17:02 +0100 -Subject: [PATCH 3/4] Add fchmodat2 syscall on linux - -fchmodat2 is a new syscall on linux 6.6. It is a variant of fchmodat -that takes an extra flags argument. - -https://bugs.kde.org/show_bug.cgi?id=477198 - -(cherry picked from commit 372d09fd9a8d76847c81092ebff71c80fd6c145d) ---- - NEWS | 1 + - coregrind/m_syswrap/priv_syswrap-linux.h | 3 +++ - coregrind/m_syswrap/syswrap-amd64-linux.c | 2 ++ - coregrind/m_syswrap/syswrap-arm-linux.c | 2 ++ - coregrind/m_syswrap/syswrap-arm64-linux.c | 2 ++ - coregrind/m_syswrap/syswrap-linux.c | 11 +++++++++++ - coregrind/m_syswrap/syswrap-mips32-linux.c | 2 ++ - coregrind/m_syswrap/syswrap-mips64-linux.c | 1 + - coregrind/m_syswrap/syswrap-nanomips-linux.c | 1 + - coregrind/m_syswrap/syswrap-ppc32-linux.c | 2 ++ - coregrind/m_syswrap/syswrap-ppc64-linux.c | 2 ++ - coregrind/m_syswrap/syswrap-s390x-linux.c | 2 ++ - coregrind/m_syswrap/syswrap-x86-linux.c | 2 ++ - include/vki/vki-scnums-shared-linux.h | 2 ++ - 14 files changed, 35 insertions(+) - -diff --git a/NEWS b/NEWS -index 6cd13429a..da0f8c1aa 100644 ---- a/NEWS -+++ b/NEWS -@@ -8,6 +8,7 @@ The following bugs have been fixed or resolved on this branch. - 476548 valgrind 3.22.0 fails on assertion when loading debuginfo - file produced by mold - 476708 valgrind-monitor.py regular expressions should use raw strings -+477198 Add fchmodat2 syscall on linux - - To see details of a given bug, visit - https://bugs.kde.org/show_bug.cgi?id=XXXXXX -diff --git a/coregrind/m_syswrap/priv_syswrap-linux.h b/coregrind/m_syswrap/priv_syswrap-linux.h -index 7c9decf5a..798c456c9 100644 ---- a/coregrind/m_syswrap/priv_syswrap-linux.h -+++ b/coregrind/m_syswrap/priv_syswrap-linux.h -@@ -331,6 +331,9 @@ DECL_TEMPLATE(linux, sys_openat2); - // Linux-specific (new in Linux 5.14) - DECL_TEMPLATE(linux, sys_memfd_secret); - -+// Since Linux 6.6 -+DECL_TEMPLATE(linux, sys_fchmodat2); -+ - /* --------------------------------------------------------------------- - Wrappers for sockets and ipc-ery. These are split into standalone - procedures because x86-linux hides them inside multiplexors -diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c -index 008600798..fe17d118b 100644 ---- a/coregrind/m_syswrap/syswrap-amd64-linux.c -+++ b/coregrind/m_syswrap/syswrap-amd64-linux.c -@@ -886,6 +886,8 @@ static SyscallTableEntry syscall_table[] = { - LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441 - - LINXY(__NR_memfd_secret, sys_memfd_secret), // 447 -+ -+ LINX_(__NR_fchmodat2, sys_fchmodat2), // 452 - }; - - SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno ) -diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c -index 9a7a1e0d2..811931d3b 100644 ---- a/coregrind/m_syswrap/syswrap-arm-linux.c -+++ b/coregrind/m_syswrap/syswrap-arm-linux.c -@@ -1059,6 +1059,8 @@ static SyscallTableEntry syscall_main_table[] = { - LINX_(__NR_faccessat2, sys_faccessat2), // 439 - - LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441 -+ -+ LINX_(__NR_fchmodat2, sys_fchmodat2), // 452 - }; - - -diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c -index 6af7bab83..3307bc2ca 100644 ---- a/coregrind/m_syswrap/syswrap-arm64-linux.c -+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c -@@ -840,6 +840,8 @@ static SyscallTableEntry syscall_main_table[] = { - LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441 - - LINXY(__NR_memfd_secret, sys_memfd_secret), // 447 -+ -+ LINX_(__NR_fchmodat2, sys_fchmodat2), // 452 - }; - - -diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c -index d571fc327..efa47f2e6 100644 ---- a/coregrind/m_syswrap/syswrap-linux.c -+++ b/coregrind/m_syswrap/syswrap-linux.c -@@ -6059,6 +6059,17 @@ PRE(sys_fchmodat) - PRE_MEM_RASCIIZ( "fchmodat(path)", ARG2 ); - } - -+PRE(sys_fchmodat2) -+{ -+ PRINT("sys_fchmodat2 ( %ld, %#" FMT_REGWORD "x(%s), %" FMT_REGWORD "u, %" -+ FMT_REGWORD "u )", -+ SARG1, ARG2, (HChar*)(Addr)ARG2, ARG3, ARG4); -+ PRE_REG_READ4(long, "fchmodat2", -+ int, dfd, const char *, path, vki_mode_t, mode, -+ unsigned int, flags); -+ PRE_MEM_RASCIIZ( "fchmodat2(pathname)", ARG2 ); -+} -+ - PRE(sys_faccessat) - { - PRINT("sys_faccessat ( %ld, %#" FMT_REGWORD "x(%s), %ld )", -diff --git a/coregrind/m_syswrap/syswrap-mips32-linux.c b/coregrind/m_syswrap/syswrap-mips32-linux.c -index 6268a00dd..74a1f6eac 100644 ---- a/coregrind/m_syswrap/syswrap-mips32-linux.c -+++ b/coregrind/m_syswrap/syswrap-mips32-linux.c -@@ -1143,6 +1143,8 @@ static SyscallTableEntry syscall_main_table[] = { - LINX_ (__NR_faccessat2, sys_faccessat2), // 439 - - LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441 -+ -+ LINX_(__NR_fchmodat2, sys_fchmodat2), // 452 - }; - - SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno) -diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c -index 6cdf25893..4e8508b7a 100644 ---- a/coregrind/m_syswrap/syswrap-mips64-linux.c -+++ b/coregrind/m_syswrap/syswrap-mips64-linux.c -@@ -820,6 +820,7 @@ static SyscallTableEntry syscall_main_table[] = { - LINXY (__NR_close_range, sys_close_range), - LINX_ (__NR_faccessat2, sys_faccessat2), - LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), -+ LINX_ (__NR_fchmodat2, sys_fchmodat2), - }; - - SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno ) -diff --git a/coregrind/m_syswrap/syswrap-nanomips-linux.c b/coregrind/m_syswrap/syswrap-nanomips-linux.c -index d724cde74..7859900c1 100644 ---- a/coregrind/m_syswrap/syswrap-nanomips-linux.c -+++ b/coregrind/m_syswrap/syswrap-nanomips-linux.c -@@ -829,6 +829,7 @@ static SyscallTableEntry syscall_main_table[] = { - LINXY (__NR_close_range, sys_close_range), - LINX_ (__NR_faccessat2, sys_faccessat2), - LINXY (__NR_epoll_pwait2, sys_epoll_pwait2), -+ LINX_ (__NR_fchmodat2, sys_fchmodat2), - }; - - SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno) -diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c -index c0cfef235..1e19116ee 100644 ---- a/coregrind/m_syswrap/syswrap-ppc32-linux.c -+++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c -@@ -1063,6 +1063,8 @@ static SyscallTableEntry syscall_table[] = { - LINX_(__NR_faccessat2, sys_faccessat2), // 439 - - LINXY (__NR_epoll_pwait2, sys_epoll_pwait2), // 441 -+ -+ LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452 - }; - - SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno ) -diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c -index f5976f30c..1097212a4 100644 ---- a/coregrind/m_syswrap/syswrap-ppc64-linux.c -+++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c -@@ -1032,6 +1032,8 @@ static SyscallTableEntry syscall_table[] = { - LINX_(__NR_faccessat2, sys_faccessat2), // 439 - - LINXY (__NR_epoll_pwait2, sys_epoll_pwait2), // 441 -+ -+ LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452 - }; - - SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno ) -diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c -index afba154e7..3588672c7 100644 ---- a/coregrind/m_syswrap/syswrap-s390x-linux.c -+++ b/coregrind/m_syswrap/syswrap-s390x-linux.c -@@ -873,6 +873,8 @@ static SyscallTableEntry syscall_table[] = { - LINX_(__NR_faccessat2, sys_faccessat2), // 439 - - LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441 -+ -+ LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452 - }; - - SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno ) -diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c -index da4fd8fa2..58badc6b0 100644 ---- a/coregrind/m_syswrap/syswrap-x86-linux.c -+++ b/coregrind/m_syswrap/syswrap-x86-linux.c -@@ -1658,6 +1658,8 @@ static SyscallTableEntry syscall_table[] = { - LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441 - - LINXY(__NR_memfd_secret, sys_memfd_secret), // 447 -+ -+ LINX_(__NR_fchmodat2, sys_fchmodat2), // 452 - }; - - SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno ) -diff --git a/include/vki/vki-scnums-shared-linux.h b/include/vki/vki-scnums-shared-linux.h -index 542382b53..a4cd87149 100644 ---- a/include/vki/vki-scnums-shared-linux.h -+++ b/include/vki/vki-scnums-shared-linux.h -@@ -50,4 +50,6 @@ - - #define __NR_memfd_secret 447 - -+#define __NR_fchmodat2 452 -+ - #endif --- -2.43.0 - diff --git a/dev-debug/valgrind/files/0004-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch b/dev-debug/valgrind/files/0004-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch deleted file mode 100644 index a1413916ea73..000000000000 --- a/dev-debug/valgrind/files/0004-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch +++ /dev/null @@ -1,151 +0,0 @@ -From 41ff9aa49f6c54c66d0e6b37f265fd9cb0176057 Mon Sep 17 00:00:00 2001 -From: Paul Floyd <pjfloyd@wanadoo.fr> -Date: Sun, 17 Dec 2023 14:18:51 +0100 -Subject: [PATCH 4/4] Bug 478624 - Valgrind incompatibility with binutils-2.42 - on x86 with new nop patterns (unhandled instruction bytes: 0x2E 0x8D 0xB4 - 0x26) - -It was a bit of a struggle to get the testcase to build -with both clang and gcc (oddly enough gcc was more difficult) so -I just resorted to using .byte arrays. - -(cherry picked from commit d35005cef8ad8207542738812705ceabf137d7e0) ---- - NEWS | 2 ++ - VEX/priv/guest_x86_toIR.c | 22 +++++++++++++- - none/tests/x86/Makefile.am | 2 ++ - none/tests/x86/gnu_binutils_nop.c | 34 ++++++++++++++++++++++ - none/tests/x86/gnu_binutils_nop.stderr.exp | 0 - none/tests/x86/gnu_binutils_nop.vgtest | 2 ++ - 7 files changed, 62 insertions(+), 1 deletion(-) - create mode 100644 none/tests/x86/gnu_binutils_nop.c - create mode 100644 none/tests/x86/gnu_binutils_nop.stderr.exp - create mode 100644 none/tests/x86/gnu_binutils_nop.vgtest - -diff --git a/NEWS b/NEWS -index da0f8c1aa..86b0fe6b5 100644 ---- a/NEWS -+++ b/NEWS -@@ -9,6 +9,8 @@ The following bugs have been fixed or resolved on this branch. - file produced by mold - 476708 valgrind-monitor.py regular expressions should use raw strings - 477198 Add fchmodat2 syscall on linux -+478624 Valgrind incompatibility with binutils-2.42 on x86 with new nop patterns -+ (unhandled instruction bytes: 0x2E 0x8D 0xB4 0x26) - - To see details of a given bug, visit - https://bugs.kde.org/show_bug.cgi?id=XXXXXX -diff --git a/VEX/priv/guest_x86_toIR.c b/VEX/priv/guest_x86_toIR.c -index 5d6e6dc64..3b6efb387 100644 ---- a/VEX/priv/guest_x86_toIR.c -+++ b/VEX/priv/guest_x86_toIR.c -@@ -8198,7 +8198,7 @@ DisResult disInstr_X86_WRK ( - delta += 5; - goto decode_success; - } -- /* Don't barf on recent binutils padding, -+ /* Don't barf on recent (2010) binutils padding, - all variants of which are: nopw %cs:0x0(%eax,%eax,1) - 66 2e 0f 1f 84 00 00 00 00 00 - 66 66 2e 0f 1f 84 00 00 00 00 00 -@@ -8223,6 +8223,26 @@ DisResult disInstr_X86_WRK ( - } - } - -+ /* bug478624 GNU binutils uses a leal of esi into itself with -+ a zero offset and CS prefix as an 8 byte no-op (Dec 2023). -+ Since the CS prefix is hardly ever used we don't do much -+ to decode it, just a few cases for conditional branches. -+ So add handling here with other pseudo-no-ops. -+ */ -+ if (code[0] == 0x2E && code[1] == 0x8D) { -+ if (code[2] == 0x74 && code[3] == 0x26 && code[4] == 0x00) { -+ DIP("leal %%cs:0(%%esi,%%eiz,1),%%esi\n"); -+ delta += 5; -+ goto decode_success; -+ } -+ if (code[2] == 0xB4 && code[3] == 0x26 && code[4] == 0x00 -+ && code[5] == 0x00 && code[6] == 0x00 && code[7] == 0x00) { -+ DIP("leal %%cs:0(%%esi,%%eiz,1),%%esi\n"); -+ delta += 8; -+ goto decode_success; -+ } -+ } -+ - // Intel CET requires the following opcodes to be treated as NOPs - // with any prefix and ModRM, SIB and disp combination: - // "0F 19", "0F 1C", "0F 1D", "0F 1E", "0F 1F" -diff --git a/none/tests/x86/Makefile.am b/none/tests/x86/Makefile.am -index 3ecd1ad3c..dbae86571 100644 ---- a/none/tests/x86/Makefile.am -+++ b/none/tests/x86/Makefile.am -@@ -52,6 +52,7 @@ EXTRA_DIST = \ - fxtract.stdout.exp fxtract.stderr.exp fxtract.vgtest \ - fxtract.stdout.exp-older-glibc \ - getseg.stdout.exp getseg.stderr.exp getseg.vgtest \ -+ gnu_binutils_nop.stderr.exp gnu_binutils_nop.vgtest \ - incdec_alt.stdout.exp incdec_alt.stderr.exp incdec_alt.vgtest \ - int.stderr.exp int.stdout.exp int.disabled \ - $(addsuffix .stderr.exp,$(INSN_TESTS)) \ -@@ -100,6 +101,7 @@ check_PROGRAMS = \ - fpu_lazy_eflags \ - fxtract \ - getseg \ -+ gnu_binutils_nop \ - incdec_alt \ - $(INSN_TESTS) \ - int \ -diff --git a/none/tests/x86/gnu_binutils_nop.c b/none/tests/x86/gnu_binutils_nop.c -new file mode 100644 -index 000000000..412a4c2cb ---- /dev/null -+++ b/none/tests/x86/gnu_binutils_nop.c -@@ -0,0 +1,34 @@ -+int main(void) -+{ -+ // GNU binutils uses various opcodes as alternatives for nop -+ // the idea is that it is faster to execute one large opcode -+ // with no side-effects than multiple repetitions of the -+ // single byte 'nop'. This gives more choice when code -+ // needs to be padded. -+ -+ // the following is based on -+ // https://sourceware.org/cgit/binutils-gdb/tree/gas/config/tc-i386.c#n1256 -+ -+ // one byte -+ __asm__ __volatile__("nop"); -+ // two bytes -+ __asm__ __volatile__("xchg %ax,%ax"); -+ // three bytes -+ //__asm__ __volatile__("leal 0(%esi),%esi"); -+ __asm__ __volatile__(".byte 0x8d,0x76,0x00"); -+ // four bytes -+ //__asm__ __volatile__("leal 0(%esi,%eiz),%esi"); -+ __asm__ __volatile__(".byte 0x8d,0x74,0x26,0x00"); -+ // five bytes -+ //__asm__ __volatile__("leal %cs:0(%esi,%eiz),%esi"); -+ __asm__ __volatile__(".byte 0x2e,0x8d,0x74,0x26,0x00"); -+ // six bytes -+ //__asm__ __volatile__("leal 0L(%esi),%esi"); -+ __asm__ __volatile__(".byte 0x8d,0xb6,0x00,0x00,0x00,0x00"); -+ // seven bytes -+ //__asm__ __volatile__("leal 0L(%esi,%eiz),%esi"); -+ __asm__ __volatile__(".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00"); -+ // eight bytes -+ //__asm__ __volatile__("leal %cs:0L(%esi,%eiz),%esi"); -+ __asm__ __volatile__(".byte 0x2e,0x8d,0xb4,0x26,0x00,0x00,0x00,0x00"); -+} -diff --git a/none/tests/x86/gnu_binutils_nop.stderr.exp b/none/tests/x86/gnu_binutils_nop.stderr.exp -new file mode 100644 -index 000000000..e69de29bb -diff --git a/none/tests/x86/gnu_binutils_nop.vgtest b/none/tests/x86/gnu_binutils_nop.vgtest -new file mode 100644 -index 000000000..7f378dd53 ---- /dev/null -+++ b/none/tests/x86/gnu_binutils_nop.vgtest -@@ -0,0 +1,2 @@ -+prog: gnu_binutils_nop -+vgopts: -q --- -2.43.0 - diff --git a/dev-debug/valgrind/files/valgrind-3.21.0-memcpy-fortify_source.patch b/dev-debug/valgrind/files/valgrind-3.21.0-memcpy-fortify_source.patch deleted file mode 100644 index 87acc9ff9f55..000000000000 --- a/dev-debug/valgrind/files/valgrind-3.21.0-memcpy-fortify_source.patch +++ /dev/null @@ -1,26 +0,0 @@ -Avoid false positives w/ overlapping memcpy args with _FORTIFY_SOURCE's -memcpy_chk. - -https://src.fedoraproject.org/rpms/valgrind/raw/rawhide/f/valgrind-3.21.0-no-memcpy-replace-check.patch -https://bugs.kde.org/show_bug.cgi?id=402833 -https://bugs.kde.org/show_bug.cgi?id=453084 ---- a/shared/vg_replace_strmem.c -+++ b/shared/vg_replace_strmem.c -@@ -1128,7 +1128,7 @@ static inline void my_exit ( int x ) - MEMMOVE_OR_MEMCPY(20181, soname, fnname, 0) - - #define MEMCPY(soname, fnname) \ -- MEMMOVE_OR_MEMCPY(20180, soname, fnname, 1) -+ MEMMOVE_OR_MEMCPY(20180, soname, fnname, 0) /* See KDE bug #402833 */ - - #if defined(VGO_linux) - /* For older memcpy we have to use memmove-like semantics and skip -@@ -1714,8 +1714,6 @@ static inline void my_exit ( int x ) - RECORD_COPY(len); \ - if (len == 0) \ - return dst; \ -- if (is_overlap(dst, src, len, len)) \ -- RECORD_OVERLAP_ERROR("memcpy_chk", dst, src, len); \ - if ( dst > src ) { \ - d = (HChar *)dst + len - 1; \ - s = (const HChar *)src + len - 1; \ diff --git a/dev-debug/valgrind/valgrind-3.22.0-r2.ebuild b/dev-debug/valgrind/valgrind-3.22.0-r2.ebuild deleted file mode 100644 index 659c7970cf65..000000000000 --- a/dev-debug/valgrind/valgrind-3.22.0-r2.ebuild +++ /dev/null @@ -1,165 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# The Valgrind upstream maintainer also maintains it in Fedora and will -# backport fixes there which haven't yet made it into a release. Keep an eye -# on it for fixes we should cherry-pick too: -# https://src.fedoraproject.org/rpms/valgrind/tree/rawhide -# -# Also check the ${PV}_STABLE branch upstream for backports. - -inherit autotools flag-o-matic toolchain-funcs multilib pax-utils - -DESCRIPTION="An open-source memory debugger for GNU/Linux" -HOMEPAGE="https://valgrind.org" -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://sourceware.org/git/${PN}.git" - inherit git-r3 -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/valgrind.gpg - inherit verify-sig - - MY_P="${P/_rc/.RC}" - SRC_URI="https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2" - SRC_URI+=" verify-sig? ( https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2.asc )" - S="${WORKDIR}"/${MY_P} - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="-* amd64 arm arm64 ppc ppc64 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" - fi -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="mpi" - -DEPEND="mpi? ( virtual/mpi )" -RDEPEND="${DEPEND}" -if [[ ${PV} != 9999 ]] ; then - BDEPEND="verify-sig? ( sec-keys/openpgp-keys-valgrind )" -fi - -PATCHES=( - # Respect CFLAGS, LDFLAGS - "${FILESDIR}"/${PN}-3.7.0-respect-flags.patch - "${FILESDIR}"/${PN}-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch - "${FILESDIR}"/${PN}-3.21.0-glibc-2.34-suppressions.patch - # From stable branch - "${FILESDIR}"/0001-valgrind-monitor.py-regular-expressions-should-use-r.patch - "${FILESDIR}"/0002-Bug-476548-valgrind-3.22.0-fails-on-assertion-when-l.patch - "${FILESDIR}"/0003-Add-fchmodat2-syscall-on-linux.patch - "${FILESDIR}"/0004-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch -) - -QA_CONFIG_IMPL_DECL_SKIP+=( - # "checking if gcc accepts nested functions" but clang cannot handle good - # errors and reports both "function definition is not allowed here" and - # -Wimplicit-function-declaration. bug #900396 - foo -) - -src_prepare() { - # Correct hard coded doc location - sed -i -e "s:doc/valgrind:doc/${PF}:" docs/Makefile.am || die - - # Don't force multiarch stuff on OSX, bug #306467 - sed -i -e 's:-arch \(i386\|x86_64\)::g' Makefile.all.am || die - - if [[ ${CHOST} == *-solaris* ]] ; then - # upstream doesn't support this, but we don't build with - # Sun/Oracle ld, we have a GNU toolchain, so get some things - # working the Linux/GNU way - find "${S}" -name "Makefile.am" -o -name "Makefile.tool.am" | xargs \ - sed -i -e 's:-M,/usr/lib/ld/map.noexstk:-z,noexecstack:' || die - cp "${S}"/coregrind/link_tool_exe_{linux,solaris}.in - fi - - default - - eautoreconf -} - -src_configure() { - local myconf=( - --with-gdbscripts-dir="${EPREFIX}"/usr/share/gdb/auto-load - ) - - # Respect ar, bug #468114 - tc-export AR - - # -fomit-frame-pointer "Assembler messages: Error: junk `8' after expression" - # while compiling insn_sse.c in none/tests/x86 - # -fstack-protector more undefined references to __guard and __stack_smash_handler - # because valgrind doesn't link to glibc (bug #114347) - # -fstack-protector-all Fails same way as -fstack-protector/-fstack-protector-strong. - # Note: -fstack-protector-explicit is a no-op for Valgrind, no need to strip it - # -fstack-protector-strong See -fstack-protector (bug #620402) - # -m64 -mx32 for multilib-portage, bug #398825 - # -fharden-control-flow-redundancy: breaks runtime ('jump to the invalid address stated on the next line') - # -flto* fails to build, bug #858509 - filter-flags -fomit-frame-pointer - filter-flags -fstack-protector - filter-flags -fstack-protector-all - filter-flags -fstack-protector-strong - filter-flags -m64 -mx32 - filter-flags -fsanitize -fsanitize=* - filter-flags -fharden-control-flow-redundancy - append-cflags $(test-flags-CC -fno-harden-control-flow-redundancy) - filter-lto - - if use amd64 || use ppc64; then - ! has_multilib_profile && myconf+=("--enable-only64bit") - fi - - # Force bitness on darwin, bug #306467 - use x64-macos && myconf+=("--enable-only64bit") - - # Don't use mpicc unless the user asked for it (bug #258832) - if ! use mpi; then - myconf+=("--without-mpicc") - fi - - econf "${myconf[@]}" -} - -src_test() { - # fxsave.o, tronical.o have textrels - emake LDFLAGS="${LDFLAGS} -Wl,-z,notext" check -} - -src_install() { - default - - if [[ ${PV} == "9999" ]]; then - # Otherwise FAQ.txt won't exist: - emake -C docs FAQ.txt - mv docs/FAQ.txt . || die "Couldn't move FAQ.txt" - fi - - dodoc FAQ.txt - - pax-mark m "${ED}"/usr/$(get_libdir)/valgrind/*-*-linux - - # See README_PACKAGERS - dostrip -x /usr/libexec/valgrind/vgpreload* /usr/$(get_libdir)/valgrind/* - - if [[ ${CHOST} == *-darwin* ]] ; then - # fix install_names on shared libraries, can't turn them into bundles, - # as dyld won't load them any more then, bug #306467 - local l - for l in "${ED}"/usr/lib/valgrind/*.so ; do - install_name_tool -id "${EPREFIX}"/usr/lib/valgrind/${l##*/} "${l}" - done - fi -} - -pkg_postinst() { - elog "Valgrind will not work if libc (e.g. glibc) does not have debug symbols." - elog "To fix this you can add splitdebug to FEATURES in make.conf" - elog "and remerge glibc. See:" - elog "https://bugs.gentoo.org/214065" - elog "https://bugs.gentoo.org/274771" - elog "https://bugs.gentoo.org/388703" -} diff --git a/dev-debug/valgrind/valgrind-3.23.0_p2.ebuild b/dev-debug/valgrind/valgrind-3.23.0_p2.ebuild deleted file mode 100644 index 7986a840f399..000000000000 --- a/dev-debug/valgrind/valgrind-3.23.0_p2.ebuild +++ /dev/null @@ -1,193 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# The Valgrind upstream maintainer also maintains it in Fedora and will -# backport fixes there which haven't yet made it into a release. Keep an eye -# on it for fixes we should cherry-pick too: -# https://src.fedoraproject.org/rpms/valgrind/tree/rawhide -# -# Also check the ${PV}_STABLE branch upstream for backports. - -inherit autotools flag-o-matic toolchain-funcs multilib pax-utils - -DESCRIPTION="An open-source memory debugger for GNU/Linux" -HOMEPAGE="https://valgrind.org" - -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://sourceware.org/git/${PN}.git" - inherit git-r3 -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/valgrind.gpg - inherit verify-sig - - MY_P="${P/_rc/.RC}" - MY_P="${MY_P%%_p*}" - VALGRIND_PATCH_TARBALL="${MY_P}-patches-2" - SRC_URI=" - https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2 - verify-sig? ( https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2.asc ) - " - # Rollups of backports on ${PV}_STABLE branch upstream. - if [[ ${PV} == *_p* ]] ; then - SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${VALGRIND_PATCH_TARBALL}.tar.xz" - fi - - S="${WORKDIR}"/${MY_P} - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" - fi -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="mpi" - -DEPEND="mpi? ( virtual/mpi )" -RDEPEND="${DEPEND}" -if [[ ${PV} == 9999 ]] ; then - # Needed for man pages - BDEPEND+=" - app-text/docbook-xsl-stylesheets - dev-libs/libxslt - " -else - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-valgrind )" -fi - -PATCHES=( - # Respect CFLAGS, LDFLAGS - "${FILESDIR}"/${PN}-3.7.0-respect-flags.patch - "${FILESDIR}"/${PN}-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch - "${FILESDIR}"/${PN}-3.21.0-glibc-2.34-suppressions.patch -) - -QA_CONFIG_IMPL_DECL_SKIP+=( - # "checking if gcc accepts nested functions" but clang cannot handle good - # errors and reports both "function definition is not allowed here" and - # -Wimplicit-function-declaration. bug #900396 - foo -) - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - elif use verify-sig ; then - # Needed for downloaded patch (which is unsigned, which is fine) - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.bz2{,.asc} - fi - - default -} - -src_prepare() { - # Correct hard coded doc location - sed -i -e "s:doc/valgrind:doc/${PF}:" docs/Makefile.am || die - - # Don't force multiarch stuff on OSX, bug #306467 - sed -i -e 's:-arch \(i386\|x86_64\)::g' Makefile.all.am || die - - if [[ ${CHOST} == *-solaris* ]] ; then - # upstream doesn't support this, but we don't build with - # Sun/Oracle ld, we have a GNU toolchain, so get some things - # working the Linux/GNU way - find "${S}" -name "Makefile.am" -o -name "Makefile.tool.am" | xargs \ - sed -i -e 's:-M,/usr/lib/ld/map.noexstk:-z,noexecstack:' || die - cp "${S}"/coregrind/link_tool_exe_{linux,solaris}.in - fi - - if [[ ${PV} != 9999 && -d "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ]] ; then - PATCHES+=( "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ) - fi - - default - - eautoreconf -} - -src_configure() { - local myconf=( - --with-gdbscripts-dir="${EPREFIX}"/usr/share/gdb/auto-load - ) - - tc-is-lto && myconf+=( --enable-lto ) - - # Respect ar, bug #468114 - tc-export AR - - # -fomit-frame-pointer "Assembler messages: Error: junk `8' after expression" - # while compiling insn_sse.c in none/tests/x86 - # -fstack-protector more undefined references to __guard and __stack_smash_handler - # because valgrind doesn't link to glibc (bug #114347) - # -fstack-protector-all Fails same way as -fstack-protector/-fstack-protector-strong. - # Note: -fstack-protector-explicit is a no-op for Valgrind, no need to strip it - # -fstack-protector-strong See -fstack-protector (bug #620402) - # -m64 -mx32 for multilib-portage, bug #398825 - # -fharden-control-flow-redundancy: breaks runtime ('jump to the invalid address stated on the next line') - filter-flags -fomit-frame-pointer - filter-flags -fstack-protector - filter-flags -fstack-protector-all - filter-flags -fstack-protector-strong - filter-flags -m64 -mx32 - filter-flags -fsanitize -fsanitize=* - filter-flags -fharden-control-flow-redundancy - append-cflags $(test-flags-CC -fno-harden-control-flow-redundancy) - filter-lto - - if use amd64 || use ppc64; then - ! has_multilib_profile && myconf+=("--enable-only64bit") - fi - - # Force bitness on darwin, bug #306467 - use x64-macos && myconf+=("--enable-only64bit") - - # Don't use mpicc unless the user asked for it (bug #258832) - if ! use mpi; then - myconf+=("--without-mpicc") - fi - - econf "${myconf[@]}" -} - -src_test() { - # fxsave.o, tronical.o have textrels - # -fno-strict-aliasing: https://bugs.kde.org/show_bug.cgi?id=486093 - emake CFLAGS="${CFLAGS} -fno-strict-aliasing" LDFLAGS="${LDFLAGS} -Wl,-z,notext" check -} - -src_install() { - if [[ ${PV} == 9999 ]]; then - # TODO: Could do HTML docs too with 'all-docs' - emake -C docs man-pages FAQ.txt - mv docs/FAQ.txt . || die "Couldn't move FAQ.txt" - fi - - default - - dodoc FAQ.txt - - pax-mark m "${ED}"/usr/$(get_libdir)/valgrind/*-*-linux - - # See README_PACKAGERS - dostrip -x /usr/libexec/valgrind/vgpreload* /usr/$(get_libdir)/valgrind/* - - if [[ ${CHOST} == *-darwin* ]] ; then - # fix install_names on shared libraries, can't turn them into bundles, - # as dyld won't load them any more then, bug #306467 - local l - for l in "${ED}"/usr/lib/valgrind/*.so ; do - install_name_tool -id "${EPREFIX}"/usr/lib/valgrind/${l##*/} "${l}" - done - fi -} - -pkg_postinst() { - elog "Valgrind will not work if libc (e.g. glibc) does not have debug symbols." - elog "To fix this you can add splitdebug to FEATURES in make.conf" - elog "and remerge glibc. See:" - elog "https://bugs.gentoo.org/214065" - elog "https://bugs.gentoo.org/274771" - elog "https://bugs.gentoo.org/388703" -} |