Похоже, существует несовместимость с более новыми версиями binutils
.
Я обнаружил, что GNU binutils 2.31.1
приводит к этой ошибке, но вместо этого использование версии 2.30
устраняет проблему.
Источник:
В конце концов я нашел ответ в этом журнале чата , где пользователь deviosity
говорит:
and keep runnning into the dreaded: Unsupported relocation type: R_X86_64_PLT32 (4) error, which usually is resolved by downgrading binutils to 2.30 versus 2.31
и этот комментарий также подтверждает это (Ubuntu 16.04 также использует более старую версию binutils,2.26.1
).
В библиотеке GNU C SA_RESETHAND
отображается как__USE_XOPEN_EXTENDED
или__USE_XOPEN2K8
. В результате установки _POSIX_C_SOURCE
на 200112 недостаточно; вместо этого вам нужно
#define _XOPEN_SOURCE 600
(, который включает__USE_XOPEN_EXTENDED
)или
#define _POSIX_C_SOURCE 200809L
(, который включает__USE_XOPEN2K8
).
Насколько я понимаю, это соответствует POSIX -:до выпуска 7, SA_RESETHAND
, SA_RESTART
, SA_SIGINFO
, SA_NOCLDWAIT
и SA_NODEFER
были частью опции XSI. Они были перемещены в Базу в Выпуске 7 (2008).
man 2 sigaction
исходит из проекта справочных страниц Linux -, а не из библиотеки GNU C, поэтому несоответствия случаются.