Чтобы установить clang-19 и R-devel я запускал:
Код: Выделить всё
# install clang-19
wget https://apt.llvm.org/llvm.sh -O dev/llvm.sh
chmod +x dev/llvm.sh
sudo ./dev/llvm.sh 19
sudo apt install clang-19 lldb-19 libc++-dev libc++abi-dev
export ASAN_OPTIONS=detect_leaks=0
export RJAVA_JVM_STACK_WORKAROUND=0
export RGL_USE_NULL=true
export R_DONT_USE_TK=true
sudo ln -s /usr/bin/clang-19 /usr/bin/clang
sudo ln -s /usr/bin/clang++-19 /usr/bin/clang++
# install R-devel from source
sudo apt update
sudo apt install -y build-essential gfortran libreadline-dev libx11-dev libxt-dev \
libpng-dev libjpeg-dev libcairo2-dev xvfb libbz2-dev \
libzstd-dev liblzma-dev libcurl4-openssl-dev \
texinfo texlive texlive-fonts-extra \
texlive-fonts-recommended texlive-latex-extra \
libpcre2-dev libharfbuzz-dev libfribidi-dev \
libclang-dev llvm-dev
wget https://cran.r-project.org/src/base-prerelease/R-devel.tar.gz -O dev/R-devel.tar.gz
cd dev
tar -xzvf R-devel.tar.gz
cd R-devel
# add this to config.site
# clang-ASAN, clang-UBSAN:
CC="clang -fsanitize=address,undefined -fno-sanitize=float-divide-by-zero -fno-sanitize=alignment -fno-omit-frame-pointer"
CXX="clang++ -fsanitize=address,undefined -fno-sanitize=float-divide-by-zero -fno-sanitize=alignment -fno-omit-frame-pointer -frtti -stdlib=libc++"
CFLAGS="-g -O3 -Wall -pedantic"
FFLAGS="-g -O2 -mtune=native"
CXXFLAGS="-g -O3 -Wall -pedantic -stdlib=libc++"
MAIN_LD="clang++ -fsanitize=undefined,address -stdlib=libc++"
export ASAN_OPTIONS='detect_leaks=0:detect_odr_violation=0'
export UBSAN_OPTIONS='print_stacktrace=1'
export RGL_USE_NULL="true"
export R_DONT_USE_TK="true"
./configure \
--prefix=/opt/R/${R_VERSION} \
--enable-memory-profiling \
--enable-R-shlib \
--with-blas \
--with-lapack
make
dev/R-devel/bin/R
# install.packages(c("knitr", "cpp11", "data.table", "stringi", "janitor", "rmarkdown", "devtools"))
Код: Выделить всё
dev/R-devel/bin/R
# devtools::clean_dll()
# devtools::test()
Код: Выделить всё
0x50600003aac0 is located 0 bytes inside of 54-byte region [0x50600003aac0,0x50600003aaf6)
allocated by thread T0 here:
#0 0x591875c9eb1d in operator new(unsigned long) (/home/pacha/github/open-redatam/rpkg/dev/R-devel/bin/exec/R+0x10bb1d) (BuildId: e68667ae741dfff9d511b6cf00e1bbc0361b9d69)
#1 0x752b77d52ebf in std::logic_error::logic_error(char const*) (/usr/lib/x86_64-linux-gnu/libc++.so.1+0x4eebf) (BuildId: 78e555136344730317fc05363f9e8afdd6f83ca4)
#2 0x752b6be31cfc in RedatamLib::ByteArrayReader::TryReadStr(std::__1::basic_string*, bool) /home/pacha/github/open-redatam/rpkg/src/redatamlib/ByteArrayReader.cpp:114:13
#3 0x752b6be5e4e0 in RedatamLib::FuzzyEntityParser::TryGetEntity() /home/pacha/github/open-redatam/rpkg/src/redatamlib/FuzzyEntityParser.cpp:45:17
#4 0x752b6be5d7af in RedatamLib::FuzzyEntityParser::ParseEntities() /home/pacha/github/open-redatam/rpkg/src/redatamlib/FuzzyEntityParser.cpp:19:14
#5 0x752b6bf30f94 in RedatamLib::RedatamDatabase::OpenDictionary(std::__1::basic_string const&) /home/pacha/github/open-redatam/rpkg/src/redatamlib/RedatamDatabase.cpp:33:25
#6 0x752b6bf30cda in RedatamLib::RedatamDatabase::RedatamDatabase(std::__1::basic_string const&) /home/pacha/github/open-redatam/rpkg/src/redatamlib/RedatamDatabase.cpp:20:3
Код: Выделить всё
R --vanilla -d 'valgrind -s --track-origins=yes' -f test.R
Ошибки отображаются здесь при проверках CRAN:< /p>
https://www.stats.ox.ac.uk/pub/bdr/memt ... 0check.log
https://www.stats.ox.ac.uk/pub/bdr/memt ... 0check.log
Подробнее здесь: https://stackoverflow.com/questions/791 ... ut-not-gcc