I have already reported this issue to Intel, waiting for their proposal.
Meanwhile I tried the patch, and I got a bunch of errors:
(error.restrict.txt)
I just have changed restrict to __restrict, error:
(error.__restrict.txt)
On Monday 14 March 2016 13:26:14 Paul Eggert wrote:
> It looks like the Intel compiler is pickier about 'select' than most.
> It's so picky that it seems to be rejecting valid C programs, as
> 'restrict' is not part of the function type; see C11 section 6.7.6.3
> paragraph 15. You might want to file a bug report with Intel.
>
> In the meantime, does the attached patch work around the problem?
--
HPC/VSC Support and System Administration
Computing Center
ULB/VUB
Avenue Adolphe Buyllaan, 91 - CP 197
1050 Brussels
Belgium
In file included from /usr/include/sys/types.h(220),
from lib/sys/types.h(27),
from /usr/include/stdlib.h(319),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/cstdlib(72),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/bits/stl_algo.h(59),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/algorithm(62),
from testprog.cc(1):
lib/sys/select.h(602): error: declaration is incompatible with previous
"select" (declared at line 109 of "/usr/include/sys/select.h")
namespace gnulib { static int (*select) (int, fd_set *__restrict, fd_set
*__restrict, fd_set *__restrict, struct timeval *__restrict) = ::select; }
extern "C" int _gl_cxxalias_dummy;
^
compilation aborted for pp.cc (code 2)
In file included from /usr/include/sys/types.h(220),
from lib/sys/types.h(27),
from /usr/include/stdlib.h(319),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/cstdlib(72),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/bits/stl_algo.h(59),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/algorithm(62),
from testprog.cc(1):
lib/sys/select.h(602): error #100: duplicate parameter name
namespace gnulib { static int (*select) (int, fd_set *restrict, fd_set
*restrict, fd_set *restrict, struct timeval *restrict) = ::select; } extern "C"
int _gl_cxxalias_dummy;
^
In file included from /usr/include/sys/types.h(220),
from lib/sys/types.h(27),
from /usr/include/stdlib.h(319),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/cstdlib(72),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/bits/stl_algo.h(59),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/algorithm(62),
from testprog.cc(1):
lib/sys/select.h(602): error #100: duplicate parameter name
namespace gnulib { static int (*select) (int, fd_set *restrict, fd_set
*restrict, fd_set *restrict, struct timeval *restrict) = ::select; } extern "C"
int _gl_cxxalias_dummy;
^
In file included from /usr/include/sys/types.h(220),
from lib/sys/types.h(27),
from /usr/include/stdlib.h(319),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/cstdlib(72),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/bits/stl_algo.h(59),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/algorithm(62),
from testprog.cc(1):
lib/sys/select.h(602): error #100: duplicate parameter name
namespace gnulib { static int (*select) (int, fd_set *restrict, fd_set
*restrict, fd_set *restrict, struct timeval *restrict) = ::select; } extern "C"
int _gl_cxxalias_dummy;
^
In file included from /usr/include/sys/types.h(220),
from lib/sys/types.h(27),
from /usr/include/stdlib.h(319),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/cstdlib(72),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/bits/stl_algo.h(59),
from
/vsc/apps/brussel/ivybridge/software/GCCcore/4.9.3/bin/../include/c++/4.9.3/algorithm(62),
from testprog.cc(1):
lib/sys/select.h(602): error: declaration is incompatible with previous
"select" (declared at line 109 of "/usr/include/sys/select.h")
namespace gnulib { static int (*select) (int, fd_set *restrict, fd_set
*restrict, fd_set *restrict, struct timeval *restrict) = ::select; } extern "C"
int _gl_cxxalias_dummy;
^
compilation aborted for pp.cc (code 2)