англійськафранцузькаіспанська

Ad


Значок OnWorks

dpkg-buildflags - онлайн у хмарі

Запустіть dpkg-buildflags у безкоштовному хостинг-провайдері OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда dpkg-buildflags, яку можна запустити в безкоштовному хостинг-провайдері OnWorks за допомогою однієї з наших безкоштовних онлайн-робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

ПРОГРАМА:

ІМ'Я


dpkg-buildflags - повертає прапори збірки для використання під час збирання пакета

СИНТАКСИС


dpkg-buildflags [варіант...] [команда]

ОПИС


dpkg-buildflags це інструмент для отримання прапорів компіляції для використання під час збирання Debian
пакети. Прапорці за замовчуванням визначаються постачальником, але їх можна розширити/замінити
кількома способами:

1. загальносистемний с /etc/dpkg/buildflags.conf;

2. для поточного користувача с $XDG_CONFIG_HOME/dpkg/buildflags.conf де
$XDG_CONFIG_HOME за замовчуванням $HOME/.config;

3. тимчасово користувачем за допомогою змінних середовища (див. розділ НАВКОЛИШНЄ СЕРЕДОВИЩЕ);

4. динамічно супроводжувачем пакунків зі змінними середовища, встановленими через
debian/правила (див. розділ НАВКОЛИШНЄ СЕРЕДОВИЩЕ).

Конфігураційні файли можуть містити два типи директив:

УСТАНОВКА прапор значення
Перевизначити прапорець з назвою прапор мати цінність значення.

СТРІП прапор значення
Смужка з прапора ім прапор усі позначки збірки, перелічені в значення.

ДОДАТОК прапор значення
Розгорніть прапор з назвою прапор шляхом додавання наведених варіантів значення. Пробіл є
додається до доданого значення, якщо поточне значення прапора не порожнє.

PREPEND прапор значення
Розгорніть прапор з назвою прапор додаючи на початку наведені варіанти значення. Пробіл є
додається до попереднього значення, якщо поточне значення прапора не порожнє.

Файли конфігурації можуть містити коментарі до рядків, які починаються з решетки (#). Порожній
рядки також ігноруються.

КОМАНДИ


--звалища Вивести на стандартний вихід усі позначки компіляції та їхні значення. Він друкує один прапор
за рядок, відокремлений від його значення знаком рівності (“прапор=значення”). Це
дія за замовчуванням.

-- список Надрукуйте список прапорів, які підтримує поточний постачальник (по одному на рядок). Див
ПІДТРИМАНО ФЛАГИ розділ для отримання додаткової інформації про них.

--статус
Показуйте будь-яку інформацію, яка може бути корисною для пояснення поведінки
dpkg-buildflags (з dpkg 1.16.5): відповідні змінні середовища, поточні
постачальник, стан усіх прапорів функцій. Також надрукуйте отримані прапори компілятора за допомогою
їх походження.

Це призначено для запуску debian/правила, щоб журнал збірки був чистим
трасування використовуваних прапорів збірки. Це може бути корисним для діагностики проблем, пов’язаних із
Ними.

--експорт=формат
Друк у стандартні команди виводу, які можна використовувати для експорту всієї компіляції
прапорці для певного інструменту. Якщо формат значення не вказано, sh передбачається.
Включаються лише позначки компіляції, що починаються з верхнього регістру, інші
вважаються непридатними для навколишнього середовища. Підтримувані формати:

sh Команди оболонки для встановлення та експорту всіх прапорів компіляції в
навколишнє середовище. Значення прапорців взято в лапки, тому вихід готовий
оцінка оболонкою.

cmdline
Аргументи, які потрібно передати в командний рядок програми збирання, щоб використовувати всі
прапори компіляції (з dpkg 1.17.0). Значення прапорів наводяться в котируваннях оболонки
синтаксис

конфігурувати
Це застарілий псевдонім для cmdline.

зробити Створіть директиви для встановлення та експорту всіх прапорів компіляції в
навколишнє середовище. Вихідні дані можна записати у фрагмент make-файлу та оцінити
за допомогою включати Директиви.

--отримати прапор
Вивести значення прапора на стандартний вивід. Вихід із 0, якщо прапор відомий
інакше виходить із 1.

--походження прапор
Вивести початок значення, яке повертає --отримати. Вихід із 0, якщо прапор
відомий, інакше виходить із 1. Початком може бути одне з таких значень:

продавець повертається оригінальний прапор, встановлений постачальником;

система прапор встановлено/змінено загальносистемною конфігурацією;

користувач прапорець встановлюється/змінюється відповідно до конфігурації користувача;

env прапорець встановлюється/змінюється залежно від середовища конфігурацією.

--query-features область
Друк функцій, увімкнених для певної області (починаючи з dpkg 1.16.2). Єдиний
наразі розпізнаними областями в Debian і похідних є qa, відтворювані, sanitize
та загартовування, див У ФОКУСІ ЗОНА розділ для отримання додаткової інформації. Вихід із 0, якщо
область відома, інакше виходить із 1.

Вихід у форматі RFC822, з одним розділом на функцію. Наприклад:

Особливість: пиріг
Увімкнено: немає

Функція: stackprotector
Увімкнено: так

--допомога Покажіть повідомлення про використання та вийдіть.

-- версія
Покажіть версію та вийдіть.

ПІДТРИМАНО ФЛАГИ


CFLAGS Параметри для компілятора C. Значення за замовчуванням, встановлене постачальником, включає -g і
рівень оптимізації за замовчуванням (-О2 зазвичай, або -О0 якщо DEB_BUILD_OPTIONS
визначає змінна середовища noopt).

CPPFLAGS
Параметри для препроцесора C. Значення за замовчуванням: пусто.

CXXFLAGS
Параметри для компілятора C++. Такий же, як CFLAGS.

OBJCFLAGS
Параметри для компілятора Objective C. Такий же, як CFLAGS.

OBJCXXFLAGS
Параметри для компілятора Objective C++. Такий же, як CXXFLAGS.

GCJFLAGS
Параметри для компілятора GNU Java (gcj). Підмножина CFLAGS.

FLAGS Параметри для компілятора Fortran 77. Підмножина CFLAGS.

FCFLAGS
Параметри для компілятора Fortran 9x. Такий же, як FLAGS.

LDFLAGS
Параметри, що передаються компілятору під час зв’язування виконуваних файлів або спільних об’єктів (якщо
тоді компонувальник викликається безпосередньо -Вл та , повинні бути позбавлені цих опцій).
Значення за замовчуванням: пусто.

Нові позначки можуть бути додані в майбутньому, якщо виникне потреба (наприклад, для підтримки інших
мови).

У ФОКУСІ ЗОНА


Кожну функцію області можна вмикати та вимикати в DEB_BUILD_OPTIONS та
DEB_BUILD_MAINT_OPTIONS значення області змінної середовища з '+'І'-'модифікатор.
Наприклад, щоб увімкнути загартовування функцію «пиріг» і вимкніть функцію «зміцнення».
може зробити це в debian/правила:

експорт DEB_BUILD_MAINT_OPTIONS=зміцнення=+пиріг,-зміцнити

Особливість всі (дійсний у будь-якій області) можна використовувати, щоб увімкнути або вимкнути всю область
функції одночасно. Таким чином відключаючи все в загартовування області та сприяння
лише «форматувати» та «зміцнювати» можна за допомогою:

експорт DEB_BUILD_MAINT_OPTIONS=зміцнення=-все,+формат,+укріпити

qa
Кілька параметрів під час компіляції (докладно описано нижче) можна використовувати для виявлення проблем у
вихідний код або система побудови.

помилка Цей параметр (вимкнено за замовчуванням) додає будь-який параметр попередження, який надійно виявляє
проблемний вихідний код. Попередження фатальні.

канарейка Цей параметр (вимкнено за замовчуванням) додає фіктивні параметри канарки до прапорів збірки, отже
що журнали збірки можна перевірити на те, як поширюються прапори збірки та дозволити
виявлення будь-яких пропусків нормальних налаштувань прапора збірки. Єдиний наразі підтримується
прапори CPPFLAGS, CFLAGS, OBJCFLAGS, CXXFLAGS та OBJCXXFLAGS із встановленими прапорцями
-D__DEB_CANARY_прапор_випадковий ідентифікатор__ та LDFLAGS встановлений в -Wl,-z,deb-canary-випадковий ідентифікатор.

sanitize
Кілька параметрів під час компіляції (докладно описано нижче) можна використовувати, щоб допомогти очистити результат
двійковий файл проти пошкоджень пам’яті, витоку пам’яті, використання після звільнення, перегонів потокових даних та
невизначені помилки поведінки.

адреса
Цей параметр (за умовчанням вимкнено) додає -fsanitize=адреса до LDFLAGS та
-fsanitize=адреса -fno-omit-frame-pointer до CFLAGS та CXXFLAGS.

нитка Цей параметр (за умовчанням вимкнено) додає -fsanitize=потік до CFLAGS, CXXFLAGS та
LDFLAGS.

витік Цей параметр (за умовчанням вимкнено) додає -fsanitize=витік до LDFLAGS. Це отримує
автоматично вимикається, якщо будь-який з них адреса або нитка функції включені, як
вони мають на увазі це.

невизначених
Цей параметр (за умовчанням вимкнено) додає -fsanitize=не визначено до CFLAGS, CXXFLAGS
та LDFLAGS.

загартовування
Кілька параметрів під час компіляції (деталізовано нижче) можна використовувати, щоб допомогти посилити результат
двійковий файл проти атак пошкодження пам’яті або надавати додаткові попереджувальні повідомлення під час
компіляція. За винятком зазначеного нижче, вони ввімкнені за замовчуванням для архітектур, які
підтримувати їх.

формат Цей параметр (увімкнено за умовчанням) додає - W формат -Помилка = формат-безпека до CFLAGS,
CXXFLAGS, OBJCFLAGS та OBJCXXFLAGS. Це попередить про неправильний формат рядка
використовує, і не вийде, якщо функції форматування використовуються у спосіб, який представляє можливий
проблеми безпеки. Наразі це попереджає про дзвінки на printf та scanf Функції
де рядок формату не є рядковим літералом і немає аргументів формату,
як в printf(foo); замість printf("%s", foo); Це може бути дірка в безпеці, якщо
форматний рядок надійшов із ненадійного введення та містить «%n».

зміцнювати
Цей параметр (увімкнено за умовчанням) додає -D_FORTIFY_SOURCE=2 до CPPFLAGS. Під час коду
покоління компілятор знає багато інформації про розміри буферів (де
можливо) і намагається замінити незахищені виклики функції буфера необмеженої довжини
з обмеженими по довжині. Це особливо корисно для старого, поганого коду.
Крім того, рядки форматування в записуваній пам’яті, які містять «%n», блокуються. Якщо
додаток залежить від такого рядка формату, його потрібно буде обійти.

Зауважте, що для того, щоб цей параметр мав якийсь ефект, джерело також має бути скомпільоване
-О1 або вище. Якщо змінна середовища DEB_BUILD_OPTIONS містить noopt, То
зміцнювати підтримку буде вимкнено через нові попередження, які видає glibc 2.16
і пізніше.

стек -протектор
Цей параметр (увімкнено за замовчуванням, якщо stackprotectorstrong не використовується) додає
-fstack-протектор --param=ssp-buffer-size=4 до CFLAGS, CXXFLAGS, OBJCFLAGS,
OBJCXXFLAGS, GCJFLAGS, FLAGS та FCFLAGS. Це додає перевірки безпеки щодо стека
перезаписує. Це призводить до переривання багатьох потенційних атак впровадження коду
ситуації. У найкращому випадку це перетворює уразливості впровадження коду на заперечення
служби або в непроблеми (залежно від програми).

Ця функція потребує зв’язування з glibc (або іншим постачальником
__stack_chk_fail), тому його потрібно вимкнути під час створення за допомогою -nostdlib or
-автономний або подібні.

stackprotectorstrong
Цей параметр (увімкнено за умовчанням) додає -fstack-protector-strong до CFLAGS,
CXXFLAGS, OBJCFLAGS, OBJCXXFLAGS, GCJFLAGS, FLAGS та FCFLAGS. Це сильніше
варіант стек -протектор, але без значних поразок продуктивності.

Відключення стек -протектор також вимкне це налаштування.

Ця функція має ті ж вимоги, що й стек -протектор, а крім того також
вимагає gcc 4.9 і пізніших версій.

relro Цей параметр (увімкнено за умовчанням) додає -Wl,-z,relro до LDFLAGS. Під час програми
завантаження, кілька розділів пам'яті ELF повинні бути записані компонувальником. Це прапори
завантажувач, щоб перетворити ці розділи на лише читання перед передачею керування
програма. Зокрема, це запобігає атакам перезапису GOT. Якщо цей варіант є
інвалід, bindnow також стане інвалідом.

bindnow
Цей параметр (за умовчанням вимкнено) додає -Вл,-з, зараз до LDFLAGS. Під час завантаження програми,
усі динамічні символи розпізнаються, що дозволяє позначати весь PLT як прочитаний.
тільки (через relro вище). Параметр не може стати активним, якщо relro НЕ
включений.

пиріг Цей параметр (за умовчанням вимкнено) додає -fPIE до CFLAGS, CXXFLAGS, OBJCFLAGS,
OBJCXXFLAGS, GCJFLAGS, FLAGS та FCFLAGS та -fPIE - пиріг до LDFLAGS. Позиція
Незалежний виконуваний файл потрібен, щоб скористатися перевагами макета адресного простору
Рандомізація, підтримується деякими версіями ядра. Тоді як ASLR вже можна
застосовується для областей даних у стеку та купі (brk і mmap), області коду повинні
компілюватися як позиційно-незалежні. Спільні бібліотеки вже це роблять (-fPIC), тому
вони автоматично отримують ASLR, але двійкові .текстові регіони потрібно створити PIE, щоб отримати
ASLR. Коли це трапляється, ROP (Return Oriented Programming) атаки набагато складніші
оскільки немає статичних місць, від яких можна відбиватися під час пошкодження пам’яті
атака

Це не сумісно з -fPIC тому необхідно бути обережним при будівництві спільного використання
об’єкти.

Крім того, оскільки PIE реалізовано через загальний реєстр, деякі архітектури
(особливо i386) може спостерігати втрату продуктивності до 15% у самому текстовому сегменті-
великі прикладні навантаження; більшість робочих навантажень бачать менше 1%. Архітектури с
більш загальні регістри (наприклад, amd64) не бачать такого високого штрафу в найгіршому випадку.

відтворювані
Наведені нижче параметри під час компіляції можна використовувати для покращення відтворюваності збірки
або надавати додаткові попереджувальні повідомлення під час компіляції. За винятком зазначеного нижче, ці
увімкнено за замовчуванням для архітектур, які їх підтримують.

позачасовий
Цей параметр (увімкнено за умовчанням) додає -Дата-час до CPPFLAGS. Це спричинить
попередження, коли __TIME__, __ДАТА__ та __TIMESTAMP__ використовуються макроси.

НАВКОЛИШНЄ СЕРЕДОВИЩЕ


Є 2 набори змінних середовища, які виконують однакові операції, перший
(DEB_прапор_op) ніколи не слід використовувати в межах debian/правила. Він призначений для будь-якого користувача, який хоче
щоб перебудувати вихідний пакет з іншими прапорцями збірки. Другий набір
(DEB_прапор_MAINT_op) слід використовувати лише в debian/правила розробниками пакунків для зміни
отримані прапори збірки.

DEB_прапор_SET
DEB_прапор_MAINT_SET
Ця змінна може бути використана для примусового повернення значення для заданого прапор.

DEB_прапор_STRIP
DEB_прапор_MAINT_STRIP
Ця змінна може бути використана для надання розділеного пробілами списку параметрів, які будуть
видалено з набору прапорів, повернутих для даного прапор.

DEB_прапор_ДОДАТИ
DEB_прапор_MAINT_APPEND
Цю змінну можна використовувати для додавання додаткових опцій до значення, яке повертається
даного прапор.

DEB_прапор_PREPEND
DEB_прапор_MAINT_PREPEND
Ця змінна може бути використана для додавання додаткових опцій до поверненого значення
за дане прапор.

DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS
Ці змінні можуть бути використані користувачем або супроводжувачем для вимкнення/увімкнення різних областей
функції, які впливають на прапори збірки. The DEB_BUILD_MAINT_OPTIONS перевизначення змінних
будь-яке налаштування в DEB_BUILD_OPTIONS особливості областей. Див У ФОКУСІ ЗОНА розділ
for details.

Використовуйте dpkg-buildflags онлайн за допомогою сервісів onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad