Add "-z undefs" option to the linker.
This commit is contained in:
parent
635411c923
commit
a62fb5b34e
71
binutils-z-undefs.patch
Normal file
71
binutils-z-undefs.patch
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
diff -rup binutils.orig/ld/emultempl/elf32.em binutils-2.29.1/ld/emultempl/elf32.em
|
||||||
|
--- binutils.orig/ld/emultempl/elf32.em 2018-01-16 11:34:58.040749108 +0000
|
||||||
|
+++ binutils-2.29.1/ld/emultempl/elf32.em 2018-01-16 11:35:35.697303875 +0000
|
||||||
|
@@ -2666,6 +2666,8 @@ fragment <<EOF
|
||||||
|
case 'z':
|
||||||
|
if (strcmp (optarg, "defs") == 0)
|
||||||
|
link_info.unresolved_syms_in_objects = RM_GENERATE_ERROR;
|
||||||
|
+ else if (strcmp (optarg, "undefs") == 0)
|
||||||
|
+ link_info.unresolved_syms_in_objects = RM_IGNORE;
|
||||||
|
else if (strcmp (optarg, "muldefs") == 0)
|
||||||
|
link_info.allow_multiple_definition = TRUE;
|
||||||
|
else if (CONST_STRNEQ (optarg, "max-page-size="))
|
||||||
|
Only in binutils-2.29.1/ld/emultempl: elf32.em.orig
|
||||||
|
diff -rup binutils.orig/ld/ld.texinfo binutils-2.29.1/ld/ld.texinfo
|
||||||
|
--- binutils.orig/ld/ld.texinfo 2018-01-16 11:34:58.208747127 +0000
|
||||||
|
+++ binutils-2.29.1/ld/ld.texinfo 2018-01-16 11:35:35.699303851 +0000
|
||||||
|
@@ -1125,8 +1125,9 @@ Generate common symbols with the STT_COM
|
||||||
|
link.
|
||||||
|
|
||||||
|
@item defs
|
||||||
|
-Disallows undefined symbols in object files. Undefined symbols in
|
||||||
|
-shared libraries are still allowed.
|
||||||
|
+Report unresolved symbol references from regular object files. This
|
||||||
|
+is done even if the linker is creating a non-symbolic shared library.
|
||||||
|
+This option is the inverse of @samp{-z undefs}.
|
||||||
|
|
||||||
|
@item execstack
|
||||||
|
Marks the object as requiring executable stack.
|
||||||
|
@@ -1279,6 +1280,11 @@ Generate GNU_PROPERTY_X86_FEATURE_1_SHST
|
||||||
|
to indicate compatibility with Intel Shadow Stack. Supported for
|
||||||
|
Linux/i386 and Linux/x86_64.
|
||||||
|
|
||||||
|
+@item undefs
|
||||||
|
+Do not report unresolved symbol references from regular object files,
|
||||||
|
+either when creating an executable, or when creating a shared library.
|
||||||
|
+This option is the inverse of @samp{-z defs}.
|
||||||
|
+
|
||||||
|
@end table
|
||||||
|
|
||||||
|
Other keywords are ignored for Solaris compatibility.
|
||||||
|
@@ -1684,6 +1690,7 @@ while linking a large executable.
|
||||||
|
|
||||||
|
@kindex --no-undefined
|
||||||
|
@kindex -z defs
|
||||||
|
+@kindex -z undefs
|
||||||
|
@item --no-undefined
|
||||||
|
@itemx -z defs
|
||||||
|
Report unresolved symbol references from regular object files. This
|
||||||
|
@@ -1692,6 +1699,8 @@ The switch @option{--[no-]allow-shlib-un
|
||||||
|
behaviour for reporting unresolved references found in shared
|
||||||
|
libraries being linked in.
|
||||||
|
|
||||||
|
+The effects of this option can be reverted by using @code{-z undefs}.
|
||||||
|
+
|
||||||
|
@kindex --allow-multiple-definition
|
||||||
|
@kindex -z muldefs
|
||||||
|
@item --allow-multiple-definition
|
||||||
|
Only in binutils-2.29.1/ld: ld.texinfo.orig
|
||||||
|
diff -rup binutils.orig/ld/NEWS binutils-2.29.1/ld/NEWS
|
||||||
|
--- binutils.orig/ld/NEWS 2018-01-16 11:34:58.209747115 +0000
|
||||||
|
+++ binutils-2.29.1/ld/NEWS 2018-01-16 11:35:57.855041557 +0000
|
||||||
|
@@ -1,5 +1,7 @@
|
||||||
|
-*- text -*-
|
||||||
|
|
||||||
|
+* Add "-z undefs" command line option as the inverse of the "-z defs" option.
|
||||||
|
+
|
||||||
|
Changes in 2.29:
|
||||||
|
|
||||||
|
* Support for -z shstk in the x86 ELF linker to generate
|
||||||
|
Only in binutils-2.29.1/ld: NEWS.orig
|
||||||
|
Only in binutils-2.29.1/ld: NEWS.rej
|
@ -54,7 +54,7 @@
|
|||||||
Summary: A GNU collection of binary utilities
|
Summary: A GNU collection of binary utilities
|
||||||
Name: %{?cross}binutils%{?_with_debug:-debug}
|
Name: %{?cross}binutils%{?_with_debug:-debug}
|
||||||
Version: 2.29.1
|
Version: 2.29.1
|
||||||
Release: 11%{?dist}
|
Release: 12%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
URL: https://sourceware.org/binutils
|
URL: https://sourceware.org/binutils
|
||||||
@ -154,6 +154,11 @@ Patch12: binutils-readelf-other-sym-info.patch
|
|||||||
# Lifetime: Fixed in 2.30.
|
# Lifetime: Fixed in 2.30.
|
||||||
Patch13: binutils-support-v3-build-notes.patch
|
Patch13: binutils-support-v3-build-notes.patch
|
||||||
|
|
||||||
|
# Purpose: Adds a "-z undefs" option to the linker to compliment the already
|
||||||
|
# present "-z defs" option.
|
||||||
|
# Lifetime: Fixed in 2.30.
|
||||||
|
Patch14: binutils-z-undefs.patch
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
Provides: bundled(libiberty)
|
Provides: bundled(libiberty)
|
||||||
@ -289,6 +294,7 @@ using libelf instead of BFD.
|
|||||||
%patch11 -p1
|
%patch11 -p1
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
%patch13 -p1
|
%patch13 -p1
|
||||||
|
%patch14 -p1
|
||||||
|
|
||||||
# We cannot run autotools as there is an exact requirement of autoconf-2.59.
|
# We cannot run autotools as there is an exact requirement of autoconf-2.59.
|
||||||
|
|
||||||
@ -693,6 +699,9 @@ exit 0
|
|||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jan 16 2018 Nick Clifton <nickc@redhat.com> 2.29.1-12
|
||||||
|
- Add "-z undefs" option to the linker.
|
||||||
|
|
||||||
* Thu Jan 11 2018 Nick Clifton <nickc@redhat.com> 2.29.1-11
|
* Thu Jan 11 2018 Nick Clifton <nickc@redhat.com> 2.29.1-11
|
||||||
- *Do* enable relro by default for the PowerPC64 architecture. (#1523946)
|
- *Do* enable relro by default for the PowerPC64 architecture. (#1523946)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user