60 lines
1.9 KiB
Diff
60 lines
1.9 KiB
Diff
From dca8b177f6bb521638f4d8a845b4cb10348137c9 Mon Sep 17 00:00:00 2001
|
|
From: "H.J. Lu" <hjl.tools@gmail.com>
|
|
Date: Thu, 31 Aug 2017 06:28:31 -0700
|
|
Subject: [PATCH 34] Place $(elf-objpfx)sofini.os last [BZ #22051]
|
|
|
|
Since sofini.os terminates .eh_frame section, it should be placed last.
|
|
|
|
[BZ #22051]
|
|
* Makerules (build-module-helper-objlist): Filter out
|
|
$(elf-objpfx)sofini.os.
|
|
(build-shlib-objlist): Append $(elf-objpfx)sofini.os if it is
|
|
needed.
|
|
|
|
(cherry picked from commit ecd0747df388f3925d4839740b0abcf43d0a9fb2)
|
|
---
|
|
ChangeLog | 8 ++++++++
|
|
Makerules | 5 ++++-
|
|
2 files changed, 12 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/ChangeLog b/ChangeLog
|
|
index 87cc2f4865..f9e423dbb3 100644
|
|
--- a/ChangeLog
|
|
+++ b/ChangeLog
|
|
@@ -1,3 +1,11 @@
|
|
+2017-08-31 H.J. Lu <hongjiu.lu@intel.com>
|
|
+
|
|
+ [BZ #22051]
|
|
+ * Makerules (build-module-helper-objlist): Filter out
|
|
+ $(elf-objpfx)sofini.os.
|
|
+ (build-shlib-objlist): Append $(elf-objpfx)sofini.os if it is
|
|
+ needed.
|
|
+
|
|
2017-08-30 Florian Weimer <fweimer@redhat.com>
|
|
|
|
* malloc/dynarray_emplace_enlarge.c
|
|
diff --git a/Makerules b/Makerules
|
|
index 9bb707c168..828a445f24 100644
|
|
--- a/Makerules
|
|
+++ b/Makerules
|
|
@@ -686,14 +686,17 @@ $(build-module-helper) -o $@ $(shlib-lds-flags) \
|
|
$(call after-link,$@)
|
|
endef
|
|
|
|
+# sofini.os must be placed last since it terminates .eh_frame section.
|
|
build-module-helper-objlist = \
|
|
$(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\
|
|
$(filter-out %.lds $(map-file) $(+preinit) $(+postinit) \
|
|
+ $(elf-objpfx)sofini.os \
|
|
$(link-libc-deps),$^))
|
|
|
|
build-module-objlist = $(build-module-helper-objlist) $(LDLIBS-$(@F:%.so=%).so)
|
|
build-shlib-objlist = $(build-module-helper-objlist) \
|
|
- $(LDLIBS-$(@F:lib%.so=%).so)
|
|
+ $(LDLIBS-$(@F:lib%.so=%).so) \
|
|
+ $(filter $(elf-objpfx)sofini.os,$^)
|
|
|
|
# Don't try to use -lc when making libc.so itself.
|
|
# Also omits crti.o and crtn.o, which we do not want
|
|
|