[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:
https://www.mail-archive.com/bioc-devel@r-project.org/msg10525.html
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.
-A
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