Dear Prof. Ripley,

Thank you for your answer. I think I am way over my head here.

(Using Doker adds a level of complexity that I'm afraid I can't
manage for now so I am happy with building Rdevel and using it
in to run these tests).

After building Rdevel with what I think are the correct options**
 (just to avoid mistakes I have also fully removed R from my system
 just before and insured that the following packages are all updated)

apt-get install bash-completion bison debhelper default-jdk g++ gcc gfortran groff-base libblas-dev libbz2-dev libcairo2-dev libcurl4-openssl-dev libjpeg-dev liblapack-dev liblzma-dev libncurses5-dev libpango1.0-dev libpcre3-dev libpng-dev libreadline-dev libtiff5-dev libx11-dev libxt-dev mpack subversion tcl8.5-dev texinfo texlive-base texlive-extra-utils texlive-fonts-extra texlive-fonts-recommended texlive-generic-recommended texlive-latex-base texlive-latex-extra texlive-latex-recommended tk8.5-dev valgrind x11proto-core-dev xauth xdg-utils xfonts-base xvfb zlib1g-dev

cd /tmp
svn co http://svn.r-project.org/R/trunk R-devel
cd /tmp/R-devel
R_PAPERSIZE=letter R_BATCHSAVE="--no-save --no-restore" PAGER=/usr/bin/pager PERL=/usr/bin/perl R_UNZIPCMD=/usr/bin/unzip R_ZIPCMD=/usr/bin/zip R_PRINTCMD=/usr/bin/lpr LIBnn=lib AWK=/usr/bin/awk CFLAGS="-pipe -std=gnu99 -Wall -pedantic -O2" CXXFLAGS="-pipe -Wall -pedantic -O2" CC="gcc -fsanitize=address,undefined" CXX="g++ -fsanitize=address,undefined" CXX1X="g++ -fsanitize=address,undefined" FC="gfortran -fsanitize=address,undefined" F77="gfortran -fsanitize=address,undefined" ./configure --enable-R-shlib --without-blas --without-lapack --with-readline --without-recommended-packages --program-suffix=dev --disable-openmp
make
make install
make clean

But I'm not sure how to proceed from there.
I tried the obvious thing:

Rdevel CMD build my_offending_package
Rdevel CMD check --as-cran my_offending_package

But I have not been able to replicate the bug I see on cran:

/usr/local/gcc5/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/include/emmintrin.h:140:21:
 runtime error: load of misaligned address 0x61800007fc84 for type 'const 
double', which requires 8 byte alignment
0x61800007fc84: note: pointer points here
  00 00 80 3f 00 00 80 3f  00 00 80 3f 00 00 80 3f  00 00 80 3f 00 00 80 3f  00 
00 80 3f 00 00 80 3f


**Though the original authors bear no responsibility for these scripts,
 I have found many of these commands on this file:
https://github.com/rocker-org/r-devel-san/blob/master/Dockerfile





On 2015-10-14 10:10, Prof Brian Ripley wrote:
On 13/10/2015 14:46, kaveh wrote:
   Dear All,

   I'm trying to implement the section of the manual pertaining to the
gcc-ubsan test
   carried by CRAN on my local computer (ubuntu 14.04):

http://www.stats.ox.ac.uk/pub/bdr/memtests/gcc-UBSAN/README.txt

   I was wondering whether someone could tell what the minimal version
    of the gcc tool chain needed to run the gcc-ASAN and gcc-UBSAN
alignment
   tests on ones local computer is. CRAN seems to use gcc 5.2.0 to do
these tests,
    but the current version of gcc shipped with ubuntu is 4.9.2 (to be
updated to
    5.1.0 with the 15.10 release latter this month).

  I hope this is the correct list to post this.

The correct thing to do is to read the manual (either the R manual or your gcc manual). The R manual says

'AddressSanitizer (‘ASan’) is a tool with similar aims to the memory checker in valgrind. It is available with suitable builds of gcc 4.8.0 or clang 3.1 and later on common Linux and OS X platforms.'

'‘UBSanitizer’ is a tool for C/C++ source code selected by -fsanitize=undefined in suitable builds of clang, and GCC as from 4.9.0.'

Note that including these capabilities and their runtimes is optional at least for clang (until recently Apple omitted them), so you need to check your own system's documentation.


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to