Hello community, here is the log from the commit of package valgrind for openSUSE:Factory checked in at 2018-10-01 09:07:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/valgrind (Old) and /work/SRC/openSUSE:Factory/.valgrind.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "valgrind" Mon Oct 1 09:07:27 2018 rev:110 rq:638872 version:3.13.0 Changes: -------- --- /work/SRC/openSUSE:Factory/valgrind/valgrind.changes 2018-09-03 10:33:31.916426530 +0200 +++ /work/SRC/openSUSE:Factory/.valgrind.new/valgrind.changes 2018-10-01 09:07:45.211772453 +0200 @@ -1,0 +2,11 @@ +Tue Sep 25 16:32:22 UTC 2018 - Michal Suchanek <[email protected]> + +- valgrind truncates powerpc timebase to 32-bits (bsc#1109589). + Fix-access-to-time-base-register-to-return-64-bits.patch + +------------------------------------------------------------------- +Thu Sep 13 05:08:58 UTC 2018 - [email protected] + +- valgrind.xen.patch: refresh + +------------------------------------------------------------------- New: ---- Fix-access-to-time-base-register-to-return-64-bits.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ valgrind.spec ++++++ --- /var/tmp/diff_new_pack.I6J4Gf/_old 2018-10-01 09:07:46.087771704 +0200 +++ /var/tmp/diff_new_pack.I6J4Gf/_new 2018-10-01 09:07:46.087771704 +0200 @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -38,6 +38,8 @@ Patch4: Implement-emulated-system-registers.-Fixes-392146.patch # PATCH-FIX-UPSTREAM [backport] - https://sourceware.org/git/?p=valgrind.git;a=commit;h=64aa729bfae71561505a40c12755bd6b55bb3061 Patch5: 0001-Accept-read-only-PT_LOAD-segments-and-.rodata.patch +# PATCH-FIX-UPSTREAM - https://sourceware.org/git/?p=valgrind.git;a=commit;h=6a55b1e82ccda3f0d663d2cc89eb543ae2d096bf +Patch6: Fix-access-to-time-base-register-to-return-64-bits.patch BuildRequires: automake BuildRequires: docbook-xsl-stylesheets BuildRequires: docbook_4 @@ -111,6 +113,7 @@ %patch3 %patch4 -p1 %patch5 -p1 +%patch6 -p1 %build export FLAGS="%{optflags}" ++++++ Fix-access-to-time-base-register-to-return-64-bits.patch ++++++ >From 6a55b1e82ccda3f0d663d2cc89eb543ae2d096bf Mon Sep 17 00:00:00 2001 From: Carl Love <[email protected]> Date: Tue, 31 Oct 2017 13:45:28 -0500 Subject: [PATCH] Fix access to time base register to return 64-bits. --- NEWS | 1 + VEX/priv/guest_ppc_toIR.c | 70 +++++++++++++++++++++++++++++++++++++---------- 2 files changed, 56 insertions(+), 15 deletions(-) --- valgrind-3.13.0/NEWS 2017-06-15 15:37:40.000000000 +0200 +++ valgrind-3.13.0/NEWS 2018-09-25 12:08:56.395509577 +0200 @@ -250,6 +250,7 @@ 380200 xtree generated callgrind files refer to files without directory name 380202 Assertion failure for cache line size (cls == 64) on aarch64. 380397 s390x: __GI_strcspn() replacement needed +386397 PPC64, valgrind truncates powerpc timebase to 32-bits. n-i-bz Fix pub_tool_basics.h build issue with g++ 4.4.7. (3.13.0.RC1: 2 June 2017, vex r3386, valgrind r16434) diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c index f63146e7e256..4ec37f5f994f 100644 --- a/VEX/priv/guest_ppc_toIR.c +++ b/VEX/priv/guest_ppc_toIR.c @@ -9419,26 +9419,60 @@ static Bool dis_proc_ctl ( const VexAbiInfo* vbi, UInt theInstr ) putIReg( rD_addr, getGST( PPC_GST_SPRG3_RO ) ); break; - /* Even a lowly PPC7400 can run the associated helper, so no - obvious need for feature testing at this point. */ - case 268 /* 0x10C */: - case 269 /* 0x10D */: { - UInt arg = SPR==268 ? 0 : 1; - IRTemp val = newTemp(Ity_I32); - IRExpr** args = mkIRExprVec_1( mkU32(arg) ); + case 268 /* 0x10C TB - 64 bit time base register */: + { + IRTemp val = newTemp(Ity_I64); + IRExpr** args = mkIRExprVec_0(); IRDirty* d = unsafeIRDirty_1_N( - val, - 0/*regparms*/, - "ppc32g_dirtyhelper_MFSPR_268_269", - fnptr_to_fnentry - (vbi, &ppc32g_dirtyhelper_MFSPR_268_269), - args - ); + val, + 0/*regparms*/, + "ppcg_dirtyhelper_MFTB", + fnptr_to_fnentry(vbi, + &ppcg_dirtyhelper_MFTB), + args ); + /* execute the dirty call, dumping the result in val. */ + stmt( IRStmt_Dirty(d) ); + putIReg( rD_addr, (mode64) ? mkexpr(val) : + unop(Iop_64to32, mkexpr(val)) ); + + break; + } + case 269 /* 0x10D TBU - upper 32-bits of time base register */: + { + DIP("mfspr r%u,%u", rD_addr, SPR); + IRTemp val = newTemp(Ity_I64); + IRExpr** args = mkIRExprVec_0(); + IRDirty* d = unsafeIRDirty_1_N( + val, + 0/*regparms*/, + "ppcg_dirtyhelper_MFTB", + fnptr_to_fnentry(vbi, + &ppcg_dirtyhelper_MFTB), + args ); /* execute the dirty call, dumping the result in val. */ stmt( IRStmt_Dirty(d) ); putIReg( rD_addr, - mkWidenFrom32(ty, mkexpr(val), False/*unsigned*/) ); + mkWidenFrom32(ty, unop(Iop_64HIto32, mkexpr(val)), + /* Signed */False) ); + break; + } + case 284 /* 0x1 TBL - lower 32-bits of time base register */: + { DIP("mfspr r%u,%u", rD_addr, SPR); + IRTemp val = newTemp(Ity_I64); + IRExpr** args = mkIRExprVec_0(); + IRDirty* d = unsafeIRDirty_1_N( + val, + 0/*regparms*/, + "ppcg_dirtyhelper_MFTB", + fnptr_to_fnentry(vbi, + &ppcg_dirtyhelper_MFTB), + args ); + /* execute the dirty call, dumping the result in val. */ + stmt( IRStmt_Dirty(d) ); + putIReg( rD_addr, + mkWidenFrom32(ty, unop(Iop_64to32, mkexpr(val)), + /* Signed */False) ); break; } @@ -9493,6 +9527,12 @@ static Bool dis_proc_ctl ( const VexAbiInfo* vbi, UInt theInstr ) putIReg( rD_addr, (mode64) ? mkexpr(val) : unop(Iop_64to32, mkexpr(val)) ); break; + case 284: + DIP("mftbl r%u", rD_addr); + putIReg( rD_addr, + mkWidenFrom32(ty, unop(Iop_64to32, mkexpr(val)), + /* Signed */False) ); + break; default: return False; /* illegal instruction */ } -- 2.13.7 ++++++ valgrind.xen.patch ++++++ --- /var/tmp/diff_new_pack.I6J4Gf/_old 2018-10-01 09:07:46.127771669 +0200 +++ /var/tmp/diff_new_pack.I6J4Gf/_new 2018-10-01 09:07:46.131771666 +0200 @@ -15,52 +15,10 @@ include/vki/vki-xen.h | 4 11 files changed, 831 insertions(+), 92 deletions(-) ---- a/coregrind/m_syswrap/syswrap-xen.c -+++ b/coregrind/m_syswrap/syswrap-xen.c -@@ -1279,7 +1279,7 @@ PRE(domctl) - switch (domctl->interface_version) { - case 0x000000b: - if (domctl->u.monitor_op_0000000b.op == VKI_XEN_DOMCTL_MONITOR_OP_ENABLE || -- domctl->u.monitor_op_0000000b.op == VKI_XEN_DOMCTL_MONITOR_OP_ENABLE) { -+ domctl->u.monitor_op_0000000b.op == VKI_XEN_DOMCTL_MONITOR_OP_DISABLE) { - switch (domctl->u.monitor_op_0000000b.event) { - case VKI_XEN_DOMCTL_MONITOR_EVENT_WRITE_CTRLREG: - __PRE_XEN_DOMCTL_READ(monitor_op, monitor_op_0000000b, u.mov_to_cr); ---- a/coregrind/m_syswrap/syswrap-linux.c -+++ b/coregrind/m_syswrap/syswrap-linux.c -@@ -7977,6 +7977,17 @@ PRE(sys_ioctl) - (Addr)args->arr, sizeof(*(args->arr)) * args->num); - break; - } -+ case VKI_XEN_IOCTL_PRIVCMD_DM_OP: { -+ struct vki_xen_privcmd_dm_op *args = -+ (struct vki_xen_privcmd_dm_op *)(ARG3); -+ PRE_MEM_READ("VKI_XEN_IOCTL_PRIVCMD_DM_OP(dom)", -+ (Addr)&args->dom, sizeof(args->dom)); -+ PRE_MEM_READ("VKI_XEN_IOCTL_PRIVCMD_DM_OP(num)", -+ (Addr)&args->num, sizeof(args->num)); -+ PRE_MEM_READ("VKI_XEN_IOCTL_PRIVCMD_DM_OP(ubufs)", -+ (Addr)args->ubufs, sizeof(*(args->ubufs)) * args->num); -+ break; -+ } - - case VKI_XEN_IOCTL_EVTCHN_BIND_VIRQ: { - struct vki_xen_ioctl_evtchn_bind_virq *args = -@@ -10404,6 +10415,12 @@ POST(sys_ioctl) - POST_MEM_WRITE((Addr)args->err, sizeof(*(args->err)) * args->num); - } - break; -+ case VKI_XEN_IOCTL_PRIVCMD_DM_OP: { -+ struct vki_xen_privcmd_dm_op *args = -+ (struct vki_xen_privcmd_dm_op *)(ARG3); -+ POST_MEM_WRITE((Addr)args->ubufs, sizeof(*(args->ubufs)) * args->num); -+ } -+ break; - - case VKI_XEN_IOCTL_EVTCHN_BIND_VIRQ: - case VKI_XEN_IOCTL_EVTCHN_BIND_INTERDOMAIN: ---- a/coregrind/m_syswrap/syswrap-xen.c -+++ b/coregrind/m_syswrap/syswrap-xen.c +Index: valgrind-3.13.0/coregrind/m_syswrap/syswrap-xen.c +=================================================================== +--- valgrind-3.13.0.orig/coregrind/m_syswrap/syswrap-xen.c ++++ valgrind-3.13.0/coregrind/m_syswrap/syswrap-xen.c @@ -234,6 +234,16 @@ PRE(memory_op) case VKI_XENMEM_get_sharing_shared_pages: break; @@ -541,14 +499,17 @@ __PRE_XEN_DOMCTL_READ(vm_event_op, vm_event_op_0000000b, op); __PRE_XEN_DOMCTL_READ(vm_event_op, vm_event_op_0000000b, mode); break; -@@ -1278,6 +1487,7 @@ PRE(domctl) +@@ -1278,8 +1487,9 @@ PRE(domctl) case VKI_XEN_DOMCTL_monitor_op: switch (domctl->interface_version) { case 0x000000b: + default: if (domctl->u.monitor_op_0000000b.op == VKI_XEN_DOMCTL_MONITOR_OP_ENABLE || - domctl->u.monitor_op_0000000b.op == VKI_XEN_DOMCTL_MONITOR_OP_DISABLE) { +- domctl->u.monitor_op_0000000b.op == VKI_XEN_DOMCTL_MONITOR_OP_ENABLE) { ++ domctl->u.monitor_op_0000000b.op == VKI_XEN_DOMCTL_MONITOR_OP_DISABLE) { switch (domctl->u.monitor_op_0000000b.event) { + case VKI_XEN_DOMCTL_MONITOR_EVENT_WRITE_CTRLREG: + __PRE_XEN_DOMCTL_READ(monitor_op, monitor_op_0000000b, u.mov_to_cr); @@ -1299,6 +1509,16 @@ PRE(domctl) } break; @@ -848,11 +809,10 @@ __POST_XEN_DOMCTL_WRITE(vm_event_op, vm_event_op_0000000b, port); break; } -@@ -2142,6 +2489,46 @@ POST(domctl){ - } +@@ -2143,6 +2490,46 @@ POST(domctl){ } -+ break; + break; + case 0x000000c: + case 0x000000d: + if (domctl->u.monitor_op_0000000c.op == VKI_XEN_DOMCTL_MONITOR_OP_GET_CAPABILITIES) { @@ -892,10 +852,11 @@ + } + } + - break; ++ break; } break; -@@ -2264,6 +2651,8 @@ static XenHypercallTableEntry hypercall_table[] = { + } +@@ -2264,6 +2651,8 @@ static XenHypercallTableEntry hypercall_ HYPXY(__VKI_XEN_domctl, domctl, 1), // 36 // __VKI_XEN_kexec_op // 37 HYPXY(__VKI_XEN_tmem_op, tmem_op, 1), // 38 @@ -904,9 +865,46 @@ }; static void bad_before ( ThreadId tid, ---- a/include/vki/vki-linux.h -+++ b/include/vki/vki-linux.h -@@ -3334,12 +3334,27 @@ struct vki_xen_privcmd_mmapbatch_v2 { +Index: valgrind-3.13.0/coregrind/m_syswrap/syswrap-linux.c +=================================================================== +--- valgrind-3.13.0.orig/coregrind/m_syswrap/syswrap-linux.c ++++ valgrind-3.13.0/coregrind/m_syswrap/syswrap-linux.c +@@ -7977,6 +7977,17 @@ PRE(sys_ioctl) + (Addr)args->arr, sizeof(*(args->arr)) * args->num); + break; + } ++ case VKI_XEN_IOCTL_PRIVCMD_DM_OP: { ++ struct vki_xen_privcmd_dm_op *args = ++ (struct vki_xen_privcmd_dm_op *)(ARG3); ++ PRE_MEM_READ("VKI_XEN_IOCTL_PRIVCMD_DM_OP(dom)", ++ (Addr)&args->dom, sizeof(args->dom)); ++ PRE_MEM_READ("VKI_XEN_IOCTL_PRIVCMD_DM_OP(num)", ++ (Addr)&args->num, sizeof(args->num)); ++ PRE_MEM_READ("VKI_XEN_IOCTL_PRIVCMD_DM_OP(ubufs)", ++ (Addr)args->ubufs, sizeof(*(args->ubufs)) * args->num); ++ break; ++ } + + case VKI_XEN_IOCTL_EVTCHN_BIND_VIRQ: { + struct vki_xen_ioctl_evtchn_bind_virq *args = +@@ -10404,6 +10415,12 @@ POST(sys_ioctl) + POST_MEM_WRITE((Addr)args->err, sizeof(*(args->err)) * args->num); + } + break; ++ case VKI_XEN_IOCTL_PRIVCMD_DM_OP: { ++ struct vki_xen_privcmd_dm_op *args = ++ (struct vki_xen_privcmd_dm_op *)(ARG3); ++ POST_MEM_WRITE((Addr)args->ubufs, sizeof(*(args->ubufs)) * args->num); ++ } ++ break; + + case VKI_XEN_IOCTL_EVTCHN_BIND_VIRQ: + case VKI_XEN_IOCTL_EVTCHN_BIND_INTERDOMAIN: +Index: valgrind-3.13.0/include/vki/vki-linux.h +=================================================================== +--- valgrind-3.13.0.orig/include/vki/vki-linux.h ++++ valgrind-3.13.0/include/vki/vki-linux.h +@@ -3329,12 +3329,27 @@ struct vki_xen_privcmd_mmapbatch_v2 { int __user *err; /* array of error codes */ }; @@ -934,8 +932,10 @@ //---------------------------------------------------------------------- // Xen evtchn IOCTL //---------------------------------------------------------------------- ---- a/include/vki/vki-xen-domctl.h -+++ b/include/vki/vki-xen-domctl.h +Index: valgrind-3.13.0/include/vki/vki-xen-domctl.h +=================================================================== +--- valgrind-3.13.0.orig/include/vki/vki-xen-domctl.h ++++ valgrind-3.13.0/include/vki/vki-xen-domctl.h @@ -37,7 +37,9 @@ * - 0x00000009: Xen 4.3 & 4.4 * - 0x0000000a: Xen 4.5 @@ -1018,7 +1018,7 @@ struct vki_xen_domctl_getdomaininfo_00000007 { /* OUT variables. */ vki_xen_domid_t domain; -@@ -215,6 +267,7 @@ struct vki_xen_domctl_vcpuaffinity_0000000a { +@@ -215,6 +267,7 @@ struct vki_xen_domctl_vcpuaffinity_00000 vki_uint32_t vcpu; /* IN */ #define VKI_XEN_VCPUAFFINITY_HARD (1U<<0) #define VKI_XEN_VCPUAFFINITY_SOFT (1U<<1) @@ -1081,7 +1081,7 @@ struct vki_xen_domctl_pin_mem_cacheattr { vki_xen_uint64_aligned_t start, end; /* IN */ -@@ -464,6 +532,20 @@ struct vki_xen_domctl_assign_device_0000000b { +@@ -464,6 +532,20 @@ struct vki_xen_domctl_assign_device_0000 vki_uint32_t flag; /* flag of assigned device */ }; @@ -1115,7 +1115,7 @@ struct vki_xen_domctl_monitor_op_0000000b { vki_uint32_t op; /* vki_xen_DOMCTL_MONITOR_OP_* */ -@@ -553,6 +641,97 @@ struct vki_xen_domctl_monitor_op_0000000b { +@@ -553,6 +641,97 @@ struct vki_xen_domctl_monitor_op_0000000 } u; }; @@ -1273,9 +1273,11 @@ vki_uint8_t pad[128]; } u; }; ---- a/include/vki/vki-xen-gnttab.h -+++ b/include/vki/vki-xen-gnttab.h -@@ -42,6 +42,7 @@ typedef vki_uint32_t vki_xen_grant_ref_t; +Index: valgrind-3.13.0/include/vki/vki-xen-gnttab.h +=================================================================== +--- valgrind-3.13.0.orig/include/vki/vki-xen-gnttab.h ++++ valgrind-3.13.0/include/vki/vki-xen-gnttab.h +@@ -42,6 +42,7 @@ typedef vki_uint32_t vki_xen_grant_ref_t #define VKI_XEN_GNTTABOP_get_status_frames 9 #define VKI_XEN_GNTTABOP_get_version 10 #define VKI_XEN_GNTTABOP_swap_grant_ref 11 @@ -1283,8 +1285,10 @@ struct vki_xen_gnttab_setup_table { /* IN parameters. */ ---- a/include/vki/vki-xen-memory.h -+++ b/include/vki/vki-xen-memory.h +Index: valgrind-3.13.0/include/vki/vki-xen-memory.h +=================================================================== +--- valgrind-3.13.0.orig/include/vki/vki-xen-memory.h ++++ valgrind-3.13.0/include/vki/vki-xen-memory.h @@ -48,8 +48,12 @@ #define VKI_XENMEM_get_sharing_freed_pages 18 #define VKI_XENMEM_get_sharing_shared_pages 19 @@ -1313,8 +1317,10 @@ struct vki_xen_mem_event_op { vki_uint8_t op; vki_xen_domid_t domain; ---- a/include/vki/vki-xen-physdev.h -+++ b/include/vki/vki-xen-physdev.h +Index: valgrind-3.13.0/include/vki/vki-xen-physdev.h +=================================================================== +--- valgrind-3.13.0.orig/include/vki/vki-xen-physdev.h ++++ valgrind-3.13.0/include/vki/vki-xen-physdev.h @@ -60,6 +60,15 @@ struct vki_xen_physdev_unmap_pirq { int pirq; }; @@ -1331,17 +1337,21 @@ #endif // __VKI_XEN_PHYSDEV_H /*--------------------------------------------------------------------*/ ---- a/include/vki/vki-xen-schedop.h -+++ b/include/vki/vki-xen-schedop.h -@@ -47,4 +47,6 @@ typedef struct vki_xen_remote_shutdown vki_xen_remote_shutdown_t; +Index: valgrind-3.13.0/include/vki/vki-xen-schedop.h +=================================================================== +--- valgrind-3.13.0.orig/include/vki/vki-xen-schedop.h ++++ valgrind-3.13.0/include/vki/vki-xen-schedop.h +@@ -47,4 +47,6 @@ typedef struct vki_xen_remote_shutdown v #define VKI_XEN_SCHEDOP_watchdog 6 +#define VKI_XEN_SCHEDOP_pin_override 7 + #endif /* __VKI_XEN_SCHED_OP_H */ ---- a/include/vki/vki-xen-sysctl.h -+++ b/include/vki/vki-xen-sysctl.h +Index: valgrind-3.13.0/include/vki/vki-xen-sysctl.h +=================================================================== +--- valgrind-3.13.0.orig/include/vki/vki-xen-sysctl.h ++++ valgrind-3.13.0/include/vki/vki-xen-sysctl.h @@ -9,6 +9,11 @@ * - 0x00000009: Xen 4.2 * - 0x0000000a: Xen 4.3 & 4.4 @@ -1422,7 +1432,7 @@ struct vki_xen_sysctl_physinfo_00000008 { vki_uint32_t threads_per_core; vki_uint32_t cores_per_socket; -@@ -159,6 +207,23 @@ struct vki_xen_sysctl_physinfo_0000000a { +@@ -159,6 +207,23 @@ struct vki_xen_sysctl_physinfo_0000000a vki_uint32_t capabilities; }; @@ -1489,8 +1499,10 @@ vki_uint8_t pad[128]; } u; ---- a/include/vki/vki-xen-version.h -+++ b/include/vki/vki-xen-version.h +Index: valgrind-3.13.0/include/vki/vki-xen-version.h +=================================================================== +--- valgrind-3.13.0.orig/include/vki/vki-xen-version.h ++++ valgrind-3.13.0/include/vki/vki-xen-version.h @@ -38,6 +38,7 @@ #define VKI_XENVER_pagesize 7 #define VKI_XENVER_guest_handle 8 @@ -1516,8 +1528,10 @@ #endif // __VKI_XEN_VERSION_H /*--------------------------------------------------------------------*/ ---- a/include/vki/vki-xen.h -+++ b/include/vki/vki-xen.h +Index: valgrind-3.13.0/include/vki/vki-xen.h +=================================================================== +--- valgrind-3.13.0.orig/include/vki/vki-xen.h ++++ valgrind-3.13.0/include/vki/vki-xen.h @@ -69,6 +69,8 @@ #define __VKI_XEN_kexec_op 37 #define __VKI_XEN_tmem_op 38
