Создание кросс-компилятора gcc для Linux. Как узнать, какие «--цели» поддерживаются, и точное ключевое слово для их указания?

Нет. Пакет minissdpdв Debian 10.0 не прошел аудит безопасности.

minissdpdработает от имени пользователя root. Контейнера нет, за исключением того, что служба systemd определена для использования PrivateTmp. Существует некоторый тестовый код для «удаления привилегий», который отключен блоком #if 0и комментарием TODO .

Обратите внимание, что демон написан на C, родном языке переполнения буфера .

(Для записи подход в тестовом коде был бы недостаточным. Демон все еще может попытаться получить доступ к файловой системе. Помните, что Debian по умолчанию делает домашние каталоги доступными для чтения всем пользователям. Кроме того, -жестко кодирует пользователя nobody. Чем больше программное обеспечение «отбрасывает привилегии», чтобы стать тем же пользователем «никто», тем больше хаоса может нанести этот предполагаемый «никто», и больше вероятность того, что у него есть какие-то личные данные, к которым он может получить доступ.)

0
01.12.2020, 18:56
1 ответ

Чтобы получить представление о поддерживаемых целевых архитектурах, вам следует просмотретьconfigureиconfig.subв любом исходном коде GCC, который вы пытаетесь собрать. Вам также понадобятся соответствующие binutils и библиотека C; Руководство по установке GCC подробно описывает этапы настройки и сборки компилятора.

Помимо архитектуры, вам также необходимо решить, на какую операционную систему и библиотеку ориентироваться; таким образом, для Linux с библиотекой GNU C на x86 _64 вы должны настроить с помощью --target=x86_64-linux-gnu. Существуют более короткие псевдонимы, вы можете запустить config.sub, чтобы определить, чему они соответствуют:

$ src/config.sub x86_64-linux
x86_64-pc-linux-gnu

Итак, ./configure --target=x86_64-linuxбудет эквивалентно x86_64-linux-gnu, что эквивалентно x86_64-pc-linux-gnu.

После настройки и сборки вы получите компилятор, который создает программы, которые могут работать на сконфигурированной цели; сам компилятор будет работать на сконфигурированном хосте. Вообще говоря, вы должны указать только цель; это возможно скрестить -построить кросс -компилятор (это известно как канадский кросс ), но если вы только начинаете скрещивать -компиляции, вы должны пока оставить это в стороне.

2
18.03.2021, 22:46

Теги

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