Build flags: Disable -z defs again (#1535422)
This commit is contained in:
parent
1b296f01fc
commit
8d6c6d0761
@ -76,7 +76,7 @@ the `CFLAGS` variable contents).
|
|||||||
|
|
||||||
### Strict symbol checks in the link editor (ld)
|
### Strict symbol checks in the link editor (ld)
|
||||||
|
|
||||||
By default, the link editor will refuse to link shared objects which
|
Optionally, the link editor will refuse to link shared objects which
|
||||||
contain undefined symbols. Such symbols lack symbol versioning
|
contain undefined symbols. Such symbols lack symbol versioning
|
||||||
information and can be bound to the wrong (compatibility) symbol
|
information and can be bound to the wrong (compatibility) symbol
|
||||||
version at run time, and not the actual (default) symbol version which
|
version at run time, and not the actual (default) symbol version which
|
||||||
@ -86,10 +86,14 @@ not have complete dependency information (in the form of DT_NEEDED
|
|||||||
entries), which can lead to errors (crashes) if IFUNC resolvers are
|
entries), which can lead to errors (crashes) if IFUNC resolvers are
|
||||||
executed before the shared object containing them is fully relocated.
|
executed before the shared object containing them is fully relocated.
|
||||||
|
|
||||||
With the default flags, link failures will occur if the linker command
|
To switch on these checks, define this macro in the RPM spec file:
|
||||||
line does not list all shared objects which are needed. In this case,
|
|
||||||
you need to add the missing DSOs (with linker arguments such as
|
%define _strict_symbol_defs_build 1
|
||||||
`-lm`). As a result, the link editor will also generated the
|
|
||||||
|
If this RPM spec option is active, link failures will occur if the
|
||||||
|
linker command line does not list all shared objects which are needed.
|
||||||
|
In this case, you need to add the missing DSOs (with linker arguments
|
||||||
|
such as `-lm`). As a result, the link editor will also generated the
|
||||||
necessary DT_NEEDED entries.
|
necessary DT_NEEDED entries.
|
||||||
|
|
||||||
In some cases (such as when a DSO is loaded as a plugin and is
|
In some cases (such as when a DSO is loaded as a plugin and is
|
||||||
@ -262,7 +266,7 @@ to the compiler driver `gcc`, and not directly to the link editor
|
|||||||
dynamic linking. Full protection of relocation data requires the
|
dynamic linking. Full protection of relocation data requires the
|
||||||
`-z now` flag (see below).
|
`-z now` flag (see below).
|
||||||
* `-z defs`: Refuse to link shared objects (DSOs) with undefined symbols
|
* `-z defs`: Refuse to link shared objects (DSOs) with undefined symbols
|
||||||
(see above).
|
(optional, see above).
|
||||||
|
|
||||||
For hardened builds, the
|
For hardened builds, the
|
||||||
`-specs=/usr/lib/rpm/redhat/redhat-hardened-ld` flag is added to the
|
`-specs=/usr/lib/rpm/redhat/redhat-hardened-ld` flag is added to the
|
||||||
|
6
macros
6
macros
@ -167,9 +167,9 @@
|
|||||||
%_annotated_cflags %{?_annotated_build:%{_annobin_cflags}}
|
%_annotated_cflags %{?_annotated_build:%{_annobin_cflags}}
|
||||||
|
|
||||||
# Fail linking if there are undefined symbols. Required for proper
|
# Fail linking if there are undefined symbols. Required for proper
|
||||||
# ELF symbol versioning support.
|
# ELF symbol versioning support. Disabled by default.
|
||||||
# Use %undefine _strict_symbol_defs_build" to disable.
|
# Use "%define _strict_symbol_defs_build 1" to enable.
|
||||||
%_strict_symbol_defs_build 1
|
#%_strict_symbol_defs_build 1
|
||||||
%_ld_symbols_flags %{?_strict_symbol_defs_build:-Wl,-z,defs}
|
%_ld_symbols_flags %{?_strict_symbol_defs_build:-Wl,-z,defs}
|
||||||
|
|
||||||
%__global_compiler_flags -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches %{_hardened_cflags} %{_annotated_cflags}
|
%__global_compiler_flags -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches %{_hardened_cflags} %{_annotated_cflags}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
Summary: Red Hat specific rpm configuration files
|
Summary: Red Hat specific rpm configuration files
|
||||||
Name: redhat-rpm-config
|
Name: redhat-rpm-config
|
||||||
Version: 86
|
Version: 87
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
# No version specified.
|
# No version specified.
|
||||||
License: GPL+
|
License: GPL+
|
||||||
@ -160,6 +160,9 @@ install -p -m 755 -t %{buildroot}%{_rpmconfigdir} kmod.prov
|
|||||||
%{_rpmconfigdir}/macros.d/macros.kmp
|
%{_rpmconfigdir}/macros.d/macros.kmp
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jan 29 2018 Florian Weimer <fweimer@redhat.com> - 87-1
|
||||||
|
- Build flags: Disable -z defs again (#1535422)
|
||||||
|
|
||||||
* Mon Jan 29 2018 Florian Weimer <fweimer@redhat.com> - 86-1
|
* Mon Jan 29 2018 Florian Weimer <fweimer@redhat.com> - 86-1
|
||||||
- Build flags: Enable CET on i686, x86_64 (#1538725)
|
- Build flags: Enable CET on i686, x86_64 (#1538725)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user