Issues Compiling Client Side
In following the instructions listed here (https://wiki.emulab.net/wiki/ubuntu14build-1) I was running into the following bug when I was trying to run make client
:
Making all in compat
make[4]: Entering directory '/root/obj/clientside/event/linktest/iperf/compat'
if g++ -DHAVE_CONFIG_H -I. -I../iperf-2.0.2/compat -I.. -I../iperf-2.0.2/include -I../include -O2 -MT delay.o -MD -MP -MF ".deps/delay.Tpo" -c -o delay.o ../iperf-2.0.2/compat/delay.cpp; \
then mv -f ".deps/delay.Tpo" ".deps/delay.Po"; else rm -f ".deps/delay.Tpo"; exit 1; fi
In file included from /usr/include/c++/6/cmath:42:0,
from /usr/include/c++/6/math.h:36,
from ../iperf-2.0.2/include/headers.h:85,
from ../iperf-2.0.2/include/Timestamp.hpp:63,
from ../iperf-2.0.2/compat/delay.cpp:53:
/usr/include/c++/6/bits/cpp_type_traits.h:205:12: error: redefinition of ‘struct std::__is_integer<int>’
struct __is_integer<int>
^~~~~~~~~~~~~~~~~
/usr/include/c++/6/bits/cpp_type_traits.h:138:12: error: previous definition of ‘struct std::__is_integer<int>’
struct __is_integer<bool>
^~~~~~~~~~~~~~~~~~
Makefile:266: recipe for target 'delay.o' failed
This appears to be a bug with iperf 2.0.2 when compiling with GCC 6 (latest GCC package for Ubuntu 16.10) according to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831180.
I am trying to substitute the source of iperf 2.0.9 for iperf 2.0.2, as the bug appears to have been fixed in that version.