Bug 1794482 - 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'
Summary: valgrind-3.15.0-12.fc32 FTBFS: /usr/bin/ld: ../../VEX/libvex-arm64-linux.a(li...
Alias: None
Product: Fedora
Classification: Fedora
Component: valgrind
Version: rawhide
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
Assignee: Mark Wielaard
QA Contact: Fedora Extras Quality Assurance
URL: https://koschei.fedoraproject.org/pac...
Depends On:
Blocks: F32FTBFS GCC10
TreeView+ depends on / blocked
Reported: 2020-01-23 17:07 UTC by Petr Pisar
Modified: 2020-01-23 20:48 UTC (History)
4 users (show)

Fixed In Version: valgrind-3.15.0-13
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2020-01-23 20:48:25 UTC
Type: Bug

Attachments (Terms of Use)

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@klomp.org>
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.

And backported to valgrind-3.15.0-13.

Note You need to log in before you can comment on or make changes to this bug.