Bug 1794482

Summary: valgrind-3.15.0-12.fc32 FTBFS: /usr/bin/ld: ../../VEX/libvex-arm64-linux.a(libvex_arm64_linux_a-guest_s390_helpers.o): /builddir/build/BUILD/valgrind-3.15.0/VEX/priv/guest_s390_defs.h:291: multiple definition of `s390x_vec_op_t'
Product: [Fedora] Fedora Reporter: Petr Pisar <ppisar>
Component: valgrindAssignee: Mark Wielaard <mjw>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: dodji, jakub, mjw, mjw
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://koschei.fedoraproject.org/package/valgrind?collection=f32
Whiteboard:
Fixed In Version: valgrind-3.15.0-13 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-01-23 20:48:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1750908, 1792464    

Description Petr Pisar 2020-01-23 17:07:28 UTC
valgrind-3.15.0-12.fc32 fails to build with GCC 10 in Fedora 32:

gcc -Winline -Wall -Wshadow -Wno-long-long -g        -o libvexmultiarch_test libvexmultiarch_test-libvex_test.o ../../VEX/libvexmultiarch-arm64-linux.a ../../VEX/libvex-arm64-linux.a  
[...]
/usr/bin/ld: ../../VEX/libvex-arm64-linux.a(libvex_arm64_linux_a-guest_s390_helpers.o): in function `$d':
/builddir/build/BUILD/valgrind-3.15.0/VEX/priv/guest_s390_defs.h:291: multiple definition of `s390x_vec_op_t'; ../../VEX/libvexmultiarch-arm64-linux.a(libvexmultiarch_arm64_linux_a-multiarch_main_main.o):/builddir/build/BUILD/valgrind-3.15.0/VEX/priv/guest_s390_defs.h:291: first defined here
[...]
collect2: error: ld returned 1 exit status
[...]
make[5]: *** [Makefile:1480: libvexmultiarch_test] Error 1

Comment 1 Mark Wielaard 2020-01-23 20:48:25 UTC
Thanks. That was a real bug. Fixed upstream:

commit ee18ab11ddf41a7a484fea01e8738c32bae630d9
Author: Mark Wielaard <mark>
Date:   Thu Jan 23 21:30:59 2020 +0100

    Fix GCC10 issue in guest_s390_defs.h typedef enum type s390x_vec_op_t.
    
    GCC10 defaults to -fno-common which produces this error:
    
      guest_s390_defs.h:291: multiple definition of `s390x_vec_op_t
    
    This is because GCC10 detects there are multiple definitions of the
    variable s390x_vec_op_t. We don't want to define a variable though.
    We had wanted to define a type (one that currently isn't used).
    Fix this by making it a typedef enum.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1794482

And backported to valgrind-3.15.0-13.