Собираю R 3.4.3 на HP-UX 11.31 с GCC 4.9.2. К удивлению, компилится до конца, но потом начинают лезть сегфолты. Т.е. некоторые вещи работают:
> 1+2
[1] 3
> sum(c(1,2))
[1] 3
> var(c(1,2,3))
[1] 1
Ну а некоторые нет:
> pgamma(1,Inf,Inf)
*** caught segfault ***
address d0650000, cause 'invalid permissions'
Traceback:
1: pgamma(1, Inf, Inf)
Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection: 1
R is aborting now ...
Segmentation fault (core dumped)
'Причина' у сегфолтов бывает довольно разной.
Вообще говоря, если собирать с --with-readline, то крашится не доходя до промта:
/usr/lib/hpux32/dld.so: Unsatisfied code symbol 'tgetent' in load module '$LOCAL/lib/libreadline.sl.7'.
Killed
GCC'ные C и С++ компиляторы уже были в системе, gfortran пришлось собрать самому. Однако это получилось сделать не сразу, и у меня есть подозрения, что он не совсем корректно может работать, хоть сборка была и через трехшаговый бутстрап со всем полагающимся. Так что хотелось бы gfortran сразу исключить.
Куда еще можно посмотреть? Тулчейн на сервере по однородности можно сравнить с лоскутным одеялом.
Прикладываю на всякий случай еще вывод file и ldd:
$ file bin/exec/R
bin/exec/R: ELF-32 executable object file - IA64
$ ldd bin/exec/R
bin/exec/R:
/usr/lib/hpux32/libpthread.so => /usr/lib/hpux32/libpthread.so
libRblas.sl => $LOCAL/var/build/R-3.4.3/lib/libRblas.sl
libgfortran.so.3 => $LOCAL/lib/libgfortran.so.3
libm.so.1 => /usr/lib/hpux32/libm.so.1
libunwind.so.1 => /usr/lib/hpux32/libunwind.so.1
libdl.so.1 => /usr/lib/hpux32/libdl.so.1
/usr/local/lib/hpux32/libintl.so => /usr/local/lib/hpux32/libintl.so
/usr/local/lib/hpux32/libiconv.so => /usr/local/lib/hpux32/libiconv.so
libpcre.so.3 => $LOCAL/lib/libpcre.so.3
liblzma.so => /usr/local/lib/hpux32/liblzma.so
libbz2.so => /usr/local/lib/hpux32/libbz2.so
libz.so => /usr/local/lib/hpux32/libz.so
libnsl.so.1 => /usr/lib/hpux32/libnsl.so.1
librt.so.1 => /usr/lib/hpux32/librt.so.1
libc.so.1 => /usr/lib/hpux32/libc.so.1
libgfortran.so.3 => $LOCAL/lib/libgfortran.so.3
libm.so.1 => /usr/lib/hpux32/libm.so.1
libunwind.so.1 => /usr/lib/hpux32/libunwind.so.1
libgcc_s.so.0 => $LOCAL/lib/libgcc_s.so.0
libm.so.1 => /usr/lib/hpux32/libm.so.1
libc.so.1 => /usr/lib/hpux32/libc.so.1
libgcc_s.so.0 => $LOCAL/lib/libgcc_s.so.0
libunwind.so.1 => /usr/lib/hpux32/libunwind.so.1
libuca.so.1 => /usr/lib/hpux32/libuca.so.1
libiconv.so => /usr/local/lib/hpux32/libiconv.so
libc.so.1 => /usr/lib/hpux32/libc.so.1
libc.so.1 => /usr/lib/hpux32/libc.so.1
libpthread.so.1 => /usr/lib/hpux32/libpthread.so.1
libc.so.1 => /usr/lib/hpux32/libc.so.1
libc.so.1 => /usr/lib/hpux32/libc.so.1
libxti.so.1 => /usr/lib/hpux32/libxti.so.1
libdl.so.1 => /usr/lib/hpux32/libdl.so.1
libc.so.1 => /usr/lib/hpux32/libc.so.1
libunwind.so.1 => /usr/lib/hpux32/libunwind.so.1
Везде выше $LOCAL — это некоторое потаенное дерево, куда локально ставится около-гнушный софт.