Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

dpkg-buildflags — Online w chmurze

Uruchom dpkg-buildflags w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

Jest to polecenie dpkg-buildflags, które można uruchomić w bezpłatnym dostawcy hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


dpkg-buildflags - zwraca flagi kompilacji do użycia podczas budowania pakietu

STRESZCZENIE


dpkg-buildflags [opcja...] [komenda]

OPIS


dpkg-buildflags to narzędzie do pobierania flag kompilacji do wykorzystania podczas kompilacji Debiana
pakiety. Domyślne flagi są zdefiniowane przez dostawcę, ale można je rozszerzyć/zastąpić
na kilka sposobów:

1. ogólnosystemowy z /etc/dpkg/buildflags.conf;

2. dla bieżącego użytkownika z $XDG_CONFIG_HOME/dpkg/buildflags.conf gdzie
$XDG_CONFIG_HOME domyślnie to $HOME/.config;

3. tymczasowo przez użytkownika ze zmiennymi środowiskowymi (patrz pkt ŚRODOWISKO);

4. dynamicznie przez opiekuna pakietu ze zmiennymi środowiskowymi ustawionymi poprzez
debian/zasady (Patrz sekcja ŚRODOWISKO).

Pliki konfiguracyjne mogą zawierać dwa typy dyrektyw:

SET flaga wartość
Zastąp flagę o nazwie flaga mieć wartość wartość.

ROZEBRAĆ SIĘ flaga wartość
Zdejmij flagę o nazwie flaga wszystkie flagi kompilacji wymienione w wartość.

DODAĆ flaga wartość
Rozszerz flagę o nazwie flaga dołączając opcje podane w wartość. Przestrzeń jest
dodawana do dołączonej wartości, jeśli bieżąca wartość flagi nie jest pusta.

PRZYGOTOWAĆ flaga wartość
Rozszerz flagę o nazwie flaga poprzedzając opcje podane w wartość. Przestrzeń jest
dołączana do wartości na początku, jeśli bieżąca wartość flagi nie jest pusta.

Pliki konfiguracyjne mogą zawierać komentarze do linii rozpoczynających się od znaku hash (#). Pusty
linie są również ignorowane.

POLECENIA


--wysypisko Wypisz na standardowe wyjście wszystkie flagi kompilacji i ich wartości. Drukuje jedną flagę
w wierszu oddzielonym od wartości znakiem równości („flaga=wartość”). To jest
akcja domyślna.

--lista Wydrukuj listę flag obsługiwanych przez bieżącego dostawcę (po jednej w linii). Zobacz
UTRZYMANY FLAGI sekcję, aby uzyskać więcej informacji na ich temat.

--status
Wyświetl wszelkie informacje, które mogą być przydatne do wyjaśnienia zachowania
dpkg-buildflags (od dpkg 1.16.5): odpowiednie zmienne środowiskowe, aktualne
dostawca, stan wszystkich flag funkcji. Wydrukuj także wynikowe flagi kompilatora za pomocą
ich pochodzenie.

To ma na celu ucieczkę debian/zasady, dzięki czemu dziennik kompilacji będzie przejrzysty
ślad użytych flag kompilacji. Może to być przydatne do diagnozowania problemów związanych z
Im.

--eksport=format
Wydrukuj na standardowe polecenia wyjściowe, których można użyć do wyeksportowania całej kompilacji
flagi dla jakiegoś konkretnego narzędzia. Jeśli format wartość nie jest podana, sh zakłada się.
Uwzględniane są tylko flagi kompilacji zaczynające się od dużej litery, inne
Zakłada się, że nie są odpowiednie dla środowiska. Obsługiwane formaty:

sh Polecenia powłoki do ustawiania i eksportowania wszystkich flag kompilacji w pliku
środowisko. Wartości flag są cytowane, więc dane wyjściowe są gotowe
ocena przez powłokę.

linia poleceń
Argumenty do przekazania do wiersza poleceń programu budującego, aby użyć wszystkich
flagi kompilacji (od dpkg 1.17.0). Wartości flag są cytowane w powłoce
składnia.

skonfigurować
To jest starszy alias dla linia poleceń.

robić Utwórz dyrektywy, aby ustawić i wyeksportować wszystkie flagi kompilacji w pliku
środowisko. Dane wyjściowe można zapisać we fragmencie pliku makefile i ocenić
za pomocą zawierać Dyrektywa.

--dostwać flaga
Wydrukuj wartość flagi na standardowe wyjście. Wychodzi z 0, jeśli flaga jest znana
w przeciwnym razie kończy się z 1.

--początek flaga
Wydrukuj pochodzenie wartości zwracanej przez --dostwać. Wychodzi z 0, jeśli flaga
jest znany, w przeciwnym razie kończy się z 1. Początek może mieć jedną z następujących wartości:

sprzedawca zwracana jest oryginalna flaga ustawiona przez sprzedawcę;

system flaga jest ustawiana/modyfikowana poprzez konfigurację ogólnosystemową;

użytkownik flaga jest ustawiana/modyfikowana przez konfigurację specyficzną dla użytkownika;

env flaga jest ustawiana/modyfikowana przez konfigurację specyficzną dla środowiska.

--funkcje-zapytania obszar
Wydrukuj funkcje włączone dla danego obszaru (od dpkg 1.16.2). Jedyny
obecnie rozpoznawane obszary w Debianie i jego instrumentach pochodnych to qa, odtwarzalne, Sanitize
i hartowanie, Patrz FUNKCJA OBSZARY sekcję, aby uzyskać więcej szczegółów. Wychodzi z 0, jeśli
obszar jest znany, w przeciwnym razie kończy się z 1.

Dane wyjściowe są w formacie RFC822, z jedną sekcją na funkcję. Na przykład:

Funkcja: ciasto
Włączone: nie

Funkcja: ochrona stosu
Włączone: tak

--help Pokaż komunikat o użyciu i wyjdź.

--wersja
Pokaż wersję i wyjdź.

UTRZYMANY FLAGI


CFLAGI Opcje kompilatora C. Domyślna wartość ustawiona przez dostawcę obejmuje -g oraz
domyślny poziom optymalizacji (-O2 zwykle, lub -O0 Jeśli DEB_BUILD_OPTIONS
zmienna środowiskowa definiuje nie, nie).

FLAGI CPP
Opcje preprocesora C. Wartość domyślna: pusta.

CXXFLAGI
Opcje kompilatora C++. Taki sam jak CFLAGI.

OBJCFLAG
Opcje kompilatora Objective C. Taki sam jak CFLAGI.

OBJCXXFLAGS
Opcje kompilatora Objective C++. Taki sam jak CXXFLAGI.

GCJFLAG
Opcje kompilatora Java GNU (gcj). Podzbiór CFLAGI.

FLAGI Opcje dla kompilatora Fortran 77. Podzbiór CFLAGI.

FLAGI FC
Opcje dla kompilatora Fortran 9x. Taki sam jak FLAGI.

LDFLAGS
Opcje przekazywane do kompilatora podczas łączenia plików wykonywalnych lub obiektów współdzielonych (jeśli plik
linker jest zatem wywoływany bezpośrednio -Wł i , muszą zostać pozbawieni tych opcji).
Wartość domyślna: pusta.

Jeśli zajdzie taka potrzeba, w przyszłości mogą zostać dodane nowe flagi (na przykład w celu obsługi innych
Języki).

FUNKCJA OBSZARY


Każdą funkcję obszaru można włączyć i wyłączyć w DEB_BUILD_OPTIONS i
DEB_BUILD_MAINT_OPTIONS wartość obszaru zmiennej środowiskowej za pomocą '+'I'-modyfikator.
Na przykład, aby włączyć hartowanie „ciasto” i wyłącz funkcję „wzmocnij”.
mogę to zrobić w debian/zasady:

eksport DEB_BUILD_MAINT_OPTIONS=hartowanie=+ciasto,-wzmocnienie

Cecha szczególna cała kolekcja (obowiązuje w dowolnym obszarze) może zostać użyte do włączenia lub wyłączenia całego obszaru
funkcje jednocześnie. W ten sposób wyłączając wszystko w hartowanie obszar i umożliwienie
tylko „formatowanie” i „wzmocnienie” można osiągnąć za pomocą:

eksport DEB_BUILD_MAINT_OPTIONS=hartowanie=-all,+format,+wzmocnienie

qa
Można użyć kilku opcji czasu kompilacji (szczegółowo opisanych poniżej), aby pomóc w wykryciu problemów w pliku
kod źródłowy lub system kompilacji.

pluskwa To ustawienie (domyślnie wyłączone) dodaje każdą opcję ostrzegania, która niezawodnie wykrywa
problematyczny kod źródłowy. Ostrzeżenia są śmiertelne.

kanarek To ustawienie (domyślnie wyłączone) dodaje opcje fikcyjnego kanarka do flag kompilacji, tzw
aby można było sprawdzić dzienniki kompilacji pod kątem propagacji flag kompilacji i umożliwić
znalezienie jakichkolwiek pominięć normalnych ustawień flagi kompilacji. Jedyny obecnie obsługiwany
flagi są FLAGI CPP, CFLAGI, OBJCFLAG, CXXFLAGI i OBJCXXFLAGS z ustawionymi flagami
-D__DEB_CANARY_flaga_losowy identyfikator__, LDFLAGS Ustawić -Wl, -z,deb-canary-losowy identyfikator.

Sanitize
Można użyć kilku opcji czasu kompilacji (szczegółowo opisanych poniżej), aby pomóc w oczyszczeniu pliku wynikowego
binarny przed uszkodzeniami pamięci, wyciekami pamięci, użyciem po zwolnieniu, wątkowymi wyścigami danych i
niezdefiniowane błędy w zachowaniu.

adres
To ustawienie (domyślnie wyłączone) dodaje -fsanitize=adres do LDFLAGS i
-fsanitize=adres -fno-pomiń-wskaźnik-ramki do CFLAGI i CXXFLAGI.

wątek To ustawienie (domyślnie wyłączone) dodaje -fsanitize=wątek do CFLAGI, CXXFLAGI i
LDFLAGS.

przeciec To ustawienie (domyślnie wyłączone) dodaje -fsanitize=wyciek do LDFLAGS. To się zdarza
automatycznie wyłączone, jeśli albo adres albo wątek funkcje są włączone, jak np
sugerują to.

niezdefiniowany
To ustawienie (domyślnie wyłączone) dodaje -fsanitize=nieokreślony do CFLAGI, CXXFLAGI
i LDFLAGS.

hartowanie
Aby ulepszyć wynik, można zastosować kilka opcji czasu kompilacji (szczegółowo opisanych poniżej).
binary przed atakami polegającymi na uszkodzeniu pamięci lub wyświetlają dodatkowe komunikaty ostrzegawcze podczas
kompilacja. Z wyjątkiem przypadków opisanych poniżej, są one domyślnie włączone w przypadku architektur, które
wspierać ich.

format To ustawienie (domyślnie włączone) dodaje -Wformat -Werror=format-bezpieczeństwo do CFLAGI,
CXXFLAGI, OBJCFLAG i OBJCXXFLAGS. Spowoduje to ostrzeżenie o nieprawidłowym formacie ciągu
używa i zakończy się niepowodzeniem, jeśli funkcje formatu zostaną użyte w sposób reprezentujący możliwe
problemy bezpieczeństwa. Obecnie ostrzega o połączeniach do printf i skanf Funkcje
gdzie ciąg formatujący nie jest literałem ciągu i nie ma argumentów formatu,
jak w printf(foo); zamiast printf("%s", bla); Może to być luka w zabezpieczeniach, jeśli
ciąg formatujący pochodzi z niezaufanych danych wejściowych i zawiera „%n”.

ufortyfikować
To ustawienie (domyślnie włączone) dodaje -D_FORTIFY_SOURCE=2 do FLAGI CPP. Podczas kodu
generacji kompilator zna wiele informacji o rozmiarach buforów (gdzie
możliwe) i próbuje zastąpić niezabezpieczone wywołania funkcji bufora o nieograniczonej długości
z ograniczonymi długościami. Jest to szczególnie przydatne w przypadku starego, błędnego kodu.
Ponadto ciągi formatujące w zapisywalnej pamięci zawierające „%n” są blokowane. Jeśli
aplikacja zależy od takiego ciągu formatującego, trzeba będzie to obejść.

Należy pamiętać, że aby ta opcja miała jakikolwiek skutek, należy również skompilować źródło
-O1 lub wyżej. Jeśli zmienna środowiskowa DEB_BUILD_OPTIONS zawiera nie, nie, następnie
ufortyfikować obsługa zostanie wyłączona ze względu na nowe ostrzeżenia wydawane przez glibc 2.16
i później.

ochraniacz stosu
To ustawienie (domyślnie włączone, jeśli stackprotectorstrong nie jest używany) dodaje
-fstack-ochrona --param=rozmiar-bufora-ssp=4 do CFLAGI, CXXFLAGI, OBJCFLAG,
OBJCXXFLAGS, GCJFLAG, FLAGI i FLAGI FC. Dodaje to kontrole bezpieczeństwa względem stosu
nadpisuje. To sprawia, że ​​wiele potencjalnych ataków polegających na wstrzykiwaniu kodu kończy się przerwaniem
sytuacje. W najlepszym przypadku zamienia to luki w zabezpieczeniach polegające na wstrzykiwaniu kodu w odmowę
usługi lub nie-problemów (w zależności od zastosowania).

Ta funkcja wymaga połączenia z glibc (lub innym dostawcą
__stack_chk_fail), więc należy go wyłączyć podczas budowania z -nostdlib or
-wolnostojący lub podobne.

stackprotectorsilny
To ustawienie (domyślnie włączone) dodaje -fstack-protector-silny do CFLAGI,
CXXFLAGI, OBJCFLAG, OBJCXXFLAGS, GCJFLAG, FLAGI i FLAGI FC. To jest silniejszy
wariant ochraniacz stosu, ale bez znaczących kar za wydajność.

Wyłączanie ochraniacz stosu wyłączy również to ustawienie.

Ta funkcja ma takie same wymagania jak ochraniacz stosu, a w dodatku także
wymaga gcc 4.9 i nowszych.

ponownie To ustawienie (domyślnie włączone) dodaje -Wl, -z,relro do LDFLAGS. Podczas programu
loading, linker musi zapisać kilka sekcji pamięci ELF. To flagi
moduł ładujący, aby przed przekazaniem kontroli nad tymi sekcjami stał się tylko do odczytu
program. Przede wszystkim zapobiega to atakom polegającym na nadpisywaniu GOT. Jeśli jest taka opcja
wyłączone, wiązać również stanie się niepełnosprawny.

wiązać
To ustawienie (domyślnie wyłączone) dodaje -Wl,-z,teraz do LDFLAGS. Podczas ładowania programu
wszystkie symbole dynamiczne są rozwiązywane, co pozwala na oznaczenie całego PLT jako przeczytanego
tylko (ze względu na ponownie powyżej). Opcji nie można włączyć, jeśli ponownie nie jest
włączone.

ciasto To ustawienie (domyślnie wyłączone) dodaje -fSROKA do CFLAGI, CXXFLAGI, OBJCFLAG,
OBJCXXFLAGS, GCJFLAG, FLAGI i FLAGI FC, -fSROKA -ciasto do LDFLAGS. Pozycja
Aby skorzystać z układu przestrzeni adresowej, potrzebny jest niezależny plik wykonywalny
Randomizacja obsługiwana przez niektóre wersje jądra. Chociaż ASLR może już być
wymuszone dla obszarów danych na stosie i stercie (brk i mmap), obszary kodu muszą
być kompilowane jako niezależne od pozycji. Biblioteki współdzielone już to robią (-fPIC), więc
automatycznie zyskują ASLR, ale regiony binarne .text muszą zostać zbudowane PIE, aby zyskać
ASLR. Kiedy tak się dzieje, ataki ROP (programowanie zorientowane na zwrot) są znacznie trudniejsze
ponieważ nie ma żadnych statycznych lokalizacji, od których można by się odbić podczas uszkodzenia pamięci
atak.

To nie jest zgodne z -fPIC dlatego należy zachować ostrożność podczas wspólnego budowania
obiekty.

Dodatkowo, ponieważ PIE jest implementowana poprzez rejestr ogólny, niektóre architektury
(w szczególności i386) może zauważyć straty wydajności do 15% w przypadku bardzo segmentów tekstowych
duże obciążenia aplikacji; większość obciążeń widzi mniej niż 1%. Architektury z
bardziej ogólne rejestry (np. amd64) nie przewidują tak wysokiej kary w najgorszym przypadku.

odtwarzalne
Opcje czasu kompilacji wyszczególnione poniżej mogą pomóc w poprawie powtarzalności kompilacji
lub podaj dodatkowe komunikaty ostrzegawcze podczas kompilacji. Z wyjątkiem przypadków opisanych poniżej, są to
są domyślnie włączone dla architektur, które je obsługują.

ponadczasowy
To ustawienie (domyślnie włączone) dodaje -Wdata-godzina do FLAGI CPP. To spowoduje
ostrzeżenia, gdy __CZAS__, __DATA__ i __ZNAK CZASU__ używane są makra.

ŚRODOWISKO


Istnieją 2 zestawy zmiennych środowiskowych wykonujących te same operacje, pierwszy
(DEB_flaga_op) nigdy nie powinny być używane w obrębie debian/zasady. Jest przeznaczony dla każdego użytkownika, który chce
aby odbudować pakiet źródłowy z różnymi flagami kompilacji. Drugi zestaw
(DEB_flaga_KORZYSTANIE_op) należy stosować wyłącznie w debian/zasady przez opiekunów pakietów do zmiany
wynikowe flagi kompilacji.

DEB_flaga_USTAWIĆ
DEB_flaga_MAINT_SET
Zmiennej tej można użyć do wymuszenia wartości zwracanej dla danego flaga.

DEB_flaga_ROZEBRAĆ SIĘ
DEB_flaga_MAINT_STRIP
Tej zmiennej można użyć do zapewnienia rozdzielonej spacjami listy opcji, które będą
usunięty z zestawu flag zwróconych za dane flaga.

DEB_flaga_DODAĆ
DEB_flaga_MAINT_APPEND
Tej zmiennej można użyć do dołączenia dodatkowych opcji do zwracanej wartości
dany flaga.

DEB_flaga_PREPEND
DEB_flaga_MAINT_PREPEND
Za pomocą tej zmiennej można dodać dodatkowe opcje do zwracanej wartości
dla danego flaga.

DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS
Zmienne te mogą być używane przez użytkownika lub opiekuna do wyłączania/włączania różnych obszarów
funkcje wpływające na flagi kompilacji. The DEB_BUILD_MAINT_OPTIONS nadpisania zmiennych
dowolne ustawienie w pliku DEB_BUILD_OPTIONS obszary charakterystyczne. Zobacz FUNKCJA OBSZARY Sekcja
dla szczegółów.

Użyj dpkg-buildflags online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad