Hi ports,

The valgrind was aborted after updated Pert to 5.32.1 as below:

$ sysctl -n kern.version
OpenBSD 6.9-beta (GENERIC.MP) #428: Wed Mar 24 11:12:16 MDT 2021
    dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP

$ /usr/bin/perl --version

This is perl 5, version 32, subversion 1 (v5.32.1) built for amd64-openbsd
</snip>

$ cd /usr/ports/devel/valgrind
$ doas make install
$ valgrind /bin/ls
Abort trap
$ 

Because, Perl 5.32.1 has changed the way hexadecimal string are
handled as below:

Perl 5.30.3: "0x1234" + 0x1000 -> 0x2234
Perl 5.32.1: "0x1234" + 0x1000 -> 0x1000

Perl 5.32.1 does not consider anything after 'x' to be a number, but
only the first '0' is consider to be a number.

I made the following patch.

ok? comments?
--
ASOU Masato

Index: devel/valgrind/patches/patch-coregrind_link_tool_exe_openbsd_in
===================================================================
RCS file: 
/cvs/ports/devel/valgrind/patches/patch-coregrind_link_tool_exe_openbsd_in,v
retrieving revision 1.5
diff -u -p -r1.5 patch-coregrind_link_tool_exe_openbsd_in
--- devel/valgrind/patches/patch-coregrind_link_tool_exe_openbsd_in     5 Oct 
2020 01:45:58 -0000       1.5
+++ devel/valgrind/patches/patch-coregrind_link_tool_exe_openbsd_in     25 Mar 
2021 00:27:19 -0000
@@ -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", "$ala 
+ 0x1000";
++my $cmd = sprintf "$cc -static -nopie -Wl,--strip-all -Wl,-Ttext=0x%x", 
hex($ala) + 0x1000;
  
 -# so, build up the complete command here:
 -# 'cc' -static -Ttext='ala' 'restargs'

Reply via email to