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-boun...@r-project.org on behalf of j...@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: j...@imbi.uni-freiburg.de
Homepage: http://www.imbi.uni-freiburg.de
[[alternative HTML version deleted]]
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel