개발용 도구

GCC 8.1

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

Binutils 2.29.1로 재구성되었습니다

The binutils collection of tools has been rebased from version 2.29 to 2.29.1. This minor release does not introduce any new features, but it includes a number of important bug fixes. In addition, the default build flags have been changed to include -z defs, so that undefined symbols result in errors. The benefit is that this prevents shipping dynamic shared objects (DSO) that are not correctly linked because they refer to versioned symbols as plain undefined symbols without specifying a symbol version.

강화된 플래그 최신화

Fedora 28 has been built with updated hardening flags, as provided by the GNU toolchain. Compared to previous releases, the following changes have been made to the way programs are built:

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

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

  • On x86-64, binaries have been built in such a way that they will support Control Flow Enforcement Technology (CET) in the future.

  • On systems which support memory protection keys, lazy binding now uses a read-only GOT.

  • By default the toolchain generates PIE executables to further harden Fedora executables from attacks.

ldconfig 스크립틀릿 제거하기

Packages in Fedora repositories included calls to ldconfig in %post and %postun sections of the spec file if they package shared libraries. With Fedora 28, packages can use file triggers, which allow faster installation of packages as ldconfig is run only once per transaction.

If your package places shared libraries in special locations referenced by ld.so.conf, you still need to run ldconfig manually.

More information about this change can be found on related Fedora change page.

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

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