영어프랑스어스페인어

Ad


온웍스 파비콘

dpkg-buildflags - 클라우드에서의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 dpkg-buildflags를 실행하세요.

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 dpkg-buildflags 명령입니다.

프로그램:

이름


dpkg-buildflags - 패키지 빌드 중에 사용할 빌드 플래그를 반환합니다.

개요


dpkg-buildflags [선택권...] [명령]

기술


dpkg-buildflags 데비안 빌드 중에 사용할 컴파일 플래그를 검색하는 도구입니다.
패키지. 기본 플래그는 공급업체에서 정의하지만 확장/재정의할 수 있습니다.
여러 가지 방법으로

1. 시스템 전반에 걸쳐 /etc/dpkg/buildflags.conf;

2. 현재 사용자의 경우 $XDG_CONFIG_HOME/dpkg/buildflags.conf 어디에
$XDG_CONFIG_HOME 기본값은 $HOME/.config;

3. 환경 변수를 사용하여 사용자가 임시로(섹션 참조) 환경);

4. 다음을 통해 설정된 환경 변수를 사용하여 패키지 관리자에 의해 동적으로
데비안/규칙 (섹션 참조 환경).

구성 파일에는 두 가지 유형의 지시어가 포함될 수 있습니다.

SET를 플래그 가치
명명된 플래그를 재정의합니다. 플래그 가치를 갖기 위해 가치.

조각 플래그 가치
명명된 플래그에서 제거 플래그 나열된 모든 빌드 플래그 가치.

추가 플래그 가치
명명된 플래그 확장 플래그 다음에 제공된 옵션을 추가하여 가치. 공간은
플래그의 현재 값이 비어 있지 않은 경우 추가된 값 앞에 추가됩니다.

앞에 추가 플래그 가치
명명된 플래그 확장 플래그 주어진 옵션을 앞에 추가하여 가치. 공간은
플래그의 현재 값이 비어 있지 않은 경우 앞에 추가된 값에 추가됩니다.

구성 파일에는 해시(#)로 시작하는 줄에 대한 설명이 포함될 수 있습니다. 비어 있는
행도 무시됩니다.

명령


--덤프 모든 컴파일 플래그와 해당 값을 표준 출력으로 인쇄합니다. 하나의 플래그를 인쇄합니다.
값과 등호(“플래그=가치"). 이것이
기본 동작.

--목록 현재 공급업체에서 지원하는 플래그 목록을 인쇄합니다(한 줄에 하나씩). 참조
지원 깃발 섹션을 참조하세요.

--상태
동작을 설명하는 데 유용할 수 있는 정보를 표시합니다.
dpkg-buildflags (dpkg 1.16.5부터): 관련 환경 변수, 현재
공급업체, 모든 기능 플래그의 상태. 또한 결과 컴파일러 플래그를 다음과 같이 인쇄합니다.
그들의 기원.

이것은 다음에서 실행될 예정입니다. 데비안/규칙, 빌드 로그가 명확하게 유지되도록
사용된 빌드 플래그를 추적합니다. 이는 다음과 관련된 문제를 진단하는 데 유용할 수 있습니다.
그들.

--내보내기=체재
모든 편집을 내보내는 데 사용할 수 있는 표준 출력 명령으로 인쇄
특정 도구에 대한 플래그입니다. 만약 체재 값이 주어지지 않으며, sh 가정합니다.
대문자로 시작하는 컴파일 플래그만 포함됩니다.
환경에 적합하지 않은 것으로 추정됩니다. 지원되는 형식:

sh 모든 컴파일 플래그를 설정하고 내보내는 셸 명령
환경. 플래그 값은 인용되어 출력이 준비됩니다.
쉘에 의한 평가.

명령줄
모든 것을 사용하기 위해 빌드 프로그램의 명령줄에 전달할 인수입니다.
컴파일 플래그(dpkg 1.17.0부터). 플래그 값은 셸에서 인용됩니다.
통사론.

구성
에 대한 기존 별칭입니다. 명령줄.

확인 모든 컴파일 플래그를 설정하고 내보내는 지시문을 만듭니다.
환경. 출력은 makefile 조각에 기록되고 평가될 수 있습니다.
를 사용하여 포함 지침.

--가져 오기 플래그
표준 출력에 플래그 값을 인쇄합니다. 플래그가 알려진 경우 0으로 종료됩니다.
그렇지 않으면 1로 종료됩니다.

--기원 플래그
반환된 값의 출처를 인쇄합니다. --가져 오기. 플래그가 있는 경우 0으로 종료됩니다.
그렇지 않으면 1로 종료됩니다. 원점은 다음 값 중 하나일 수 있습니다.

공급 업체 공급업체가 설정한 원래 플래그가 반환됩니다.

체계 플래그는 시스템 전체 구성에 의해 설정/수정됩니다.

사용자 플래그는 사용자별 구성에 따라 설정/수정됩니다.

환경 플래그는 환경별 구성에 따라 설정/수정됩니다.

--쿼리 기능 지역
주어진 영역에 대해 활성화된 기능을 인쇄합니다(dpkg 1.16.2부터). 유일한
데비안과 파생물에서 현재 인식되는 영역은 다음과 같습니다. qa, 재현 가능한, 살균
경화,를 참조하십시오 FEATURE 지역 섹션을 참조하세요. 다음과 같은 경우 0으로 종료됩니다.
영역은 알려져 있지 않으면 1로 종료됩니다.

출력은 기능당 섹션이 하나씩 있는 RFC822 형식입니다. 예를 들어:

특색: 파이
활성화됨: 아니요

특징: 스택 프로텍터
활성화됨: 예

--도움 사용 메시지를 표시하고 종료합니다.

--번역
버전을 표시하고 종료합니다.

지원 깃발


깃발 C 컴파일러에 대한 옵션입니다. 공급업체가 설정한 기본값에는 다음이 포함됩니다. -g 그리고
기본 최적화 수준(-O2 일반적으로 또는 -O0 경우 DEB_BUILD_OPTIONS
환경 변수는 정의합니다 멍청하다).

CPPFLAGS
C 전처리기에 대한 옵션입니다. 기본값: 비어 있습니다.

CXX플래그
C++ 컴파일러에 대한 옵션입니다. 와 동일 깃발.

개체 플래그
Objective C 컴파일러에 대한 옵션입니다. 와 동일 깃발.

OBJCXX플래그
Objective C++ 컴파일러에 대한 옵션입니다. 와 동일 CXX플래그.

GCJ플래그
GNU Java 컴파일러(gcj)에 대한 옵션입니다. 의 하위 집합 깃발.

FFLAG Fortran 77 컴파일러에 대한 옵션입니다. 의 하위 집합 깃발.

FCFLAGS
Fortran 9x 컴파일러에 대한 옵션입니다. 와 동일 FFLAG.

LDFLAGS
실행 파일이나 공유 객체를 링크할 때 컴파일러에 전달되는 옵션(
링커가 직접 호출된 다음 -NS, 이 옵션을 제거해야 합니다).
기본값: 비어 있습니다.

필요한 경우 향후에 새 플래그가 추가될 수 있습니다(예: 다른 플래그를 지원하기 위해).
언어).

FEATURE 지역


각 영역 기능은 다음에서 활성화 및 비활성화할 수 있습니다. DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS 환경 변수의 면적 값은 '+'와'-' 수식어.
예를 들어, 경화 "파이" 기능을 사용하고 "강화" 기능을 비활성화합니다.
에서 이것을 할 수 있습니다 데비안/규칙:

DEB_BUILD_MAINT_OPTIONS=강화=+파이,-강화 내보내기

특별한 특징 모든 (모든 지역에서 유효함)을 사용하여 모든 지역을 활성화하거나 비활성화할 수 있습니다.
기능을 동시에 제공합니다. 따라서 경화 지역 및 활성화
다음을 통해서는 "포맷"과 "강화"만 달성할 수 있습니다.

DEB_BUILD_MAINT_OPTIONS=강화=-모두,+형식,+강화 내보내기

qa
여러 컴파일 타임 옵션(아래에 자세히 설명)을 사용하여 다음에서 문제를 감지할 수 있습니다.
소스 코드 또는 빌드 시스템.

버그 이 설정(기본적으로 비활성화됨)은 안정적으로 감지하는 경고 옵션을 추가합니다.
문제가 있는 소스코드 경고는 치명적입니다.

카나리아 이 설정(기본적으로 비활성화됨)은 빌드 플래그에 더미 카나리아 옵션을 추가하므로
빌드 플래그가 전파되는 방식에 대해 빌드 로그를 확인하고 허용할 수 있습니다.
일반 빌드 플래그 설정이 누락된 부분을 찾습니다. 현재 유일하게 지원되는
플래그는 CPPFLAGS, 깃발, 개체 플래그, CXX플래그OBJCXX플래그 플래그가 다음으로 설정됨
-D__DEB_CANARY_플래그_무작위 ID__LDFLAGS 로 설정 -Wl,-z,deb-카나리아-무작위 ID.

살균
여러 컴파일 타임 옵션(아래에 자세히 설명)을 사용하여 결과를 정리할 수 있습니다.
메모리 손상, 메모리 누수, 해제 후 사용, 스레딩 데이터 경합 및
정의되지 않은 동작 버그.

주소
이 설정(기본적으로 비활성화됨)은 다음을 추가합니다. -fsanitize=주소LDFLAGS
-fsanitize=주소 -fno-생략-프레임 포인터깃발CXX플래그.

이 설정(기본적으로 비활성화됨)은 다음을 추가합니다. -fsanitize=쓰레드깃발, CXX플래그
LDFLAGS.

누출 이 설정(기본적으로 비활성화됨)은 다음을 추가합니다. -fsanitize=누출LDFLAGS. 그것은 얻는다
다음 중 하나에 해당하면 자동으로 비활성화됩니다. 주소 또는 다음과 같이 기능이 활성화됩니다.
그들은 그것을 암시합니다.

정의되지 않은
이 설정(기본적으로 비활성화됨)은 다음을 추가합니다. -fsanitize=정의되지 않음깃발, CXX플래그
LDFLAGS.

경화
여러 컴파일 타임 옵션(아래에 자세히 설명)을 사용하여 결과를 강화할 수 있습니다.
메모리 손상 공격에 대해 바이너리를 제공하거나 공격 중에 추가 경고 메시지를 제공합니다.
편집. 아래에 명시된 경우를 제외하고 이러한 기능은 다음과 같은 아키텍처에 대해 기본적으로 활성화됩니다.
그들을 지원하십시오.

체재 이 설정(기본적으로 활성화됨)은 다음을 추가합니다. -W포맷 -Werror=형식 보안깃발,
CXX플래그, 개체 플래그OBJCXX플래그. 부적절한 형식 문자열에 대해 경고합니다.
가능한 것을 나타내는 방식으로 형식 함수를 사용하면 실패합니다.
보안 문제. 현재 이는 다음 호출에 대해 경고합니다. printfscanf 기능
여기서 형식 문자열은 문자열 리터럴이 아니고 형식 인수도 없습니다.
~ 같이 printf(푸); 대신 printf("%s", 푸); 다음과 같은 경우 보안 구멍이 될 수 있습니다.
형식 문자열은 신뢰할 수 없는 입력에서 왔으며 '%n'을(를) 포함하고 있습니다.

확고히 하다
이 설정(기본적으로 활성화됨)은 다음을 추가합니다. -D_FORTIFY_SOURCE=2CPPFLAGS. 코드 중
생성 시 컴파일러는 버퍼 크기에 대한 많은 정보를 알고 있습니다(여기서
가능), 안전하지 않은 무제한 길이의 버퍼 함수 호출을 대체하려고 시도합니다.
길이가 제한된 것들로. 이는 오래되고 지저분한 코드에 특히 유용합니다.
또한 '%n'을 포함하는 쓰기 가능한 메모리의 형식 문자열이 차단됩니다. 만약에
응용 프로그램은 이러한 형식 문자열에 의존하므로 해결해야 합니다.

이 옵션이 적용되려면 소스도 다음으로 컴파일되어야 합니다.
-O1 또는 더 높게. 환경변수인 경우 DEB_BUILD_OPTIONS 이 포함되어 있습니다 멍청하다다음,
확고히 하다 glibc 2.16에서 발행되는 새로운 경고로 인해 지원이 비활성화됩니다.
나중에.

스택 프로텍터
이 설정(Stackprotectorstrong을 사용하지 않는 경우 기본적으로 활성화됨)은 다음을 추가합니다.
-fstack 보호기 --param=ssp-버퍼-크기=4깃발, CXX플래그, 개체 플래그,
OBJCXX플래그, GCJ플래그, FFLAGFCFLAGS. 이는 스택에 대한 안전 검사를 추가합니다.
덮어씁니다. 이로 인해 많은 잠재적인 코드 삽입 공격이 중단됩니다.
상황. 최선의 경우 이는 코드 주입 취약점을 거부로 전환합니다.
서비스 또는 문제가 아닌 것으로 간주됩니다(응용 프로그램에 따라 다름).

이 기능을 사용하려면 glibc(또는 다른 공급자)와의 연결이 필요합니다.
__stack_chk_fail), 따라서 다음을 사용하여 빌드할 때는 비활성화해야 합니다. -nostdlib or
-프리스탠딩 또는 유사합니다.

스택 보호기강력
이 설정(기본적으로 활성화됨)은 다음을 추가합니다. -fstack-보호자-강한깃발,
CXX플래그, 개체 플래그, OBJCXX플래그, GCJ플래그, FFLAGFCFLAGS. 이것이 더 강하다
변형 스택 프로텍터, 그러나 상당한 성능 저하가 없습니다.

사용 중지 스택 프로텍터 이 설정도 비활성화됩니다.

이 기능의 요구 사항은 다음과 같습니다. 스택 프로텍터, 그리고 게다가
gcc 4.9 이상이 필요합니다.

렐로 이 설정(기본적으로 활성화됨)은 다음을 추가합니다. -Wl,-z,relroLDFLAGS. 프로그램 중
로드하려면 링커가 여러 ELF 메모리 섹션을 작성해야 합니다. 이 플래그
로더는 제어권을 로더에게 넘기기 전에 이 섹션을 읽기 전용으로 전환합니다.
프로그램. 특히 이는 GOT 덮어쓰기 공격을 방지합니다. 만약 이 옵션이
장애인, 바인드나우 장애인도 됩니다.

바인드나우
이 설정(기본적으로 비활성화됨)은 다음을 추가합니다. -Wl,-z,지금LDFLAGS. 프로그램을 로드하는 동안,
모든 동적 기호가 해석되어 전체 PLT가 읽기로 표시될 수 있습니다.
단지 (때문에 렐로 위에). 다음과 같은 경우 옵션을 활성화할 수 없습니다. 렐로 하지 않습니다
사용하도록 설정되었습니다.

파이 이 설정(기본적으로 비활성화됨)은 다음을 추가합니다. -fPIE깃발, CXX플래그, 개체 플래그,
OBJCXX플래그, GCJ플래그, FFLAGFCFLAGS-fPIE -파이LDFLAGS. 위치
주소 공간 레이아웃을 활용하려면 독립 실행 파일이 필요합니다.
일부 커널 버전에서 지원되는 무작위화. ASLR은 이미 가능하지만
스택 및 힙(brk 및 mmap)의 데이터 영역에 적용되며 코드 영역은 다음을 충족해야 합니다.
위치 독립적으로 컴파일됩니다. 공유 라이브러리는 이미 이 작업(-fPIC)을 수행하므로
자동으로 ASLR을 얻지만 바이너리 .text 영역을 얻으려면 PIE를 빌드해야 합니다.
ASLR. 이런 일이 발생하면 ROP(반환 지향 프로그래밍) 공격이 훨씬 더 어려워집니다.
메모리 손상 중에 반송될 정적 위치가 없기 때문입니다.
공격.

이것은 호환되지 않습니다 -fPIC 따라서 공유 건물을 지을 때는 주의를 기울여야 합니다.
사물.

또한 PIE는 일반 레지스터를 통해 구현되므로 일부 아키텍처는
(특히 i386)은 텍스트 세그먼트에서 최대 15%의 성능 손실을 볼 수 있습니다.
과도한 애플리케이션 작업 부하; 대부분의 워크로드는 1% 미만입니다. 다음을 갖춘 아키텍처
보다 일반적인 레지스터(예: amd64)는 최악의 경우 페널티를 높게 보지 않습니다.

재현 가능한
아래에 자세히 설명된 컴파일 시간 옵션을 사용하여 빌드 재현성을 향상할 수 있습니다.
또는 컴파일 중에 추가 경고 메시지를 제공하세요. 아래에 명시된 경우를 제외하고 이러한
이를 지원하는 아키텍처에서는 기본적으로 활성화됩니다.

영원한
이 설정(기본적으로 활성화됨)은 다음을 추가합니다. -W날짜-시간CPPFLAGS. 이로 인해
경고 __시각__, __데이트____타임스탬프__ 매크로가 사용됩니다.

환경


동일한 작업을 수행하는 환경 변수 세트가 2개 있습니다. 첫 번째는
(DEB_플래그_op)는 절대로 사용해서는 안 됩니다. 데비안/규칙. 이는 원하는 모든 사용자를 위한 것입니다.
다른 빌드 플래그를 사용하여 소스 패키지를 다시 빌드합니다. 두 번째 세트
(DEB_플래그_MAINT_op)는 다음에만 사용해야 합니다. 데비안/규칙 패키지 관리자가 변경
결과 빌드 플래그.

DEB_플래그_세트
DEB_플래그_MAINT_SET
이 변수는 주어진 값에 대해 반환된 값을 강제하는 데 사용될 수 있습니다. 플래그.

DEB_플래그_조각
DEB_플래그_MAINT_STRIP
이 변수는 공백으로 구분된 옵션 목록을 제공하는 데 사용할 수 있습니다.
주어진 플래그 세트에서 제거됨 플래그.

DEB_플래그_APPEND
DEB_플래그_MAINT_APPEND
이 변수는 반환된 값에 보충 옵션을 추가하는 데 사용될 수 있습니다.
주어진 플래그.

DEB_플래그_준비
DEB_플래그_MAINT_PREPEND
이 변수는 반환된 값에 추가 옵션을 추가하는 데 사용할 수 있습니다.
주어진 플래그.

DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS
이러한 변수는 사용자 또는 관리자가 다양한 영역을 비활성화/활성화하는 데 사용할 수 있습니다.
빌드 플래그에 영향을 미치는 기능입니다. 그만큼 DEB_BUILD_MAINT_OPTIONS 변수 재정의
모든 설정 DEB_BUILD_OPTIONS 기능 영역. 참조 FEATURE 지역 섹션에 있어야 합니다.
자세한 내용은.

onworks.net 서비스를 사용하여 온라인으로 dpkg-buildflags를 사용하세요.


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad