[Bioc-devel] Problem with non-portable compiler flags on package test

Aaron Lun |n||n|te@monkey@@w|th@keybo@rd@ @end|ng |rom gm@||@com
Sat Apr 13 10:11:47 CEST 2019

To contribute another data point on the use of architecture-specific 
compilation settings, see the discussion at:


This discrepancy took two months to track down. Two months! During my 
holidays! And it wasn't even my fault!

So, if you're putting in architecture-specific flags, (i) it had better 
be worth it, and (ii) a few CHECK warnings are and will be the least of 
your concerns.


On 4/12/19 2:32 AM, Martin Morgan wrote:
> Your configure outsmarts the check system, so your options are to omit the flags or to live with the warning. Either solution is fine with Bioconductor.
> Martin
> On 4/12/19, 4:17 AM, "Bioc-devel on behalf of Jochen Knaus" <bioc-devel-bounces using r-project.org on behalf of jo using imbi.uni-freiburg.de> wrote:
>      Hi everybody,
>      for our new R package "Netboost" we have a problem about non portable
>      compiler flags. Basically we support AVX in our own C++ code (using
>      compiler intrinsics to use the AVX units). Of course we have a non-AVX
>      code path.
>      For building we use autotools and configure to determine at installation
>      time if the AVX unit is available and supported by the given compilers.
>      If available then compilation is done with AVX, if not, then ordinary
>      code path is used.
>      The problem is the R package test, which does see the set AVX flag in
>      "Makevars" (as Makevars.in is configured to use AVX if the test is
>      executed on a machine supporting AVX).
>      Note: due to bundled software, this is a Linux only package, so no
>      support for Microsoft compilers is required (with other flag names).
>      Is there any way around this warning, which is a real false-positive, as
>      the flag is not set in environments not suitable.
>      Thanks a lot for any help!
>      Jo
>      Details:
>      for testing we use GNU Autotools and the AX_EXT M4-macroset to determine
>      the hardware and compiler support for additional features:
>      https://www.gnu.org/software/autoconf-archive/ax_ext.html
>      configure.ac:
>      m4_include([m4/ax_gcc_x86_avx_xgetbv.m4])
>      m4_include([m4/ax_gcc_x86_cpuid.m4])
>      m4_include([m4/ax_check_compile_flag.m4])
>      m4_include([m4/ax_ext.m4])
>      # Probe CPU and compilers
>      AX_EXT
>      src/Makevars.in:
>      PKG_CXXFLAGS=`${R_HOME}/bin/Rscript -e "Rcpp:::CxxFlags()"` @SIMD_FLAGS@
>      Running R CMD CHECK with --as-cran, we get the warning:
>      http://bioconductor.org/spb_reports/netboost_buildreport_20190412033232.html
>      * checking compilation flags used ... WARNING Compilation used the
>      following non-portable flag(s): -Wno-deprecated -maes -mavx -mavx2 -mfma
>      -mmmx -msse -msse3 -msse4.1 -msse4.2 -mssse3
>      (Basically we only need -mavx and optionally FMA, but AX_EXT sets all).
>      --
>      Jochen Knaus
>      Institute of Biometry and Statistics
>      Faculty of Medicine and Medical Center - University of Freiburg
>      Office: IMBI library
>      Postal address: Stefan-Meier-Str. 26, D-79104 Freiburg
>      Phone: +49/761/203-5528
>      Mail: jo using imbi.uni-freiburg.de
>      Homepage: http://www.imbi.uni-freiburg.de
>      	[[alternative HTML version deleted]]
>      _______________________________________________
>      Bioc-devel using r-project.org mailing list
>      https://stat.ethz.ch/mailman/listinfo/bioc-devel
> _______________________________________________
> Bioc-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel

More information about the Bioc-devel mailing list