АнглийскийФранцузскийИспанский

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 / rules (см. раздел ОКРУЖАЮЩАЯ СРЕДА).

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

УСТАНОВКА флажок ценностное
Переопределить флаг с именем флажок иметь ценность ценностное .

STRIP флажок ценностное
Снимите флаг с именем флажок все флаги сборки, перечисленные в ценностное .

ДОБАВИТЬ флажок ценностное
Расширить флаг с именем флажок добавив параметры, указанные в ценностное , Пространство
добавляется к добавленному значению, если текущее значение флага не пусто.

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

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

КОМАНДЫ


--свалка Вывести на стандартный вывод все флаги компиляции и их значения. Он печатает один флаг
на строку, отделенную от своего значения знаком равенства ("флажок=ценностное »). Это
действие по умолчанию.

--список Распечатайте список флагов, поддерживаемых текущим поставщиком (по одному в строке). Увидеть
ПОДДЕРЖКА ФЛАГИ раздел для получения дополнительной информации о них.

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

Это предназначено для запуска из debian / rules, чтобы в журнале сборки сохранялось четкое
трассировка используемых флагов сборки. Это может быть полезно для диагностики проблем, связанных с
их.

--export =формат
Печать в стандартные команды вывода, которые можно использовать для экспорта всей компиляции
флаги для определенного инструмента. Если формат значение не указано, sh предполагается.
Включены только флаги компиляции, начинающиеся с символа верхнего регистра, другие
считаются непригодными для окружающей среды. Поддерживаемые форматы:

sh Команды оболочки для установки и экспорта всех флагов компиляции в
окружающая обстановка. Значения флагов указаны в кавычках, поэтому вывод готов для
оценка оболочкой.

командная строка
Аргументы, передаваемые в командную строку программы сборки для использования всех
флаги компиляции (начиная с dpkg 1.17.0). Значения флагов указаны в оболочке.
синтаксис.

конфигурировать
Это устаревший псевдоним для командная строка.

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

--получать флажок
Вывести значение флага на стандартный вывод. Выход с 0, если флаг известен
в противном случае выходит с 1.

--источник флажок
Вывести происхождение значения, возвращаемого --получать. Выход с 0, если флаг
известно, иначе завершается с 1. Исходная точка может быть одним из следующих значений:

продавец возвращается исходный флаг, установленный поставщиком;

система флаг устанавливается / модифицируется общесистемной конфигурацией;

пользователь флаг устанавливается / модифицируется индивидуальной конфигурацией пользователя;

окр флаг устанавливается / модифицируется конфигурацией, зависящей от среды.

--query-функции область
Распечатайте функции, включенные для данной области (начиная с dpkg 1.16.2). Единственный
в настоящее время признанными областями Debian и производных являются qa, воспроизводимый, дезинфицировать
и упрочнениеСм. В ФОКУСЕ УЧАСТКИ раздел для более подробной информации. Выход с 0, если
зона известна иначе, выход с 1.

Выходные данные представлены в формате RFC822, с одним разделом для каждой функции. Например:

Особенность: пирог
Включено: нет

Особенность: stackprotector
Включено: да

--Помогите Показать сообщение об использовании и выйти.

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

ПОДДЕРЖКА ФЛАГИ


КФЛАГИ Опции для компилятора C. Значение по умолчанию, установленное поставщиком, включает -g и
уровень оптимизации по умолчанию (-O2 обычно, или -O0 если DEB_BUILD_OPTIONS
переменная среды определяет ноопт).

CPPFЛАГИ
Опции препроцессора C. Значение по умолчанию: пусто.

CXXFLAGS
Опции для компилятора C ++. Такой же как КФЛАГИ.

ОБЖКФЛАГИ
Опции для компилятора Objective C. Такой же как КФЛАГИ.

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

GCJFLAGS
Опции для компилятора GNU Java (gcj). Подмножество КФЛАГИ.

ФЛАГИ Опции для компилятора Fortran 77. Подмножество КФЛАГИ.

ФЦФЛАГИ
Опции для компилятора Fortran 9x. Такой же как ФЛАГИ.

ЛДФЛАГС
Параметры, передаваемые компилятору при связывании исполняемых файлов или общих объектов (если
компоновщик вызывается напрямую, затем -Wl и , должны быть исключены из этих опций).
Значение по умолчанию: пусто.

Новые флаги могут быть добавлены в будущем, если возникнет необходимость (например, для поддержки других
языки).

В ФОКУСЕ УЧАСТКИ


Каждая функция области может быть включена и отключена в DEB_BUILD_OPTIONS и
DEB_BUILD_MAINT_OPTIONS значение области переменной среды с '+'И'-модификатор.
Например, чтобы включить упрочнение Функцию «пирог» и отключите функцию «укрепить», которую вы
могу сделать это в debian / rules:

экспорт DEB_BUILD_MAINT_OPTIONS = упрочнение = + pie, -fortify

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

экспорт DEB_BUILD_MAINT_OPTIONS = упрочнение = -все, + формат, + усиление

qa
Несколько параметров времени компиляции (подробно описаны ниже) могут быть использованы для обнаружения проблем в
исходный код или система сборки.

ошибка Этот параметр (по умолчанию отключен) добавляет любой параметр предупреждения, который надежно обнаруживает
проблемный исходный код. Предупреждения фатальны.

канарейка Этот параметр (по умолчанию отключен) добавляет фиктивные параметры канарейки к флагам сборки, поэтому
что в журналах сборки можно проверить, как распространяются флаги сборки, и разрешить
обнаружение любого упущения в настройках флага нормальной сборки. Единственный поддерживаемый в настоящее время
флаги CPPFЛАГИ, КФЛАГИ, ОБЖКФЛАГИ, CXXFLAGS и OBJCXXFLAGS с флагами, установленными на
-D__DEB_CANARY_флажок_случайный идентификатор__качества ЛДФЛАГС установлен в -Wl, -z, деб-канарейка-случайный идентификатор.

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

адрес
Этот параметр (по умолчанию отключен) добавляет -fsanitize = адрес в ЛДФЛАГС и
-fsanitize = адрес -fno-опустить-указатель-кадра в КФЛАГИ и CXXFLAGS.

нить Этот параметр (по умолчанию отключен) добавляет -fsanitize = поток в КФЛАГИ, CXXFLAGS и
ЛДФЛАГС.

утечка Этот параметр (по умолчанию отключен) добавляет -fsanitize = утечка в ЛДФЛАГС. Это становится
автоматически отключается, если адрес или нить функции включены, так как
они подразумевают это.

не определено
Этот параметр (по умолчанию отключен) добавляет -fsanitize = undefined в КФЛАГИ, CXXFLAGS
и ЛДФЛАГС.

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

формат Этот параметр (включен по умолчанию) добавляет -Wформат -Werror = безопасность формата в КФЛАГИ,
CXXFLAGS, ОБЖКФЛАГИ и OBJCXXFLAGS. Это предупредит о неправильной строке формата
использует и не сработает, если функции форматирования используются таким образом, который представляет возможные
проблемы безопасности. В настоящее время предупреждает о звонках в Printf и зсапЕ Функции
где строка формата не является строковым литералом и нет аргументов формата,
как в printf (foo); вместо printf ("% s", фу); Это может быть дыра в безопасности, если
Строка формата получена из ненадежного ввода и содержит "% n".

Fortify
Этот параметр (включен по умолчанию) добавляет -D_FORTIFY_SOURCE = 2 в CPPFЛАГИ. Во время кода
поколения компилятор знает много информации о размерах буфера (где
возможно) и попытки заменить вызовы небезопасных буферных функций неограниченной длины
с ограниченными по длине. Это особенно полезно для старого, грубого кода.
Кроме того, блокируются строки форматирования в доступной для записи памяти, содержащие "% n". Если
приложение зависит от такой строки формата, ее нужно будет обойти.

Обратите внимание, что для того, чтобы эта опция имела какой-либо эффект, исходный код также должен быть скомпилирован с
-O1 или выше. Если переменная среды DEB_BUILD_OPTIONS содержит ноопт, то
Fortify поддержка будет отключена из-за новых предупреждений, выдаваемых glibc 2.16
и позже.

защита стека
Этот параметр (включен по умолчанию, если stackprotectorstrong не используется) добавляет
-fstack-протектор --param = размер буфера ssp = 4 в КФЛАГИ, CXXFLAGS, ОБЖКФЛАГИ,
OBJCXXFLAGS, GCJFLAGS, ФЛАГИ и ФЦФЛАГИ. Это добавляет проверки безопасности по стеку
перезаписывает. Это приводит к тому, что многие потенциальные атаки внедрения кода прерываются.
ситуации. В лучшем случае это превращает уязвимости внедрения кода в отрицание
обслуживания или в не проблемы (в зависимости от приложения).

Эта функция требует связывания с glibc (или другим поставщиком
__stack_chk_fail), поэтому его необходимо отключить при сборке с -nostdlib or
-Отдельные или подобный раздел.

stackprotector Strong
Этот параметр (включен по умолчанию) добавляет -fstack-протектор-сильный в КФЛАГИ,
CXXFLAGS, ОБЖКФЛАГИ, OBJCXXFLAGS, GCJFLAGS, ФЛАГИ и ФЦФЛАГИ. Это более сильный
вариант защита стека, но без значительного снижения производительности.

Отключение защита стека также отключит этот параметр.

Эта функция имеет те же требования, что и защита стека, а кроме того также
требуется gcc 4.9 и новее.

Relro Этот параметр (включен по умолчанию) добавляет -Wl, -z, relro в ЛДФЛАГС. Во время программы
load, компоновщик должен записать несколько секций памяти ELF. Это флаги
загрузчик, чтобы эти разделы были доступны только для чтения перед передачей управления
программа. В частности, это предотвращает атаки перезаписи GOT. Если эта опция
отключен, Bindnow тоже станет инвалидом.

Bindnow
Этот параметр (по умолчанию отключен) добавляет -Wl, -z, сейчас в ЛДФЛАГС. Во время загрузки программы
все динамические символы разрешены, что позволяет пометить весь PLT как прочитанный -
только (из-за Relro выше). Опция не может быть включена, если Relro Не
включен.

пирог Этот параметр (по умолчанию отключен) добавляет -fPIE в КФЛАГИ, CXXFLAGS, ОБЖКФЛАГИ,
OBJCXXFLAGS, GCJFLAGS, ФЛАГИ и ФЦФЛАГИкачества -fPIE -пирог в ЛДФЛАГС. Должность
Независимые исполняемые файлы необходимы для использования преимуществ макета адресного пространства.
Рандомизация, поддерживается некоторыми версиями ядра. Хотя ASLR уже можно
принудительно для областей данных в стеке и куче (brk и mmap), области кода должны
компилироваться как независимые от позиции. Общие библиотеки уже делают это (-fPIC), поэтому
они получают ASLR автоматически, но двоичные области .text должны быть построены PIE, чтобы получить
ASLR. Когда это происходит, атаки ROP (Return-Oriented Programming) становятся намного сложнее.
поскольку нет статических мест, от которых можно было бы отскочить во время повреждения памяти
атака.

Это несовместимо с -fPIC поэтому необходимо соблюдать осторожность при построении общих
объекты.

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

воспроизводимый
Параметры времени компиляции, подробно описанные ниже, можно использовать для улучшения воспроизводимости сборки.
или предоставить дополнительные предупреждающие сообщения во время компиляции. За исключением случаев, указанных ниже, эти
включены по умолчанию для поддерживающих их архитектур.

вечный
Этот параметр (включен по умолчанию) добавляет -Среда-время в CPPFЛАГИ. Это вызовет
предупреждения, когда __ВРЕМЯ__, __ДАТА__ и __TIMESTAMP__ используются макросы.

ОКРУЖАЮЩАЯ СРЕДА


Есть 2 набора переменных среды, выполняющих одни и те же операции, первый
(ДЕБ_флажок_op) никогда не следует использовать в debian / rules. Он предназначен для любого пользователя, который хочет
для пересборки исходного пакета с другими флагами сборки. Второй набор
(ДЕБ_флажок_MAINT_op) следует использовать только в debian / rules разработчиками пакетов, чтобы изменить
итоговые флаги сборки.

ДЭБ_флажок_НАБОР
ДЭБ_флажок_MAINT_SET
Эта переменная может использоваться для принудительного возврата значения для данного флажок.

ДЭБ_флажок_ПОЛОСКА
ДЭБ_флажок_MAINT_STRIP
Эту переменную можно использовать для предоставления списка параметров, разделенных пробелами, которые будут
удален из набора флагов, возвращенных для данного флажок.

ДЭБ_флажок_ПРИЛОЖЕНИЕEND
ДЭБ_флажок_MAINT_APPEND
Эту переменную можно использовать для добавления дополнительных параметров к значению, возвращаемому для
данный флажок.

ДЭБ_флажок_PREPEND
ДЭБ_флажок_MAINT_PREPEND
Эта переменная может использоваться для добавления дополнительных параметров к возвращаемому значению.
для данного флажок.

DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS
Эти переменные могут использоваться пользователем или сопровождающим для отключения / включения различных областей.
функции, влияющие на флаги сборки. В DEB_BUILD_MAINT_OPTIONS переопределения переменных
любой параметр в DEB_BUILD_OPTIONS особенности области. Увидеть В ФОКУСЕ УЧАСТКИ .
для получения информации.

Используйте dpkg-buildflags в Интернете с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad