Hi,
From: Martijn van Duren <openbsd+ports@list.imperialat.at>
Date: Mon, 14 Sep 2020 10:43:28 +0200
> I did some bisecting and it seems that the update to clang 10 broke
> valgrind. Specifically /usr/local/lib/valgrind/memcheck-amd64-openbsd:
>
> $ ktrace -i /usr/local/lib/valgrind/memcheck-amd64-openbsd
> Abort trap
> $ kdump
> 12913 ktrace RET ktrace 0
> 12913 ktrace CALL execve(0x7f7ffffc6fca,0x7f7ffffc6e68,0x7f7ffffc6e78)
> 12913 ktrace NAMI "/usr/local/lib/valgrind/memcheck-amd64-openbsd"
> 12913 ktrace ARGS
> [0] = "/usr/local/lib/valgrind/memcheck-amd64-openbsd"
Now, I am debugging this problem.
> Compiling valgrind with CC=gcc gives the same result, so my guess is
> that the linker does something unexpected.
Your guess is correct.
Anyway, the following changes seems to work correctly.
I will report the patch to this mailing list in the next few days.
--- a/devel/valgrind/patches/patch-coregrind_link_tool_exe_openbsd_in
+++ b/devel/valgrind/patches/patch-coregrind_link_tool_exe_openbsd_in
@@ -10,7 +10,7 @@
+# strip command rewrite offset and align in ELF file. Therefor, when valgrind
+# launch memcheck-amd64-openbsd, an Abort trap occurs in the execvp() system
+# call.
-+my $cmd = sprintf "$cc -static -nopie -Wl,--strip-all -Wl,-Ttext=0x%x -Wl,-T,$temp", $textbase;
++my $cmd = sprintf "$cc -static -nopie -Wl,--strip-all -Wl,-Ttext=0x%x", $textbase;
# Add the rest of the parameters
foreach my $n (2 .. $#ARGV) {
--
ASOU Masato
No comments:
Post a Comment