Development Tools
GCC 8.1
Fedora 28 comes with GCC 8.1 as the primary compiler. See http://gcc.gnu.org/gcc-8/changes.html for user-visible changes in the new version.
Binutils rebased to 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.
Hardening Flags Updates
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:
-
Stack clash protection is enabled.
-
Lightweight assertions have been switched on in the C++ standard run-time library.
-
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.
Removing ldconfig Scriptlets
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.
DebugInfo Included by Default in MinGW Binaries
MinGW binaries contain symbol names by default to allow for easier debugging
of Windows applications cross-compiled from Fedora. Full debug information
is still available in the debuginfo
packages.
Want to help? Learn how to contribute to Fedora Docs ›