개발용 도구

GCC 8.1

페도라 28은 기본 컴파일러로 *GCC 8.1*와 함께 나왔습니다. 새로운 버전에서 사용자-시각적인 변경을 위해 GCC 8 계열 출시 변경, 새로운 기능과 수정을 참고하세요.

Binutils 2.29.1로 재구성되었습니다

binutils 도구의 모음은 버전 2.29에서 2.29.1로 재구성되었습니다. 이와 같은 마이너 출시는 새로운 기능이 도입되지 않지만, 하지만 이는 여러 가지 중요한 결점 수정을 포함합니다. 추가적으로, 기본 빌드 플래그가 `-z defs`를 포함하도록 변경되었으며, 또한 정의되지 않은 기호는 오류로 나타납니다. 이점은 기호 버전을 지정하지 않고 버전이 지정된 기호를 정의되지 않은 일반 기호로 참조하기 때문에 올바르게 연결되지 않은 동적 공유된 객체(DSO)를 탑재하는 것을 방지 할 수 있다는 것입니다.

강화된 플래그 최신화

페도라 28은 GNU 도구모음에 의해 제공된 것처럼 최신화 되어 강화된 플래그와 함께 제작되었습니다. 이전 출시와 비교되며, 다음 변경은 프로그램 구축되는 방식이 변경되었습니다:

  • 스택 충돌 방지가 활성화 되었습니다.

  • Lightweight assertions은 C++ 표준 런타임 라이브러리에서 전환되었습니다.

  • x86_64에서, 바이너리는 미래에 제어-흐름 강제 기술(CET)을 지원하는 방식으로 제작되었습니다.

  • 메모리 보호 키를 지원하는 시스템에서, 지연 바인딩은 이제 읽기-전용 GOT를 사용합니다.

  • 기본적으로 도구모음은 공격으로부터 페도라 실행 파일을 더욱 강화하기 위해 PIE 실행 파일을 생성합니다.

ldconfig 스크립틀릿 제거하기

페도라 저장소에서 꾸러미는 만약 공유된 라이브러리를 꾸러미화하는 경우 상세한 파일의 %post`와 `%postun 부분에서 ldconfig로 호출이 포함되었습니다. 페도라 28에서, 꾸러미는 _file triggers_를 사용 할 수 있으며, 이는 `ldconfig`가 트랜잭션 마다 한 번만 동작되어 더 빠른 꾸러미 설치를 허용합니다.

만약 자신의 꾸러미는 `ld.so.conf`에 의해 언급된 특별 위치에서 공유된 라이브러리를 위치하는 경우에도, 당신은 여전히 `ldconfig`를 수동으로 동작 해야합니다.

이와 같은 변경에 대해 더 많은 정보는 연관된 페도라 변경 부분에서 찾을 수 있습니다.

MinGW 바이너리에서 기본으로 포함된 디버그정보

MinGW 바이너리에는 기본적으로 기호 이름이 포함되어 있으며 페도라에서 교차-컴파일된 윈도우 응용 프로그램의 디버깅을 보다 쉽게 할 수 있습니다. 전체 디버그 정보는 디버그정보(debuginfo) 꾸러미에서 계속 사용 할 수 있습니다.