Open ktimam opened 6 months ago
Reproduce on x64-linux
.
@ktimam
The flexible array member link_mode_masks
should be at the end of the structure, otherwise it is illegal in C++
.
And this structure requires dynamic allocation of memory to ensure that the flexible array members have enough space to store the required data.
I think this is an upstream problem, I will submit a solution to upstream and ask for help from upstream. :)
I think it is a compiler bug: The array is to have a static (constexpr) size.
Package: gloo:x64-linux@20201203#3
Host Environment
To Reproduce
vcpkg install gloo
Failure logs
/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/install-x64-linux-dbg-out.log
``` Change Dir: '/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg' Run Build Command(s): /mnt/c/Kiko/Tools/vcpkg/downloads/tools/ninja/1.10.2-linux/ninja -v -v -j17 install [1/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/types.cc.o -MF gloo/CMakeFiles/gloo.dir/types.cc.o.d -o gloo/CMakeFiles/gloo.dir/types.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/types.cc [2/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/common/logging.cc.o -MF gloo/CMakeFiles/gloo.dir/common/logging.cc.o.d -o gloo/CMakeFiles/gloo.dir/common/logging.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/common/logging.cc [3/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/algorithm.cc.o -MF gloo/CMakeFiles/gloo.dir/algorithm.cc.o.d -o gloo/CMakeFiles/gloo.dir/algorithm.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/algorithm.cc [4/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/barrier.cc.o -MF gloo/CMakeFiles/gloo.dir/barrier.cc.o.d -o gloo/CMakeFiles/gloo.dir/barrier.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/barrier.cc [5/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/gather.cc.o -MF gloo/CMakeFiles/gloo.dir/gather.cc.o.d -o gloo/CMakeFiles/gloo.dir/gather.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/gather.cc [6/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/broadcast.cc.o -MF gloo/CMakeFiles/gloo.dir/broadcast.cc.o.d -o gloo/CMakeFiles/gloo.dir/broadcast.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/broadcast.cc [7/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/allgather.cc.o -MF gloo/CMakeFiles/gloo.dir/allgather.cc.o.d -o gloo/CMakeFiles/gloo.dir/allgather.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/allgather.cc [8/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/alltoall.cc.o -MF gloo/CMakeFiles/gloo.dir/alltoall.cc.o.d -o gloo/CMakeFiles/gloo.dir/alltoall.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/alltoall.cc [9/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/gatherv.cc.o -MF gloo/CMakeFiles/gloo.dir/gatherv.cc.o.d -o gloo/CMakeFiles/gloo.dir/gatherv.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/gatherv.cc [10/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/scatter.cc.o -MF gloo/CMakeFiles/gloo.dir/scatter.cc.o.d -o gloo/CMakeFiles/gloo.dir/scatter.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/scatter.cc [11/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/transport/buffer.cc.o -MF gloo/CMakeFiles/gloo.dir/transport/buffer.cc.o.d -o gloo/CMakeFiles/gloo.dir/transport/buffer.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/transport/buffer.cc [12/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/allgatherv.cc.o -MF gloo/CMakeFiles/gloo.dir/allgatherv.cc.o.d -o gloo/CMakeFiles/gloo.dir/allgatherv.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/allgatherv.cc [13/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/context.cc.o -MF gloo/CMakeFiles/gloo.dir/context.cc.o.d -o gloo/CMakeFiles/gloo.dir/context.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/context.cc [14/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/alltoallv.cc.o -MF gloo/CMakeFiles/gloo.dir/alltoallv.cc.o.d -o gloo/CMakeFiles/gloo.dir/alltoallv.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/alltoallv.cc [15/37] /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/common/linux.cc.o -MF gloo/CMakeFiles/gloo.dir/common/linux.cc.o.d -o gloo/CMakeFiles/gloo.dir/common/linux.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/common/linux.cc FAILED: gloo/CMakeFiles/gloo.dir/common/linux.cc.o /usr/bin/c++ -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean -I/mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/x64-linux-dbg -fPIC -std=c++11 -fPIC -g -MD -MT gloo/CMakeFiles/gloo.dir/common/linux.cc.o -MF gloo/CMakeFiles/gloo.dir/common/linux.cc.o.d -o gloo/CMakeFiles/gloo.dir/common/linux.cc.o -c /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/common/linux.cc In file included from /mnt/c/Kiko/Tools/vcpkg/buildtrees/gloo/src/4842d821e2-a23aea63a5.clean/gloo/common/linux.cc:15: /usr/include/linux/ethtool.h: In function ‘int gloo::getInterfaceSpeedGLinkSettings(int, ifreq*)’: /usr/include/linux/ethtool.h:2214:17: error: flexible array member ‘ethtool_link_settings::link_mode_masks’ not at end of ‘struct gloo::getInterfaceSpeedGLinkSettings(int, ifreq*)::