Ошибка компиляции R для пакета fst

Я пытаюсь установить пакет fst R из CRAN, но получаю сообщение об ошибке:

gcc -I"/path/apps/R/3.5.1-20180807-test/x86_64-linux-2.6-rhel6/lib64/R/include" -DNDEBUG 
-fopenmp -I. -Ifstcore -Ifstcore_v1 -Ifstcore/LZ4 -Ifstcore/ZSTD -Ifstcore/ZSTD/common 
-Ifstcore/ZSTD/decompress -Ifstcore/ZSTD/compress 
-I"/path/apps/R/3.5.1-20180807-test/x86_64-linux-2.6-rhel6/r_libs_site/Rcpp/include" 
-I /path/apps/R/static-zlib-gcc6.3/x86_64-linux-2.6-rhel6/include   -fpic  
-I /path/apps/R/static-zlib-gcc6.3/x86_64-linux-2.6-rhel6/include   
-c fstcore/ZSTD/compress/huf_compress.c -o fstcore/ZSTD/compress/huf_compress.o
gcc -I"/path/apps/R/3.5.1-20180807-test/x86_64-linux-2.6-rhel6/lib64/R/include" -DNDEBUG 
-fopenmp -I. -Ifstcore -Ifstcore_v1 -Ifstcore/LZ4 -Ifstcore/ZSTD -Ifstcore/ZSTD/common 
-Ifstcore/ZSTD/decompress -Ifstcore/ZSTD/compress 
-I"/path/apps/R/3.5.1-20180807-test/x86_64-linux-2.6-rhel6/r_libs_site/Rcpp/include" 
-I /path/apps/R/static-zlib-gcc6.3/x86_64-linux-2.6-rhel6/include   -fpic  
-I /path/apps/R/static-zlib-gcc6.3/x86_64-linux-2.6-rhel6/include   
-c fstcore/ZSTD/decompress/zstd_decompress.c -o fstcore/ZSTD/decompress/zstd_decompress.o
/tmp/cc0LoSFX.s: Assembler messages:
/tmp/cc0LoSFX.s:7353: Error: no such instruction: `shlx %rax,%rdx,%rax'
/tmp/cc0LoSFX.s:8204: Error: no such instruction: `shlx %rax,%rdx,%rax'
/tmp/cc0LoSFX.s:8608: Error: no such instruction: `shlx %rax,%rdx,%rax'
make: *** [fstcore/ZSTD/decompress/zstd_decompress.o] Error 1
ERROR: compilation failed for package ‘fst’

Есть ли какая-нибудь необходимая библиотека Linux, которую можно скомпилировать из исходного кода? Что еще я могу сделать?

РЕДАКТИРОВАТЬ:

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/path/apps/gcc/6.3.0/x86_64-linux-2.6-rhel6/bin/../libexec/gcc/x86_64-pc-linux-gnu/6.3.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --prefix=/path/apps/gcc/6.3.0/x86_64-linux-2.6-rhel6 --disable-multilib
Thread model: posix
gcc version 6.3.0 (GCC)

person Taz    schedule 25.08.2018    source источник
comment
Какая у вас версия gcc?   -  person Dirk Eddelbuettel    schedule 26.08.2018
comment
@Дирк Эддельбюттель 6.3.0   -  person Taz    schedule 26.08.2018
comment
Тогда что-то еще может получиться.   -  person Dirk Eddelbuettel    schedule 26.08.2018
comment
На CRAN написано SystemRequirements: little-endian platform. У вас особый тип ОС? И на Солярисе не получается.   -  person F. Privé    schedule 26.08.2018
comment
Моя ОС RHEL6. И он уже установлен для R 3.4.3 предыдущим человеком, так что это возможно.   -  person Taz    schedule 26.08.2018
comment
Я подозреваю, но у меня нет доказательств, что ваш необычный путь к gcc как-то связан с этим. Ваша сгенерированная сборка вышла из строя, поэтому gcc (который является драйвером для подпрограмм), возможно, перепутал версии. Короче говоря. и поскольку я использую gcc более 25 лет, и я еще не видел эту ошибку, я думаю, что ошибка локальна для вас.   -  person Dirk Eddelbuettel    schedule 26.08.2018
comment
Ошибки ассемблера возникают только на fst 0.8.6. Я установил fst 0.8.4 без проблем.   -  person Taz    schedule 26.08.2018


Ответы (1)


Поместите это здесь для потомков на случай, если другие в конечном итоге зададут этот вопрос, столкнувшись с аналогичными проблемами.

Оказывается, насколько мы можем судить, проблема заключалась в несовместимости версий ассемблера (/usr/bin/as) и gcc (наша несистемная установка 6.3.0).

Так что, если вы приземлились здесь в конце своей веревки, не зная, почему вы видите эти ошибки, ищите совместимую версию ассемблера (в мире Linux это часть модуля/проекта binutils). Надеюсь, это поможет.

person Gabe Becker    schedule 29.08.2018