sigaction ()sa _флаги и базовая спецификация POSIX.1 -2001

Похоже, существует несовместимость с более новыми версиями 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).

0
06.10.2020, 13:29
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, поэтому несоответствия случаются.

0
18.03.2021, 22:59

Теги

Похожие вопросы