https://svn.lrde.epita.fr/svn/lrde-tools/trunk/build-farm
Index: ChangeLog from Roland Levillain roland@lrde.epita.fr
Improve the handling of ICC.
* buildfarm_worker/brasilia.fns (host_type): Set to linux-x86/unstable. Source /lrde/dev/linux-x86/intel/icc9.1/bin/iccvars.sh at the begining of the file, instead of adding ICC's directory to the PATH manually. (init_icc_vars): Move this function... * buildfarm_worker/tools.fns: ...here (new file). * buildfarm_worker/caracas.fns (host_type): Set to linux-x86/sarge. Source /lrde/dev/linux-x86/intel/icc9.1/bin/iccvars.sh at the begining of the file, instead of adding ICC's directory to the PATH manually. (ACLOCAL, TIMELIMIT_CC): New environment variables. * buildfarm_worker/generic.fns (CC, CXX): Fix these environment variables. * buildfarm_worker/config.fns: Handle Olena 0.11.
brasilia.fns | 206 +++-------------------------------------------------------- caracas.fns | 26 +++++-- config.fns | 2 generic.fns | 4 - tools.fns | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 224 insertions(+), 206 deletions(-)
Index: buildfarm_worker/brasilia.fns --- buildfarm_worker/brasilia.fns (revision 421) +++ buildfarm_worker/brasilia.fns (working copy) @@ -1,12 +1,18 @@ # brasilia. -*- shell-script -*-
-# Used to compile Olena and Vaucanson. +# Used to build Olena and Vaucanson.
-host_type=linux-x86
-# Add ICC (from /lrde/dev) to the PATH, as well as Automake 1.10 (not -# yet in Sid). -path_prepend intel/icc9.1 unstable/automake-1.10 +host_type=linux-x86/unstable + +# Get init_icc_vars's definition. +source tools.fns + +# Add ICC (from /lrde/dev) to the PATH... +/lrde/dev/linux-x86/intel/icc9.1/bin/iccvars.sh + +# ... as Automake 1.10 (not yet in Sid). +path_prepend automake-1.10 # Tell autoreconf 1.10 where other M4 macros live. export ACLOCAL='aclocal -I /usr/share/aclocal/'
@@ -20,196 +26,6 @@ export TIMELIMIT_CC=gcc
-# INIT_ICC_VARS -# ------------- -# Initialize ICC environment variables. -init_icc_vars() -{ - # ICC 9.1 settings. - source /lrde/dev/linux-x86/intel/icc9.1/bin/iccvars.sh - - # Disable some (sometimes fallacious) remarks and warnings from icpc. - # - # FIXME: Some of these warnings could be disabled from configure when - # the selected C++ compiler is icpc. - # - # - # Remarks. - # -------- - # - # #279 - from icpc stdlib + mlc - # #304 - fixable - # #383 - located in icpc std lib + xtd - # #424 - probably fixable - # #444 - hard to fix IMHO - # #593 - fixable, but probably a lot of places must be changed - # #810 - fixable - # #869 - located in icpc std lib (=> not our responsibility) - # #981 - located in icpc std lib + xtd ; hard to fix without obfuscating. - # #1292 - located in icpc stdlib (=> not our responsibility) - # #1418 - to be looked at closer - # #1572 - fixable (comparisons on float values) - # #1682 - located in system lib (=> not our responsibility) - # #1683 - located in system lib (=> not our responsibility) - # - # - # /lrde/beyrouth/admin/lrde/usr/intel/compiler90/include/c++/xstring(1577): - # remark #279: controlling expression is constant - # : sizeof (_Elem) <= 2 ? 7 - # ^ - # - # - # extended/xtd/cfun.hh(76): - # remark #304: access control not specified ("public" by default) - # struct fun_traits_< plain_cfun_<F> > : fun_traits_<F> - # ^ - # - # - # /lrde/beyrouth/admin/lrde/usr/intel/compiler90/include/c++/xlocale(123): - # remark #383: value copied to temporary, reference to temporary used - # : _Refs(_Initrefs) - # ^ - # - # - # static/tests/any.cc(139): - # remark #424: extra ";" ignored - # }; - # ^ - # - # - # metalic/mlc/cmp.hh(114): - # remark #444: destructor for base class "mlc::bexpr_<false>" is not virtual - # public bexpr_<false> - # ^ - # - # - # olena/tests/morphers/count_rw_morpher.cc(46): - # remark #593: variable "i" was set but never used - # int i = ima2(p); - # ^ - # - # - # extended/xtd/abstract/plain_nary_fun.hh(160): - # remark #810: conversion from "double" to "const float &" may lose - # significant bits - # return this->exact().impl_op(arg); - # ^ - # - # - # /lrde/beyrouth/admin/lrde/usr/intel/compiler90/include/c++/typeinfo(190): - # remark #869: parameter "_object" was never referenced - # const void* _object, - # ^ - # - # - # /lrde/beyrouth/admin/lrde/usr/intel/compiler90/include/c++/xstring(1621): - # remark #981: operands are evaluated in unspecified order - # _Traits::assign(_Myptr()[_Mysize = _Newsize], _Elem()); - # ^ - # - # - # /usr/include/stdlib.h(177): warning #1292: attribute "__nonnull__" ignored - # throw () __attribute__ ((__nonnull__ (1))); - # ^ - # - # - # metalic/tests/gcase.cc(55): - # remark #1418: external definition with no prior declaration - # void print() - # ^ - # - # - # olena/tests/morphers/two_way_rw_morpher.cc(74): - # remark #1572: floating-point equality and inequality comparisons are - # unreliable - # (static_cast<void> ((xtd::L2_norm(ima(p)) = 1) ? 0 : - # ^ - # (__assert_fail ("xtd::L2_norm(ima(p)) = 1", - # "olena/tests/morphers/two_way_rw_morpher.cc", 74, __PRETTY_FUNCTION__), - # 0))); - # - # - # /usr/include/sys/sysmacros.h(44): - # remark #1682: implicit conversion of a 64-bit integral type to a smaller - # integral type (potential portability problem) - # return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); - # ^ - # - # - # /usr/include/sys/sysmacros.h(44): - # remark #1683: explicit conversion of a 64-bit integral type to a smaller - # integral type (potential portability problem) - # return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); - # ^ - # - # - # Warnings. - # --------- - # - # #61 - located in h++ std lib (=> not our responsibility) - # #68 - located in h++ std lib (=> not our responsibility) - # #161 - located in h++ std lib (=> not our responsibility) - # #239 - located in g++ std lib (=> not our responsibility) - # #592 - fixable (see remark #593) - # #854 - to be looked at closer - # #858 - to be looked at closer - # #1292 - located in gcc std lib - # - # - # /usr/include/c++/4.0.4/limits(529): - # warning #61: integer operation result is out of range - # { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - - # ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); } - # ^ - # - # - # /usr/include/c++/4.0.4/limits(374): - # warning #68: integer conversion resulted in a change of sign - # { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) - # < 0)) : (char)0); } - # ^ - # - # - # /usr/include/c++/4.0.4/cstdlib(47): - # warning #161: unrecognized #pragma - # #pragma GCC system_header - # - # - # /usr/include/c++/4.0.4/limits(1010): - # warning #239: floating point underflow - # = bool(1.40129846e-45F) ? denorm_present : denorm_absent; - # ^ - # - # - # metalic/tests/gcase.cc(59): - # warning #592: variable "tmp" is used before its value is set - # tmp = tmp; - # ^ - # - # - # extended/xtd/math/arith.hh(37): - # warning #854: const variable "xtd::plus" requires an initializer -- class - # "xtd::m2fun_xtd::plain_plus_" has no explicitly declared default - # constructor - # [...] - # - # - # olena/oln/core/internal/tracked_ptr.hh(60): - # warning #858: type qualifier on return type is meaningless - # const T*const operator->() const; - # ^ - # - # - # /usr/include/stdlib.h(146): - # warning #1292: attribute "__nonnull__" ignored - # throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); - # ^ - # - ignored_remarks="279,304,383,424,444,593,810,869,1292,1418,1572,1682,1683" - ignored_warnings="61,68,161,239,592,854,858,1292" - export CXXFLAGS="-wd$ignored_remarks,$ignored_warnings" -} -
# Clean up. clean_buildfarm Index: buildfarm_worker/tools.fns --- buildfarm_worker/tools.fns (revision 0) +++ buildfarm_worker/tools.fns (revision 0) @@ -0,0 +1,192 @@ +# Tools. -*- shell-script -*- + +# To be sourced by host files. + + +# INIT_ICC_VARS +# ------------- +# Initialize some environment variables for ICC. +init_icc_vars() +{ + # Disable some (sometimes fallacious) remarks and warnings from icpc. + # All of these remarks make references to Olena 1.0. + # + # Some of these warnings could be disabled from configure when + # the selected C++ compiler is icpc. + # + # + # Remarks. + # -------- + # + # #279 - from icpc stdlib + mlc + # #304 - fixable + # #383 - located in icpc std lib + xtd + # #424 - probably fixable + # #444 - hard to fix IMHO + # #593 - fixable, but probably a lot of places must be changed + # #810 - fixable + # #869 - located in icpc std lib (=> not our responsibility) + # #981 - located in icpc std lib + xtd ; hard to fix without obfuscating. + # #1292 - located in icpc stdlib (=> not our responsibility) + # #1418 - to be looked at closer + # #1572 - fixable (comparisons on float values) + # #1682 - located in system lib (=> not our responsibility) + # #1683 - located in system lib (=> not our responsibility) + # + # + # /lrde/beyrouth/admin/lrde/usr/intel/compiler90/include/c++/xstring(1577): + # remark #279: controlling expression is constant + # : sizeof (_Elem) <= 2 ? 7 + # ^ + # + # + # extended/xtd/cfun.hh(76): + # remark #304: access control not specified ("public" by default) + # struct fun_traits_< plain_cfun_<F> > : fun_traits_<F> + # ^ + # + # + # /lrde/beyrouth/admin/lrde/usr/intel/compiler90/include/c++/xlocale(123): + # remark #383: value copied to temporary, reference to temporary used + # : _Refs(_Initrefs) + # ^ + # + # + # static/tests/any.cc(139): + # remark #424: extra ";" ignored + # }; + # ^ + # + # + # metalic/mlc/cmp.hh(114): + # remark #444: destructor for base class "mlc::bexpr_<false>" is not virtual + # public bexpr_<false> + # ^ + # + # + # olena/tests/morphers/count_rw_morpher.cc(46): + # remark #593: variable "i" was set but never used + # int i = ima2(p); + # ^ + # + # + # extended/xtd/abstract/plain_nary_fun.hh(160): + # remark #810: conversion from "double" to "const float &" may lose + # significant bits + # return this->exact().impl_op(arg); + # ^ + # + # + # /lrde/beyrouth/admin/lrde/usr/intel/compiler90/include/c++/typeinfo(190): + # remark #869: parameter "_object" was never referenced + # const void* _object, + # ^ + # + # + # /lrde/beyrouth/admin/lrde/usr/intel/compiler90/include/c++/xstring(1621): + # remark #981: operands are evaluated in unspecified order + # _Traits::assign(_Myptr()[_Mysize = _Newsize], _Elem()); + # ^ + # + # + # /usr/include/stdlib.h(177): warning #1292: attribute "__nonnull__" ignored + # throw () __attribute__ ((__nonnull__ (1))); + # ^ + # + # + # metalic/tests/gcase.cc(55): + # remark #1418: external definition with no prior declaration + # void print() + # ^ + # + # + # olena/tests/morphers/two_way_rw_morpher.cc(74): + # remark #1572: floating-point equality and inequality comparisons are + # unreliable + # (static_cast<void> ((xtd::L2_norm(ima(p)) = 1) ? 0 : + # ^ + # (__assert_fail ("xtd::L2_norm(ima(p)) = 1", + # "olena/tests/morphers/two_way_rw_morpher.cc", 74, __PRETTY_FUNCTION__), + # 0))); + # + # + # /usr/include/sys/sysmacros.h(44): + # remark #1682: implicit conversion of a 64-bit integral type to a smaller + # integral type (potential portability problem) + # return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); + # ^ + # + # + # /usr/include/sys/sysmacros.h(44): + # remark #1683: explicit conversion of a 64-bit integral type to a smaller + # integral type (potential portability problem) + # return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); + # ^ + # + # + # Warnings. + # --------- + # + # #61 - located in h++ std lib (=> not our responsibility) + # #68 - located in h++ std lib (=> not our responsibility) + # #161 - located in h++ std lib (=> not our responsibility) + # #239 - located in g++ std lib (=> not our responsibility) + # #592 - fixable (see remark #593) + # #854 - to be looked at closer + # #858 - to be looked at closer + # #1292 - located in gcc std lib + # + # + # /usr/include/c++/4.0.4/limits(529): + # warning #61: integer operation result is out of range + # { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - + # ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); } + # ^ + # + # + # /usr/include/c++/4.0.4/limits(374): + # warning #68: integer conversion resulted in a change of sign + # { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) + # < 0)) : (char)0); } + # ^ + # + # + # /usr/include/c++/4.0.4/cstdlib(47): + # warning #161: unrecognized #pragma + # #pragma GCC system_header + # + # + # /usr/include/c++/4.0.4/limits(1010): + # warning #239: floating point underflow + # = bool(1.40129846e-45F) ? denorm_present : denorm_absent; + # ^ + # + # + # metalic/tests/gcase.cc(59): + # warning #592: variable "tmp" is used before its value is set + # tmp = tmp; + # ^ + # + # + # extended/xtd/math/arith.hh(37): + # warning #854: const variable "xtd::plus" requires an initializer -- class + # "xtd::m2fun_xtd::plain_plus_" has no explicitly declared default + # constructor + # [...] + # + # + # olena/oln/core/internal/tracked_ptr.hh(60): + # warning #858: type qualifier on return type is meaningless + # const T*const operator->() const; + # ^ + # + # + # /usr/include/stdlib.h(146): + # warning #1292: attribute "__nonnull__" ignored + # throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + # ^ + # + ignored_remarks="279,304,383,424,444,593,810,869,1292,1418,1572,1682,1683" + ignored_warnings="61,68,161,239,592,854,858,1292" + export CXXFLAGS="-wd$ignored_remarks,$ignored_warnings" +} Index: buildfarm_worker/caracas.fns --- buildfarm_worker/caracas.fns (revision 421) +++ buildfarm_worker/caracas.fns (working copy) @@ -1,20 +1,31 @@ # caracas. -*- shell-script -*- -# Used to continuously build Tiger and Vaucanson.
-host_type=linux-x86 +# Used to build Tiger (and Vaucanson). + + +host_type=linux-x86/sarge + +# Add ICC (from /lrde/dev) to the PATH. +/lrde/dev/linux-x86/intel/icc9.1/bin/iccvars.sh
# Add some programs from /lrde/dev to the PATH. -path_prepend \ - sarge/autoconf-2.60 \ - sarge/automake-1.10 \ - sarge/bison-2.3 \ - intel/icc9.1 +path_prepend autoconf-2.60 automake-1.10 bison-2.3 + +# Tell autoreconf 1.10 where other M4 macros live. +export ACLOCAL='aclocal -I /usr/share/aclocal/'
# The ccache dir is located in the /work file system. As ~/.zshenv is # not sourced by the build script, this environment variable is # defined here. export CCACHE_DIR=/work/build/var/ccache
+# The setup of ICC is tedious enough to be avoided to build `timelimit'; +# always use GCC for this. +export TIMELIMIT_CC=gcc + + + +# Clean up. clean_buildfarm
@@ -53,7 +64,6 @@ # export CC="icc" # export CXX="icpc" # # ICC 9.1 settings. -# source /lrde/dev/linux-x86/intel/icc9.1/bin/iccvars.sh # init_icc_vars # test_tree vaucanson-icc-9.1 \ # bootstrap configure build check demos install distcheck Index: buildfarm_worker/generic.fns --- buildfarm_worker/generic.fns (revision 421) +++ buildfarm_worker/generic.fns (working copy) @@ -3,8 +3,8 @@ clean_buildfarm
# Use ccache along with GCC. -export CC="export gcc" -export CXX="export g++" +export CC="ccache gcc" +export CXX="ccache g++"
test_tree generic-tools test_tree c-tools Index: buildfarm_worker/config.fns --- buildfarm_worker/config.fns (revision 421) +++ buildfarm_worker/config.fns (working copy) @@ -59,7 +59,7 @@ # Olena. # # ------- #
- olena:0.10*) + olena:0.10|olena:0.11*) # Pacify Apple's g++. if $(cxx_compiler) --version | grep Apple >/dev/null; then CXXFLAGS=-Wno-long-double